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

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

Issue 1284173004: [CacheStorage] Use appopriate type parameters for WebCallbacks (1/3). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « Source/modules/cachestorage/Cache.cpp ('k') | Source/modules/cachestorage/CacheTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "config.h" 5 #include "config.h"
6 #include "modules/cachestorage/CacheStorage.h" 6 #include "modules/cachestorage/CacheStorage.h"
7 7
8 #include "bindings/core/v8/ScriptPromiseResolver.h" 8 #include "bindings/core/v8/ScriptPromiseResolver.h"
9 #include "bindings/core/v8/ScriptState.h" 9 #include "bindings/core/v8/ScriptState.h"
10 #include "core/dom/DOMException.h" 10 #include "core/dom/DOMException.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 ~Callbacks() override { } 50 ~Callbacks() override { }
51 51
52 void onSuccess() override 52 void onSuccess() override
53 { 53 {
54 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 54 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
55 return; 55 return;
56 m_resolver->resolve(true); 56 m_resolver->resolve(true);
57 m_resolver.clear(); 57 m_resolver.clear();
58 } 58 }
59 59
60 // Ownership of |rawReason| must be passed. 60 void onError(WebServiceWorkerCacheError reason) override
61 void onError(WebServiceWorkerCacheError* rawReason) override
62 { 61 {
63 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
64 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 62 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
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 : public WebServiceWorkerCacheStora ge::CacheStorageWithCacheCallbacks { 76 class CacheStorage::WithCacheCallbacks final : public WebServiceWorkerCacheStora ge::CacheStorageWithCacheCallbacks {
79 WTF_MAKE_NONCOPYABLE(WithCacheCallbacks); 77 WTF_MAKE_NONCOPYABLE(WithCacheCallbacks);
80 public: 78 public:
81 WithCacheCallbacks(const String& cacheName, CacheStorage* cacheStorage, Scri ptPromiseResolver* resolver) 79 WithCacheCallbacks(const String& cacheName, CacheStorage* cacheStorage, Scri ptPromiseResolver* resolver)
82 : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resol ver) { } 80 : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resol ver) { }
83 ~WithCacheCallbacks() override { } 81 ~WithCacheCallbacks() override { }
84 82
85 // Ownership of |rawWebCache| must be passed. 83 void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> webCache) override
86 void onSuccess(WebServiceWorkerCache* rawWebCache) override
87 { 84 {
88 OwnPtr<WebServiceWorkerCache> webCache = adoptPtr(rawWebCache);
89 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 85 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
90 return; 86 return;
91 // FIXME: Remove this once content's WebServiceWorkerCache implementatio n has landed.
92 if (!webCache) {
93 m_resolver->reject("not implemented");
94 return;
95 }
96 Cache* cache = Cache::create(m_cacheStorage->m_scopedFetcher, webCache.r elease()); 87 Cache* cache = Cache::create(m_cacheStorage->m_scopedFetcher, webCache.r elease());
97 m_cacheStorage->m_nameToCacheMap.set(m_cacheName, cache); 88 m_cacheStorage->m_nameToCacheMap.set(m_cacheName, cache);
98 m_resolver->resolve(cache); 89 m_resolver->resolve(cache);
99 m_resolver.clear(); 90 m_resolver.clear();
100 } 91 }
101 92
102 // Ownership of |rawReason| must be passed. 93 void onError(WebServiceWorkerCacheError reason) override
103 void onError(WebServiceWorkerCacheError* rawReason) override
104 { 94 {
105 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
106 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 95 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
107 return; 96 return;
108 if (*reason == WebServiceWorkerCacheErrorNotFound) 97 if (reason == WebServiceWorkerCacheErrorNotFound)
109 m_resolver->resolve(); 98 m_resolver->resolve();
110 else 99 else
111 m_resolver->reject(CacheStorageError::createException(*reason)); 100 m_resolver->reject(CacheStorageError::createException(reason));
112 m_resolver.clear(); 101 m_resolver.clear();
113 } 102 }
114 103
115 private: 104 private:
116 String m_cacheName; 105 String m_cacheName;
117 Persistent<CacheStorage> m_cacheStorage; 106 Persistent<CacheStorage> m_cacheStorage;
118 Persistent<ScriptPromiseResolver> m_resolver; 107 Persistent<ScriptPromiseResolver> m_resolver;
119 }; 108 };
120 109
121 // FIXME: Consider using CallbackPromiseAdapter. 110 // FIXME: Consider using CallbackPromiseAdapter.
122 class CacheStorage::MatchCallbacks : public WebServiceWorkerCacheStorage::CacheS torageMatchCallbacks { 111 class CacheStorage::MatchCallbacks : public WebServiceWorkerCacheStorage::CacheS torageMatchCallbacks {
123 WTF_MAKE_NONCOPYABLE(MatchCallbacks); 112 WTF_MAKE_NONCOPYABLE(MatchCallbacks);
124 public: 113 public:
125 explicit MatchCallbacks(ScriptPromiseResolver* resolver) 114 explicit MatchCallbacks(ScriptPromiseResolver* resolver)
126 : m_resolver(resolver) { } 115 : m_resolver(resolver) { }
127 116
128 void onSuccess(WebServiceWorkerResponse* webResponse) override 117 void onSuccess(const WebServiceWorkerResponse& webResponse) override
129 { 118 {
130 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 119 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
131 return; 120 return;
132 m_resolver->resolve(Response::create(m_resolver->scriptState()->executio nContext(), *webResponse)); 121 m_resolver->resolve(Response::create(m_resolver->scriptState()->executio nContext(), webResponse));
133 m_resolver.clear(); 122 m_resolver.clear();
134 } 123 }
135 124
136 // Ownership of |rawReason| must be passed. 125 void onError(WebServiceWorkerCacheError reason) override
137 void onError(WebServiceWorkerCacheError* rawReason) override
138 { 126 {
139 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
140 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 127 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
141 return; 128 return;
142 if (*reason == WebServiceWorkerCacheErrorNotFound) 129 if (reason == WebServiceWorkerCacheErrorNotFound)
143 m_resolver->resolve(); 130 m_resolver->resolve();
144 else 131 else
145 m_resolver->reject(CacheStorageError::createException(*reason)); 132 m_resolver->reject(CacheStorageError::createException(reason));
146 m_resolver.clear(); 133 m_resolver.clear();
147 } 134 }
148 135
149 private: 136 private:
150 Persistent<ScriptPromiseResolver> m_resolver; 137 Persistent<ScriptPromiseResolver> m_resolver;
151 }; 138 };
152 139
153 140
154 // FIXME: Consider using CallbackPromiseAdapter. 141 // FIXME: Consider using CallbackPromiseAdapter.
155 class CacheStorage::DeleteCallbacks final : public WebServiceWorkerCacheStorage: :CacheStorageCallbacks { 142 class CacheStorage::DeleteCallbacks final : public WebServiceWorkerCacheStorage: :CacheStorageCallbacks {
156 WTF_MAKE_NONCOPYABLE(DeleteCallbacks); 143 WTF_MAKE_NONCOPYABLE(DeleteCallbacks);
157 public: 144 public:
158 DeleteCallbacks(const String& cacheName, CacheStorage* cacheStorage, ScriptP romiseResolver* resolver) 145 DeleteCallbacks(const String& cacheName, CacheStorage* cacheStorage, ScriptP romiseResolver* resolver)
159 : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resol ver) { } 146 : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resol ver) { }
160 ~DeleteCallbacks() override { } 147 ~DeleteCallbacks() override { }
161 148
162 void onSuccess() override 149 void onSuccess() override
163 { 150 {
164 m_cacheStorage->m_nameToCacheMap.remove(m_cacheName); 151 m_cacheStorage->m_nameToCacheMap.remove(m_cacheName);
165 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 152 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
166 return; 153 return;
167 m_resolver->resolve(true); 154 m_resolver->resolve(true);
168 m_resolver.clear(); 155 m_resolver.clear();
169 } 156 }
170 157
171 // Ownership of |rawReason| must be passed. 158 void onError(WebServiceWorkerCacheError reason) override
172 void onError(WebServiceWorkerCacheError* rawReason) override
173 { 159 {
174 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
175 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 160 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
176 return; 161 return;
177 if (*reason == WebServiceWorkerCacheErrorNotFound) 162 if (reason == WebServiceWorkerCacheErrorNotFound)
178 m_resolver->resolve(false); 163 m_resolver->resolve(false);
179 else 164 else
180 m_resolver->reject(CacheStorageError::createException(*reason)); 165 m_resolver->reject(CacheStorageError::createException(reason));
181 m_resolver.clear(); 166 m_resolver.clear();
182 } 167 }
183 168
184 private: 169 private:
185 String m_cacheName; 170 String m_cacheName;
186 Persistent<CacheStorage> m_cacheStorage; 171 Persistent<CacheStorage> m_cacheStorage;
187 Persistent<ScriptPromiseResolver> m_resolver; 172 Persistent<ScriptPromiseResolver> m_resolver;
188 }; 173 };
189 174
190 // FIXME: Consider using CallbackPromiseAdapter. 175 // FIXME: Consider using CallbackPromiseAdapter.
191 class CacheStorage::KeysCallbacks final : public WebServiceWorkerCacheStorage::C acheStorageKeysCallbacks { 176 class CacheStorage::KeysCallbacks final : public WebServiceWorkerCacheStorage::C acheStorageKeysCallbacks {
192 WTF_MAKE_NONCOPYABLE(KeysCallbacks); 177 WTF_MAKE_NONCOPYABLE(KeysCallbacks);
193 public: 178 public:
194 explicit KeysCallbacks(ScriptPromiseResolver* resolver) 179 explicit KeysCallbacks(ScriptPromiseResolver* resolver)
195 : m_resolver(resolver) { } 180 : m_resolver(resolver) { }
196 ~KeysCallbacks() override { } 181 ~KeysCallbacks() override { }
197 182
198 void onSuccess(WebVector<WebString>* keys) override 183 void onSuccess(const WebVector<WebString>& keys) override
199 { 184 {
200 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 185 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
201 return; 186 return;
202 Vector<String> wtfKeys; 187 Vector<String> wtfKeys;
203 for (size_t i = 0; i < keys->size(); ++i) 188 for (size_t i = 0; i < keys.size(); ++i)
204 wtfKeys.append((*keys)[i]); 189 wtfKeys.append(keys[i]);
205 m_resolver->resolve(wtfKeys); 190 m_resolver->resolve(wtfKeys);
206 m_resolver.clear(); 191 m_resolver.clear();
207 } 192 }
208 193
209 // Ownership of |rawReason| must be passed. 194 void onError(WebServiceWorkerCacheError reason) override
210 void onError(WebServiceWorkerCacheError* rawReason) override
211 { 195 {
212 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
213 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 196 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
214 return; 197 return;
215 m_resolver->reject(CacheStorageError::createException(*reason)); 198 m_resolver->reject(CacheStorageError::createException(reason));
216 m_resolver.clear(); 199 m_resolver.clear();
217 } 200 }
218 201
219 private: 202 private:
220 Persistent<ScriptPromiseResolver> m_resolver; 203 Persistent<ScriptPromiseResolver> m_resolver;
221 }; 204 };
222 205
223 CacheStorage* CacheStorage::create(WeakPtr<GlobalFetch::ScopedFetcher> fetcher, WebServiceWorkerCacheStorage* webCacheStorage) 206 CacheStorage* CacheStorage::create(WeakPtr<GlobalFetch::ScopedFetcher> fetcher, WebServiceWorkerCacheStorage* webCacheStorage)
224 { 207 {
225 return new CacheStorage(fetcher, adoptPtr(webCacheStorage)); 208 return new CacheStorage(fetcher, adoptPtr(webCacheStorage));
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 { 327 {
345 m_webCacheStorage.clear(); 328 m_webCacheStorage.clear();
346 } 329 }
347 330
348 DEFINE_TRACE(CacheStorage) 331 DEFINE_TRACE(CacheStorage)
349 { 332 {
350 visitor->trace(m_nameToCacheMap); 333 visitor->trace(m_nameToCacheMap);
351 } 334 }
352 335
353 } // namespace blink 336 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/cachestorage/Cache.cpp ('k') | Source/modules/cachestorage/CacheTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698