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

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

Issue 2080623002: Revert "Remove OwnPtr from Blink." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months 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/inspector_protocol/DispatcherBase.h" 8 #include "platform/inspector_protocol/DispatcherBase.h"
9 #include "platform/inspector_protocol/Values.h" 9 #include "platform/inspector_protocol/Values.h"
10 #include "platform/weborigin/KURL.h" 10 #include "platform/weborigin/KURL.h"
11 #include "platform/weborigin/SecurityOrigin.h" 11 #include "platform/weborigin/SecurityOrigin.h"
12 #include "public/platform/Platform.h" 12 #include "public/platform/Platform.h"
13 #include "public/platform/WebSecurityOrigin.h" 13 #include "public/platform/WebSecurityOrigin.h"
14 #include "public/platform/WebString.h" 14 #include "public/platform/WebString.h"
15 #include "public/platform/WebURL.h" 15 #include "public/platform/WebURL.h"
16 #include "public/platform/WebVector.h" 16 #include "public/platform/WebVector.h"
17 #include "public/platform/modules/serviceworker/WebServiceWorkerCache.h" 17 #include "public/platform/modules/serviceworker/WebServiceWorkerCache.h"
18 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h" 18 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheError.h"
19 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h" 19 #include "public/platform/modules/serviceworker/WebServiceWorkerCacheStorage.h"
20 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" 20 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h"
21 #include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h" 21 #include "public/platform/modules/serviceworker/WebServiceWorkerResponse.h"
22 #include "wtf/Noncopyable.h" 22 #include "wtf/Noncopyable.h"
23 #include "wtf/OwnPtr.h"
23 #include "wtf/PassRefPtr.h" 24 #include "wtf/PassRefPtr.h"
24 #include "wtf/PtrUtil.h"
25 #include "wtf/RefCounted.h" 25 #include "wtf/RefCounted.h"
26 #include "wtf/RefPtr.h" 26 #include "wtf/RefPtr.h"
27 #include "wtf/Vector.h" 27 #include "wtf/Vector.h"
28 #include "wtf/text/StringBuilder.h" 28 #include "wtf/text/StringBuilder.h"
29
29 #include <algorithm> 30 #include <algorithm>
30 #include <memory> 31 #include <memory>
31 32
32 using blink::protocol::Array; 33 using blink::protocol::Array;
33 using blink::protocol::CacheStorage::Cache; 34 using blink::protocol::CacheStorage::Cache;
34 using blink::protocol::CacheStorage::DataEntry; 35 using blink::protocol::CacheStorage::DataEntry;
35 36
36 typedef blink::protocol::CacheStorage::Backend::DeleteCacheCallback DeleteCacheC allback; 37 typedef blink::protocol::CacheStorage::Backend::DeleteCacheCallback DeleteCacheC allback;
37 typedef blink::protocol::CacheStorage::Backend::DeleteEntryCallback DeleteEntryC allback; 38 typedef blink::protocol::CacheStorage::Backend::DeleteEntryCallback DeleteEntryC allback;
38 typedef blink::protocol::CacheStorage::Backend::RequestCacheNamesCallback Reques tCacheNamesCallback; 39 typedef blink::protocol::CacheStorage::Backend::RequestCacheNamesCallback Reques tCacheNamesCallback;
(...skipping 17 matching lines...) Expand all
56 size_t pipe = id.find('|'); 57 size_t pipe = id.find('|');
57 if (pipe == WTF::kNotFound) { 58 if (pipe == WTF::kNotFound) {
58 *errorString = "Invalid cache id."; 59 *errorString = "Invalid cache id.";
59 return false; 60 return false;
60 } 61 }
61 *securityOrigin = id.substring(0, pipe); 62 *securityOrigin = id.substring(0, pipe);
62 *cacheName = id.substring(pipe + 1); 63 *cacheName = id.substring(pipe + 1);
63 return true; 64 return true;
64 } 65 }
65 66
66 std::unique_ptr<WebServiceWorkerCacheStorage> assertCacheStorage(ErrorString* er rorString, const String& securityOrigin) 67 PassOwnPtr<WebServiceWorkerCacheStorage> assertCacheStorage(ErrorString* errorSt ring, const String& securityOrigin)
67 { 68 {
68 RefPtr<SecurityOrigin> secOrigin = SecurityOrigin::createFromString(security Origin); 69 RefPtr<SecurityOrigin> secOrigin = SecurityOrigin::createFromString(security Origin);
69 70
70 // Cache Storage API is restricted to trustworthy origins. 71 // Cache Storage API is restricted to trustworthy origins.
71 if (!secOrigin->isPotentiallyTrustworthy()) { 72 if (!secOrigin->isPotentiallyTrustworthy()) {
72 *errorString = secOrigin->isPotentiallyTrustworthyErrorMessage(); 73 *errorString = secOrigin->isPotentiallyTrustworthyErrorMessage();
73 return nullptr; 74 return nullptr;
74 } 75 }
75 76
76 std::unique_ptr<WebServiceWorkerCacheStorage> cache = wrapUnique(Platform::c urrent()->cacheStorage(WebSecurityOrigin(secOrigin))); 77 OwnPtr<WebServiceWorkerCacheStorage> cache = adoptPtr(Platform::current()->c acheStorage(WebSecurityOrigin(secOrigin)));
77 if (!cache) 78 if (!cache)
78 *errorString = "Could not find cache storage."; 79 *errorString = "Could not find cache storage.";
79 return cache; 80 return cache;
80 } 81 }
81 82
82 std::unique_ptr<WebServiceWorkerCacheStorage> assertCacheStorageAndNameForId(Err orString* errorString, const String& cacheId, String* cacheName) 83 PassOwnPtr<WebServiceWorkerCacheStorage> assertCacheStorageAndNameForId(ErrorStr ing* errorString, const String& cacheId, String* cacheName)
83 { 84 {
84 String securityOrigin; 85 String securityOrigin;
85 if (!parseCacheId(errorString, cacheId, &securityOrigin, cacheName)) { 86 if (!parseCacheId(errorString, cacheId, &securityOrigin, cacheName)) {
86 return nullptr; 87 return nullptr;
87 } 88 }
88 return assertCacheStorage(errorString, securityOrigin); 89 return assertCacheStorage(errorString, securityOrigin);
89 } 90 }
90 91
91 CString serviceWorkerCacheErrorString(WebServiceWorkerCacheError error) 92 CString serviceWorkerCacheErrorString(WebServiceWorkerCacheError error)
92 { 93 {
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 private: 242 private:
242 DataRequestParams m_params; 243 DataRequestParams m_params;
243 WebServiceWorkerRequest m_request; 244 WebServiceWorkerRequest m_request;
244 RefPtr<ResponsesAccumulator> m_accumulator; 245 RefPtr<ResponsesAccumulator> m_accumulator;
245 }; 246 };
246 247
247 class GetCacheKeysForRequestData : public WebServiceWorkerCache::CacheWithReques tsCallbacks { 248 class GetCacheKeysForRequestData : public WebServiceWorkerCache::CacheWithReques tsCallbacks {
248 WTF_MAKE_NONCOPYABLE(GetCacheKeysForRequestData); 249 WTF_MAKE_NONCOPYABLE(GetCacheKeysForRequestData);
249 250
250 public: 251 public:
251 GetCacheKeysForRequestData(const DataRequestParams& params, std::unique_ptr< WebServiceWorkerCache> cache, std::unique_ptr<RequestEntriesCallback> callback) 252 GetCacheKeysForRequestData(const DataRequestParams& params, PassOwnPtr<WebSe rviceWorkerCache> cache, std::unique_ptr<RequestEntriesCallback> callback)
252 : m_params(params) 253 : m_params(params)
253 , m_cache(std::move(cache)) 254 , m_cache(std::move(cache))
254 , m_callback(std::move(callback)) 255 , m_callback(std::move(callback))
255 { 256 {
256 } 257 }
257 ~GetCacheKeysForRequestData() override { } 258 ~GetCacheKeysForRequestData() override { }
258 259
259 WebServiceWorkerCache* cache() { return m_cache.get(); } 260 WebServiceWorkerCache* cache() { return m_cache.get(); }
260 void onSuccess(const WebVector<WebServiceWorkerRequest>& requests) override 261 void onSuccess(const WebVector<WebServiceWorkerRequest>& requests) override
261 { 262 {
(...skipping 11 matching lines...) Expand all
273 } 274 }
274 } 275 }
275 276
276 void onError(WebServiceWorkerCacheError error) override 277 void onError(WebServiceWorkerCacheError error) override
277 { 278 {
278 m_callback->sendFailure(String::format("Error requesting requests for ca che %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(err or).data())); 279 m_callback->sendFailure(String::format("Error requesting requests for ca che %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(err or).data()));
279 } 280 }
280 281
281 private: 282 private:
282 DataRequestParams m_params; 283 DataRequestParams m_params;
283 std::unique_ptr<WebServiceWorkerCache> m_cache; 284 OwnPtr<WebServiceWorkerCache> m_cache;
284 std::unique_ptr<RequestEntriesCallback> m_callback; 285 std::unique_ptr<RequestEntriesCallback> m_callback;
285 }; 286 };
286 287
287 class GetCacheForRequestData 288 class GetCacheForRequestData
288 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { 289 : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks {
289 WTF_MAKE_NONCOPYABLE(GetCacheForRequestData); 290 WTF_MAKE_NONCOPYABLE(GetCacheForRequestData);
290 291
291 public: 292 public:
292 GetCacheForRequestData(const DataRequestParams& params, std::unique_ptr<Requ estEntriesCallback> callback) 293 GetCacheForRequestData(const DataRequestParams& params, std::unique_ptr<Requ estEntriesCallback> callback)
293 : m_params(params) 294 : m_params(params)
294 , m_callback(std::move(callback)) 295 , m_callback(std::move(callback))
295 { 296 {
296 } 297 }
297 ~GetCacheForRequestData() override { } 298 ~GetCacheForRequestData() override { }
298 299
299 void onSuccess(std::unique_ptr<WebServiceWorkerCache> cache) override 300 void onSuccess(std::unique_ptr<WebServiceWorkerCache> cache) override
300 { 301 {
301 auto* cacheRequest = new GetCacheKeysForRequestData(m_params, wrapUnique (cache.release()), std::move(m_callback)); 302 auto* cacheRequest = new GetCacheKeysForRequestData(m_params, adoptPtr(c ache.release()), std::move(m_callback));
302 cacheRequest->cache()->dispatchKeys(cacheRequest, nullptr, WebServiceWor kerCache::QueryParams()); 303 cacheRequest->cache()->dispatchKeys(cacheRequest, nullptr, WebServiceWor kerCache::QueryParams());
303 } 304 }
304 305
305 void onError(WebServiceWorkerCacheError error) override 306 void onError(WebServiceWorkerCacheError error) override
306 { 307 {
307 m_callback->sendFailure(String::format("Error requesting cache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data())); 308 m_callback->sendFailure(String::format("Error requesting cache %s: %s", m_params.cacheName.utf8().data(), serviceWorkerCacheErrorString(error).data()));
308 } 309 }
309 310
310 private: 311 private:
311 DataRequestParams m_params; 312 DataRequestParams m_params;
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 { 411 {
411 RefPtr<SecurityOrigin> secOrigin = SecurityOrigin::createFromString(security Origin); 412 RefPtr<SecurityOrigin> secOrigin = SecurityOrigin::createFromString(security Origin);
412 413
413 // Cache Storage API is restricted to trustworthy origins. 414 // Cache Storage API is restricted to trustworthy origins.
414 if (!secOrigin->isPotentiallyTrustworthy()) { 415 if (!secOrigin->isPotentiallyTrustworthy()) {
415 // Don't treat this as an error, just don't attempt to open and enumerat e the caches. 416 // Don't treat this as an error, just don't attempt to open and enumerat e the caches.
416 callback->sendSuccess(Array<protocol::CacheStorage::Cache>::create()); 417 callback->sendSuccess(Array<protocol::CacheStorage::Cache>::create());
417 return; 418 return;
418 } 419 }
419 420
420 std::unique_ptr<WebServiceWorkerCacheStorage> cache = assertCacheStorage(err orString, securityOrigin); 421 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorage(errorString, securityOrigin);
421 if (!cache) { 422 if (!cache) {
422 callback->sendFailure(*errorString); 423 callback->sendFailure(*errorString);
423 return; 424 return;
424 } 425 }
425 cache->dispatchKeys(new RequestCacheNames(securityOrigin, std::move(callback ))); 426 cache->dispatchKeys(new RequestCacheNames(securityOrigin, std::move(callback )));
426 } 427 }
427 428
428 void InspectorCacheStorageAgent::requestEntries(ErrorString* errorString, const String& cacheId, int skipCount, int pageSize, std::unique_ptr<RequestEntriesCall back> callback) 429 void InspectorCacheStorageAgent::requestEntries(ErrorString* errorString, const String& cacheId, int skipCount, int pageSize, std::unique_ptr<RequestEntriesCall back> callback)
429 { 430 {
430 String cacheName; 431 String cacheName;
431 std::unique_ptr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndN ameForId(errorString, cacheId, &cacheName); 432 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId( errorString, cacheId, &cacheName);
432 if (!cache) { 433 if (!cache) {
433 callback->sendFailure(*errorString); 434 callback->sendFailure(*errorString);
434 return; 435 return;
435 } 436 }
436 DataRequestParams params; 437 DataRequestParams params;
437 params.cacheName = cacheName; 438 params.cacheName = cacheName;
438 params.pageSize = pageSize; 439 params.pageSize = pageSize;
439 params.skipCount = skipCount; 440 params.skipCount = skipCount;
440 cache->dispatchOpen(new GetCacheForRequestData(params, std::move(callback)), WebString(cacheName)); 441 cache->dispatchOpen(new GetCacheForRequestData(params, std::move(callback)), WebString(cacheName));
441 } 442 }
442 443
443 void InspectorCacheStorageAgent::deleteCache(ErrorString* errorString, const Str ing& cacheId, std::unique_ptr<DeleteCacheCallback> callback) 444 void InspectorCacheStorageAgent::deleteCache(ErrorString* errorString, const Str ing& cacheId, std::unique_ptr<DeleteCacheCallback> callback)
444 { 445 {
445 String cacheName; 446 String cacheName;
446 std::unique_ptr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndN ameForId(errorString, cacheId, &cacheName); 447 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId( errorString, cacheId, &cacheName);
447 if (!cache) { 448 if (!cache) {
448 callback->sendFailure(*errorString); 449 callback->sendFailure(*errorString);
449 return; 450 return;
450 } 451 }
451 cache->dispatchDelete(new DeleteCache(std::move(callback)), WebString(cacheN ame)); 452 cache->dispatchDelete(new DeleteCache(std::move(callback)), WebString(cacheN ame));
452 } 453 }
453 454
454 void InspectorCacheStorageAgent::deleteEntry(ErrorString* errorString, const Str ing& cacheId, const String& request, std::unique_ptr<DeleteEntryCallback> callba ck) 455 void InspectorCacheStorageAgent::deleteEntry(ErrorString* errorString, const Str ing& cacheId, const String& request, std::unique_ptr<DeleteEntryCallback> callba ck)
455 { 456 {
456 String cacheName; 457 String cacheName;
457 std::unique_ptr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndN ameForId(errorString, cacheId, &cacheName); 458 OwnPtr<WebServiceWorkerCacheStorage> cache = assertCacheStorageAndNameForId( errorString, cacheId, &cacheName);
458 if (!cache) { 459 if (!cache) {
459 callback->sendFailure(*errorString); 460 callback->sendFailure(*errorString);
460 return; 461 return;
461 } 462 }
462 cache->dispatchOpen(new GetCacheForDeleteEntry(request, cacheName, std::move (callback)), WebString(cacheName)); 463 cache->dispatchOpen(new GetCacheForDeleteEntry(request, cacheName, std::move (callback)), WebString(cacheName));
463 } 464 }
464 465
465 466
466 } // namespace blink 467 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698