OLD | NEW |
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/serviceworkers/Cache.h" | 6 #include "modules/serviceworkers/Cache.h" |
7 | 7 |
8 #include "bindings/core/v8/Dictionary.h" | 8 #include "bindings/core/v8/Dictionary.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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 }; | 56 }; |
57 | 57 |
58 class CacheWithResponsesCallbacks : public WebServiceWorkerCache::CacheWithRespo
nsesCallbacks { | 58 class CacheWithResponsesCallbacks : public WebServiceWorkerCache::CacheWithRespo
nsesCallbacks { |
59 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks); | 59 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks); |
60 public: | 60 public: |
61 CacheWithResponsesCallbacks(PassRefPtr<ScriptPromiseResolver> resolver) | 61 CacheWithResponsesCallbacks(PassRefPtr<ScriptPromiseResolver> resolver) |
62 : m_resolver(resolver) { } | 62 : m_resolver(resolver) { } |
63 | 63 |
64 virtual void onSuccess(WebVector<WebServiceWorkerResponse>* webResponses) OV
ERRIDE | 64 virtual void onSuccess(WebVector<WebServiceWorkerResponse>* webResponses) OV
ERRIDE |
65 { | 65 { |
66 Vector<RefPtrWillBeRawPtr<Response> > responses; | 66 Vector<Response*> responses; |
67 for (size_t i = 0; i < webResponses->size(); ++i) | 67 for (size_t i = 0; i < webResponses->size(); ++i) |
68 responses.append(Response::create((*webResponses)[i])); | 68 responses.append(Response::create((*webResponses)[i])); |
69 m_resolver->resolve(responses); | 69 m_resolver->resolve(responses); |
70 m_resolver.clear(); | 70 m_resolver.clear(); |
71 } | 71 } |
72 | 72 |
73 virtual void onError(WebServiceWorkerCacheError* reason) OVERRIDE | 73 virtual void onError(WebServiceWorkerCacheError* reason) OVERRIDE |
74 { | 74 { |
75 m_resolver->reject(Cache::domExceptionForCacheError(*reason)); | 75 m_resolver->reject(Cache::domExceptionForCacheError(*reason)); |
76 m_resolver.clear(); | 76 m_resolver.clear(); |
77 } | 77 } |
78 | 78 |
79 private: | 79 private: |
80 RefPtr<ScriptPromiseResolver> m_resolver; | 80 RefPtr<ScriptPromiseResolver> m_resolver; |
81 }; | 81 }; |
82 | 82 |
83 class CacheWithRequestsCallbacks : public WebServiceWorkerCache::CacheWithReques
tsCallbacks { | 83 class CacheWithRequestsCallbacks : public WebServiceWorkerCache::CacheWithReques
tsCallbacks { |
84 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks); | 84 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks); |
85 public: | 85 public: |
86 CacheWithRequestsCallbacks(PassRefPtr<ScriptPromiseResolver> resolver) | 86 CacheWithRequestsCallbacks(PassRefPtr<ScriptPromiseResolver> resolver) |
87 : m_resolver(resolver) { } | 87 : m_resolver(resolver) { } |
88 | 88 |
89 virtual void onSuccess(WebVector<WebServiceWorkerRequest>* webRequests) OVER
RIDE | 89 virtual void onSuccess(WebVector<WebServiceWorkerRequest>* webRequests) OVER
RIDE |
90 { | 90 { |
91 Vector<RefPtrWillBeRawPtr<Request> > requests; | 91 Vector<Request*> requests; |
92 for (size_t i = 0; i < webRequests->size(); ++i) | 92 for (size_t i = 0; i < webRequests->size(); ++i) |
93 requests.append(Request::create((*webRequests)[i])); | 93 requests.append(Request::create((*webRequests)[i])); |
94 m_resolver->resolve(requests); | 94 m_resolver->resolve(requests); |
95 m_resolver.clear(); | 95 m_resolver.clear(); |
96 } | 96 } |
97 | 97 |
98 virtual void onError(WebServiceWorkerCacheError* reason) OVERRIDE | 98 virtual void onError(WebServiceWorkerCacheError* reason) OVERRIDE |
99 { | 99 { |
100 m_resolver->reject(Cache::domExceptionForCacheError(*reason)); | 100 m_resolver->reject(Cache::domExceptionForCacheError(*reason)); |
101 m_resolver.clear(); | 101 m_resolver.clear(); |
(...skipping 15 matching lines...) Expand all Loading... |
117 | 117 |
118 } // namespace | 118 } // namespace |
119 | 119 |
120 Cache* Cache::fromWebServiceWorkerCache(WebServiceWorkerCache* webCache) | 120 Cache* Cache::fromWebServiceWorkerCache(WebServiceWorkerCache* webCache) |
121 { | 121 { |
122 if (Cache* cache = static_cast<Cache*>(webCache->proxyInterface())) | 122 if (Cache* cache = static_cast<Cache*>(webCache->proxyInterface())) |
123 return cache; | 123 return cache; |
124 return create(webCache); | 124 return create(webCache); |
125 } | 125 } |
126 | 126 |
127 ScriptPromise Cache::match(ScriptState* scriptState, Request* originalRequest, c
onst Dictionary& queryParamsDict) | 127 ScriptPromise Cache::match(ScriptState* scriptState, const Request* originalRequ
est, const Dictionary& queryParamsDict) |
128 { | 128 { |
129 TrackExceptionState exceptionState; | 129 TrackExceptionState exceptionState; |
130 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); | 130 Request* request = Request::create(scriptState->executionContext(), original
Request, exceptionState); |
131 if (exceptionState.hadException()) | 131 if (exceptionState.hadException()) |
132 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 132 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
133 return matchImpl(scriptState, request, queryParamsDict); | 133 return matchImpl(scriptState, request, queryParamsDict); |
134 } | 134 } |
135 | 135 |
136 ScriptPromise Cache::match(ScriptState* scriptState, const String& requestString
, const Dictionary& queryParamsDict) | 136 ScriptPromise Cache::match(ScriptState* scriptState, const String& requestString
, const Dictionary& queryParamsDict) |
137 { | 137 { |
138 TrackExceptionState exceptionState; | 138 TrackExceptionState exceptionState; |
139 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); | 139 Request* request = Request::create(scriptState->executionContext(), requestS
tring, exceptionState); |
140 if (exceptionState.hadException()) | 140 if (exceptionState.hadException()) |
141 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 141 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
142 return matchImpl(scriptState, request, queryParamsDict); | 142 return matchImpl(scriptState, request, queryParamsDict); |
143 } | 143 } |
144 | 144 |
145 ScriptPromise Cache::matchAll(ScriptState* scriptState, Request* originalRequest
, const Dictionary& queryParamsDict) | 145 ScriptPromise Cache::matchAll(ScriptState* scriptState, const Request* originalR
equest, const Dictionary& queryParamsDict) |
146 { | 146 { |
147 TrackExceptionState exceptionState; | 147 TrackExceptionState exceptionState; |
148 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); | 148 Request* request = Request::create(scriptState->executionContext(), original
Request, exceptionState); |
149 if (exceptionState.hadException()) | 149 if (exceptionState.hadException()) |
150 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 150 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
151 return matchAllImpl(scriptState, request, queryParamsDict); | 151 return matchAllImpl(scriptState, request, queryParamsDict); |
152 } | 152 } |
153 | 153 |
154 ScriptPromise Cache::matchAll(ScriptState* scriptState, const String& requestStr
ing, const Dictionary& queryParamsDict) | 154 ScriptPromise Cache::matchAll(ScriptState* scriptState, const String& requestStr
ing, const Dictionary& queryParamsDict) |
155 { | 155 { |
156 TrackExceptionState exceptionState; | 156 TrackExceptionState exceptionState; |
157 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); | 157 Request* request = Request::create(scriptState->executionContext(), requestS
tring, exceptionState); |
158 if (exceptionState.hadException()) | 158 if (exceptionState.hadException()) |
159 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 159 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
160 return matchAllImpl(scriptState, request, queryParamsDict); | 160 return matchAllImpl(scriptState, request, queryParamsDict); |
161 } | 161 } |
162 | 162 |
163 ScriptPromise Cache::add(ScriptState* scriptState, Request* originalRequest) | 163 ScriptPromise Cache::add(ScriptState* scriptState, const Request* originalReques
t) |
164 { | 164 { |
165 TrackExceptionState exceptionState; | 165 TrackExceptionState exceptionState; |
166 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); | 166 Request* request = Request::create(scriptState->executionContext(), original
Request, exceptionState); |
167 if (exceptionState.hadException()) | 167 if (exceptionState.hadException()) |
168 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 168 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
169 return addImpl(scriptState, request); | 169 return addImpl(scriptState, request); |
170 } | 170 } |
171 | 171 |
172 ScriptPromise Cache::add(ScriptState* scriptState, const String& requestString) | 172 ScriptPromise Cache::add(ScriptState* scriptState, const String& requestString) |
173 { | 173 { |
174 TrackExceptionState exceptionState; | 174 TrackExceptionState exceptionState; |
175 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); | 175 Request* request = Request::create(scriptState->executionContext(), requestS
tring, exceptionState); |
176 if (exceptionState.hadException()) | 176 if (exceptionState.hadException()) |
177 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 177 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
178 return addImpl(scriptState, request); | 178 return addImpl(scriptState, request); |
179 } | 179 } |
180 | 180 |
181 ScriptPromise Cache::addAll(ScriptState* scriptState, const Vector<ScriptValue>&
rawRequests) | 181 ScriptPromise Cache::addAll(ScriptState* scriptState, const Vector<ScriptValue>&
rawRequests) |
182 { | 182 { |
183 // FIXME: Implement this. | 183 // FIXME: Implement this. |
184 return rejectAsNotImplemented(scriptState); | 184 return rejectAsNotImplemented(scriptState); |
185 } | 185 } |
186 | 186 |
187 ScriptPromise Cache::deleteFunction(ScriptState* scriptState, Request* originalR
equest, const Dictionary& queryParamsDict) | 187 ScriptPromise Cache::deleteFunction(ScriptState* scriptState, const Request* ori
ginalRequest, const Dictionary& queryParamsDict) |
188 { | 188 { |
189 TrackExceptionState exceptionState; | 189 TrackExceptionState exceptionState; |
190 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); | 190 Request* request = Request::create(scriptState->executionContext(), original
Request, exceptionState); |
191 if (exceptionState.hadException()) | 191 if (exceptionState.hadException()) |
192 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 192 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
193 return deleteImpl(scriptState, request, queryParamsDict); | 193 return deleteImpl(scriptState, request, queryParamsDict); |
194 } | 194 } |
195 | 195 |
196 ScriptPromise Cache::deleteFunction(ScriptState* scriptState, const String& requ
estString, const Dictionary& queryParamsDict) | 196 ScriptPromise Cache::deleteFunction(ScriptState* scriptState, const String& requ
estString, const Dictionary& queryParamsDict) |
197 { | 197 { |
198 TrackExceptionState exceptionState; | 198 TrackExceptionState exceptionState; |
199 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); | 199 Request* request = Request::create(scriptState->executionContext(), requestS
tring, exceptionState); |
200 if (exceptionState.hadException()) | 200 if (exceptionState.hadException()) |
201 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 201 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
202 return deleteImpl(scriptState, request, queryParamsDict); | 202 return deleteImpl(scriptState, request, queryParamsDict); |
203 } | 203 } |
204 | 204 |
205 ScriptPromise Cache::put(ScriptState* scriptState, Request* originalRequest, Res
ponse* response) | 205 ScriptPromise Cache::put(ScriptState* scriptState, const Request* originalReques
t, const Response* response) |
206 { | 206 { |
207 TrackExceptionState exceptionState; | 207 TrackExceptionState exceptionState; |
208 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); | 208 Request* request = Request::create(scriptState->executionContext(), original
Request, exceptionState); |
209 if (exceptionState.hadException()) | 209 if (exceptionState.hadException()) |
210 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 210 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
211 return putImpl(scriptState, request, response); | 211 return putImpl(scriptState, request, response); |
212 } | 212 } |
213 | 213 |
214 ScriptPromise Cache::put(ScriptState* scriptState, const String& requestString,
Response* response) | 214 ScriptPromise Cache::put(ScriptState* scriptState, const String& requestString,
const Response* response) |
215 { | 215 { |
216 TrackExceptionState exceptionState; | 216 TrackExceptionState exceptionState; |
217 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); | 217 Request* request = Request::create(scriptState->executionContext(), requestS
tring, exceptionState); |
218 if (exceptionState.hadException()) | 218 if (exceptionState.hadException()) |
219 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 219 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
220 return putImpl(scriptState, request, response); | 220 return putImpl(scriptState, request, response); |
221 } | 221 } |
222 | 222 |
223 ScriptPromise Cache::keys(ScriptState* scriptState) | 223 ScriptPromise Cache::keys(ScriptState* scriptState) |
224 { | 224 { |
225 return keysImpl(scriptState); | 225 return keysImpl(scriptState); |
226 } | 226 } |
227 | 227 |
228 ScriptPromise Cache::keys(ScriptState* scriptState, Request* originalRequest, co
nst Dictionary& queryParamsDict) | 228 ScriptPromise Cache::keys(ScriptState* scriptState, const Request* originalReque
st, const Dictionary& queryParamsDict) |
229 { | 229 { |
230 TrackExceptionState exceptionState; | 230 TrackExceptionState exceptionState; |
231 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); | 231 Request* request = Request::create(scriptState->executionContext(), original
Request, exceptionState); |
232 if (exceptionState.hadException()) | 232 if (exceptionState.hadException()) |
233 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 233 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
234 return keysImpl(scriptState); | 234 return keysImpl(scriptState, request, queryParamsDict); |
235 } | 235 } |
236 | 236 |
237 ScriptPromise Cache::keys(ScriptState* scriptState, const String& requestString,
const Dictionary& queryParamsDict) | 237 ScriptPromise Cache::keys(ScriptState* scriptState, const String& requestString,
const Dictionary& queryParamsDict) |
238 { | 238 { |
239 TrackExceptionState exceptionState; | 239 TrackExceptionState exceptionState; |
240 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); | 240 Request* request = Request::create(scriptState->executionContext(), requestS
tring, exceptionState); |
241 if (exceptionState.hadException()) | 241 if (exceptionState.hadException()) |
242 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); | 242 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
243 return keysImpl(scriptState, request, queryParamsDict); | 243 return keysImpl(scriptState, request, queryParamsDict); |
244 } | 244 } |
245 | 245 |
246 Cache::Cache(WebServiceWorkerCache* webCache) | 246 Cache::Cache(WebServiceWorkerCache* webCache) |
247 : m_webCache(adoptPtr(webCache)) | 247 : m_webCache(adoptPtr(webCache)) |
248 { | 248 { |
249 ScriptWrappable::init(this); | 249 ScriptWrappable::init(this); |
250 ASSERT(!m_webCache->proxyInterface()); | 250 ASSERT(!m_webCache->proxyInterface()); |
251 m_webCache->setProxyInterface(this); | 251 m_webCache->setProxyInterface(this); |
252 } | 252 } |
253 | 253 |
254 PassRefPtrWillBeRawPtr<Cache> Cache::create(WebServiceWorkerCache* webCache) | 254 Cache* Cache::create(WebServiceWorkerCache* webCache) |
255 { | 255 { |
256 return adoptRefWillBeNoop(new Cache(webCache)); | 256 return new Cache(webCache); |
257 } | 257 } |
258 | 258 |
259 ScriptPromise Cache::matchImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr<
Request> request, const Dictionary& queryParamsDict) | 259 ScriptPromise Cache::matchImpl(ScriptState* scriptState, Request* request, const
Dictionary& queryParamsDict) |
260 { | 260 { |
261 WebServiceWorkerRequest webRequest; | 261 WebServiceWorkerRequest webRequest; |
262 request->populateWebServiceWorkerRequest(webRequest); | 262 request->populateWebServiceWorkerRequest(webRequest); |
263 | 263 |
264 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | 264 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
265 const ScriptPromise promise = resolver->promise(); | 265 const ScriptPromise promise = resolver->promise(); |
266 m_webCache->dispatchMatch(new CacheMatchCallbacks(resolver), webRequest, que
ryParamsFromDictionary(queryParamsDict)); | 266 m_webCache->dispatchMatch(new CacheMatchCallbacks(resolver), webRequest, que
ryParamsFromDictionary(queryParamsDict)); |
267 return promise; | 267 return promise; |
268 } | 268 } |
269 | 269 |
270 ScriptPromise Cache::matchAllImpl(ScriptState* scriptState, PassRefPtrWillBeRawP
tr<Request> request, const Dictionary& queryParamsDict) | 270 ScriptPromise Cache::matchAllImpl(ScriptState* scriptState, Request* request, co
nst Dictionary& queryParamsDict) |
271 { | 271 { |
272 WebServiceWorkerRequest webRequest; | 272 WebServiceWorkerRequest webRequest; |
273 request->populateWebServiceWorkerRequest(webRequest); | 273 request->populateWebServiceWorkerRequest(webRequest); |
274 | 274 |
275 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | 275 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
276 const ScriptPromise promise = resolver->promise(); | 276 const ScriptPromise promise = resolver->promise(); |
277 m_webCache->dispatchMatchAll(new CacheWithResponsesCallbacks(resolver), webR
equest, queryParamsFromDictionary(queryParamsDict)); | 277 m_webCache->dispatchMatchAll(new CacheWithResponsesCallbacks(resolver), webR
equest, queryParamsFromDictionary(queryParamsDict)); |
278 return promise; | 278 return promise; |
279 } | 279 } |
280 | 280 |
281 ScriptPromise Cache::addImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr<Re
quest>) | 281 ScriptPromise Cache::addImpl(ScriptState* scriptState, Request*) |
282 { | 282 { |
283 // FIXME: Implement this. | 283 // FIXME: Implement this. |
284 return rejectAsNotImplemented(scriptState); | 284 return rejectAsNotImplemented(scriptState); |
285 } | 285 } |
286 | 286 |
287 ScriptPromise Cache::addAllImpl(ScriptState* scriptState, Vector<RefPtrWillBeRaw
Ptr<Request> >) | 287 ScriptPromise Cache::addAllImpl(ScriptState* scriptState, Vector<Request*>) |
288 { | 288 { |
289 // FIXME: Implement this. | 289 // FIXME: Implement this. |
290 return rejectAsNotImplemented(scriptState); | 290 return rejectAsNotImplemented(scriptState); |
291 } | 291 } |
292 | 292 |
293 PassRefPtrWillBeRawPtr<DOMException> Cache::domExceptionForCacheError(WebService
WorkerCacheError reason) | 293 PassRefPtrWillBeRawPtr<DOMException> Cache::domExceptionForCacheError(WebService
WorkerCacheError reason) |
294 { | 294 { |
295 switch (reason) { | 295 switch (reason) { |
296 case WebServiceWorkerCacheErrorNotImplemented: | 296 case WebServiceWorkerCacheErrorNotImplemented: |
297 return DOMException::create(NotSupportedError, "Method is not implemente
d."); | 297 return DOMException::create(NotSupportedError, "Method is not implemente
d."); |
298 case WebServiceWorkerCacheErrorNotFound: | 298 case WebServiceWorkerCacheErrorNotFound: |
299 return DOMException::create(NotFoundError, "Entry was not found."); | 299 return DOMException::create(NotFoundError, "Entry was not found."); |
300 case WebServiceWorkerCacheErrorExists: | 300 case WebServiceWorkerCacheErrorExists: |
301 return DOMException::create(InvalidAccessError, "Entry already exists.")
; | 301 return DOMException::create(InvalidAccessError, "Entry already exists.")
; |
302 default: | 302 default: |
303 ASSERT_NOT_REACHED(); | 303 ASSERT_NOT_REACHED(); |
304 return DOMException::create(NotSupportedError, "Unknown error."); | 304 return DOMException::create(NotSupportedError, "Unknown error."); |
305 } | 305 } |
306 } | 306 } |
307 | 307 |
308 ScriptPromise Cache::deleteImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr
<Request> request, const Dictionary& queryParamsDict) | 308 ScriptPromise Cache::deleteImpl(ScriptState* scriptState, Request* request, cons
t Dictionary& queryParamsDict) |
309 { | 309 { |
310 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1)); | 310 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1)); |
311 batchOperations[0].operationType = WebServiceWorkerCache::WebServiceWorkerCa
cheOperationTypeDelete; | 311 batchOperations[0].operationType = WebServiceWorkerCache::WebServiceWorkerCa
cheOperationTypeDelete; |
312 request->populateWebServiceWorkerRequest(batchOperations[0].request); | 312 request->populateWebServiceWorkerRequest(batchOperations[0].request); |
313 batchOperations[0].matchParams = queryParamsFromDictionary(queryParamsDict); | 313 batchOperations[0].matchParams = queryParamsFromDictionary(queryParamsDict); |
314 | 314 |
315 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | 315 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
316 const ScriptPromise promise = resolver->promise(); | 316 const ScriptPromise promise = resolver->promise(); |
317 m_webCache->dispatchBatch(new CacheWithResponsesCallbacks(resolver), batchOp
erations); | 317 m_webCache->dispatchBatch(new CacheWithResponsesCallbacks(resolver), batchOp
erations); |
318 return promise; | 318 return promise; |
319 } | 319 } |
320 | 320 |
321 ScriptPromise Cache::putImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr<Re
quest> request, Response* response) | 321 ScriptPromise Cache::putImpl(ScriptState* scriptState, Request* request, const R
esponse* response) |
322 { | 322 { |
323 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1)); | 323 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1)); |
324 batchOperations[0].operationType = WebServiceWorkerCache::WebServiceWorkerCa
cheOperationTypePut; | 324 batchOperations[0].operationType = WebServiceWorkerCache::WebServiceWorkerCa
cheOperationTypePut; |
325 request->populateWebServiceWorkerRequest(batchOperations[0].request); | 325 request->populateWebServiceWorkerRequest(batchOperations[0].request); |
326 response->populateWebServiceWorkerResponse(batchOperations[0].response); | 326 response->populateWebServiceWorkerResponse(batchOperations[0].response); |
327 | 327 |
328 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | 328 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
329 const ScriptPromise promise = resolver->promise(); | 329 const ScriptPromise promise = resolver->promise(); |
330 m_webCache->dispatchBatch(new CacheWithResponsesCallbacks(resolver), batchOp
erations); | 330 m_webCache->dispatchBatch(new CacheWithResponsesCallbacks(resolver), batchOp
erations); |
331 return promise; | 331 return promise; |
332 } | 332 } |
333 | 333 |
334 ScriptPromise Cache::keysImpl(ScriptState* scriptState) | 334 ScriptPromise Cache::keysImpl(ScriptState* scriptState) |
335 { | 335 { |
336 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | 336 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
337 const ScriptPromise promise = resolver->promise(); | 337 const ScriptPromise promise = resolver->promise(); |
338 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, WebSer
viceWorkerCache::QueryParams()); | 338 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, WebSer
viceWorkerCache::QueryParams()); |
339 return promise; | 339 return promise; |
340 } | 340 } |
341 | 341 |
342 ScriptPromise Cache::keysImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr<R
equest> request, const Dictionary& queryParamsDict) | 342 ScriptPromise Cache::keysImpl(ScriptState* scriptState, Request* request, const
Dictionary& queryParamsDict) |
343 { | 343 { |
344 WebServiceWorkerRequest webRequest; | 344 WebServiceWorkerRequest webRequest; |
345 request->populateWebServiceWorkerRequest(webRequest); | 345 request->populateWebServiceWorkerRequest(webRequest); |
346 | 346 |
347 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | 347 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
348 const ScriptPromise promise = resolver->promise(); | 348 const ScriptPromise promise = resolver->promise(); |
349 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, queryP
aramsFromDictionary(queryParamsDict)); | 349 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, queryP
aramsFromDictionary(queryParamsDict)); |
350 return promise; | 350 return promise; |
351 } | 351 } |
352 | 352 |
353 } // namespace blink | 353 } // namespace blink |
OLD | NEW |