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/ScriptPromiseResolver.h" | 9 #include "bindings/core/v8/ScriptPromiseResolver.h" |
9 #include "bindings/core/v8/ScriptState.h" | 10 #include "bindings/core/v8/ScriptState.h" |
| 11 #include "bindings/core/v8/V8ThrowException.h" |
| 12 #include "core/dom/DOMException.h" |
| 13 #include "modules/serviceworkers/Request.h" |
| 14 #include "modules/serviceworkers/Response.h" |
| 15 #include "public/platform/WebServiceWorkerCache.h" |
10 | 16 |
11 namespace blink { | 17 namespace blink { |
12 | 18 |
13 namespace { | 19 namespace { |
14 | 20 |
| 21 WebServiceWorkerCache::QueryParams queryParamsFromDictionary(const Dictionary& d
ictionary) |
| 22 { |
| 23 WebServiceWorkerCache::QueryParams queryParams; |
| 24 DictionaryHelper::get(dictionary, "ignoreSearch", queryParams.ignoreSearch); |
| 25 DictionaryHelper::get(dictionary, "ignoreMethod", queryParams.ignoreMethod); |
| 26 DictionaryHelper::get(dictionary, "ignoreVary", queryParams.ignoreVary); |
| 27 DictionaryHelper::get(dictionary, "prefixMatch", queryParams.prefixMatch); |
| 28 { |
| 29 String cacheName; |
| 30 DictionaryHelper::get(dictionary, "cacheName", cacheName); |
| 31 queryParams.cacheName = cacheName; |
| 32 } |
| 33 return queryParams; |
| 34 } |
| 35 |
| 36 class CacheMatchCallbacks : public WebServiceWorkerCache::CacheMatchCallbacks { |
| 37 WTF_MAKE_NONCOPYABLE(CacheMatchCallbacks); |
| 38 public: |
| 39 CacheMatchCallbacks(PassRefPtr<ScriptPromiseResolver> resolver) : m_resolver
(resolver) { } |
| 40 |
| 41 virtual void onSuccess(WebServiceWorkerResponse* webResponse) OVERRIDE |
| 42 { |
| 43 m_resolver->resolve(Response::create(*webResponse)); |
| 44 m_resolver.clear(); |
| 45 } |
| 46 |
| 47 virtual void onError(WebServiceWorkerCacheError* reason) OVERRIDE |
| 48 { |
| 49 m_resolver->reject(Cache::domExceptionForCacheError(*reason)); |
| 50 m_resolver.clear(); |
| 51 } |
| 52 |
| 53 private: |
| 54 RefPtr<ScriptPromiseResolver> m_resolver; |
| 55 }; |
| 56 |
| 57 class CacheWithResponsesCallbacks : public WebServiceWorkerCache::CacheWithRespo
nsesCallbacks { |
| 58 WTF_MAKE_NONCOPYABLE(CacheWithResponsesCallbacks); |
| 59 public: |
| 60 CacheWithResponsesCallbacks(PassRefPtr<ScriptPromiseResolver> resolver) : m_
resolver(resolver) { } |
| 61 |
| 62 virtual void onSuccess(WebVector<WebServiceWorkerResponse>* webResponses) OV
ERRIDE |
| 63 { |
| 64 Vector<RefPtrWillBeRawPtr<Response> > responses; |
| 65 for (size_t i = 0; i < webResponses->size(); ++i) |
| 66 responses.append(Response::create((*webResponses)[i])); |
| 67 m_resolver->resolve(responses); |
| 68 m_resolver.clear(); |
| 69 } |
| 70 |
| 71 virtual void onError(WebServiceWorkerCacheError* reason) OVERRIDE |
| 72 { |
| 73 m_resolver->reject(Cache::domExceptionForCacheError(*reason)); |
| 74 m_resolver.clear(); |
| 75 } |
| 76 |
| 77 private: |
| 78 RefPtr<ScriptPromiseResolver> m_resolver; |
| 79 }; |
| 80 |
| 81 class CacheWithRequestsCallbacks : public WebServiceWorkerCache::CacheWithReques
tsCallbacks { |
| 82 WTF_MAKE_NONCOPYABLE(CacheWithRequestsCallbacks); |
| 83 public: |
| 84 CacheWithRequestsCallbacks(PassRefPtr<ScriptPromiseResolver> resolver) : m_r
esolver(resolver) { } |
| 85 |
| 86 virtual void onSuccess(WebVector<WebServiceWorkerRequest>* webRequests) OVER
RIDE |
| 87 { |
| 88 Vector<RefPtrWillBeRawPtr<Request> > requests; |
| 89 for (size_t i = 0; i < webRequests->size(); ++i) |
| 90 requests.append(Request::create((*webRequests)[i])); |
| 91 m_resolver->resolve(requests); |
| 92 m_resolver.clear(); |
| 93 } |
| 94 |
| 95 virtual void onError(WebServiceWorkerCacheError* reason) OVERRIDE |
| 96 { |
| 97 m_resolver->reject(Cache::domExceptionForCacheError(*reason)); |
| 98 m_resolver.clear(); |
| 99 } |
| 100 |
| 101 private: |
| 102 RefPtr<ScriptPromiseResolver> m_resolver; |
| 103 }; |
| 104 |
| 105 ScriptPromise rejectForCacheError(ScriptState* scriptState, WebServiceWorkerCach
eError error) |
| 106 { |
| 107 return ScriptPromise::rejectWithDOMException(scriptState, Cache::domExceptio
nForCacheError(error)); |
| 108 } |
| 109 |
15 ScriptPromise rejectAsNotImplemented(ScriptState* scriptState) | 110 ScriptPromise rejectAsNotImplemented(ScriptState* scriptState) |
16 { | 111 { |
| 112 return ScriptPromise::rejectWithDOMException(scriptState, DOMException::crea
te(NotSupportedError, "Cache is not implemented")); |
| 113 } |
| 114 |
| 115 } // namespace |
| 116 |
| 117 PassRefPtrWillBeRawPtr<Cache> Cache::fromWebServiceWorkerCache(WebServiceWorkerC
ache* webCache) |
| 118 { |
| 119 if (Cache* cache = static_cast<Cache*>(webCache->proxyInterface())) |
| 120 return cache; |
| 121 return create(webCache); |
| 122 } |
| 123 |
| 124 ScriptPromise Cache::match(ScriptState* scriptState, Request* originalRequest, c
onst Dictionary& queryParamsDict) |
| 125 { |
| 126 int dcnt = 0; |
| 127 fprintf(stderr, "Cache::match %d\n", ++dcnt); |
| 128 TrackExceptionState exceptionState; |
| 129 fprintf(stderr, "Cache::match %d\n", ++dcnt); |
| 130 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); |
| 131 fprintf(stderr, "Cache::match %d\n", ++dcnt); |
| 132 if (exceptionState.hadException()) |
| 133 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 134 fprintf(stderr, "Cache::match %d\n", ++dcnt); |
| 135 return matchImpl(scriptState, request, queryParamsDict); |
| 136 } |
| 137 |
| 138 ScriptPromise Cache::match(ScriptState* scriptState, const String& requestString
, const Dictionary& queryParamsDict) |
| 139 { |
| 140 int dcnt = 0; |
| 141 fprintf(stderr, "Cache::match %d\n", ++dcnt); |
| 142 TrackExceptionState exceptionState; |
| 143 fprintf(stderr, "Cache::match %d\n", ++dcnt); |
| 144 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); |
| 145 fprintf(stderr, "Cache::match %d\n", ++dcnt); |
| 146 if (exceptionState.hadException()) |
| 147 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 148 fprintf(stderr, "Cache::match %d\n", ++dcnt); |
| 149 return matchImpl(scriptState, request, queryParamsDict); |
| 150 } |
| 151 |
| 152 ScriptPromise Cache::matchAll(ScriptState* scriptState, Request* originalRequest
, const Dictionary& queryParamsDict) |
| 153 { |
| 154 TrackExceptionState exceptionState; |
| 155 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); |
| 156 if (exceptionState.hadException()) |
| 157 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 158 return matchAllImpl(scriptState, request, queryParamsDict); |
| 159 } |
| 160 |
| 161 ScriptPromise Cache::matchAll(ScriptState* scriptState, const String& requestStr
ing, const Dictionary& queryParamsDict) |
| 162 { |
| 163 TrackExceptionState exceptionState; |
| 164 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); |
| 165 if (exceptionState.hadException()) |
| 166 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 167 return matchAllImpl(scriptState, request, queryParamsDict); |
| 168 } |
| 169 |
| 170 ScriptPromise Cache::add(ScriptState* scriptState, Request* originalRequest) |
| 171 { |
| 172 TrackExceptionState exceptionState; |
| 173 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); |
| 174 if (exceptionState.hadException()) |
| 175 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 176 return addImpl(scriptState, request); |
| 177 } |
| 178 |
| 179 ScriptPromise Cache::add(ScriptState* scriptState, const String& requestString) |
| 180 { |
| 181 TrackExceptionState exceptionState; |
| 182 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); |
| 183 if (exceptionState.hadException()) |
| 184 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 185 return addImpl(scriptState, request); |
| 186 } |
| 187 |
| 188 ScriptPromise Cache::addAll(ScriptState* scriptState, const Vector<ScriptValue>&
rawRequests) |
| 189 { |
| 190 // FIXME: Implement this. |
| 191 return rejectAsNotImplemented(scriptState); |
| 192 } |
| 193 |
| 194 ScriptPromise Cache::deleteFunction(ScriptState* scriptState, Request* originalR
equest, const Dictionary& queryParamsDict) |
| 195 { |
| 196 TrackExceptionState exceptionState; |
| 197 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); |
| 198 if (exceptionState.hadException()) |
| 199 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 200 return deleteImpl(scriptState, request, queryParamsDict); |
| 201 } |
| 202 |
| 203 ScriptPromise Cache::deleteFunction(ScriptState* scriptState, const String& requ
estString, const Dictionary& queryParamsDict) |
| 204 { |
| 205 TrackExceptionState exceptionState; |
| 206 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); |
| 207 if (exceptionState.hadException()) |
| 208 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 209 return deleteImpl(scriptState, request, queryParamsDict); |
| 210 } |
| 211 |
| 212 ScriptPromise Cache::put(ScriptState* scriptState, Request* originalRequest, Res
ponse* response) |
| 213 { |
| 214 TrackExceptionState exceptionState; |
| 215 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); |
| 216 if (exceptionState.hadException()) |
| 217 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 218 return putImpl(scriptState, request, response); |
| 219 } |
| 220 |
| 221 ScriptPromise Cache::put(ScriptState* scriptState, const String& requestString,
Response* response) |
| 222 { |
| 223 TrackExceptionState exceptionState; |
| 224 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); |
| 225 if (exceptionState.hadException()) |
| 226 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 227 return putImpl(scriptState, request, response); |
| 228 } |
| 229 |
| 230 ScriptPromise Cache::keys(ScriptState* scriptState) |
| 231 { |
| 232 return keysImpl(scriptState, RefPtrWillBeRawPtr<Request>(), Dictionary()); |
| 233 } |
| 234 |
| 235 ScriptPromise Cache::keys(ScriptState* scriptState, Request* originalRequest, co
nst Dictionary& queryParamsDict) |
| 236 { |
| 237 TrackExceptionState exceptionState; |
| 238 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), originalRequest, exceptionState); |
| 239 if (exceptionState.hadException()) |
| 240 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 241 return keysImpl(scriptState); |
| 242 } |
| 243 |
| 244 ScriptPromise Cache::keys(ScriptState* scriptState, const String& requestString,
const Dictionary& queryParamsDict) |
| 245 { |
| 246 TrackExceptionState exceptionState; |
| 247 RefPtrWillBeRawPtr<Request> request = Request::create(scriptState->execution
Context(), requestString, exceptionState); |
| 248 if (exceptionState.hadException()) |
| 249 return rejectForCacheError(scriptState, WebServiceWorkerCacheErrorNotFou
nd); |
| 250 return keysImpl(scriptState, request, queryParamsDict); |
| 251 } |
| 252 |
| 253 Cache::Cache(WebServiceWorkerCache* webCache) : m_webCache(adoptPtr(webCache)) |
| 254 { |
| 255 ScriptWrappable::init(this); |
| 256 ASSERT(m_webCache->proxyInterface() == 0); |
| 257 m_webCache->setProxyInterface(this); |
| 258 } |
| 259 |
| 260 PassRefPtrWillBeRawPtr<Cache> Cache::create(WebServiceWorkerCache* webCache) |
| 261 { |
| 262 return adoptRefWillBeNoop(new Cache(webCache)); |
| 263 } |
| 264 |
| 265 ScriptPromise Cache::matchImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr<
Request> request, const Dictionary& queryParamsDict) |
| 266 { |
| 267 int dcnt = 0; |
| 268 fprintf(stderr, "Cache::matchImpl %d\n", ++dcnt); |
| 269 WebServiceWorkerRequest webRequest; |
| 270 fprintf(stderr, "Cache::matchImpl %d\n", ++dcnt); |
| 271 request->populateWebServiceWorkerRequest(webRequest); |
| 272 fprintf(stderr, "Cache::matchImpl %d\n", ++dcnt); |
| 273 |
| 274 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
| 275 fprintf(stderr, "Cache::matchImpl %d\n", ++dcnt); |
| 276 const ScriptPromise promise = resolver->promise(); |
| 277 fprintf(stderr, "Cache::matchImpl %d\n", ++dcnt); |
| 278 m_webCache->dispatchMatch(new CacheMatchCallbacks(resolver), webRequest, que
ryParamsFromDictionary(queryParamsDict)); |
| 279 fprintf(stderr, "Cache::matchImpl %d\n", ++dcnt); |
| 280 return promise; |
| 281 } |
| 282 |
| 283 ScriptPromise Cache::matchAllImpl(ScriptState* scriptState, PassRefPtrWillBeRawP
tr<Request> request, const Dictionary& queryParamsDict) |
| 284 { |
| 285 WebServiceWorkerRequest webRequest; |
| 286 request->populateWebServiceWorkerRequest(webRequest); |
| 287 |
17 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); | 288 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
18 const ScriptPromise promise = resolver->promise(); | 289 const ScriptPromise promise = resolver->promise(); |
19 resolver->reject(DOMException::create(NotSupportedError, "Cache is not imple
mented")); | 290 m_webCache->dispatchMatchAll(new CacheWithResponsesCallbacks(resolver), webR
equest, queryParamsFromDictionary(queryParamsDict)); |
20 return promise; | 291 return promise; |
21 } | 292 } |
22 | 293 |
23 } | 294 ScriptPromise Cache::addImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr<Re
quest>) |
24 | 295 { |
25 PassRefPtrWillBeRawPtr<Cache> Cache::fromWebServiceWorkerCache(WebServiceWorkerC
ache* webCache) | 296 // FIXME: Implement this. |
26 { | |
27 return adoptRefWillBeNoop(new Cache(webCache)); | |
28 } | |
29 | |
30 // FIXME: Implement these methods. | |
31 ScriptPromise Cache::match(ScriptState* scriptState, Request* request, const Dic
tionary& queryParams) | |
32 { | |
33 return rejectAsNotImplemented(scriptState); | 297 return rejectAsNotImplemented(scriptState); |
34 } | 298 } |
35 | 299 |
36 ScriptPromise Cache::match(ScriptState* scriptState, const String& requestString
, const Dictionary& queryParams) | 300 ScriptPromise Cache::addAllImpl(ScriptState* scriptState, Vector<RefPtrWillBeRaw
Ptr<Request> >) |
37 { | 301 { |
| 302 // FIXME: Implement this. |
38 return rejectAsNotImplemented(scriptState); | 303 return rejectAsNotImplemented(scriptState); |
39 } | 304 } |
40 | 305 |
41 ScriptPromise Cache::matchAll(ScriptState* scriptState, Request* request, const
Dictionary& queryParams) | |
42 { | |
43 return rejectAsNotImplemented(scriptState); | |
44 } | |
45 | |
46 ScriptPromise Cache::matchAll(ScriptState* scriptState, const String& requestStr
ing, const Dictionary& queryParams) | |
47 { | |
48 return rejectAsNotImplemented(scriptState); | |
49 } | |
50 | |
51 ScriptPromise Cache::add(ScriptState* scriptState, Request* request) | |
52 { | |
53 return rejectAsNotImplemented(scriptState); | |
54 } | |
55 | |
56 ScriptPromise Cache::add(ScriptState* scriptState, const String& requestString) | |
57 { | |
58 return rejectAsNotImplemented(scriptState); | |
59 } | |
60 | |
61 ScriptPromise Cache::addAll(ScriptState* scriptState, const Vector<ScriptValue>&
rawRequests) | |
62 { | |
63 return rejectAsNotImplemented(scriptState); | |
64 } | |
65 | |
66 ScriptPromise Cache::deleteFunction(ScriptState* scriptState, Request* request,
const Dictionary& queryParams) | |
67 { | |
68 return rejectAsNotImplemented(scriptState); | |
69 } | |
70 | |
71 ScriptPromise Cache::deleteFunction(ScriptState* scriptState, const String& requ
estString, const Dictionary& queryParams) | |
72 { | |
73 return rejectAsNotImplemented(scriptState); | |
74 } | |
75 | |
76 ScriptPromise Cache::put(ScriptState* scriptState, Request* request, Response*) | |
77 { | |
78 return rejectAsNotImplemented(scriptState); | |
79 } | |
80 | |
81 ScriptPromise Cache::put(ScriptState* scriptState, const String& requestString,
Response*) | |
82 { | |
83 return rejectAsNotImplemented(scriptState); | |
84 } | |
85 | |
86 ScriptPromise Cache::keys(ScriptState* scriptState) | |
87 { | |
88 return rejectAsNotImplemented(scriptState); | |
89 } | |
90 | |
91 ScriptPromise Cache::keys(ScriptState* scriptState, Request* request, const Dict
ionary& queryParams) | |
92 { | |
93 return rejectAsNotImplemented(scriptState); | |
94 } | |
95 | |
96 ScriptPromise Cache::keys(ScriptState* scriptState, const String& requestString,
const Dictionary& queryParams) | |
97 { | |
98 return rejectAsNotImplemented(scriptState); | |
99 } | |
100 | |
101 PassRefPtrWillBeRawPtr<DOMException> Cache::domExceptionForCacheError(WebService
WorkerCacheError reason) | 306 PassRefPtrWillBeRawPtr<DOMException> Cache::domExceptionForCacheError(WebService
WorkerCacheError reason) |
102 { | 307 { |
103 switch (reason) { | 308 switch (reason) { |
104 case WebServiceWorkerCacheErrorNotImplemented: | 309 case WebServiceWorkerCacheErrorNotImplemented: |
105 return DOMException::create(NotSupportedError, "Method is not implemente
d."); | 310 return DOMException::create(NotSupportedError, "Method is not implemente
d."); |
106 case WebServiceWorkerCacheErrorNotFound: | 311 case WebServiceWorkerCacheErrorNotFound: |
107 return DOMException::create(NotFoundError, "Entry was not found."); | 312 return DOMException::create(NotFoundError, "Entry was not found."); |
108 case WebServiceWorkerCacheErrorExists: | 313 case WebServiceWorkerCacheErrorExists: |
109 return DOMException::create(InvalidAccessError, "Entry already exists.")
; | 314 return DOMException::create(InvalidAccessError, "Entry already exists.")
; |
110 default: | 315 default: |
111 ASSERT_NOT_REACHED(); | 316 ASSERT_NOT_REACHED(); |
112 return DOMException::create(NotSupportedError, "Unknown error."); | 317 return DOMException::create(NotSupportedError, "Unknown error."); |
113 } | 318 } |
114 } | 319 } |
115 | 320 |
116 Cache::Cache(WebServiceWorkerCache* webCache) : m_webCache(webCache) | 321 ScriptPromise Cache::deleteImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr
<Request> request, const Dictionary& queryParamsDict) |
117 { | 322 { |
118 ScriptWrappable::init(this); | 323 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1)); |
| 324 batchOperations[0].operationType = WebServiceWorkerCache::WebServiceWorkerCa
cheOperationTypeDelete; |
| 325 request->populateWebServiceWorkerRequest(batchOperations[0].request); |
| 326 batchOperations[0].matchParams = queryParamsFromDictionary(queryParamsDict); |
| 327 |
| 328 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
| 329 const ScriptPromise promise = resolver->promise(); |
| 330 m_webCache->dispatchBatch(new CacheWithResponsesCallbacks(resolver), batchOp
erations); |
| 331 return promise; |
| 332 } |
| 333 |
| 334 ScriptPromise Cache::putImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr<Re
quest> request, Response* response) |
| 335 { |
| 336 WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1)); |
| 337 batchOperations[0].operationType = WebServiceWorkerCache::WebServiceWorkerCa
cheOperationTypePut; |
| 338 request->populateWebServiceWorkerRequest(batchOperations[0].request); |
| 339 response->populateWebServiceWorkerResponse(batchOperations[0].response); |
| 340 |
| 341 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
| 342 const ScriptPromise promise = resolver->promise(); |
| 343 m_webCache->dispatchBatch(new CacheWithResponsesCallbacks(resolver), batchOp
erations); |
| 344 return promise; |
| 345 } |
| 346 |
| 347 ScriptPromise Cache::keysImpl(ScriptState* scriptState) |
| 348 { |
| 349 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
| 350 const ScriptPromise promise = resolver->promise(); |
| 351 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, WebSer
viceWorkerCache::QueryParams()); |
| 352 return promise; |
| 353 } |
| 354 |
| 355 ScriptPromise Cache::keysImpl(ScriptState* scriptState, PassRefPtrWillBeRawPtr<R
equest> request, const Dictionary& queryParamsDict) |
| 356 { |
| 357 WebServiceWorkerRequest webRequest; |
| 358 request->populateWebServiceWorkerRequest(webRequest); |
| 359 |
| 360 RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scrip
tState); |
| 361 const ScriptPromise promise = resolver->promise(); |
| 362 m_webCache->dispatchKeys(new CacheWithRequestsCallbacks(resolver), 0, queryP
aramsFromDictionary(queryParamsDict)); |
| 363 return promise; |
119 } | 364 } |
120 | 365 |
121 } // namespace blink | 366 } // namespace blink |
OLD | NEW |