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/serviceworkers/Cache.h" | 6 #include "modules/serviceworkers/Cache.h" |
7 | 7 |
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 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 return ScriptPromise::reject(scriptState, V8ThrowException::createTypeEr
ror(scriptState->isolate(), "Response body is already used")); | 364 return ScriptPromise::reject(scriptState, V8ThrowException::createTypeEr
ror(scriptState->isolate(), "Response body is already used")); |
365 | 365 |
366 if (request->hasBody()) | 366 if (request->hasBody()) |
367 request->lockBody(Body::PassBody); | 367 request->lockBody(Body::PassBody); |
368 if (response->hasBody()) | 368 if (response->hasBody()) |
369 response->lockBody(Body::PassBody); | 369 response->lockBody(Body::PassBody); |
370 | 370 |
371 RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::
create(scriptState); | 371 RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::
create(scriptState); |
372 const ScriptPromise promise = resolver->promise(); | 372 const ScriptPromise promise = resolver->promise(); |
373 if (BodyStreamBuffer* buffer = response->internalBuffer()) { | 373 if (BodyStreamBuffer* buffer = response->internalBuffer()) { |
374 if (buffer == response->buffer() && response->streamAccessed()) | 374 if (buffer == response->buffer() && response->isBodyConsumed()) |
375 buffer = response->createDrainingStream(); | 375 buffer = response->createDrainingStream(); |
376 // If the response body type is stream, read the all data and create the | 376 // If the response body type is stream, read the all data and create the |
377 // blob handle and dispatch the put batch asynchronously. | 377 // blob handle and dispatch the put batch asynchronously. |
378 buffer->readAllAndCreateBlobHandle(response->internalMIMEType(), new Asy
ncPutBatch(resolver, this, request, response)); | 378 buffer->readAllAndCreateBlobHandle(response->internalMIMEType(), new Asy
ncPutBatch(resolver, this, request, response)); |
379 return promise; | 379 return promise; |
380 } | 380 } |
381 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1)); | 381 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1)); |
382 batchOperations[0].operationType = WebServiceWorkerCache::OperationTypePut; | 382 batchOperations[0].operationType = WebServiceWorkerCache::OperationTypePut; |
383 request->populateWebServiceWorkerRequest(batchOperations[0].request); | 383 request->populateWebServiceWorkerRequest(batchOperations[0].request); |
384 response->populateWebServiceWorkerResponse(batchOperations[0].response); | 384 response->populateWebServiceWorkerResponse(batchOperations[0].response); |
(...skipping 20 matching lines...) Expand all Loading... |
405 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ
ueryParams(options)); | 405 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ
ueryParams(options)); |
406 return promise; | 406 return promise; |
407 } | 407 } |
408 | 408 |
409 WebServiceWorkerCache* Cache::webCache() const | 409 WebServiceWorkerCache* Cache::webCache() const |
410 { | 410 { |
411 return m_webCache.get(); | 411 return m_webCache.get(); |
412 } | 412 } |
413 | 413 |
414 } // namespace blink | 414 } // namespace blink |
OLD | NEW |