Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(980)

Unified Diff: third_party/WebKit/Source/modules/cachestorage/Cache.cpp

Issue 2204683002: Cache API should not match() HEAD requests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: HEAD -> Head Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/cachestorage/Cache.cpp
diff --git a/third_party/WebKit/Source/modules/cachestorage/Cache.cpp b/third_party/WebKit/Source/modules/cachestorage/Cache.cpp
index 47d0ae6c2dc18f18752a1463c563b3ecc6efae6d..260b762e49d0844bfed2ff48d4df3089534c921a 100644
--- a/third_party/WebKit/Source/modules/cachestorage/Cache.cpp
+++ b/third_party/WebKit/Source/modules/cachestorage/Cache.cpp
@@ -493,6 +493,10 @@ ScriptPromise Cache::matchImpl(ScriptState* scriptState, const Request* request,
ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState);
const ScriptPromise promise = resolver->promise();
+ if (request->method() != HTTPNames::GET && !options.ignoreMethod()) {
+ resolver->resolve();
+ return promise;
+ }
m_webCache->dispatchMatch(new CacheMatchCallbacks(resolver), webRequest, toWebQueryParams(options));
return promise;
}
@@ -513,6 +517,10 @@ ScriptPromise Cache::matchAllImpl(ScriptState* scriptState, const Request* reque
ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState);
const ScriptPromise promise = resolver->promise();
+ if (request->method() != HTTPNames::GET && !options.ignoreMethod()) {
+ resolver->resolve(HeapVector<Member<Response>>());
+ return promise;
+ }
m_webCache->dispatchMatchAll(new CacheWithResponsesCallbacks(resolver), webRequest, toWebQueryParams(options));
return promise;
}
@@ -549,6 +557,10 @@ ScriptPromise Cache::deleteImpl(ScriptState* scriptState, const Request* request
ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState);
const ScriptPromise promise = resolver->promise();
+ if (request->method() != HTTPNames::GET && !options.ignoreMethod()) {
+ resolver->resolve(false);
+ return promise;
+ }
m_webCache->dispatchBatch(new CacheDeleteCallback(resolver), batchOperations);
return promise;
}
@@ -619,6 +631,10 @@ ScriptPromise Cache::keysImpl(ScriptState* scriptState, const Request* request,
ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState);
const ScriptPromise promise = resolver->promise();
+ if (request->method() != HTTPNames::GET && !options.ignoreMethod()) {
+ resolver->resolve(HeapVector<Member<Request>>());
+ return promise;
+ }
m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), webRequest, toWebQueryParams(options));
return promise;
}

Powered by Google App Engine
This is Rietveld 408576698