| 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/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 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 void didCreateBlobHandle(PassRefPtr<BlobDataHandle> handle) override | 195 void didCreateBlobHandle(PassRefPtr<BlobDataHandle> handle) override |
| 196 { | 196 { |
| 197 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(
1)); | 197 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(
1)); |
| 198 batchOperations[0].operationType = WebServiceWorkerCache::OperationTypeP
ut; | 198 batchOperations[0].operationType = WebServiceWorkerCache::OperationTypeP
ut; |
| 199 batchOperations[0].request = m_webRequest; | 199 batchOperations[0].request = m_webRequest; |
| 200 batchOperations[0].response = m_webResponse; | 200 batchOperations[0].response = m_webResponse; |
| 201 batchOperations[0].response.setBlobDataHandle(handle); | 201 batchOperations[0].response.setBlobDataHandle(handle); |
| 202 m_cache->webCache()->dispatchBatch(new CachePutCallbacks(m_resolver.get(
)), batchOperations); | 202 m_cache->webCache()->dispatchBatch(new CachePutCallbacks(m_resolver.get(
)), batchOperations); |
| 203 cleanup(); | 203 cleanup(); |
| 204 } | 204 } |
| 205 void didFail(PassRefPtrWillBeRawPtr<DOMException> exception) override | 205 void didFail(DOMException* exception) override |
| 206 { | 206 { |
| 207 ScriptState* state = m_resolver->scriptState(); | 207 ScriptState* state = m_resolver->scriptState(); |
| 208 ScriptState::Scope scope(state); | 208 ScriptState::Scope scope(state); |
| 209 m_resolver->reject(V8ThrowException::createTypeError(state->isolate(), e
xception->toString())); | 209 m_resolver->reject(V8ThrowException::createTypeError(state->isolate(), e
xception->toString())); |
| 210 cleanup(); | 210 cleanup(); |
| 211 } | 211 } |
| 212 | 212 |
| 213 DEFINE_INLINE_VIRTUAL_TRACE() | 213 DEFINE_INLINE_VIRTUAL_TRACE() |
| 214 { | 214 { |
| 215 visitor->trace(m_resolver); | 215 visitor->trace(m_resolver); |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 return ScriptPromise::reject(scriptState, V8ThrowException::createTy
peError(scriptState->isolate(), "Add/AddAll does not support schemes other than
\"http\" or \"https\"")); | 367 return ScriptPromise::reject(scriptState, V8ThrowException::createTy
peError(scriptState->isolate(), "Add/AddAll does not support schemes other than
\"http\" or \"https\"")); |
| 368 if (requests[i]->method() != "GET") | 368 if (requests[i]->method() != "GET") |
| 369 return ScriptPromise::reject(scriptState, V8ThrowException::createTy
peError(scriptState->isolate(), "Add/AddAll only supports the GET request method
.")); | 369 return ScriptPromise::reject(scriptState, V8ThrowException::createTy
peError(scriptState->isolate(), "Add/AddAll only supports the GET request method
.")); |
| 370 requestInfos[i].setRequest(requests[i]); | 370 requestInfos[i].setRequest(requests[i]); |
| 371 } | 371 } |
| 372 | 372 |
| 373 ScriptPromise fetchPromise = m_scopedFetcher->fetch(scriptState, requestInfo
s[0], Dictionary(), exceptionState); | 373 ScriptPromise fetchPromise = m_scopedFetcher->fetch(scriptState, requestInfo
s[0], Dictionary(), exceptionState); |
| 374 return fetchPromise.then(FetchResolvedForAdd::create(scriptState, this, requ
ests[0])); | 374 return fetchPromise.then(FetchResolvedForAdd::create(scriptState, this, requ
ests[0])); |
| 375 } | 375 } |
| 376 | 376 |
| 377 PassRefPtrWillBeRawPtr<DOMException> Cache::domExceptionForCacheError(WebService
WorkerCacheError reason) | 377 DOMException* Cache::domExceptionForCacheError(WebServiceWorkerCacheError reason
) |
| 378 { | 378 { |
| 379 switch (reason) { | 379 switch (reason) { |
| 380 case WebServiceWorkerCacheErrorNotImplemented: | 380 case WebServiceWorkerCacheErrorNotImplemented: |
| 381 return DOMException::create(NotSupportedError, "Method is not implemente
d."); | 381 return DOMException::create(NotSupportedError, "Method is not implemente
d."); |
| 382 case WebServiceWorkerCacheErrorNotFound: | 382 case WebServiceWorkerCacheErrorNotFound: |
| 383 return DOMException::create(NotFoundError, "Entry was not found."); | 383 return DOMException::create(NotFoundError, "Entry was not found."); |
| 384 case WebServiceWorkerCacheErrorExists: | 384 case WebServiceWorkerCacheErrorExists: |
| 385 return DOMException::create(InvalidAccessError, "Entry already exists.")
; | 385 return DOMException::create(InvalidAccessError, "Entry already exists.")
; |
| 386 default: | 386 default: |
| 387 ASSERT_NOT_REACHED(); | 387 ASSERT_NOT_REACHED(); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ
ueryParams(options)); | 456 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ
ueryParams(options)); |
| 457 return promise; | 457 return promise; |
| 458 } | 458 } |
| 459 | 459 |
| 460 WebServiceWorkerCache* Cache::webCache() const | 460 WebServiceWorkerCache* Cache::webCache() const |
| 461 { | 461 { |
| 462 return m_webCache.get(); | 462 return m_webCache.get(); |
| 463 } | 463 } |
| 464 | 464 |
| 465 } // namespace blink | 465 } // namespace blink |
| OLD | NEW |