Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Side by Side Diff: third_party/WebKit/Source/modules/cachestorage/InspectorCacheStorageAgent.cpp

Issue 2480293004: Mandate unique_ptr for base::IDMap in IDMapOwnPointer mode. (Closed)
Patch Set: Make changes requested by danakj, fix a few more headers Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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"
11 #include "public/platform/WebSecurityOrigin.h" 11 #include "public/platform/WebSecurityOrigin.h"
12 #include "public/platform/WebString.h" 12 #include "public/platform/WebString.h"
13 #include "public/platform/WebURL.h" 13 #include "public/platform/WebURL.h"
14 #include "public/platform/WebVector.h" 14 #include "public/platform/WebVector.h"
15 #include "public/platform/modules/serviceworker/WebServiceWorkerCache.h" 15 #include "public/platform/modules/serviceworker/WebServiceWorkerCache.h"
16 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" 16 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h"
17 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h" 17 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h"
18 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" 18 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h"
19 #include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" 19 #include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h"
20 #include "wtf/Noncopyable.h" 20 #include "wtf/Noncopyable.h"
21 #include "wtf/PassRefPtr.h" 21 #include "wtf/PassRefPtr.h"
22 #include "wtf/PtrUtil.h" 22 #include "wtf/PtrUtil.h"
23 #include "wtf/RefCounted.h" 23 #include "wtf/RefCounted.h"
24 #include "wtf/RefPtr.h" 24 #include "wtf/RefPtr.h"
25 #include "wtf/Vector.h" 25 #include "wtf/Vector.h"
26 #include "wtf/text/StringBuilder.h" 26 #include "wtf/text/StringBuilder.h"
27 #include <algorithm> 27 #include <algorithm>
28 #include <memory> 28 #include <memory>
29 #include <utility>
29 30
30 using blink::protocol::Array; 31 using blink::protocol::Array;
31 using blink::protocol::CacheStorage::Cache; 32 using blink::protocol::CacheStorage::Cache;
32 using blink::protocol::CacheStorage::DataEntry; 33 using blink::protocol::CacheStorage::DataEntry;
33 34
34 typedef blink::protocol::CacheStorage::Backend::DeleteCacheCallback 35 typedef blink::protocol::CacheStorage::Backend::DeleteCacheCallback
35 DeleteCacheCallback; 36 DeleteCacheCallback;
36 typedef blink::protocol::CacheStorage::Backend::DeleteEntryCallback 37 typedef blink::protocol::CacheStorage::Backend::DeleteEntryCallback
37 DeleteEntryCallback; 38 DeleteEntryCallback;
38 typedef blink::protocol::CacheStorage::Backend::RequestCacheNamesCallback 39 typedef blink::protocol::CacheStorage::Backend::RequestCacheNamesCallback
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 std::unique_ptr<Array<DataEntry>> array = Array<DataEntry>::create(); 269 std::unique_ptr<Array<DataEntry>> array = Array<DataEntry>::create();
269 m_callback->sendSuccess(std::move(array), false); 270 m_callback->sendSuccess(std::move(array), false);
270 return; 271 return;
271 } 272 }
272 RefPtr<ResponsesAccumulator> accumulator = 273 RefPtr<ResponsesAccumulator> accumulator =
273 adoptRef(new ResponsesAccumulator(requests.size(), m_params, 274 adoptRef(new ResponsesAccumulator(requests.size(), m_params,
274 std::move(m_callback))); 275 std::move(m_callback)));
275 276
276 for (size_t i = 0; i < requests.size(); i++) { 277 for (size_t i = 0; i < requests.size(); i++) {
277 const auto& request = requests[i]; 278 const auto& request = requests[i];
278 auto* cacheRequest = 279 auto cacheRequest = WTF::makeUnique<GetCacheResponsesForRequestData>(
279 new GetCacheResponsesForRequestData(m_params, request, accumulator); 280 m_params, request, accumulator);
280 m_cache->dispatchMatch(cacheRequest, request, 281 m_cache->dispatchMatch(std::move(cacheRequest), request,
281 WebServiceWorkerCache::QueryParams()); 282 WebServiceWorkerCache::QueryParams());
282 } 283 }
283 } 284 }
284 285
285 void onError(WebServiceWorkerCacheError error) override { 286 void onError(WebServiceWorkerCacheError error) override {
286 m_callback->sendFailure(Response::Error( 287 m_callback->sendFailure(Response::Error(
287 String::format("Error requesting requests for cache %s: %s", 288 String::format("Error requesting requests for cache %s: %s",
288 m_params.cacheName.utf8().data(), 289 m_params.cacheName.utf8().data(),
289 serviceWorkerCacheErrorString(error).data()))); 290 serviceWorkerCacheErrorString(error).data())));
290 } 291 }
291 292
292 private: 293 private:
293 DataRequestParams m_params; 294 DataRequestParams m_params;
294 std::unique_ptr<WebServiceWorkerCache> m_cache; 295 std::unique_ptr<WebServiceWorkerCache> m_cache;
295 std::unique_ptr<RequestEntriesCallback> m_callback; 296 std::unique_ptr<RequestEntriesCallback> m_callback;
296 }; 297 };
297 298
298 class GetCacheForRequestData 299 class GetCacheForRequestData
299 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { 300 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks {
300 WTF_MAKE_NONCOPYABLE(GetCacheForRequestData); 301 WTF_MAKE_NONCOPYABLE(GetCacheForRequestData);
301 302
302 public: 303 public:
303 GetCacheForRequestData(const DataRequestParams& params, 304 GetCacheForRequestData(const DataRequestParams& params,
304 std::unique_ptr<RequestEntriesCallback> callback) 305 std::unique_ptr<RequestEntriesCallback> callback)
305 : m_params(params), m_callback(std::move(callback)) {} 306 : m_params(params), m_callback(std::move(callback)) {}
306 ~GetCacheForRequestData() override {} 307 ~GetCacheForRequestData() override {}
307 308
308 void onSuccess(std::unique_ptr<WebServiceWorkerCache> cache) override { 309 void onSuccess(std::unique_ptr<WebServiceWorkerCache> cache) override {
309 auto* cacheRequest = new GetCacheKeysForRequestData( 310 auto cacheRequest = WTF::makeUnique<GetCacheKeysForRequestData>(
310 m_params, wrapUnique(cache.release()), std::move(m_callback)); 311 m_params, std::move(cache), std::move(m_callback));
311 cacheRequest->cache()->dispatchKeys(cacheRequest, WebServiceWorkerRequest(), 312 cacheRequest->cache()->dispatchKeys(std::move(cacheRequest),
313 WebServiceWorkerRequest(),
312 WebServiceWorkerCache::QueryParams()); 314 WebServiceWorkerCache::QueryParams());
313 } 315 }
314 316
315 void onError(WebServiceWorkerCacheError error) override { 317 void onError(WebServiceWorkerCacheError error) override {
316 m_callback->sendFailure(Response::Error(String::format( 318 m_callback->sendFailure(Response::Error(String::format(
317 "Error requesting cache %s: %s", m_params.cacheName.utf8().data(), 319 "Error requesting cache %s: %s", m_params.cacheName.utf8().data(),
318 serviceWorkerCacheErrorString(error).data()))); 320 serviceWorkerCacheErrorString(error).data())));
319 } 321 }
320 322
321 private: 323 private:
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 public: 372 public:
371 GetCacheForDeleteEntry(const String& requestSpec, 373 GetCacheForDeleteEntry(const String& requestSpec,
372 const String& cacheName, 374 const String& cacheName,
373 std::unique_ptr<DeleteEntryCallback> callback) 375 std::unique_ptr<DeleteEntryCallback> callback)
374 : m_requestSpec(requestSpec), 376 : m_requestSpec(requestSpec),
375 m_cacheName(cacheName), 377 m_cacheName(cacheName),
376 m_callback(std::move(callback)) {} 378 m_callback(std::move(callback)) {}
377 ~GetCacheForDeleteEntry() override {} 379 ~GetCacheForDeleteEntry() override {}
378 380
379 void onSuccess(std::unique_ptr<WebServiceWorkerCache> cache) override { 381 void onSuccess(std::unique_ptr<WebServiceWorkerCache> cache) override {
380 auto* deleteRequest = new DeleteCacheEntry(std::move(m_callback)); 382 auto deleteRequest =
383 WTF::makeUnique<DeleteCacheEntry>(std::move(m_callback));
381 BatchOperation deleteOperation; 384 BatchOperation deleteOperation;
382 deleteOperation.operationType = WebServiceWorkerCache::OperationTypeDelete; 385 deleteOperation.operationType = WebServiceWorkerCache::OperationTypeDelete;
383 deleteOperation.request.setURL(KURL(ParsedURLString, m_requestSpec)); 386 deleteOperation.request.setURL(KURL(ParsedURLString, m_requestSpec));
384 Vector<BatchOperation> operations; 387 Vector<BatchOperation> operations;
385 operations.append(deleteOperation); 388 operations.append(deleteOperation);
386 cache.release()->dispatchBatch(deleteRequest, 389 cache.release()->dispatchBatch(std::move(deleteRequest),
387 WebVector<BatchOperation>(operations)); 390 WebVector<BatchOperation>(operations));
388 } 391 }
389 392
390 void onError(WebServiceWorkerCacheError error) override { 393 void onError(WebServiceWorkerCacheError error) override {
391 m_callback->sendFailure(Response::Error(String::format( 394 m_callback->sendFailure(Response::Error(String::format(
392 "Error requesting cache %s: %s", m_cacheName.utf8().data(), 395 "Error requesting cache %s: %s", m_cacheName.utf8().data(),
393 serviceWorkerCacheErrorString(error).data()))); 396 serviceWorkerCacheErrorString(error).data())));
394 } 397 }
395 398
396 private: 399 private:
(...skipping 26 matching lines...) Expand all
423 return; 426 return;
424 } 427 }
425 428
426 std::unique_ptr<WebServiceWorkerCacheStorage> cache; 429 std::unique_ptr<WebServiceWorkerCacheStorage> cache;
427 Response response = assertCacheStorage(securityOrigin, cache); 430 Response response = assertCacheStorage(securityOrigin, cache);
428 if (!response.isSuccess()) { 431 if (!response.isSuccess()) {
429 callback->sendFailure(response); 432 callback->sendFailure(response);
430 return; 433 return;
431 } 434 }
432 cache->dispatchKeys( 435 cache->dispatchKeys(
433 new RequestCacheNames(securityOrigin, std::move(callback))); 436 WTF::makeUnique<RequestCacheNames>(securityOrigin, std::move(callback)));
434 } 437 }
435 438
436 void InspectorCacheStorageAgent::requestEntries( 439 void InspectorCacheStorageAgent::requestEntries(
437 const String& cacheId, 440 const String& cacheId,
438 int skipCount, 441 int skipCount,
439 int pageSize, 442 int pageSize,
440 std::unique_ptr<RequestEntriesCallback> callback) { 443 std::unique_ptr<RequestEntriesCallback> callback) {
441 String cacheName; 444 String cacheName;
442 std::unique_ptr<WebServiceWorkerCacheStorage> cache; 445 std::unique_ptr<WebServiceWorkerCacheStorage> cache;
443 Response response = 446 Response response =
444 assertCacheStorageAndNameForId(cacheId, &cacheName, cache); 447 assertCacheStorageAndNameForId(cacheId, &cacheName, cache);
445 if (!response.isSuccess()) { 448 if (!response.isSuccess()) {
446 callback->sendFailure(response); 449 callback->sendFailure(response);
447 return; 450 return;
448 } 451 }
449 DataRequestParams params; 452 DataRequestParams params;
450 params.cacheName = cacheName; 453 params.cacheName = cacheName;
451 params.pageSize = pageSize; 454 params.pageSize = pageSize;
452 params.skipCount = skipCount; 455 params.skipCount = skipCount;
453 cache->dispatchOpen(new GetCacheForRequestData(params, std::move(callback)), 456 cache->dispatchOpen(
454 WebString(cacheName)); 457 WTF::makeUnique<GetCacheForRequestData>(params, std::move(callback)),
458 WebString(cacheName));
455 } 459 }
456 460
457 void InspectorCacheStorageAgent::deleteCache( 461 void InspectorCacheStorageAgent::deleteCache(
458 const String& cacheId, 462 const String& cacheId,
459 std::unique_ptr<DeleteCacheCallback> callback) { 463 std::unique_ptr<DeleteCacheCallback> callback) {
460 String cacheName; 464 String cacheName;
461 std::unique_ptr<WebServiceWorkerCacheStorage> cache; 465 std::unique_ptr<WebServiceWorkerCacheStorage> cache;
462 Response response = 466 Response response =
463 assertCacheStorageAndNameForId(cacheId, &cacheName, cache); 467 assertCacheStorageAndNameForId(cacheId, &cacheName, cache);
464 if (!response.isSuccess()) { 468 if (!response.isSuccess()) {
465 callback->sendFailure(response); 469 callback->sendFailure(response);
466 return; 470 return;
467 } 471 }
468 cache->dispatchDelete(new DeleteCache(std::move(callback)), 472 cache->dispatchDelete(WTF::makeUnique<DeleteCache>(std::move(callback)),
469 WebString(cacheName)); 473 WebString(cacheName));
470 } 474 }
471 475
472 void InspectorCacheStorageAgent::deleteEntry( 476 void InspectorCacheStorageAgent::deleteEntry(
473 const String& cacheId, 477 const String& cacheId,
474 const String& request, 478 const String& request,
475 std::unique_ptr<DeleteEntryCallback> callback) { 479 std::unique_ptr<DeleteEntryCallback> callback) {
476 String cacheName; 480 String cacheName;
477 std::unique_ptr<WebServiceWorkerCacheStorage> cache; 481 std::unique_ptr<WebServiceWorkerCacheStorage> cache;
478 Response response = 482 Response response =
479 assertCacheStorageAndNameForId(cacheId, &cacheName, cache); 483 assertCacheStorageAndNameForId(cacheId, &cacheName, cache);
480 if (!response.isSuccess()) { 484 if (!response.isSuccess()) {
481 callback->sendFailure(response); 485 callback->sendFailure(response);
482 return; 486 return;
483 } 487 }
484 cache->dispatchOpen( 488 cache->dispatchOpen(WTF::makeUnique<GetCacheForDeleteEntry>(
485 new GetCacheForDeleteEntry(request, cacheName, std::move(callback)), 489 request, cacheName, std::move(callback)),
486 WebString(cacheName)); 490 WebString(cacheName));
487 } 491 }
488 492
489 } // namespace blink 493 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698