AI 144242: Fix 1750062. When createCacheFile, if we get 303, or redirect with cookies, or "no-store", make sure to remove the existing entry in the cache db before returning null for CachedResult.
BUG=1750062 Automated import of CL 144242
This commit is contained in:
committed by
The Android Open Source Project
parent
238ddbb8a2
commit
3afdd56470
@@ -340,7 +340,7 @@ public final class CacheManager {
|
||||
* @hide - hide createCacheFile since it has a parameter of type headers, which is
|
||||
* in a hidden package.
|
||||
*/
|
||||
// can be called from any thread
|
||||
// only called from WebCore thread
|
||||
public static CacheResult createCacheFile(String url, int statusCode,
|
||||
Headers headers, String mimeType, boolean forceCache) {
|
||||
if (!forceCache && mDisabled) {
|
||||
@@ -349,17 +349,25 @@ public final class CacheManager {
|
||||
|
||||
// according to the rfc 2616, the 303 response MUST NOT be cached.
|
||||
if (statusCode == 303) {
|
||||
// remove the saved cache if there is any
|
||||
mDataBase.removeCache(url);
|
||||
return null;
|
||||
}
|
||||
|
||||
// like the other browsers, do not cache redirects containing a cookie
|
||||
// header.
|
||||
if (checkCacheRedirect(statusCode) && !headers.getSetCookie().isEmpty()) {
|
||||
// remove the saved cache if there is any
|
||||
mDataBase.removeCache(url);
|
||||
return null;
|
||||
}
|
||||
|
||||
CacheResult ret = parseHeaders(statusCode, headers, mimeType);
|
||||
if (ret != null) {
|
||||
if (ret == null) {
|
||||
// this should only happen if the headers has "no-store" in the
|
||||
// cache-control. remove the saved cache if there is any
|
||||
mDataBase.removeCache(url);
|
||||
} else {
|
||||
setupFiles(url, ret);
|
||||
try {
|
||||
ret.outStream = new FileOutputStream(ret.outFile);
|
||||
|
||||
Reference in New Issue
Block a user