| 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 "config.h" | 5 #include "config.h" |
| 6 #include "modules/cachestorage/Cache.h" | 6 #include "modules/cachestorage/Cache.h" |
| 7 | 7 |
| 8 #include "bindings/core/v8/CallbackPromiseAdapter.h" | 8 #include "bindings/core/v8/CallbackPromiseAdapter.h" |
| 9 #include "bindings/core/v8/ExceptionState.h" | 9 #include "bindings/core/v8/ExceptionState.h" |
| 10 #include "bindings/core/v8/ScriptPromiseResolver.h" | 10 #include "bindings/core/v8/ScriptPromiseResolver.h" |
| (...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 547 if (requests[i]->hasBody() && requests[i]->bodyUsed()) { | 547 if (requests[i]->hasBody() && requests[i]->bodyUsed()) { |
| 548 barrierCallback->onError("Request body is already used"); | 548 barrierCallback->onError("Request body is already used"); |
| 549 return promise; | 549 return promise; |
| 550 } | 550 } |
| 551 if (responses[i]->hasBody() && responses[i]->bodyUsed()) { | 551 if (responses[i]->hasBody() && responses[i]->bodyUsed()) { |
| 552 barrierCallback->onError("Response body is already used"); | 552 barrierCallback->onError("Response body is already used"); |
| 553 return promise; | 553 return promise; |
| 554 } | 554 } |
| 555 | 555 |
| 556 if (requests[i]->hasBody()) | 556 if (requests[i]->hasBody()) |
| 557 requests[i]->lockBody(Body::PassBody); | 557 requests[i]->setBodyPassed(); |
| 558 if (responses[i]->hasBody()) | 558 if (responses[i]->hasBody()) |
| 559 responses[i]->lockBody(Body::PassBody); | 559 responses[i]->setBodyPassed(); |
| 560 | 560 |
| 561 if (OwnPtr<DrainingBodyStreamBuffer> buffer = responses[i]->createIntern
alDrainingStream()) { | 561 BodyStreamBuffer* buffer = responses[i]->internalBodyBuffer(); |
| 562 if (buffer->hasBody()) { |
| 562 // If the response has body, read the all data and create | 563 // If the response has body, read the all data and create |
| 563 // the blob handle and dispatch the put batch asynchronously. | 564 // the blob handle and dispatch the put batch asynchronously. |
| 564 FetchDataLoader* loader = FetchDataLoader::createLoaderAsBlobHandle(
responses[i]->internalMIMEType()); | 565 FetchDataLoader* loader = FetchDataLoader::createLoaderAsBlobHandle(
responses[i]->internalMIMEType()); |
| 565 buffer->startLoading(loader, new BlobHandleCallbackForPut(i, barrier
Callback, requests[i], responses[i])); | 566 buffer->startLoading(scriptState->executionContext(), loader, new Bl
obHandleCallbackForPut(i, barrierCallback, requests[i], responses[i])); |
| 566 continue; | 567 continue; |
| 567 } | 568 } |
| 568 | 569 |
| 569 WebServiceWorkerCache::BatchOperation batchOperation; | 570 WebServiceWorkerCache::BatchOperation batchOperation; |
| 570 batchOperation.operationType = WebServiceWorkerCache::OperationTypePut; | 571 batchOperation.operationType = WebServiceWorkerCache::OperationTypePut; |
| 571 requests[i]->populateWebServiceWorkerRequest(batchOperation.request); | 572 requests[i]->populateWebServiceWorkerRequest(batchOperation.request); |
| 572 responses[i]->populateWebServiceWorkerResponse(batchOperation.response); | 573 responses[i]->populateWebServiceWorkerResponse(batchOperation.response); |
| 573 barrierCallback->onSuccess(i, batchOperation); | 574 barrierCallback->onSuccess(i, batchOperation); |
| 574 } | 575 } |
| 575 | 576 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 594 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ
ueryParams(options)); | 595 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ
ueryParams(options)); |
| 595 return promise; | 596 return promise; |
| 596 } | 597 } |
| 597 | 598 |
| 598 WebServiceWorkerCache* Cache::webCache() const | 599 WebServiceWorkerCache* Cache::webCache() const |
| 599 { | 600 { |
| 600 return m_webCache.get(); | 601 return m_webCache.get(); |
| 601 } | 602 } |
| 602 | 603 |
| 603 } // namespace blink | 604 } // namespace blink |
| OLD | NEW |