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; |
} |