| 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/cachestorage/InspectorCacheStorageAgent.h" | 6 #include "modules/cachestorage/InspectorCacheStorageAgent.h" |
| 7 | 7 |
| 8 #include "core/InspectorBackendDispatcher.h" | 8 #include "core/InspectorBackendDispatcher.h" |
| 9 #include "core/InspectorTypeBuilder.h" | 9 #include "core/InspectorTypeBuilder.h" |
| 10 #include "platform/JSONValues.h" | 10 #include "platform/JSONValues.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 | 115 |
| 116 public: | 116 public: |
| 117 RequestCacheNames(const String& securityOrigin, PassRefPtrWillBeRawPtr<Reque
stCacheNamesCallback> callback) | 117 RequestCacheNames(const String& securityOrigin, PassRefPtrWillBeRawPtr<Reque
stCacheNamesCallback> callback) |
| 118 : m_securityOrigin(securityOrigin) | 118 : m_securityOrigin(securityOrigin) |
| 119 , m_callback(callback) | 119 , m_callback(callback) |
| 120 { | 120 { |
| 121 } | 121 } |
| 122 | 122 |
| 123 ~RequestCacheNames() override { } | 123 ~RequestCacheNames() override { } |
| 124 | 124 |
| 125 void onSuccess(WebVector<WebString>* caches) | 125 void onSuccess(const WebVector<WebString>& caches) override |
| 126 { | 126 { |
| 127 RefPtr<Array<Cache>> array = Array<Cache>::create(); | 127 RefPtr<Array<Cache>> array = Array<Cache>::create(); |
| 128 for (size_t i = 0; i < caches->size(); i++) { | 128 for (size_t i = 0; i < caches.size(); i++) { |
| 129 String name = String((*caches)[i]); | 129 String name = String(caches[i]); |
| 130 RefPtr<Cache> entry = Cache::create() | 130 RefPtr<Cache> entry = Cache::create() |
| 131 .setSecurityOrigin(m_securityOrigin) | 131 .setSecurityOrigin(m_securityOrigin) |
| 132 .setCacheName(name) | 132 .setCacheName(name) |
| 133 .setCacheId(buildCacheId(m_securityOrigin, name)); | 133 .setCacheId(buildCacheId(m_securityOrigin, name)); |
| 134 array->addItem(entry); | 134 array->addItem(entry); |
| 135 } | 135 } |
| 136 m_callback->sendSuccess(array); | 136 m_callback->sendSuccess(array); |
| 137 } | 137 } |
| 138 | 138 |
| 139 void onError(WebServiceWorkerCacheError* error) | 139 void onError(WebServiceWorkerCacheError error) override |
| 140 { | 140 { |
| 141 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(*error).data())); | 141 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(error).data())); |
| 142 } | 142 } |
| 143 | 143 |
| 144 private: | 144 private: |
| 145 String m_securityOrigin; | 145 String m_securityOrigin; |
| 146 RefPtrWillBePersistent<RequestCacheNamesCallback> m_callback; | 146 RefPtrWillBePersistent<RequestCacheNamesCallback> m_callback; |
| 147 }; | 147 }; |
| 148 | 148 |
| 149 struct DataRequestParams { | 149 struct DataRequestParams { |
| 150 String cacheName; | 150 String cacheName; |
| 151 int skipCount; | 151 int skipCount; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 const DataRequestParams& params, const WebServiceWorkerRequest& request, | 222 const DataRequestParams& params, const WebServiceWorkerRequest& request, |
| 223 PassRefPtr<ResponsesAccumulator> accum, PassRefPtrWillBeRawPtr<RequestEn
triesCallback> callback) | 223 PassRefPtr<ResponsesAccumulator> accum, PassRefPtrWillBeRawPtr<RequestEn
triesCallback> callback) |
| 224 : m_params(params) | 224 : m_params(params) |
| 225 , m_request(request) | 225 , m_request(request) |
| 226 , m_accumulator(accum) | 226 , m_accumulator(accum) |
| 227 , m_callback(callback) | 227 , m_callback(callback) |
| 228 { | 228 { |
| 229 } | 229 } |
| 230 ~GetCacheResponsesForRequestData() override { } | 230 ~GetCacheResponsesForRequestData() override { } |
| 231 | 231 |
| 232 void onSuccess(WebServiceWorkerResponse* response) | 232 void onSuccess(const WebServiceWorkerResponse& response) override |
| 233 { | 233 { |
| 234 m_accumulator->addRequestResponsePair(m_request, *response); | 234 m_accumulator->addRequestResponsePair(m_request, response); |
| 235 } | 235 } |
| 236 | 236 |
| 237 void onError(WebServiceWorkerCacheError* error) | 237 void onError(WebServiceWorkerCacheError error) override |
| 238 { | 238 { |
| 239 m_callback->sendFailure(String::format("Error requesting responses for c
ache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(*
error).data())); | 239 m_callback->sendFailure(String::format("Error requesting responses for c
ache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(e
rror).data())); |
| 240 } | 240 } |
| 241 | 241 |
| 242 private: | 242 private: |
| 243 DataRequestParams m_params; | 243 DataRequestParams m_params; |
| 244 WebServiceWorkerRequest m_request; | 244 WebServiceWorkerRequest m_request; |
| 245 RefPtr<ResponsesAccumulator> m_accumulator; | 245 RefPtr<ResponsesAccumulator> m_accumulator; |
| 246 RefPtrWillBePersistent<RequestEntriesCallback> m_callback; | 246 RefPtrWillBePersistent<RequestEntriesCallback> m_callback; |
| 247 }; | 247 }; |
| 248 | 248 |
| 249 class GetCacheKeysForRequestData : public WebServiceWorkerCache::CacheWithReques
tsCallbacks { | 249 class GetCacheKeysForRequestData : public WebServiceWorkerCache::CacheWithReques
tsCallbacks { |
| 250 WTF_MAKE_NONCOPYABLE(GetCacheKeysForRequestData); | 250 WTF_MAKE_NONCOPYABLE(GetCacheKeysForRequestData); |
| 251 | 251 |
| 252 public: | 252 public: |
| 253 GetCacheKeysForRequestData(const DataRequestParams& params, PassOwnPtr<WebSe
rviceWorkerCache> cache, PassRefPtrWillBeRawPtr<RequestEntriesCallback> callback
) | 253 GetCacheKeysForRequestData(const DataRequestParams& params, PassOwnPtr<WebSe
rviceWorkerCache> cache, PassRefPtrWillBeRawPtr<RequestEntriesCallback> callback
) |
| 254 : m_params(params) | 254 : m_params(params) |
| 255 , m_cache(cache) | 255 , m_cache(cache) |
| 256 , m_callback(callback) | 256 , m_callback(callback) |
| 257 { | 257 { |
| 258 } | 258 } |
| 259 ~GetCacheKeysForRequestData() override { } | 259 ~GetCacheKeysForRequestData() override { } |
| 260 | 260 |
| 261 void onSuccess(WebVector<WebServiceWorkerRequest>* requests) | 261 WebServiceWorkerCache* cache() { return m_cache.get(); } |
| 262 void onSuccess(const WebVector<WebServiceWorkerRequest>& requests) override |
| 262 { | 263 { |
| 263 if (requests->isEmpty()) { | 264 if (requests.isEmpty()) { |
| 264 RefPtr<Array<DataEntry>> array = Array<DataEntry>::create(); | 265 RefPtr<Array<DataEntry>> array = Array<DataEntry>::create(); |
| 265 m_callback->sendSuccess(array, false); | 266 m_callback->sendSuccess(array, false); |
| 266 return; | 267 return; |
| 267 } | 268 } |
| 268 RefPtr<ResponsesAccumulator> accumulator = adoptRef(new ResponsesAccumul
ator(requests->size(), m_params, m_callback)); | 269 RefPtr<ResponsesAccumulator> accumulator = adoptRef(new ResponsesAccumul
ator(requests.size(), m_params, m_callback)); |
| 269 | 270 |
| 270 for (size_t i = 0; i < requests->size(); i++) { | 271 for (size_t i = 0; i < requests.size(); i++) { |
| 271 const auto& request = (*requests)[i]; | 272 const auto& request = requests[i]; |
| 272 auto* cacheRequest = new GetCacheResponsesForRequestData(m_params, r
equest, accumulator, m_callback); | 273 auto* cacheRequest = new GetCacheResponsesForRequestData(m_params, r
equest, accumulator, m_callback); |
| 273 m_cache->dispatchMatch(cacheRequest, request, WebServiceWorkerCache:
:QueryParams()); | 274 m_cache->dispatchMatch(cacheRequest, request, WebServiceWorkerCache:
:QueryParams()); |
| 274 } | 275 } |
| 275 } | 276 } |
| 276 | 277 |
| 277 void onError(WebServiceWorkerCacheError* error) | 278 void onError(WebServiceWorkerCacheError error) override |
| 278 { | 279 { |
| 279 m_callback->sendFailure(String::format("Error requesting requests for ca
che %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(*er
ror).data())); | 280 m_callback->sendFailure(String::format("Error requesting requests for ca
che %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(err
or).data())); |
| 280 } | 281 } |
| 281 | 282 |
| 282 private: | 283 private: |
| 283 DataRequestParams m_params; | 284 DataRequestParams m_params; |
| 284 OwnPtr<WebServiceWorkerCache> m_cache; | 285 OwnPtr<WebServiceWorkerCache> m_cache; |
| 285 RefPtrWillBePersistent<RequestEntriesCallback> m_callback; | 286 RefPtrWillBePersistent<RequestEntriesCallback> m_callback; |
| 286 }; | 287 }; |
| 287 | 288 |
| 288 class GetCacheForRequestData | 289 class GetCacheForRequestData |
| 289 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { | 290 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { |
| 290 WTF_MAKE_NONCOPYABLE(GetCacheForRequestData); | 291 WTF_MAKE_NONCOPYABLE(GetCacheForRequestData); |
| 291 | 292 |
| 292 public: | 293 public: |
| 293 GetCacheForRequestData(const DataRequestParams& params, PassRefPtrWillBeRawP
tr<RequestEntriesCallback> callback) | 294 GetCacheForRequestData(const DataRequestParams& params, PassRefPtrWillBeRawP
tr<RequestEntriesCallback> callback) |
| 294 : m_params(params) | 295 : m_params(params) |
| 295 , m_callback(callback) | 296 , m_callback(callback) |
| 296 { | 297 { |
| 297 } | 298 } |
| 298 ~GetCacheForRequestData() override { } | 299 ~GetCacheForRequestData() override { } |
| 299 | 300 |
| 300 void onSuccess(WebServiceWorkerCache* cache) | 301 void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> cache) override |
| 301 { | 302 { |
| 302 auto* cacheRequest = new GetCacheKeysForRequestData(m_params, adoptPtr(c
ache), m_callback); | 303 auto* cacheRequest = new GetCacheKeysForRequestData(m_params, cache.rele
ase(), m_callback); |
| 303 cache->dispatchKeys(cacheRequest, nullptr, WebServiceWorkerCache::QueryP
arams()); | 304 cacheRequest->cache()->dispatchKeys(cacheRequest, nullptr, WebServiceWor
kerCache::QueryParams()); |
| 304 } | 305 } |
| 305 | 306 |
| 306 void onError(WebServiceWorkerCacheError* error) | 307 void onError(WebServiceWorkerCacheError error) override |
| 307 { | 308 { |
| 308 m_callback->sendFailure(String::format("Error requesting cache %s: %s",
m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(*error).data()))
; | 309 m_callback->sendFailure(String::format("Error requesting cache %s: %s",
m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data())); |
| 309 } | 310 } |
| 310 | 311 |
| 311 private: | 312 private: |
| 312 DataRequestParams m_params; | 313 DataRequestParams m_params; |
| 313 RefPtrWillBePersistent<RequestEntriesCallback> m_callback; | 314 RefPtrWillBePersistent<RequestEntriesCallback> m_callback; |
| 314 }; | 315 }; |
| 315 | 316 |
| 316 class DeleteCache : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { | 317 class DeleteCache : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { |
| 317 WTF_MAKE_NONCOPYABLE(DeleteCache); | 318 WTF_MAKE_NONCOPYABLE(DeleteCache); |
| 318 | 319 |
| 319 public: | 320 public: |
| 320 DeleteCache(PassRefPtrWillBeRawPtr<DeleteCacheCallback> callback) | 321 DeleteCache(PassRefPtrWillBeRawPtr<DeleteCacheCallback> callback) |
| 321 : m_callback(callback) | 322 : m_callback(callback) |
| 322 { | 323 { |
| 323 } | 324 } |
| 324 ~DeleteCache() override { } | 325 ~DeleteCache() override { } |
| 325 | 326 |
| 326 void onSuccess() | 327 void onSuccess() override |
| 327 { | 328 { |
| 328 m_callback->sendSuccess(); | 329 m_callback->sendSuccess(); |
| 329 } | 330 } |
| 330 | 331 |
| 331 void onError(WebServiceWorkerCacheError* error) | 332 void onError(WebServiceWorkerCacheError error) override |
| 332 { | 333 { |
| 333 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(*error).data())); | 334 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(error).data())); |
| 334 } | 335 } |
| 335 | 336 |
| 336 private: | 337 private: |
| 337 RefPtrWillBePersistent<DeleteCacheCallback> m_callback; | 338 RefPtrWillBePersistent<DeleteCacheCallback> m_callback; |
| 338 }; | 339 }; |
| 339 | 340 |
| 340 class DeleteCacheEntry : public WebServiceWorkerCache::CacheBatchCallbacks { | 341 class DeleteCacheEntry : public WebServiceWorkerCache::CacheBatchCallbacks { |
| 341 WTF_MAKE_NONCOPYABLE(DeleteCacheEntry); | 342 WTF_MAKE_NONCOPYABLE(DeleteCacheEntry); |
| 342 public: | 343 public: |
| 343 | 344 |
| 344 DeleteCacheEntry(PassRefPtrWillBeRawPtr<DeleteEntryCallback> callback) | 345 DeleteCacheEntry(PassRefPtrWillBeRawPtr<DeleteEntryCallback> callback) |
| 345 : m_callback(callback) | 346 : m_callback(callback) |
| 346 { | 347 { |
| 347 } | 348 } |
| 348 ~DeleteCacheEntry() override { } | 349 ~DeleteCacheEntry() override { } |
| 349 | 350 |
| 350 void onSuccess() | 351 void onSuccess() override |
| 351 { | 352 { |
| 352 m_callback->sendSuccess(); | 353 m_callback->sendSuccess(); |
| 353 } | 354 } |
| 354 | 355 |
| 355 void onError(WebServiceWorkerCacheError error) | 356 void onError(WebServiceWorkerCacheError error) override |
| 356 { | 357 { |
| 357 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(error).data())); | 358 m_callback->sendFailure(String::format("Error requesting cache names: %s
", serviceWorkerCacheErrorString(error).data())); |
| 358 } | 359 } |
| 359 | 360 |
| 360 private: | 361 private: |
| 361 RefPtrWillBePersistent<DeleteEntryCallback> m_callback; | 362 RefPtrWillBePersistent<DeleteEntryCallback> m_callback; |
| 362 }; | 363 }; |
| 363 | 364 |
| 364 class GetCacheForDeleteEntry | 365 class GetCacheForDeleteEntry |
| 365 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { | 366 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { |
| 366 WTF_MAKE_NONCOPYABLE(GetCacheForDeleteEntry); | 367 WTF_MAKE_NONCOPYABLE(GetCacheForDeleteEntry); |
| 367 | 368 |
| 368 public: | 369 public: |
| 369 GetCacheForDeleteEntry(const String& requestSpec, const String& cacheName, P
assRefPtrWillBeRawPtr<DeleteEntryCallback> callback) | 370 GetCacheForDeleteEntry(const String& requestSpec, const String& cacheName, P
assRefPtrWillBeRawPtr<DeleteEntryCallback> callback) |
| 370 : m_requestSpec(requestSpec) | 371 : m_requestSpec(requestSpec) |
| 371 , m_cacheName(cacheName) | 372 , m_cacheName(cacheName) |
| 372 , m_callback(callback) | 373 , m_callback(callback) |
| 373 { | 374 { |
| 374 } | 375 } |
| 375 ~GetCacheForDeleteEntry() override { } | 376 ~GetCacheForDeleteEntry() override { } |
| 376 | 377 |
| 377 void onSuccess(WebServiceWorkerCache* cache) | 378 void onSuccess(WebPassOwnPtr<WebServiceWorkerCache> cache) override |
| 378 { | 379 { |
| 379 auto* deleteRequest = new DeleteCacheEntry( m_callback); | 380 auto* deleteRequest = new DeleteCacheEntry(m_callback); |
| 380 BatchOperation deleteOperation; | 381 BatchOperation deleteOperation; |
| 381 deleteOperation.operationType = WebServiceWorkerCache::OperationTypeDele
te; | 382 deleteOperation.operationType = WebServiceWorkerCache::OperationTypeDele
te; |
| 382 deleteOperation.request.setURL(KURL(ParsedURLString, m_requestSpec)); | 383 deleteOperation.request.setURL(KURL(ParsedURLString, m_requestSpec)); |
| 383 Vector<BatchOperation> operations; | 384 Vector<BatchOperation> operations; |
| 384 operations.append(deleteOperation); | 385 operations.append(deleteOperation); |
| 385 cache->dispatchBatch(deleteRequest, WebVector<BatchOperation>(operations
)); | 386 cache.release()->dispatchBatch(deleteRequest, WebVector<BatchOperation>(
operations)); |
| 386 } | 387 } |
| 387 | 388 |
| 388 void onError(WebServiceWorkerCacheError* error) | 389 void onError(WebServiceWorkerCacheError error) override |
| 389 { | 390 { |
| 390 m_callback->sendFailure(String::format("Error requesting cache %s: %s",
m_cacheName.utf8().data(), serviceWorkerCacheErrorString(*error).data())); | 391 m_callback->sendFailure(String::format("Error requesting cache %s: %s",
m_cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data())); |
| 391 } | 392 } |
| 392 | 393 |
| 393 private: | 394 private: |
| 394 String m_requestSpec; | 395 String m_requestSpec; |
| 395 String m_cacheName; | 396 String m_cacheName; |
| 396 RefPtrWillBePersistent<DeleteEntryCallback> m_callback; | 397 RefPtrWillBePersistent<DeleteEntryCallback> m_callback; |
| 397 }; | 398 }; |
| 398 | 399 |
| 399 } // namespace | 400 } // namespace |
| 400 | 401 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId(
errorString, cacheId, &cacheName); | 463 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId(
errorString, cacheId, &cacheName); |
| 463 if (!cache) { | 464 if (!cache) { |
| 464 callback->sendFailure(*errorString); | 465 callback->sendFailure(*errorString); |
| 465 return; | 466 return; |
| 466 } | 467 } |
| 467 cache->dispatchOpen(new GetCacheForDeleteEntry(request, cacheName, callback)
, WebString(cacheName)); | 468 cache->dispatchOpen(new GetCacheForDeleteEntry(request, cacheName, callback)
, WebString(cacheName)); |
| 468 } | 469 } |
| 469 | 470 |
| 470 | 471 |
| 471 } // namespace blink | 472 } // namespace blink |
| OLD | NEW |