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

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

Issue 2552993002: Rename activeDOMObjectsAreStopped to isContextDestroyed (Closed)
Patch Set: Created 4 years 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/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 21 matching lines...) Expand all
32 // FIXME: Consider using CallbackPromiseAdapter. 32 // FIXME: Consider using CallbackPromiseAdapter.
33 class CacheMatchCallbacks : public WebServiceWorkerCache::CacheMatchCallbacks { 33 class CacheMatchCallbacks : public WebServiceWorkerCache::CacheMatchCallbacks {
34 WTF_MAKE_NONCOPYABLE(CacheMatchCallbacks); 34 WTF_MAKE_NONCOPYABLE(CacheMatchCallbacks);
35 35
36 public: 36 public:
37 explicit CacheMatchCallbacks(ScriptPromiseResolver* resolver) 37 explicit CacheMatchCallbacks(ScriptPromiseResolver* resolver)
38 : m_resolver(resolver) {} 38 : m_resolver(resolver) {}
39 39
40 void onSuccess(const WebServiceWorkerResponse& webResponse) override { 40 void onSuccess(const WebServiceWorkerResponse& webResponse) override {
41 if (!m_resolver->getExecutionContext() || 41 if (!m_resolver->getExecutionContext() ||
42 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) 42 m_resolver->getExecutionContext()->isContextDestroyed())
43 return; 43 return;
44 ScriptState::Scope scope(m_resolver->getScriptState()); 44 ScriptState::Scope scope(m_resolver->getScriptState());
45 m_resolver->resolve( 45 m_resolver->resolve(
46 Response::create(m_resolver->getScriptState(), webResponse)); 46 Response::create(m_resolver->getScriptState(), webResponse));
47 m_resolver.clear(); 47 m_resolver.clear();
48 } 48 }
49 49
50 void onError(WebServiceWorkerCacheError reason) override { 50 void onError(WebServiceWorkerCacheError reason) override {
51 if (!m_resolver->getExecutionContext() || 51 if (!m_resolver->getExecutionContext() ||
52 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) 52 m_resolver->getExecutionContext()->isContextDestroyed())
53 return; 53 return;
54 if (reason == WebServiceWorkerCacheErrorNotFound) 54 if (reason == WebServiceWorkerCacheErrorNotFound)
55 m_resolver->resolve(); 55 m_resolver->resolve();
56 else 56 else
57 m_resolver->reject(CacheStorageError::createException(reason)); 57 m_resolver->reject(CacheStorageError::createException(reason));
58 m_resolver.clear(); 58 m_resolver.clear();
59 } 59 }
60 60
61 private: 61 private:
62 Persistent<ScriptPromiseResolver> m_resolver; 62 Persistent<ScriptPromiseResolver> m_resolver;
63 }; 63 };
64 64
65 // FIXME: Consider using CallbackPromiseAdapter. 65 // FIXME: Consider using CallbackPromiseAdapter.
66 class CacheWithResponsesCallbacks 66 class CacheWithResponsesCallbacks
67 : public WebServiceWorkerCache::CacheWithResponsesCallbacks { 67 : public WebServiceWorkerCache::CacheWithResponsesCallbacks {
68 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks); 68 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks);
69 69
70 public: 70 public:
71 explicit CacheWithResponsesCallbacks(ScriptPromiseResolver* resolver) 71 explicit CacheWithResponsesCallbacks(ScriptPromiseResolver* resolver)
72 : m_resolver(resolver) {} 72 : m_resolver(resolver) {}
73 73
74 void onSuccess( 74 void onSuccess(
75 const WebVector<WebServiceWorkerResponse>& webResponses) override { 75 const WebVector<WebServiceWorkerResponse>& webResponses) override {
76 if (!m_resolver->getExecutionContext() || 76 if (!m_resolver->getExecutionContext() ||
77 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) 77 m_resolver->getExecutionContext()->isContextDestroyed())
78 return; 78 return;
79 ScriptState::Scope scope(m_resolver->getScriptState()); 79 ScriptState::Scope scope(m_resolver->getScriptState());
80 HeapVector<Member<Response>> responses; 80 HeapVector<Member<Response>> responses;
81 for (size_t i = 0; i < webResponses.size(); ++i) 81 for (size_t i = 0; i < webResponses.size(); ++i)
82 responses.append( 82 responses.append(
83 Response::create(m_resolver->getScriptState(), webResponses[i])); 83 Response::create(m_resolver->getScriptState(), webResponses[i]));
84 m_resolver->resolve(responses); 84 m_resolver->resolve(responses);
85 m_resolver.clear(); 85 m_resolver.clear();
86 } 86 }
87 87
88 void onError(WebServiceWorkerCacheError reason) override { 88 void onError(WebServiceWorkerCacheError reason) override {
89 if (!m_resolver->getExecutionContext() || 89 if (!m_resolver->getExecutionContext() ||
90 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) 90 m_resolver->getExecutionContext()->isContextDestroyed())
91 return; 91 return;
92 m_resolver->reject(CacheStorageError::createException(reason)); 92 m_resolver->reject(CacheStorageError::createException(reason));
93 m_resolver.clear(); 93 m_resolver.clear();
94 } 94 }
95 95
96 protected: 96 protected:
97 Persistent<ScriptPromiseResolver> m_resolver; 97 Persistent<ScriptPromiseResolver> m_resolver;
98 }; 98 };
99 99
100 // FIXME: Consider using CallbackPromiseAdapter. 100 // FIXME: Consider using CallbackPromiseAdapter.
101 class CacheDeleteCallback : public WebServiceWorkerCache::CacheBatchCallbacks { 101 class CacheDeleteCallback : public WebServiceWorkerCache::CacheBatchCallbacks {
102 WTF_MAKE_NONCOPYABLE(CacheDeleteCallback); 102 WTF_MAKE_NONCOPYABLE(CacheDeleteCallback);
103 103
104 public: 104 public:
105 explicit CacheDeleteCallback(ScriptPromiseResolver* resolver) 105 explicit CacheDeleteCallback(ScriptPromiseResolver* resolver)
106 : m_resolver(resolver) {} 106 : m_resolver(resolver) {}
107 107
108 void onSuccess() override { 108 void onSuccess() override {
109 if (!m_resolver->getExecutionContext() || 109 if (!m_resolver->getExecutionContext() ||
110 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) 110 m_resolver->getExecutionContext()->isContextDestroyed())
111 return; 111 return;
112 m_resolver->resolve(true); 112 m_resolver->resolve(true);
113 m_resolver.clear(); 113 m_resolver.clear();
114 } 114 }
115 115
116 void onError(WebServiceWorkerCacheError reason) override { 116 void onError(WebServiceWorkerCacheError reason) override {
117 if (!m_resolver->getExecutionContext() || 117 if (!m_resolver->getExecutionContext() ||
118 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) 118 m_resolver->getExecutionContext()->isContextDestroyed())
119 return; 119 return;
120 if (reason == WebServiceWorkerCacheErrorNotFound) 120 if (reason == WebServiceWorkerCacheErrorNotFound)
121 m_resolver->resolve(false); 121 m_resolver->resolve(false);
122 else 122 else
123 m_resolver->reject(CacheStorageError::createException(reason)); 123 m_resolver->reject(CacheStorageError::createException(reason));
124 m_resolver.clear(); 124 m_resolver.clear();
125 } 125 }
126 126
127 private: 127 private:
128 Persistent<ScriptPromiseResolver> m_resolver; 128 Persistent<ScriptPromiseResolver> m_resolver;
129 }; 129 };
130 130
131 // FIXME: Consider using CallbackPromiseAdapter. 131 // FIXME: Consider using CallbackPromiseAdapter.
132 class CacheWithRequestsCallbacks 132 class CacheWithRequestsCallbacks
133 : public WebServiceWorkerCache::CacheWithRequestsCallbacks { 133 : public WebServiceWorkerCache::CacheWithRequestsCallbacks {
134 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks); 134 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks);
135 135
136 public: 136 public:
137 explicit CacheWithRequestsCallbacks(ScriptPromiseResolver* resolver) 137 explicit CacheWithRequestsCallbacks(ScriptPromiseResolver* resolver)
138 : m_resolver(resolver) {} 138 : m_resolver(resolver) {}
139 139
140 void onSuccess( 140 void onSuccess(
141 const WebVector<WebServiceWorkerRequest>& webRequests) override { 141 const WebVector<WebServiceWorkerRequest>& webRequests) override {
142 if (!m_resolver->getExecutionContext() || 142 if (!m_resolver->getExecutionContext() ||
143 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) 143 m_resolver->getExecutionContext()->isContextDestroyed())
144 return; 144 return;
145 ScriptState::Scope scope(m_resolver->getScriptState()); 145 ScriptState::Scope scope(m_resolver->getScriptState());
146 HeapVector<Member<Request>> requests; 146 HeapVector<Member<Request>> requests;
147 for (size_t i = 0; i < webRequests.size(); ++i) 147 for (size_t i = 0; i < webRequests.size(); ++i)
148 requests.append( 148 requests.append(
149 Request::create(m_resolver->getScriptState(), webRequests[i])); 149 Request::create(m_resolver->getScriptState(), webRequests[i]));
150 m_resolver->resolve(requests); 150 m_resolver->resolve(requests);
151 m_resolver.clear(); 151 m_resolver.clear();
152 } 152 }
153 153
154 void onError(WebServiceWorkerCacheError reason) override { 154 void onError(WebServiceWorkerCacheError reason) override {
155 if (!m_resolver->getExecutionContext() || 155 if (!m_resolver->getExecutionContext() ||
156 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) 156 m_resolver->getExecutionContext()->isContextDestroyed())
157 return; 157 return;
158 m_resolver->reject(CacheStorageError::createException(reason)); 158 m_resolver->reject(CacheStorageError::createException(reason));
159 m_resolver.clear(); 159 m_resolver.clear();
160 } 160 }
161 161
162 private: 162 private:
163 Persistent<ScriptPromiseResolver> m_resolver; 163 Persistent<ScriptPromiseResolver> m_resolver;
164 }; 164 };
165 165
166 // Used for UMA. Append only. 166 // Used for UMA. Append only.
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 ASSERT(0 < m_numberOfRemainingOperations); 293 ASSERT(0 < m_numberOfRemainingOperations);
294 m_batchOperations.resize(numberOfOperations); 294 m_batchOperations.resize(numberOfOperations);
295 } 295 }
296 296
297 void onSuccess(size_t index, 297 void onSuccess(size_t index,
298 const WebServiceWorkerCache::BatchOperation& batchOperation) { 298 const WebServiceWorkerCache::BatchOperation& batchOperation) {
299 ASSERT(index < m_batchOperations.size()); 299 ASSERT(index < m_batchOperations.size());
300 if (m_completed) 300 if (m_completed)
301 return; 301 return;
302 if (!m_resolver->getExecutionContext() || 302 if (!m_resolver->getExecutionContext() ||
303 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) 303 m_resolver->getExecutionContext()->isContextDestroyed())
304 return; 304 return;
305 m_batchOperations[index] = batchOperation; 305 m_batchOperations[index] = batchOperation;
306 if (--m_numberOfRemainingOperations != 0) 306 if (--m_numberOfRemainingOperations != 0)
307 return; 307 return;
308 m_cache->webCache()->dispatchBatch( 308 m_cache->webCache()->dispatchBatch(
309 WTF::makeUnique<CallbackPromiseAdapter<void, CacheStorageError>>( 309 WTF::makeUnique<CallbackPromiseAdapter<void, CacheStorageError>>(
310 m_resolver), 310 m_resolver),
311 m_batchOperations); 311 m_batchOperations);
312 } 312 }
313 313
314 void onError(const String& errorMessage) { 314 void onError(const String& errorMessage) {
315 if (m_completed) 315 if (m_completed)
316 return; 316 return;
317 m_completed = true; 317 m_completed = true;
318 if (!m_resolver->getExecutionContext() || 318 if (!m_resolver->getExecutionContext() ||
319 m_resolver->getExecutionContext()->activeDOMObjectsAreStopped()) 319 m_resolver->getExecutionContext()->isContextDestroyed())
320 return; 320 return;
321 ScriptState* state = m_resolver->getScriptState(); 321 ScriptState* state = m_resolver->getScriptState();
322 ScriptState::Scope scope(state); 322 ScriptState::Scope scope(state);
323 m_resolver->reject( 323 m_resolver->reject(
324 V8ThrowException::createTypeError(state->isolate(), errorMessage)); 324 V8ThrowException::createTypeError(state->isolate(), errorMessage));
325 } 325 }
326 326
327 DEFINE_INLINE_VIRTUAL_TRACE() { 327 DEFINE_INLINE_VIRTUAL_TRACE() {
328 visitor->trace(m_cache); 328 visitor->trace(m_cache);
329 visitor->trace(m_resolver); 329 visitor->trace(m_resolver);
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 WTF::makeUnique<CacheWithRequestsCallbacks>(resolver), webRequest, 699 WTF::makeUnique<CacheWithRequestsCallbacks>(resolver), webRequest,
700 toWebQueryParams(options)); 700 toWebQueryParams(options));
701 return promise; 701 return promise;
702 } 702 }
703 703
704 WebServiceWorkerCache* Cache::webCache() const { 704 WebServiceWorkerCache* Cache::webCache() const {
705 return m_webCache.get(); 705 return m_webCache.get();
706 } 706 }
707 707
708 } // namespace blink 708 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698