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 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 if (!url.protocolIsInHTTPFamily()) | 357 if (!url.protocolIsInHTTPFamily()) |
358 return ScriptPromise::reject(scriptState, V8ThrowException::createTypeEr
ror(scriptState->isolate(), "Request scheme '" + url.protocol() + "' is unsuppor
ted")); | 358 return ScriptPromise::reject(scriptState, V8ThrowException::createTypeEr
ror(scriptState->isolate(), "Request scheme '" + url.protocol() + "' is unsuppor
ted")); |
359 if (request->method() != "GET") | 359 if (request->method() != "GET") |
360 return ScriptPromise::reject(scriptState, V8ThrowException::createTypeEr
ror(scriptState->isolate(), "Request method '" + request->method() + "' is unsup
ported")); | 360 return ScriptPromise::reject(scriptState, V8ThrowException::createTypeEr
ror(scriptState->isolate(), "Request method '" + request->method() + "' is unsup
ported")); |
361 if (request->hasBody() && request->bodyUsed()) | 361 if (request->hasBody() && request->bodyUsed()) |
362 return ScriptPromise::reject(scriptState, V8ThrowException::createTypeEr
ror(scriptState->isolate(), "Request body is already used")); | 362 return ScriptPromise::reject(scriptState, V8ThrowException::createTypeEr
ror(scriptState->isolate(), "Request body is already used")); |
363 if (response->hasBody() && response->bodyUsed()) | 363 if (response->hasBody() && response->bodyUsed()) |
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->setBodyUsed(); | 367 request->lockBody(Body::PassBody); |
368 if (response->hasBody()) | 368 if (response->hasBody()) |
369 response->setBodyUsed(); | 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->streamAccessed()) |
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; |
(...skipping 25 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 |