| 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 |