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

Side by Side Diff: Source/modules/cachestorage/Cache.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 | « no previous file | Source/modules/cachestorage/CacheStorage.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/Cache.h" 6 #include "modules/cachestorage/Cache.h"
7 7
8 #include "bindings/core/v8/CallbackPromiseAdapter.h" 8 #include "bindings/core/v8/CallbackPromiseAdapter.h"
9 #include "bindings/core/v8/ExceptionState.h" 9 #include "bindings/core/v8/ExceptionState.h"
10 #include "bindings/core/v8/ScriptPromiseResolver.h" 10 #include "bindings/core/v8/ScriptPromiseResolver.h"
(...skipping 16 matching lines...) Expand all
27 27
28 namespace { 28 namespace {
29 29
30 // FIXME: Consider using CallbackPromiseAdapter. 30 // FIXME: Consider using CallbackPromiseAdapter.
31 class CacheMatchCallbacks : public WebServiceWorkerCache::CacheMatchCallbacks { 31 class CacheMatchCallbacks : public WebServiceWorkerCache::CacheMatchCallbacks {
32 WTF_MAKE_NONCOPYABLE(CacheMatchCallbacks); 32 WTF_MAKE_NONCOPYABLE(CacheMatchCallbacks);
33 public: 33 public:
34 explicit CacheMatchCallbacks(ScriptPromiseResolver* resolver) 34 explicit CacheMatchCallbacks(ScriptPromiseResolver* resolver)
35 : m_resolver(resolver) { } 35 : m_resolver(resolver) { }
36 36
37 void onSuccess(WebServiceWorkerResponse* webResponse) override 37 void onSuccess(const WebServiceWorkerResponse& webResponse) override
38 { 38 {
39 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 39 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
40 return; 40 return;
41 m_resolver->resolve(Response::create(m_resolver->scriptState()->executio nContext(), *webResponse)); 41 m_resolver->resolve(Response::create(m_resolver->scriptState()->executio nContext(), webResponse));
42 m_resolver.clear(); 42 m_resolver.clear();
43 } 43 }
44 44
45 // Ownership of |rawReason| must be passed. 45 void onError(WebServiceWorkerCacheError reason) override
46 void onError(WebServiceWorkerCacheError* rawReason) override
47 { 46 {
48 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
49 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 47 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
50 return; 48 return;
51 if (*reason == WebServiceWorkerCacheErrorNotFound) 49 if (reason == WebServiceWorkerCacheErrorNotFound)
52 m_resolver->resolve(); 50 m_resolver->resolve();
53 else 51 else
54 m_resolver->reject(CacheStorageError::createException(*reason)); 52 m_resolver->reject(CacheStorageError::createException(reason));
55 m_resolver.clear(); 53 m_resolver.clear();
56 } 54 }
57 55
58 private: 56 private:
59 Persistent<ScriptPromiseResolver> m_resolver; 57 Persistent<ScriptPromiseResolver> m_resolver;
60 }; 58 };
61 59
62 // FIXME: Consider using CallbackPromiseAdapter. 60 // FIXME: Consider using CallbackPromiseAdapter.
63 class CacheWithResponsesCallbacks : public WebServiceWorkerCache::CacheWithRespo nsesCallbacks { 61 class CacheWithResponsesCallbacks : public WebServiceWorkerCache::CacheWithRespo nsesCallbacks {
64 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks); 62 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks);
65 public: 63 public:
66 explicit CacheWithResponsesCallbacks(ScriptPromiseResolver* resolver) 64 explicit CacheWithResponsesCallbacks(ScriptPromiseResolver* resolver)
67 : m_resolver(resolver) { } 65 : m_resolver(resolver) { }
68 66
69 void onSuccess(WebVector<WebServiceWorkerResponse>* webResponses) override 67 void onSuccess(const WebVector<WebServiceWorkerResponse>& webResponses) over ride
70 { 68 {
71 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 69 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
72 return; 70 return;
73 HeapVector<Member<Response>> responses; 71 HeapVector<Member<Response>> responses;
74 for (size_t i = 0; i < webResponses->size(); ++i) 72 for (size_t i = 0; i < webResponses.size(); ++i)
75 responses.append(Response::create(m_resolver->scriptState()->executi onContext(), (*webResponses)[i])); 73 responses.append(Response::create(m_resolver->scriptState()->executi onContext(), webResponses[i]));
76 m_resolver->resolve(responses); 74 m_resolver->resolve(responses);
77 m_resolver.clear(); 75 m_resolver.clear();
78 } 76 }
79 77
80 // Ownership of |rawReason| must be passed. 78 void onError(WebServiceWorkerCacheError reason) override
81 void onError(WebServiceWorkerCacheError* rawReason) override
82 { 79 {
83 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
84 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 80 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
85 return; 81 return;
86 m_resolver->reject(CacheStorageError::createException(*reason)); 82 m_resolver->reject(CacheStorageError::createException(reason));
87 m_resolver.clear(); 83 m_resolver.clear();
88 } 84 }
89 85
90 protected: 86 protected:
91 Persistent<ScriptPromiseResolver> m_resolver; 87 Persistent<ScriptPromiseResolver> m_resolver;
92 }; 88 };
93 89
94 // FIXME: Consider using CallbackPromiseAdapter. 90 // FIXME: Consider using CallbackPromiseAdapter.
95 class CacheDeleteCallback : public WebServiceWorkerCache::CacheBatchCallbacks { 91 class CacheDeleteCallback : public WebServiceWorkerCache::CacheBatchCallbacks {
96 WTF_MAKE_NONCOPYABLE(CacheDeleteCallback); 92 WTF_MAKE_NONCOPYABLE(CacheDeleteCallback);
(...skipping 24 matching lines...) Expand all
121 Persistent<ScriptPromiseResolver> m_resolver; 117 Persistent<ScriptPromiseResolver> m_resolver;
122 }; 118 };
123 119
124 // FIXME: Consider using CallbackPromiseAdapter. 120 // FIXME: Consider using CallbackPromiseAdapter.
125 class CacheWithRequestsCallbacks : public WebServiceWorkerCache::CacheWithReques tsCallbacks { 121 class CacheWithRequestsCallbacks : public WebServiceWorkerCache::CacheWithReques tsCallbacks {
126 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks); 122 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks);
127 public: 123 public:
128 explicit CacheWithRequestsCallbacks(ScriptPromiseResolver* resolver) 124 explicit CacheWithRequestsCallbacks(ScriptPromiseResolver* resolver)
129 : m_resolver(resolver) { } 125 : m_resolver(resolver) { }
130 126
131 void onSuccess(WebVector<WebServiceWorkerRequest>* webRequests) override 127 void onSuccess(const WebVector<WebServiceWorkerRequest>& webRequests) overri de
132 { 128 {
133 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 129 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
134 return; 130 return;
135 HeapVector<Member<Request>> requests; 131 HeapVector<Member<Request>> requests;
136 for (size_t i = 0; i < webRequests->size(); ++i) 132 for (size_t i = 0; i < webRequests.size(); ++i)
137 requests.append(Request::create(m_resolver->scriptState()->execution Context(), (*webRequests)[i])); 133 requests.append(Request::create(m_resolver->scriptState()->execution Context(), webRequests[i]));
138 m_resolver->resolve(requests); 134 m_resolver->resolve(requests);
139 m_resolver.clear(); 135 m_resolver.clear();
140 } 136 }
141 137
142 // Ownership of |rawReason| must be passed. 138 void onError(WebServiceWorkerCacheError reason) override
143 void onError(WebServiceWorkerCacheError* rawReason) override
144 { 139 {
145 OwnPtr<WebServiceWorkerCacheError> reason = adoptPtr(rawReason);
146 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped()) 140 if (!m_resolver->executionContext() || m_resolver->executionContext()->a ctiveDOMObjectsAreStopped())
147 return; 141 return;
148 m_resolver->reject(CacheStorageError::createException(*reason)); 142 m_resolver->reject(CacheStorageError::createException(reason));
149 m_resolver.clear(); 143 m_resolver.clear();
150 } 144 }
151 145
152 private: 146 private:
153 Persistent<ScriptPromiseResolver> m_resolver; 147 Persistent<ScriptPromiseResolver> m_resolver;
154 }; 148 };
155 149
156 } // namespace 150 } // namespace
157 151
158 // TODO(nhiroki): Unfortunately, we have to go through V8 to wait for the fetch 152 // TODO(nhiroki): Unfortunately, we have to go through V8 to wait for the fetch
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ ueryParams(options)); 525 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, toWebQ ueryParams(options));
532 return promise; 526 return promise;
533 } 527 }
534 528
535 WebServiceWorkerCache* Cache::webCache() const 529 WebServiceWorkerCache* Cache::webCache() const
536 { 530 {
537 return m_webCache.get(); 531 return m_webCache.get();
538 } 532 }
539 533
540 } // namespace blink 534 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | Source/modules/cachestorage/CacheStorage.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698