Merge "Make sure application cache manifest files are not cached."

This commit is contained in:
Andrei Popescu
2010-02-02 10:21:51 -08:00
committed by Android (Google) Code Review

View File

@@ -52,6 +52,7 @@ public final class CacheManager {
private static final String NO_STORE = "no-store";
private static final String NO_CACHE = "no-cache";
private static final String MAX_AGE = "max-age";
private static final String MANIFEST_MIME = "text/cache-manifest";
private static long CACHE_THRESHOLD = 6 * 1024 * 1024;
private static long CACHE_TRIM_AMOUNT = 2 * 1024 * 1024;
@@ -658,6 +659,15 @@ public final class CacheManager {
// if the contentLength is already larger than CACHE_MAX_SIZE, skip it
if (headers.getContentLength() > CACHE_MAX_SIZE) return null;
// The HTML 5 spec, section 6.9.4, step 7.3 of the application cache
// process states that HTTP caching rules are ignored for the
// purposes of the application cache download process.
// At this point we can't tell that if a file is part of this process,
// except for the manifest, which has its own mimeType.
// TODO: work out a way to distinguish all responses that are part of
// the application download process and skip them.
if (MANIFEST_MIME.equals(mimeType)) return null;
// TODO: if authenticated or secure, return null
CacheResult ret = new CacheResult();
ret.httpStatusCode = statusCode;