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