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

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 // Ownership of |rawReason| must be passed.
nhiroki 2015/08/19 11:25:14 nit: Can you remove this comment?
yhirano 2015/08/19 11:34:58 Done.
61 void onError(WebServiceWorkerCacheError* rawReason) override 61 void onError(WebServiceWorkerCacheError reason) override
62 { 62 {
63 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
64 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 63 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
65 return; 64 return;
66 if (*reason == WebServiceWorkerCacheErrorNotFound) 65 if (reason == WebServiceWorkerCacheErrorNotFound)
67 m_resolver->resolve(false); 66 m_resolver->resolve(false);
68 else 67 else
69 m_resolver->reject(CacheStorageError::createException(*reason)); 68 m_resolver->reject(CacheStorageError::createException(reason));
70 m_resolver.clear(); 69 m_resolver.clear();
71 } 70 }
72 71
73 private: 72 private:
74 Persistent<ScriptPromiseResolver> m_resolver; 73 Persistent<ScriptPromiseResolver> m_resolver;
75 }; 74 };
76 75
77 // FIXME: Consider using CallbackPromiseAdapter. 76 // FIXME: Consider using CallbackPromiseAdapter.
78 class CacheStorage::WithCacheCallbacks final : public WebServiceWorkerCacheStora ge::CacheStorageWithCacheCallbacks { 77 class CacheStorage::WithCacheCallbacks final : public WebServiceWorkerCacheStora ge::CacheStorageWithCacheCallbacks {
79 WTF_MAKE_NONCOPYABLE(WithCacheCallbacks); 78 WTF_MAKE_NONCOPYABLE(WithCacheCallbacks);
80 public: 79 public:
81 WithCacheCallbacks(const String& cacheName, CacheStorage* cacheStorage, Scri ptPromiseResolver* resolver) 80 WithCacheCallbacks(const String& cacheName, CacheStorage* cacheStorage, Scri ptPromiseResolver* resolver)
82 : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resol ver) { } 81 : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resol ver) { }
83 ~WithCacheCallbacks() override { } 82 ~WithCacheCallbacks() override { }
84 83
85 // Ownership of |rawWebCache| must be passed. 84 void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> rawWebCache) override
86 void onSuccess(WebServiceWorkerCache* rawWebCache) override
87 { 85 {
88 OwnPtr<WebServiceWorkerCache> webCache = adoptPtr(rawWebCache); 86 OwnPtr<WebServiceWorkerCache> webCache = rawWebCache.release();
nhiroki 2015/08/19 11:25:14 How about removing this indirection and directly p
yhirano 2015/08/19 11:34:58 Done.
89 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 87 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
90 return; 88 return;
91 // FIXME: Remove this once content's WebServiceWorkerCache implementatio n has landed. 89 // FIXME: Remove this once content's WebServiceWorkerCache implementatio n has landed.
92 if (!webCache) { 90 if (!webCache) {
93 m_resolver->reject("not implemented"); 91 m_resolver->reject("not implemented");
94 return; 92 return;
95 } 93 }
96 Cache* cache = Cache::create(m_cacheStorage->m_scopedFetcher, webCache.r elease()); 94 Cache* cache = Cache::create(m_cacheStorage->m_scopedFetcher, webCache.r elease());
97 m_cacheStorage->m_nameToCacheMap.set(m_cacheName, cache); 95 m_cacheStorage->m_nameToCacheMap.set(m_cacheName, cache);
98 m_resolver->resolve(cache); 96 m_resolver->resolve(cache);
99 m_resolver.clear(); 97 m_resolver.clear();
100 } 98 }
101 99
102 // Ownership of |rawReason| must be passed. 100 void onError(WebServiceWorkerCacheError reason) override
103 void onError(WebServiceWorkerCacheError* rawReason) override
104 { 101 {
105 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
106 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 102 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
107 return; 103 return;
108 if (*reason == WebServiceWorkerCacheErrorNotFound) 104 if (reason == WebServiceWorkerCacheErrorNotFound)
109 m_resolver->resolve(); 105 m_resolver->resolve();
110 else 106 else
111 m_resolver->reject(CacheStorageError::createException(*reason)); 107 m_resolver->reject(CacheStorageError::createException(reason));
112 m_resolver.clear(); 108 m_resolver.clear();
113 } 109 }
114 110
115 private: 111 private:
116 String m_cacheName; 112 String m_cacheName;
117 Persistent<CacheStorage> m_cacheStorage; 113 Persistent<CacheStorage> m_cacheStorage;
118 Persistent<ScriptPromiseResolver> m_resolver; 114 Persistent<ScriptPromiseResolver> m_resolver;
119 }; 115 };
120 116
121 // FIXME: Consider using CallbackPromiseAdapter. 117 // FIXME: Consider using CallbackPromiseAdapter.
122 class CacheStorage::MatchCallbacks : public WebServiceWorkerCacheStorage::CacheS torageMatchCallbacks { 118 class CacheStorage::MatchCallbacks : public WebServiceWorkerCacheStorage::CacheS torageMatchCallbacks {
123 WTF_MAKE_NONCOPYABLE(MatchCallbacks); 119 WTF_MAKE_NONCOPYABLE(MatchCallbacks);
124 public: 120 public:
125 explicit MatchCallbacks(ScriptPromiseResolver* resolver) 121 explicit MatchCallbacks(ScriptPromiseResolver* resolver)
126 : m_resolver(resolver) { } 122 : m_resolver(resolver) { }
127 123
128 void onSuccess(WebServiceWorkerResponse* webResponse) override 124 void onSuccess(const WebServiceWorkerResponse& webResponse) override
129 { 125 {
130 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 126 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
131 return; 127 return;
132 m_resolver->resolve(Response::create(m_resolver->scriptState()->executio nContext(), *webResponse)); 128 m_resolver->resolve(Response::create(m_resolver->scriptState()->executio nContext(), webResponse));
133 m_resolver.clear(); 129 m_resolver.clear();
134 } 130 }
135 131
136 // Ownership of |rawReason| must be passed. 132 void onError(WebServiceWorkerCacheError reason) override
137 void onError(WebServiceWorkerCacheError* rawReason) override
138 { 133 {
139 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
140 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 134 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
141 return; 135 return;
142 if (*reason == WebServiceWorkerCacheErrorNotFound) 136 if (reason == WebServiceWorkerCacheErrorNotFound)
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 147
154 // FIXME: Consider using CallbackPromiseAdapter. 148 // FIXME: Consider using CallbackPromiseAdapter.
155 class CacheStorage::DeleteCallbacks final : public WebServiceWorkerCacheStorage: :CacheStorageCallbacks { 149 class CacheStorage::DeleteCallbacks final : public WebServiceWorkerCacheStorage: :CacheStorageCallbacks {
156 WTF_MAKE_NONCOPYABLE(DeleteCallbacks); 150 WTF_MAKE_NONCOPYABLE(DeleteCallbacks);
157 public: 151 public:
158 DeleteCallbacks(const String& cacheName, CacheStorage* cacheStorage, ScriptP romiseResolver* resolver) 152 DeleteCallbacks(const String& cacheName, CacheStorage* cacheStorage, ScriptP romiseResolver* resolver)
159 : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resol ver) { } 153 : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resol ver) { }
160 ~DeleteCallbacks() override { } 154 ~DeleteCallbacks() override { }
161 155
162 void onSuccess() override 156 void onSuccess() override
163 { 157 {
164 m_cacheStorage->m_nameToCacheMap.remove(m_cacheName); 158 m_cacheStorage->m_nameToCacheMap.remove(m_cacheName);
165 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 159 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
166 return; 160 return;
167 m_resolver->resolve(true); 161 m_resolver->resolve(true);
168 m_resolver.clear(); 162 m_resolver.clear();
169 } 163 }
170 164
171 // Ownership of |rawReason| must be passed. 165 void onError(WebServiceWorkerCacheError reason) override
172 void onError(WebServiceWorkerCacheError* rawReason) override
173 { 166 {
174 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
175 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 167 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
176 return; 168 return;
177 if (*reason == WebServiceWorkerCacheErrorNotFound) 169 if (reason == WebServiceWorkerCacheErrorNotFound)
178 m_resolver->resolve(false); 170 m_resolver->resolve(false);
179 else 171 else
180 m_resolver->reject(CacheStorageError::createException(*reason)); 172 m_resolver->reject(CacheStorageError::createException(reason));
181 m_resolver.clear(); 173 m_resolver.clear();
182 } 174 }
183 175
184 private: 176 private:
185 String m_cacheName; 177 String m_cacheName;
186 Persistent<CacheStorage> m_cacheStorage; 178 Persistent<CacheStorage> m_cacheStorage;
187 Persistent<ScriptPromiseResolver> m_resolver; 179 Persistent<ScriptPromiseResolver> m_resolver;
188 }; 180 };
189 181
190 // FIXME: Consider using CallbackPromiseAdapter. 182 // FIXME: Consider using CallbackPromiseAdapter.
191 class CacheStorage::KeysCallbacks final : public WebServiceWorkerCacheStorage::C acheStorageKeysCallbacks { 183 class CacheStorage::KeysCallbacks final : public WebServiceWorkerCacheStorage::C acheStorageKeysCallbacks {
192 WTF_MAKE_NONCOPYABLE(KeysCallbacks); 184 WTF_MAKE_NONCOPYABLE(KeysCallbacks);
193 public: 185 public:
194 explicit KeysCallbacks(ScriptPromiseResolver* resolver) 186 explicit KeysCallbacks(ScriptPromiseResolver* resolver)
195 : m_resolver(resolver) { } 187 : m_resolver(resolver) { }
196 ~KeysCallbacks() override { } 188 ~KeysCallbacks() override { }
197 189
198 void onSuccess(WebVector<WebString>* keys) override 190 void onSuccess(const WebVector<WebString>& keys) override
199 { 191 {
200 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 192 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
201 return; 193 return;
202 Vector<String> wtfKeys; 194 Vector<String> wtfKeys;
203 for (size_t i = 0; i < keys->size(); ++i) 195 for (size_t i = 0; i < keys.size(); ++i)
204 wtfKeys.append((*keys)[i]); 196 wtfKeys.append(keys[i]);
205 m_resolver->resolve(wtfKeys); 197 m_resolver->resolve(wtfKeys);
206 m_resolver.clear(); 198 m_resolver.clear();
207 } 199 }
208 200
209 // Ownership of |rawReason| must be passed. 201 void onError(WebServiceWorkerCacheError reason) override
210 void onError(WebServiceWorkerCacheError* rawReason) override
211 { 202 {
212 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
213 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 203 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
214 return; 204 return;
215 m_resolver->reject(CacheStorageError::createException(*reason)); 205 m_resolver->reject(CacheStorageError::createException(reason));
216 m_resolver.clear(); 206 m_resolver.clear();
217 } 207 }
218 208
219 private: 209 private:
220 Persistent<ScriptPromiseResolver> m_resolver; 210 Persistent<ScriptPromiseResolver> m_resolver;
221 }; 211 };
222 212
223 CacheStorage* CacheStorage::create(WeakPtr<GlobalFetch::ScopedFetcher> fetcher, WebServiceWorkerCacheStorage* webCacheStorage) 213 CacheStorage* CacheStorage::create(WeakPtr<GlobalFetch::ScopedFetcher> fetcher, WebServiceWorkerCacheStorage* webCacheStorage)
224 { 214 {
225 return new CacheStorage(fetcher, adoptPtr(webCacheStorage)); 215 return new CacheStorage(fetcher, adoptPtr(webCacheStorage));
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 { 334 {
345 m_webCacheStorage.clear(); 335 m_webCacheStorage.clear();
346 } 336 }
347 337
348 DEFINE_TRACE(CacheStorage) 338 DEFINE_TRACE(CacheStorage)
349 { 339 {
350 visitor->trace(m_nameToCacheMap); 340 visitor->trace(m_nameToCacheMap);
351 } 341 }
352 342
353 } // namespace blink 343 } // 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