Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Side by Side Diff: third_party/WebKit/Source/modules/cachestorage/CacheStorage.cpp

Issue 2433773006: Remove ExecutionContext::activeDOMObjectsAreStopped()
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/CacheStorage.h" 5 #include "modules/cachestorage/CacheStorage.h"
6 6
7 #include "bindings/core/v8/ScriptPromiseResolver.h" 7 #include "bindings/core/v8/ScriptPromiseResolver.h"
8 #include "bindings/core/v8/ScriptState.h" 8 #include "bindings/core/v8/ScriptState.h"
9 #include "core/dom/DOMException.h" 9 #include "core/dom/DOMException.h"
10 #include "core/dom/ExceptionCode.h" 10 #include "core/dom/ExceptionCode.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 // FIXME: Consider using CallbackPromiseAdapter. 45 // FIXME: Consider using CallbackPromiseAdapter.
46 class CacheStorage::Callbacks final 46 class CacheStorage::Callbacks final
47 : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { 47 : public WebServiceWorkerCacheStorage::CacheStorageCallbacks {
48 WTF_MAKE_NONCOPYABLE(Callbacks); 48 WTF_MAKE_NONCOPYABLE(Callbacks);
49 49
50 public: 50 public:
51 explicit Callbacks(ScriptPromiseResolver* resolver) : m_resolver(resolver) {} 51 explicit Callbacks(ScriptPromiseResolver* resolver) : m_resolver(resolver) {}
52 ~Callbacks() override {} 52 ~Callbacks() override {}
53 53
54 void onSuccess() override { 54 void onSuccess() override {
55 if (!m_resolver->getExecutionContext() || 55 if (!m_resolver->getExecutionContext())
56 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped())
57 return; 56 return;
58 m_resolver->resolve(true); 57 m_resolver->resolve(true);
59 m_resolver.clear(); 58 m_resolver.clear();
60 } 59 }
61 60
62 void onError(WebServiceWorkerCacheError reason) override { 61 void onError(WebServiceWorkerCacheError reason) override {
63 if (!m_resolver->getExecutionContext() || 62 if (!m_resolver->getExecutionContext())
64 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped())
65 return; 63 return;
66 if (reason == WebServiceWorkerCacheErrorNotFound) 64 if (reason == WebServiceWorkerCacheErrorNotFound)
67 m_resolver->resolve(false); 65 m_resolver->resolve(false);
68 else 66 else
69 m_resolver->reject(CacheStorageError::createException(reason)); 67 m_resolver->reject(CacheStorageError::createException(reason));
70 m_resolver.clear(); 68 m_resolver.clear();
71 } 69 }
72 70
73 private: 71 private:
74 Persistent<ScriptPromiseResolver> m_resolver; 72 Persistent<ScriptPromiseResolver> m_resolver;
75 }; 73 };
76 74
77 // FIXME: Consider using CallbackPromiseAdapter. 75 // FIXME: Consider using CallbackPromiseAdapter.
78 class CacheStorage::WithCacheCallbacks final 76 class CacheStorage::WithCacheCallbacks final
79 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { 77 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks {
80 WTF_MAKE_NONCOPYABLE(WithCacheCallbacks); 78 WTF_MAKE_NONCOPYABLE(WithCacheCallbacks);
81 79
82 public: 80 public:
83 WithCacheCallbacks(const String& cacheName, 81 WithCacheCallbacks(const String& cacheName,
84 CacheStorage* cacheStorage, 82 CacheStorage* cacheStorage,
85 ScriptPromiseResolver* resolver) 83 ScriptPromiseResolver* resolver)
86 : m_cacheName(cacheName), 84 : m_cacheName(cacheName),
87 m_cacheStorage(cacheStorage), 85 m_cacheStorage(cacheStorage),
88 m_resolver(resolver) {} 86 m_resolver(resolver) {}
89 ~WithCacheCallbacks() override {} 87 ~WithCacheCallbacks() override {}
90 88
91 void onSuccess(std::unique_ptr<WebServiceWorkerCache> webCache) override { 89 void onSuccess(std::unique_ptr<WebServiceWorkerCache> webCache) override {
92 if (!m_resolver->getExecutionContext() || 90 if (!m_resolver->getExecutionContext())
93 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped())
94 return; 91 return;
95 Cache* cache = Cache::create(m_cacheStorage->m_scopedFetcher, 92 Cache* cache = Cache::create(m_cacheStorage->m_scopedFetcher,
96 wrapUnique(webCache.release())); 93 wrapUnique(webCache.release()));
97 m_resolver->resolve(cache); 94 m_resolver->resolve(cache);
98 m_resolver.clear(); 95 m_resolver.clear();
99 } 96 }
100 97
101 void onError(WebServiceWorkerCacheError reason) override { 98 void onError(WebServiceWorkerCacheError reason) override {
102 if (!m_resolver->getExecutionContext() || 99 if (!m_resolver->getExecutionContext())
103 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped())
104 return; 100 return;
105 if (reason == WebServiceWorkerCacheErrorNotFound) 101 if (reason == WebServiceWorkerCacheErrorNotFound)
106 m_resolver->resolve(); 102 m_resolver->resolve();
107 else 103 else
108 m_resolver->reject(CacheStorageError::createException(reason)); 104 m_resolver->reject(CacheStorageError::createException(reason));
109 m_resolver.clear(); 105 m_resolver.clear();
110 } 106 }
111 107
112 private: 108 private:
113 String m_cacheName; 109 String m_cacheName;
114 Persistent<CacheStorage> m_cacheStorage; 110 Persistent<CacheStorage> m_cacheStorage;
115 Persistent<ScriptPromiseResolver> m_resolver; 111 Persistent<ScriptPromiseResolver> m_resolver;
116 }; 112 };
117 113
118 // FIXME: Consider using CallbackPromiseAdapter. 114 // FIXME: Consider using CallbackPromiseAdapter.
119 class CacheStorage::MatchCallbacks 115 class CacheStorage::MatchCallbacks
120 : public WebServiceWorkerCacheStorage::CacheStorageMatchCallbacks { 116 : public WebServiceWorkerCacheStorage::CacheStorageMatchCallbacks {
121 WTF_MAKE_NONCOPYABLE(MatchCallbacks); 117 WTF_MAKE_NONCOPYABLE(MatchCallbacks);
122 118
123 public: 119 public:
124 explicit MatchCallbacks(ScriptPromiseResolver* resolver) 120 explicit MatchCallbacks(ScriptPromiseResolver* resolver)
125 : m_resolver(resolver) {} 121 : m_resolver(resolver) {}
126 122
127 void onSuccess(const WebServiceWorkerResponse& webResponse) override { 123 void onSuccess(const WebServiceWorkerResponse& webResponse) override {
128 if (!m_resolver->getExecutionContext() || 124 if (!m_resolver->getExecutionContext())
129 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped())
130 return; 125 return;
131 ScriptState::Scope scope(m_resolver->getScriptState()); 126 ScriptState::Scope scope(m_resolver->getScriptState());
132 m_resolver->resolve( 127 m_resolver->resolve(
133 Response::create(m_resolver->getScriptState(), webResponse)); 128 Response::create(m_resolver->getScriptState(), webResponse));
134 m_resolver.clear(); 129 m_resolver.clear();
135 } 130 }
136 131
137 void onError(WebServiceWorkerCacheError reason) override { 132 void onError(WebServiceWorkerCacheError reason) override {
138 if (!m_resolver->getExecutionContext() || 133 if (!m_resolver->getExecutionContext())
139 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped())
140 return; 134 return;
141 if (reason == WebServiceWorkerCacheErrorNotFound || 135 if (reason == WebServiceWorkerCacheErrorNotFound ||
142 reason == WebServiceWorkerCacheErrorCacheNameNotFound) 136 reason == WebServiceWorkerCacheErrorCacheNameNotFound)
143 m_resolver->resolve(); 137 m_resolver->resolve();
144 else 138 else
145 m_resolver->reject(CacheStorageError::createException(reason)); 139 m_resolver->reject(CacheStorageError::createException(reason));
146 m_resolver.clear(); 140 m_resolver.clear();
147 } 141 }
148 142
149 private: 143 private:
150 Persistent<ScriptPromiseResolver> m_resolver; 144 Persistent<ScriptPromiseResolver> m_resolver;
151 }; 145 };
152 146
153 // FIXME: Consider using CallbackPromiseAdapter. 147 // FIXME: Consider using CallbackPromiseAdapter.
154 class CacheStorage::DeleteCallbacks final 148 class CacheStorage::DeleteCallbacks final
155 : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { 149 : public WebServiceWorkerCacheStorage::CacheStorageCallbacks {
156 WTF_MAKE_NONCOPYABLE(DeleteCallbacks); 150 WTF_MAKE_NONCOPYABLE(DeleteCallbacks);
157 151
158 public: 152 public:
159 DeleteCallbacks(const String& cacheName, 153 DeleteCallbacks(const String& cacheName,
160 CacheStorage* cacheStorage, 154 CacheStorage* cacheStorage,
161 ScriptPromiseResolver* resolver) 155 ScriptPromiseResolver* resolver)
162 : m_cacheName(cacheName), 156 : m_cacheName(cacheName),
163 m_cacheStorage(cacheStorage), 157 m_cacheStorage(cacheStorage),
164 m_resolver(resolver) {} 158 m_resolver(resolver) {}
165 ~DeleteCallbacks() override {} 159 ~DeleteCallbacks() override {}
166 160
167 void onSuccess() override { 161 void onSuccess() override {
168 if (!m_resolver->getExecutionContext() || 162 if (!m_resolver->getExecutionContext())
169 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped())
170 return; 163 return;
171 m_resolver->resolve(true); 164 m_resolver->resolve(true);
172 m_resolver.clear(); 165 m_resolver.clear();
173 } 166 }
174 167
175 void onError(WebServiceWorkerCacheError reason) override { 168 void onError(WebServiceWorkerCacheError reason) override {
176 if (!m_resolver->getExecutionContext() || 169 if (!m_resolver->getExecutionContext())
177 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped())
178 return; 170 return;
179 if (reason == WebServiceWorkerCacheErrorNotFound) 171 if (reason == WebServiceWorkerCacheErrorNotFound)
180 m_resolver->resolve(false); 172 m_resolver->resolve(false);
181 else 173 else
182 m_resolver->reject(CacheStorageError::createException(reason)); 174 m_resolver->reject(CacheStorageError::createException(reason));
183 m_resolver.clear(); 175 m_resolver.clear();
184 } 176 }
185 177
186 private: 178 private:
187 String m_cacheName; 179 String m_cacheName;
188 Persistent<CacheStorage> m_cacheStorage; 180 Persistent<CacheStorage> m_cacheStorage;
189 Persistent<ScriptPromiseResolver> m_resolver; 181 Persistent<ScriptPromiseResolver> m_resolver;
190 }; 182 };
191 183
192 // FIXME: Consider using CallbackPromiseAdapter. 184 // FIXME: Consider using CallbackPromiseAdapter.
193 class CacheStorage::KeysCallbacks final 185 class CacheStorage::KeysCallbacks final
194 : public WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks { 186 : public WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks {
195 WTF_MAKE_NONCOPYABLE(KeysCallbacks); 187 WTF_MAKE_NONCOPYABLE(KeysCallbacks);
196 188
197 public: 189 public:
198 explicit KeysCallbacks(ScriptPromiseResolver* resolver) 190 explicit KeysCallbacks(ScriptPromiseResolver* resolver)
199 : m_resolver(resolver) {} 191 : m_resolver(resolver) {}
200 ~KeysCallbacks() override {} 192 ~KeysCallbacks() override {}
201 193
202 void onSuccess(const WebVector<WebString>& keys) override { 194 void onSuccess(const WebVector<WebString>& keys) override {
203 if (!m_resolver->getExecutionContext() || 195 if (!m_resolver->getExecutionContext())
204 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped())
205 return; 196 return;
206 Vector<String> wtfKeys; 197 Vector<String> wtfKeys;
207 for (size_t i = 0; i < keys.size(); ++i) 198 for (size_t i = 0; i < keys.size(); ++i)
208 wtfKeys.append(keys[i]); 199 wtfKeys.append(keys[i]);
209 m_resolver->resolve(wtfKeys); 200 m_resolver->resolve(wtfKeys);
210 m_resolver.clear(); 201 m_resolver.clear();
211 } 202 }
212 203
213 void onError(WebServiceWorkerCacheError reason) override { 204 void onError(WebServiceWorkerCacheError reason) override {
214 if (!m_resolver->getExecutionContext() || 205 if (!m_resolver->getExecutionContext())
215 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped())
216 return; 206 return;
217 m_resolver->reject(CacheStorageError::createException(reason)); 207 m_resolver->reject(CacheStorageError::createException(reason));
218 m_resolver.clear(); 208 m_resolver.clear();
219 } 209 }
220 210
221 private: 211 private:
222 Persistent<ScriptPromiseResolver> m_resolver; 212 Persistent<ScriptPromiseResolver> m_resolver;
223 }; 213 };
224 214
225 CacheStorage* CacheStorage::create( 215 CacheStorage* CacheStorage::create(
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 336
347 void CacheStorage::dispose() { 337 void CacheStorage::dispose() {
348 m_webCacheStorage.reset(); 338 m_webCacheStorage.reset();
349 } 339 }
350 340
351 DEFINE_TRACE(CacheStorage) { 341 DEFINE_TRACE(CacheStorage) {
352 visitor->trace(m_scopedFetcher); 342 visitor->trace(m_scopedFetcher);
353 } 343 }
354 344
355 } // namespace blink 345 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698