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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/cachestorage/Cache.h" 5 #include "modules/cachestorage/Cache.h"
6 6
7 #include "bindings/core/v8/CallbackPromiseAdapter.h" 7 #include "bindings/core/v8/CallbackPromiseAdapter.h"
8 #include "bindings/core/v8/ExceptionState.h" 8 #include "bindings/core/v8/ExceptionState.h"
9 #include "bindings/core/v8/ScriptPromiseResolver.h" 9 #include "bindings/core/v8/ScriptPromiseResolver.h"
10 #include "bindings/core/v8/ScriptState.h" 10 #include "bindings/core/v8/ScriptState.h"
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 } 486 }
487 487
488 ScriptPromise Cache::matchImpl(ScriptState* scriptState, const Request* request, const CacheQueryOptions& options) 488 ScriptPromise Cache::matchImpl(ScriptState* scriptState, const Request* request, const CacheQueryOptions& options)
489 { 489 {
490 WebServiceWorkerRequest webRequest; 490 WebServiceWorkerRequest webRequest;
491 request->populateWebServiceWorkerRequest(webRequest); 491 request->populateWebServiceWorkerRequest(webRequest);
492 checkCacheQueryOptions(options, scriptState->getExecutionContext()); 492 checkCacheQueryOptions(options, scriptState->getExecutionContext());
493 493
494 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 494 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
495 const ScriptPromise promise = resolver->promise(); 495 const ScriptPromise promise = resolver->promise();
496 if (request->method() != HTTPNames::GET && !options.ignoreMethod()) {
497 resolver->resolve();
498 return promise;
499 }
496 m_webCache->dispatchMatch(new CacheMatchCallbacks(resolver), webRequest, toW ebQueryParams(options)); 500 m_webCache->dispatchMatch(new CacheMatchCallbacks(resolver), webRequest, toW ebQueryParams(options));
497 return promise; 501 return promise;
498 } 502 }
499 503
500 ScriptPromise Cache::matchAllImpl(ScriptState* scriptState) 504 ScriptPromise Cache::matchAllImpl(ScriptState* scriptState)
501 { 505 {
502 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 506 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
503 const ScriptPromise promise = resolver->promise(); 507 const ScriptPromise promise = resolver->promise();
504 m_webCache->dispatchMatchAll(new CacheWithResponsesCallbacks(resolver), WebS erviceWorkerRequest(), WebServiceWorkerCache::QueryParams()); 508 m_webCache->dispatchMatchAll(new CacheWithResponsesCallbacks(resolver), WebS erviceWorkerRequest(), WebServiceWorkerCache::QueryParams());
505 return promise; 509 return promise;
506 } 510 }
507 511
508 ScriptPromise Cache::matchAllImpl(ScriptState* scriptState, const Request* reque st, const CacheQueryOptions& options) 512 ScriptPromise Cache::matchAllImpl(ScriptState* scriptState, const Request* reque st, const CacheQueryOptions& options)
509 { 513 {
510 WebServiceWorkerRequest webRequest; 514 WebServiceWorkerRequest webRequest;
511 request->populateWebServiceWorkerRequest(webRequest); 515 request->populateWebServiceWorkerRequest(webRequest);
512 checkCacheQueryOptions(options, scriptState->getExecutionContext()); 516 checkCacheQueryOptions(options, scriptState->getExecutionContext());
513 517
514 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 518 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
515 const ScriptPromise promise = resolver->promise(); 519 const ScriptPromise promise = resolver->promise();
520 if (request->method() != HTTPNames::GET && !options.ignoreMethod()) {
521 resolver->resolve(HeapVector<Member<Response>>());
522 return promise;
523 }
516 m_webCache->dispatchMatchAll(new CacheWithResponsesCallbacks(resolver), webR equest, toWebQueryParams(options)); 524 m_webCache->dispatchMatchAll(new CacheWithResponsesCallbacks(resolver), webR equest, toWebQueryParams(options));
517 return promise; 525 return promise;
518 } 526 }
519 527
520 ScriptPromise Cache::addAllImpl(ScriptState* scriptState, const HeapVector<Membe r<Request>>& requests, ExceptionState& exceptionState) 528 ScriptPromise Cache::addAllImpl(ScriptState* scriptState, const HeapVector<Membe r<Request>>& requests, ExceptionState& exceptionState)
521 { 529 {
522 if (requests.isEmpty()) 530 if (requests.isEmpty())
523 return ScriptPromise::castUndefined(scriptState); 531 return ScriptPromise::castUndefined(scriptState);
524 532
525 HeapVector<RequestInfo> requestInfos; 533 HeapVector<RequestInfo> requestInfos;
(...skipping 16 matching lines...) Expand all
542 ScriptPromise Cache::deleteImpl(ScriptState* scriptState, const Request* request , const CacheQueryOptions& options) 550 ScriptPromise Cache::deleteImpl(ScriptState* scriptState, const Request* request , const CacheQueryOptions& options)
543 { 551 {
544 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1)); 552 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1));
545 batchOperations[0].operationType = WebServiceWorkerCache::OperationTypeDelet e; 553 batchOperations[0].operationType = WebServiceWorkerCache::OperationTypeDelet e;
546 request->populateWebServiceWorkerRequest(batchOperations[0].request); 554 request->populateWebServiceWorkerRequest(batchOperations[0].request);
547 checkCacheQueryOptions(options, scriptState->getExecutionContext()); 555 checkCacheQueryOptions(options, scriptState->getExecutionContext());
548 batchOperations[0].matchParams = toWebQueryParams(options); 556 batchOperations[0].matchParams = toWebQueryParams(options);
549 557
550 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 558 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
551 const ScriptPromise promise = resolver->promise(); 559 const ScriptPromise promise = resolver->promise();
560 if (request->method() != HTTPNames::GET && !options.ignoreMethod()) {
561 resolver->resolve(false);
562 return promise;
563 }
552 m_webCache->dispatchBatch(new CacheDeleteCallback(resolver), batchOperations ); 564 m_webCache->dispatchBatch(new CacheDeleteCallback(resolver), batchOperations );
553 return promise; 565 return promise;
554 } 566 }
555 567
556 ScriptPromise Cache::putImpl(ScriptState* scriptState, const HeapVector<Member<R equest>>& requests, const HeapVector<Member<Response>>& responses) 568 ScriptPromise Cache::putImpl(ScriptState* scriptState, const HeapVector<Member<R equest>>& requests, const HeapVector<Member<Response>>& responses)
557 { 569 {
558 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 570 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
559 const ScriptPromise promise = resolver->promise(); 571 const ScriptPromise promise = resolver->promise();
560 BarrierCallbackForPut* barrierCallback = new BarrierCallbackForPut(requests. size(), this, resolver); 572 BarrierCallbackForPut* barrierCallback = new BarrierCallbackForPut(requests. size(), this, resolver);
561 573
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 } 624 }
613 625
614 ScriptPromise Cache::keysImpl(ScriptState* scriptState, const Request* request, const CacheQueryOptions& options) 626 ScriptPromise Cache::keysImpl(ScriptState* scriptState, const Request* request, const CacheQueryOptions& options)
615 { 627 {
616 WebServiceWorkerRequest webRequest; 628 WebServiceWorkerRequest webRequest;
617 request->populateWebServiceWorkerRequest(webRequest); 629 request->populateWebServiceWorkerRequest(webRequest);
618 checkCacheQueryOptions(options, scriptState->getExecutionContext()); 630 checkCacheQueryOptions(options, scriptState->getExecutionContext());
619 631
620 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 632 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
621 const ScriptPromise promise = resolver->promise(); 633 const ScriptPromise promise = resolver->promise();
634 if (request->method() != HTTPNames::GET && !options.ignoreMethod()) {
635 resolver->resolve(HeapVector<Member<Request>>());
636 return promise;
637 }
622 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), webReques t, toWebQueryParams(options)); 638 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), webReques t, toWebQueryParams(options));
623 return promise; 639 return promise;
624 } 640 }
625 641
626 WebServiceWorkerCache* Cache::webCache() const 642 WebServiceWorkerCache* Cache::webCache() const
627 { 643 {
628 return m_webCache.get(); 644 return m_webCache.get();
629 } 645 }
630 646
631 } // namespace blink 647 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698