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 |