| 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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 class CacheMatchCallbacks : public WebServiceWorkerCache::CacheMatchCallbacks { | 43 class CacheMatchCallbacks : public WebServiceWorkerCache::CacheMatchCallbacks { |
| 44 WTF_MAKE_NONCOPYABLE(CacheMatchCallbacks); | 44 WTF_MAKE_NONCOPYABLE(CacheMatchCallbacks); |
| 45 public: | 45 public: |
| 46 explicit CacheMatchCallbacks(ScriptPromiseResolver* resolver) | 46 explicit CacheMatchCallbacks(ScriptPromiseResolver* resolver) |
| 47 : m_resolver(resolver) { } | 47 : m_resolver(resolver) { } |
| 48 | 48 |
| 49 void onSuccess(const WebServiceWorkerResponse& webResponse) override | 49 void onSuccess(const WebServiceWorkerResponse& webResponse) override |
| 50 { | 50 { |
| 51 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) | 51 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) |
| 52 return; | 52 return; |
| 53 ScriptState::Scope scope(m_resolver->getScriptState()); |
| 53 m_resolver->resolve(Response::create(m_resolver->getScriptState(), webRe
sponse)); | 54 m_resolver->resolve(Response::create(m_resolver->getScriptState(), webRe
sponse)); |
| 54 m_resolver.clear(); | 55 m_resolver.clear(); |
| 55 } | 56 } |
| 56 | 57 |
| 57 void onError(WebServiceWorkerCacheError reason) override | 58 void onError(WebServiceWorkerCacheError reason) override |
| 58 { | 59 { |
| 59 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) | 60 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) |
| 60 return; | 61 return; |
| 61 if (reason == WebServiceWorkerCacheErrorNotFound) | 62 if (reason == WebServiceWorkerCacheErrorNotFound) |
| 62 m_resolver->resolve(); | 63 m_resolver->resolve(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 73 class CacheWithResponsesCallbacks : public WebServiceWorkerCache::CacheWithRespo
nsesCallbacks { | 74 class CacheWithResponsesCallbacks : public WebServiceWorkerCache::CacheWithRespo
nsesCallbacks { |
| 74 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks); | 75 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks); |
| 75 public: | 76 public: |
| 76 explicit CacheWithResponsesCallbacks(ScriptPromiseResolver* resolver) | 77 explicit CacheWithResponsesCallbacks(ScriptPromiseResolver* resolver) |
| 77 : m_resolver(resolver) { } | 78 : m_resolver(resolver) { } |
| 78 | 79 |
| 79 void onSuccess(const WebVector<WebServiceWorkerResponse>& webResponses) over
ride | 80 void onSuccess(const WebVector<WebServiceWorkerResponse>& webResponses) over
ride |
| 80 { | 81 { |
| 81 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) | 82 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) |
| 82 return; | 83 return; |
| 84 ScriptState::Scope scope(m_resolver->getScriptState()); |
| 83 HeapVector<Member<Response>> responses; | 85 HeapVector<Member<Response>> responses; |
| 84 for (size_t i = 0; i < webResponses.size(); ++i) | 86 for (size_t i = 0; i < webResponses.size(); ++i) |
| 85 responses.append(Response::create(m_resolver->getScriptState(), webR
esponses[i])); | 87 responses.append(Response::create(m_resolver->getScriptState(), webR
esponses[i])); |
| 86 m_resolver->resolve(responses); | 88 m_resolver->resolve(responses); |
| 87 m_resolver.clear(); | 89 m_resolver.clear(); |
| 88 } | 90 } |
| 89 | 91 |
| 90 void onError(WebServiceWorkerCacheError reason) override | 92 void onError(WebServiceWorkerCacheError reason) override |
| 91 { | 93 { |
| 92 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) | 94 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 class CacheWithRequestsCallbacks : public WebServiceWorkerCache::CacheWithReques
tsCallbacks { | 135 class CacheWithRequestsCallbacks : public WebServiceWorkerCache::CacheWithReques
tsCallbacks { |
| 134 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks); | 136 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks); |
| 135 public: | 137 public: |
| 136 explicit CacheWithRequestsCallbacks(ScriptPromiseResolver* resolver) | 138 explicit CacheWithRequestsCallbacks(ScriptPromiseResolver* resolver) |
| 137 : m_resolver(resolver) { } | 139 : m_resolver(resolver) { } |
| 138 | 140 |
| 139 void onSuccess(const WebVector<WebServiceWorkerRequest>& webRequests) overri
de | 141 void onSuccess(const WebVector<WebServiceWorkerRequest>& webRequests) overri
de |
| 140 { | 142 { |
| 141 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) | 143 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) |
| 142 return; | 144 return; |
| 145 ScriptState::Scope scope(m_resolver->getScriptState()); |
| 143 HeapVector<Member<Request>> requests; | 146 HeapVector<Member<Request>> requests; |
| 144 for (size_t i = 0; i < webRequests.size(); ++i) | 147 for (size_t i = 0; i < webRequests.size(); ++i) |
| 145 requests.append(Request::create(m_resolver->getScriptState(), webReq
uests[i])); | 148 requests.append(Request::create(m_resolver->getScriptState(), webReq
uests[i])); |
| 146 m_resolver->resolve(requests); | 149 m_resolver->resolve(requests); |
| 147 m_resolver.clear(); | 150 m_resolver.clear(); |
| 148 } | 151 } |
| 149 | 152 |
| 150 void onError(WebServiceWorkerCacheError reason) override | 153 void onError(WebServiceWorkerCacheError reason) override |
| 151 { | 154 { |
| 152 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) | 155 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex
t()->activeDOMObjectsAreStopped()) |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 616 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ
ueryParams(options)); | 619 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ
ueryParams(options)); |
| 617 return promise; | 620 return promise; |
| 618 } | 621 } |
| 619 | 622 |
| 620 WebServiceWorkerCache* Cache::webCache() const | 623 WebServiceWorkerCache* Cache::webCache() const |
| 621 { | 624 { |
| 622 return m_webCache.get(); | 625 return m_webCache.get(); |
| 623 } | 626 } |
| 624 | 627 |
| 625 } // namespace blink | 628 } // namespace blink |
| OLD | NEW |