OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |