| 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), 0, toWebQ
ueryParams(options)); | 638 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ
ueryParams(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 |