| 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 "modules/cachestorage/InspectorCacheStorageAgent.h" | 5 #include "modules/cachestorage/InspectorCacheStorageAgent.h" |
| 6 | 6 |
| 7 #include "platform/heap/Handle.h" | 7 #include "platform/heap/Handle.h" |
| 8 #include "platform/weborigin/KURL.h" | 8 #include "platform/weborigin/KURL.h" |
| 9 #include "platform/weborigin/SecurityOrigin.h" | 9 #include "platform/weborigin/SecurityOrigin.h" |
| 10 #include "public/platform/Platform.h" | 10 #include "public/platform/Platform.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 | 45 |
| 46 namespace { | 46 namespace { |
| 47 | 47 |
| 48 String buildCacheId(const String& securityOrigin, const String& cacheName) { | 48 String buildCacheId(const String& securityOrigin, const String& cacheName) { |
| 49 String id(securityOrigin); | 49 String id(securityOrigin); |
| 50 id.append('|'); | 50 id.append('|'); |
| 51 id.append(cacheName); | 51 id.append(cacheName); |
| 52 return id; | 52 return id; |
| 53 } | 53 } |
| 54 | 54 |
| 55 bool parseCacheId(ErrorString* errorString, | 55 Response parseCacheId(const String& id, |
| 56 const String& id, | 56 String* securityOrigin, |
| 57 String* securityOrigin, | 57 String* cacheName) { |
| 58 String* cacheName) { | |
| 59 size_t pipe = id.find('|'); | 58 size_t pipe = id.find('|'); |
| 60 if (pipe == WTF::kNotFound) { | 59 if (pipe == WTF::kNotFound) |
| 61 *errorString = "Invalid cache id."; | 60 return Response::Error("Invalid cache id."); |
| 62 return false; | |
| 63 } | |
| 64 *securityOrigin = id.substring(0, pipe); | 61 *securityOrigin = id.substring(0, pipe); |
| 65 *cacheName = id.substring(pipe + 1); | 62 *cacheName = id.substring(pipe + 1); |
| 66 return true; | 63 return Response::OK(); |
| 67 } | 64 } |
| 68 | 65 |
| 69 std::unique_ptr<WebServiceWorkerCacheStorage> assertCacheStorage( | 66 Response assertCacheStorage( |
| 70 ErrorString* errorString, | 67 const String& securityOrigin, |
| 71 const String& securityOrigin) { | 68 std::unique_ptr<WebServiceWorkerCacheStorage>& result) { |
| 72 RefPtr<SecurityOrigin> secOrigin = | 69 RefPtr<SecurityOrigin> secOrigin = |
| 73 SecurityOrigin::createFromString(securityOrigin); | 70 SecurityOrigin::createFromString(securityOrigin); |
| 74 | 71 |
| 75 // Cache Storage API is restricted to trustworthy origins. | 72 // Cache Storage API is restricted to trustworthy origins. |
| 76 if (!secOrigin->isPotentiallyTrustworthy()) { | 73 if (!secOrigin->isPotentiallyTrustworthy()) |
| 77 *errorString = secOrigin->isPotentiallyTrustworthyErrorMessage(); | 74 return Response::Error(secOrigin->isPotentiallyTrustworthyErrorMessage()); |
| 78 return nullptr; | |
| 79 } | |
| 80 | 75 |
| 81 std::unique_ptr<WebServiceWorkerCacheStorage> cache = wrapUnique( | 76 std::unique_ptr<WebServiceWorkerCacheStorage> cache = wrapUnique( |
| 82 Platform::current()->cacheStorage(WebSecurityOrigin(secOrigin))); | 77 Platform::current()->cacheStorage(WebSecurityOrigin(secOrigin))); |
| 83 if (!cache) | 78 if (!cache) |
| 84 *errorString = "Could not find cache storage."; | 79 return Response::Error("Could not find cache storage."); |
| 85 return cache; | 80 result = std::move(cache); |
| 81 return Response::OK(); |
| 86 } | 82 } |
| 87 | 83 |
| 88 std::unique_ptr<WebServiceWorkerCacheStorage> assertCacheStorageAndNameForId( | 84 Response assertCacheStorageAndNameForId( |
| 89 ErrorString* errorString, | |
| 90 const String& cacheId, | 85 const String& cacheId, |
| 91 String* cacheName) { | 86 String* cacheName, |
| 87 std::unique_ptr<WebServiceWorkerCacheStorage>& result) { |
| 92 String securityOrigin; | 88 String securityOrigin; |
| 93 if (!parseCacheId(errorString, cacheId, &securityOrigin, cacheName)) { | 89 Response response = parseCacheId(cacheId, &securityOrigin, cacheName); |
| 94 return nullptr; | 90 if (!response.isSuccess()) |
| 95 } | 91 return response; |
| 96 return assertCacheStorage(errorString, securityOrigin); | 92 return assertCacheStorage(securityOrigin, result); |
| 97 } | 93 } |
| 98 | 94 |
| 99 CString serviceWorkerCacheErrorString(WebServiceWorkerCacheError error) { | 95 CString serviceWorkerCacheErrorString(WebServiceWorkerCacheError error) { |
| 100 switch (error) { | 96 switch (error) { |
| 101 case WebServiceWorkerCacheErrorNotImplemented: | 97 case WebServiceWorkerCacheErrorNotImplemented: |
| 102 return CString("not implemented."); | 98 return CString("not implemented."); |
| 103 break; | 99 break; |
| 104 case WebServiceWorkerCacheErrorNotFound: | 100 case WebServiceWorkerCacheErrorNotFound: |
| 105 return CString("not found."); | 101 return CString("not found."); |
| 106 break; | 102 break; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 .setSecurityOrigin(m_securityOrigin) | 134 .setSecurityOrigin(m_securityOrigin) |
| 139 .setCacheName(name) | 135 .setCacheName(name) |
| 140 .setCacheId(buildCacheId(m_securityOrigin, name)) | 136 .setCacheId(buildCacheId(m_securityOrigin, name)) |
| 141 .build(); | 137 .build(); |
| 142 array->addItem(std::move(entry)); | 138 array->addItem(std::move(entry)); |
| 143 } | 139 } |
| 144 m_callback->sendSuccess(std::move(array)); | 140 m_callback->sendSuccess(std::move(array)); |
| 145 } | 141 } |
| 146 | 142 |
| 147 void onError(WebServiceWorkerCacheError error) override { | 143 void onError(WebServiceWorkerCacheError error) override { |
| 148 m_callback->sendFailure( | 144 m_callback->sendFailure(Response::Error( |
| 149 String::format("Error requesting cache names: %s", | 145 String::format("Error requesting cache names: %s", |
| 150 serviceWorkerCacheErrorString(error).data())); | 146 serviceWorkerCacheErrorString(error).data()))); |
| 151 } | 147 } |
| 152 | 148 |
| 153 private: | 149 private: |
| 154 String m_securityOrigin; | 150 String m_securityOrigin; |
| 155 std::unique_ptr<RequestCacheNamesCallback> m_callback; | 151 std::unique_ptr<RequestCacheNamesCallback> m_callback; |
| 156 }; | 152 }; |
| 157 | 153 |
| 158 struct DataRequestParams { | 154 struct DataRequestParams { |
| 159 String cacheName; | 155 String cacheName; |
| 160 int skipCount; | 156 int skipCount; |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 std::unique_ptr<DataEntry> entry = | 205 std::unique_ptr<DataEntry> entry = |
| 210 DataEntry::create() | 206 DataEntry::create() |
| 211 .setRequest(requestResponse.request) | 207 .setRequest(requestResponse.request) |
| 212 .setResponse(requestResponse.response) | 208 .setResponse(requestResponse.response) |
| 213 .build(); | 209 .build(); |
| 214 array->addItem(std::move(entry)); | 210 array->addItem(std::move(entry)); |
| 215 } | 211 } |
| 216 m_callback->sendSuccess(std::move(array), hasMore); | 212 m_callback->sendSuccess(std::move(array), hasMore); |
| 217 } | 213 } |
| 218 | 214 |
| 219 void sendFailure(const String& error) { m_callback->sendFailure(error); } | 215 void sendFailure(const Response& error) { m_callback->sendFailure(error); } |
| 220 | 216 |
| 221 private: | 217 private: |
| 222 DataRequestParams m_params; | 218 DataRequestParams m_params; |
| 223 int m_numResponsesLeft; | 219 int m_numResponsesLeft; |
| 224 Vector<RequestResponse> m_responses; | 220 Vector<RequestResponse> m_responses; |
| 225 std::unique_ptr<RequestEntriesCallback> m_callback; | 221 std::unique_ptr<RequestEntriesCallback> m_callback; |
| 226 }; | 222 }; |
| 227 | 223 |
| 228 class GetCacheResponsesForRequestData | 224 class GetCacheResponsesForRequestData |
| 229 : public WebServiceWorkerCache::CacheMatchCallbacks { | 225 : public WebServiceWorkerCache::CacheMatchCallbacks { |
| 230 WTF_MAKE_NONCOPYABLE(GetCacheResponsesForRequestData); | 226 WTF_MAKE_NONCOPYABLE(GetCacheResponsesForRequestData); |
| 231 | 227 |
| 232 public: | 228 public: |
| 233 GetCacheResponsesForRequestData(const DataRequestParams& params, | 229 GetCacheResponsesForRequestData(const DataRequestParams& params, |
| 234 const WebServiceWorkerRequest& request, | 230 const WebServiceWorkerRequest& request, |
| 235 PassRefPtr<ResponsesAccumulator> accum) | 231 PassRefPtr<ResponsesAccumulator> accum) |
| 236 : m_params(params), m_request(request), m_accumulator(accum) {} | 232 : m_params(params), m_request(request), m_accumulator(accum) {} |
| 237 ~GetCacheResponsesForRequestData() override {} | 233 ~GetCacheResponsesForRequestData() override {} |
| 238 | 234 |
| 239 void onSuccess(const WebServiceWorkerResponse& response) override { | 235 void onSuccess(const WebServiceWorkerResponse& response) override { |
| 240 m_accumulator->addRequestResponsePair(m_request, response); | 236 m_accumulator->addRequestResponsePair(m_request, response); |
| 241 } | 237 } |
| 242 | 238 |
| 243 void onError(WebServiceWorkerCacheError error) override { | 239 void onError(WebServiceWorkerCacheError error) override { |
| 244 m_accumulator->sendFailure( | 240 m_accumulator->sendFailure(Response::Error( |
| 245 String::format("Error requesting responses for cache %s: %s", | 241 String::format("Error requesting responses for cache %s: %s", |
| 246 m_params.cacheName.utf8().data(), | 242 m_params.cacheName.utf8().data(), |
| 247 serviceWorkerCacheErrorString(error).data())); | 243 serviceWorkerCacheErrorString(error).data()))); |
| 248 } | 244 } |
| 249 | 245 |
| 250 private: | 246 private: |
| 251 DataRequestParams m_params; | 247 DataRequestParams m_params; |
| 252 WebServiceWorkerRequest m_request; | 248 WebServiceWorkerRequest m_request; |
| 253 RefPtr<ResponsesAccumulator> m_accumulator; | 249 RefPtr<ResponsesAccumulator> m_accumulator; |
| 254 }; | 250 }; |
| 255 | 251 |
| 256 class GetCacheKeysForRequestData | 252 class GetCacheKeysForRequestData |
| 257 : public WebServiceWorkerCache::CacheWithRequestsCallbacks { | 253 : public WebServiceWorkerCache::CacheWithRequestsCallbacks { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 280 for (size_t i = 0; i < requests.size(); i++) { | 276 for (size_t i = 0; i < requests.size(); i++) { |
| 281 const auto& request = requests[i]; | 277 const auto& request = requests[i]; |
| 282 auto* cacheRequest = | 278 auto* cacheRequest = |
| 283 new GetCacheResponsesForRequestData(m_params, request, accumulator); | 279 new GetCacheResponsesForRequestData(m_params, request, accumulator); |
| 284 m_cache->dispatchMatch(cacheRequest, request, | 280 m_cache->dispatchMatch(cacheRequest, request, |
| 285 WebServiceWorkerCache::QueryParams()); | 281 WebServiceWorkerCache::QueryParams()); |
| 286 } | 282 } |
| 287 } | 283 } |
| 288 | 284 |
| 289 void onError(WebServiceWorkerCacheError error) override { | 285 void onError(WebServiceWorkerCacheError error) override { |
| 290 m_callback->sendFailure( | 286 m_callback->sendFailure(Response::Error( |
| 291 String::format("Error requesting requests for cache %s: %s", | 287 String::format("Error requesting requests for cache %s: %s", |
| 292 m_params.cacheName.utf8().data(), | 288 m_params.cacheName.utf8().data(), |
| 293 serviceWorkerCacheErrorString(error).data())); | 289 serviceWorkerCacheErrorString(error).data()))); |
| 294 } | 290 } |
| 295 | 291 |
| 296 private: | 292 private: |
| 297 DataRequestParams m_params; | 293 DataRequestParams m_params; |
| 298 std::unique_ptr<WebServiceWorkerCache> m_cache; | 294 std::unique_ptr<WebServiceWorkerCache> m_cache; |
| 299 std::unique_ptr<RequestEntriesCallback> m_callback; | 295 std::unique_ptr<RequestEntriesCallback> m_callback; |
| 300 }; | 296 }; |
| 301 | 297 |
| 302 class GetCacheForRequestData | 298 class GetCacheForRequestData |
| 303 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { | 299 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { |
| 304 WTF_MAKE_NONCOPYABLE(GetCacheForRequestData); | 300 WTF_MAKE_NONCOPYABLE(GetCacheForRequestData); |
| 305 | 301 |
| 306 public: | 302 public: |
| 307 GetCacheForRequestData(const DataRequestParams& params, | 303 GetCacheForRequestData(const DataRequestParams& params, |
| 308 std::unique_ptr<RequestEntriesCallback> callback) | 304 std::unique_ptr<RequestEntriesCallback> callback) |
| 309 : m_params(params), m_callback(std::move(callback)) {} | 305 : m_params(params), m_callback(std::move(callback)) {} |
| 310 ~GetCacheForRequestData() override {} | 306 ~GetCacheForRequestData() override {} |
| 311 | 307 |
| 312 void onSuccess(std::unique_ptr<WebServiceWorkerCache> cache) override { | 308 void onSuccess(std::unique_ptr<WebServiceWorkerCache> cache) override { |
| 313 auto* cacheRequest = new GetCacheKeysForRequestData( | 309 auto* cacheRequest = new GetCacheKeysForRequestData( |
| 314 m_params, wrapUnique(cache.release()), std::move(m_callback)); | 310 m_params, wrapUnique(cache.release()), std::move(m_callback)); |
| 315 cacheRequest->cache()->dispatchKeys(cacheRequest, WebServiceWorkerRequest(), | 311 cacheRequest->cache()->dispatchKeys(cacheRequest, WebServiceWorkerRequest(), |
| 316 WebServiceWorkerCache::QueryParams()); | 312 WebServiceWorkerCache::QueryParams()); |
| 317 } | 313 } |
| 318 | 314 |
| 319 void onError(WebServiceWorkerCacheError error) override { | 315 void onError(WebServiceWorkerCacheError error) override { |
| 320 m_callback->sendFailure(String::format( | 316 m_callback->sendFailure(Response::Error(String::format( |
| 321 "Error requesting cache %s: %s", m_params.cacheName.utf8().data(), | 317 "Error requesting cache %s: %s", m_params.cacheName.utf8().data(), |
| 322 serviceWorkerCacheErrorString(error).data())); | 318 serviceWorkerCacheErrorString(error).data()))); |
| 323 } | 319 } |
| 324 | 320 |
| 325 private: | 321 private: |
| 326 DataRequestParams m_params; | 322 DataRequestParams m_params; |
| 327 std::unique_ptr<RequestEntriesCallback> m_callback; | 323 std::unique_ptr<RequestEntriesCallback> m_callback; |
| 328 }; | 324 }; |
| 329 | 325 |
| 330 class DeleteCache : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { | 326 class DeleteCache : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { |
| 331 WTF_MAKE_NONCOPYABLE(DeleteCache); | 327 WTF_MAKE_NONCOPYABLE(DeleteCache); |
| 332 | 328 |
| 333 public: | 329 public: |
| 334 DeleteCache(std::unique_ptr<DeleteCacheCallback> callback) | 330 DeleteCache(std::unique_ptr<DeleteCacheCallback> callback) |
| 335 : m_callback(std::move(callback)) {} | 331 : m_callback(std::move(callback)) {} |
| 336 ~DeleteCache() override {} | 332 ~DeleteCache() override {} |
| 337 | 333 |
| 338 void onSuccess() override { m_callback->sendSuccess(); } | 334 void onSuccess() override { m_callback->sendSuccess(); } |
| 339 | 335 |
| 340 void onError(WebServiceWorkerCacheError error) override { | 336 void onError(WebServiceWorkerCacheError error) override { |
| 341 m_callback->sendFailure( | 337 m_callback->sendFailure(Response::Error( |
| 342 String::format("Error requesting cache names: %s", | 338 String::format("Error requesting cache names: %s", |
| 343 serviceWorkerCacheErrorString(error).data())); | 339 serviceWorkerCacheErrorString(error).data()))); |
| 344 } | 340 } |
| 345 | 341 |
| 346 private: | 342 private: |
| 347 std::unique_ptr<DeleteCacheCallback> m_callback; | 343 std::unique_ptr<DeleteCacheCallback> m_callback; |
| 348 }; | 344 }; |
| 349 | 345 |
| 350 class DeleteCacheEntry : public WebServiceWorkerCache::CacheBatchCallbacks { | 346 class DeleteCacheEntry : public WebServiceWorkerCache::CacheBatchCallbacks { |
| 351 WTF_MAKE_NONCOPYABLE(DeleteCacheEntry); | 347 WTF_MAKE_NONCOPYABLE(DeleteCacheEntry); |
| 352 | 348 |
| 353 public: | 349 public: |
| 354 DeleteCacheEntry(std::unique_ptr<DeleteEntryCallback> callback) | 350 DeleteCacheEntry(std::unique_ptr<DeleteEntryCallback> callback) |
| 355 : m_callback(std::move(callback)) {} | 351 : m_callback(std::move(callback)) {} |
| 356 ~DeleteCacheEntry() override {} | 352 ~DeleteCacheEntry() override {} |
| 357 | 353 |
| 358 void onSuccess() override { m_callback->sendSuccess(); } | 354 void onSuccess() override { m_callback->sendSuccess(); } |
| 359 | 355 |
| 360 void onError(WebServiceWorkerCacheError error) override { | 356 void onError(WebServiceWorkerCacheError error) override { |
| 361 m_callback->sendFailure( | 357 m_callback->sendFailure(Response::Error( |
| 362 String::format("Error requesting cache names: %s", | 358 String::format("Error requesting cache names: %s", |
| 363 serviceWorkerCacheErrorString(error).data())); | 359 serviceWorkerCacheErrorString(error).data()))); |
| 364 } | 360 } |
| 365 | 361 |
| 366 private: | 362 private: |
| 367 std::unique_ptr<DeleteEntryCallback> m_callback; | 363 std::unique_ptr<DeleteEntryCallback> m_callback; |
| 368 }; | 364 }; |
| 369 | 365 |
| 370 class GetCacheForDeleteEntry | 366 class GetCacheForDeleteEntry |
| 371 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { | 367 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { |
| 372 WTF_MAKE_NONCOPYABLE(GetCacheForDeleteEntry); | 368 WTF_MAKE_NONCOPYABLE(GetCacheForDeleteEntry); |
| 373 | 369 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 385 BatchOperation deleteOperation; | 381 BatchOperation deleteOperation; |
| 386 deleteOperation.operationType = WebServiceWorkerCache::OperationTypeDelete; | 382 deleteOperation.operationType = WebServiceWorkerCache::OperationTypeDelete; |
| 387 deleteOperation.request.setURL(KURL(ParsedURLString, m_requestSpec)); | 383 deleteOperation.request.setURL(KURL(ParsedURLString, m_requestSpec)); |
| 388 Vector<BatchOperation> operations; | 384 Vector<BatchOperation> operations; |
| 389 operations.append(deleteOperation); | 385 operations.append(deleteOperation); |
| 390 cache.release()->dispatchBatch(deleteRequest, | 386 cache.release()->dispatchBatch(deleteRequest, |
| 391 WebVector<BatchOperation>(operations)); | 387 WebVector<BatchOperation>(operations)); |
| 392 } | 388 } |
| 393 | 389 |
| 394 void onError(WebServiceWorkerCacheError error) override { | 390 void onError(WebServiceWorkerCacheError error) override { |
| 395 m_callback->sendFailure(String::format( | 391 m_callback->sendFailure(Response::Error(String::format( |
| 396 "Error requesting cache %s: %s", m_cacheName.utf8().data(), | 392 "Error requesting cache %s: %s", m_cacheName.utf8().data(), |
| 397 serviceWorkerCacheErrorString(error).data())); | 393 serviceWorkerCacheErrorString(error).data()))); |
| 398 } | 394 } |
| 399 | 395 |
| 400 private: | 396 private: |
| 401 String m_requestSpec; | 397 String m_requestSpec; |
| 402 String m_cacheName; | 398 String m_cacheName; |
| 403 std::unique_ptr<DeleteEntryCallback> m_callback; | 399 std::unique_ptr<DeleteEntryCallback> m_callback; |
| 404 }; | 400 }; |
| 405 | 401 |
| 406 } // namespace | 402 } // namespace |
| 407 | 403 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 420 SecurityOrigin::createFromString(securityOrigin); | 416 SecurityOrigin::createFromString(securityOrigin); |
| 421 | 417 |
| 422 // Cache Storage API is restricted to trustworthy origins. | 418 // Cache Storage API is restricted to trustworthy origins. |
| 423 if (!secOrigin->isPotentiallyTrustworthy()) { | 419 if (!secOrigin->isPotentiallyTrustworthy()) { |
| 424 // Don't treat this as an error, just don't attempt to open and enumerate | 420 // Don't treat this as an error, just don't attempt to open and enumerate |
| 425 // the caches. | 421 // the caches. |
| 426 callback->sendSuccess(Array<protocol::CacheStorage::Cache>::create()); | 422 callback->sendSuccess(Array<protocol::CacheStorage::Cache>::create()); |
| 427 return; | 423 return; |
| 428 } | 424 } |
| 429 | 425 |
| 430 ErrorString errorString; | 426 std::unique_ptr<WebServiceWorkerCacheStorage> cache; |
| 431 std::unique_ptr<WebServiceWorkerCacheStorage> cache = | 427 Response response = assertCacheStorage(securityOrigin, cache); |
| 432 assertCacheStorage(&errorString, securityOrigin); | 428 if (!response.isSuccess()) { |
| 433 if (!cache) { | 429 callback->sendFailure(response); |
| 434 callback->sendFailure(errorString); | |
| 435 return; | 430 return; |
| 436 } | 431 } |
| 437 cache->dispatchKeys( | 432 cache->dispatchKeys( |
| 438 new RequestCacheNames(securityOrigin, std::move(callback))); | 433 new RequestCacheNames(securityOrigin, std::move(callback))); |
| 439 } | 434 } |
| 440 | 435 |
| 441 void InspectorCacheStorageAgent::requestEntries( | 436 void InspectorCacheStorageAgent::requestEntries( |
| 442 const String& cacheId, | 437 const String& cacheId, |
| 443 int skipCount, | 438 int skipCount, |
| 444 int pageSize, | 439 int pageSize, |
| 445 std::unique_ptr<RequestEntriesCallback> callback) { | 440 std::unique_ptr<RequestEntriesCallback> callback) { |
| 446 ErrorString errorString; | |
| 447 String cacheName; | 441 String cacheName; |
| 448 std::unique_ptr<WebServiceWorkerCacheStorage> cache = | 442 std::unique_ptr<WebServiceWorkerCacheStorage> cache; |
| 449 assertCacheStorageAndNameForId(&errorString, cacheId, &cacheName); | 443 Response response = |
| 450 if (!cache) { | 444 assertCacheStorageAndNameForId(cacheId, &cacheName, cache); |
| 451 callback->sendFailure(errorString); | 445 if (!response.isSuccess()) { |
| 446 callback->sendFailure(response); |
| 452 return; | 447 return; |
| 453 } | 448 } |
| 454 DataRequestParams params; | 449 DataRequestParams params; |
| 455 params.cacheName = cacheName; | 450 params.cacheName = cacheName; |
| 456 params.pageSize = pageSize; | 451 params.pageSize = pageSize; |
| 457 params.skipCount = skipCount; | 452 params.skipCount = skipCount; |
| 458 cache->dispatchOpen(new GetCacheForRequestData(params, std::move(callback)), | 453 cache->dispatchOpen(new GetCacheForRequestData(params, std::move(callback)), |
| 459 WebString(cacheName)); | 454 WebString(cacheName)); |
| 460 } | 455 } |
| 461 | 456 |
| 462 void InspectorCacheStorageAgent::deleteCache( | 457 void InspectorCacheStorageAgent::deleteCache( |
| 463 const String& cacheId, | 458 const String& cacheId, |
| 464 std::unique_ptr<DeleteCacheCallback> callback) { | 459 std::unique_ptr<DeleteCacheCallback> callback) { |
| 465 String cacheName; | 460 String cacheName; |
| 466 ErrorString errorString; | 461 std::unique_ptr<WebServiceWorkerCacheStorage> cache; |
| 467 std::unique_ptr<WebServiceWorkerCacheStorage> cache = | 462 Response response = |
| 468 assertCacheStorageAndNameForId(&errorString, cacheId, &cacheName); | 463 assertCacheStorageAndNameForId(cacheId, &cacheName, cache); |
| 469 if (!cache) { | 464 if (!response.isSuccess()) { |
| 470 callback->sendFailure(errorString); | 465 callback->sendFailure(response); |
| 471 return; | 466 return; |
| 472 } | 467 } |
| 473 cache->dispatchDelete(new DeleteCache(std::move(callback)), | 468 cache->dispatchDelete(new DeleteCache(std::move(callback)), |
| 474 WebString(cacheName)); | 469 WebString(cacheName)); |
| 475 } | 470 } |
| 476 | 471 |
| 477 void InspectorCacheStorageAgent::deleteEntry( | 472 void InspectorCacheStorageAgent::deleteEntry( |
| 478 const String& cacheId, | 473 const String& cacheId, |
| 479 const String& request, | 474 const String& request, |
| 480 std::unique_ptr<DeleteEntryCallback> callback) { | 475 std::unique_ptr<DeleteEntryCallback> callback) { |
| 481 String cacheName; | 476 String cacheName; |
| 482 ErrorString errorString; | 477 std::unique_ptr<WebServiceWorkerCacheStorage> cache; |
| 483 std::unique_ptr<WebServiceWorkerCacheStorage> cache = | 478 Response response = |
| 484 assertCacheStorageAndNameForId(&errorString, cacheId, &cacheName); | 479 assertCacheStorageAndNameForId(cacheId, &cacheName, cache); |
| 485 if (!cache) { | 480 if (!response.isSuccess()) { |
| 486 callback->sendFailure(errorString); | 481 callback->sendFailure(response); |
| 487 return; | 482 return; |
| 488 } | 483 } |
| 489 cache->dispatchOpen( | 484 cache->dispatchOpen( |
| 490 new GetCacheForDeleteEntry(request, cacheName, std::move(callback)), | 485 new GetCacheForDeleteEntry(request, cacheName, std::move(callback)), |
| 491 WebString(cacheName)); | 486 WebString(cacheName)); |
| 492 } | 487 } |
| 493 | 488 |
| 494 } // namespace blink | 489 } // namespace blink |
| OLD | NEW |