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

Side by Side Diff: third_party/WebKit/Source/modules/cachestorage/CacheStorage.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/CacheStorage.h" 5 #include "modules/cachestorage/CacheStorage.h"
6 6
7 #include "bindings/core/v8/ScriptPromiseResolver.h" 7 #include "bindings/core/v8/ScriptPromiseResolver.h"
8 #include "bindings/core/v8/ScriptState.h" 8 #include "bindings/core/v8/ScriptState.h"
9 #include "core/dom/DOMException.h" 9 #include "core/dom/DOMException.h"
10 #include "core/dom/ExceptionCode.h" 10 #include "core/dom/ExceptionCode.h"
11 #include "core/inspector/ConsoleMessage.h" 11 #include "core/inspector/ConsoleMessage.h"
12 #include "modules/cachestorage/CacheStorageError.h" 12 #include "modules/cachestorage/CacheStorageError.h"
13 #include "modules/fetch/Request.h" 13 #include "modules/fetch/Request.h"
14 #include "modules/fetch/Response.h" 14 #include "modules/fetch/Response.h"
15 #include "platform/RuntimeEnabledFeatures.h" 15 #include "platform/RuntimeEnabledFeatures.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 "wtf/PtrUtil.h"
19 #include <memory>
20 18
21 namespace blink { 19 namespace blink {
22 20
23 namespace { 21 namespace {
24 22
25 DOMException* createNoImplementationException() 23 DOMException* createNoImplementationException()
26 { 24 {
27 return DOMException::create(NotSupportedError, "No CacheStorage implementati on provided."); 25 return DOMException::create(NotSupportedError, "No CacheStorage implementati on provided.");
28 } 26 }
29 27
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 WTF_MAKE_NONCOPYABLE(WithCacheCallbacks); 88 WTF_MAKE_NONCOPYABLE(WithCacheCallbacks);
91 public: 89 public:
92 WithCacheCallbacks(const String& cacheName, CacheStorage* cacheStorage, Scri ptPromiseResolver* resolver) 90 WithCacheCallbacks(const String& cacheName, CacheStorage* cacheStorage, Scri ptPromiseResolver* resolver)
93 : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resol ver) { } 91 : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resol ver) { }
94 ~WithCacheCallbacks() override { } 92 ~WithCacheCallbacks() override { }
95 93
96 void onSuccess(std::unique_ptr<WebServiceWorkerCache> webCache) override 94 void onSuccess(std::unique_ptr<WebServiceWorkerCache> webCache) override
97 { 95 {
98 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex t()->activeDOMObjectsAreStopped()) 96 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex t()->activeDOMObjectsAreStopped())
99 return; 97 return;
100 Cache* cache = Cache::create(m_cacheStorage->m_scopedFetcher, wrapUnique (webCache.release())); 98 Cache* cache = Cache::create(m_cacheStorage->m_scopedFetcher, adoptPtr(w ebCache.release()));
101 m_cacheStorage->m_nameToCacheMap.set(m_cacheName, cache); 99 m_cacheStorage->m_nameToCacheMap.set(m_cacheName, cache);
102 m_resolver->resolve(cache); 100 m_resolver->resolve(cache);
103 m_resolver.clear(); 101 m_resolver.clear();
104 } 102 }
105 103
106 void onError(WebServiceWorkerCacheError reason) override 104 void onError(WebServiceWorkerCacheError reason) override
107 { 105 {
108 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex t()->activeDOMObjectsAreStopped()) 106 if (!m_resolver->getExecutionContext() || m_resolver->getExecutionContex t()->activeDOMObjectsAreStopped())
109 return; 107 return;
110 if (reason == WebServiceWorkerCacheErrorNotFound) 108 if (reason == WebServiceWorkerCacheErrorNotFound)
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 m_resolver->reject(CacheStorageError::createException(reason)); 209 m_resolver->reject(CacheStorageError::createException(reason));
212 m_resolver.clear(); 210 m_resolver.clear();
213 } 211 }
214 212
215 private: 213 private:
216 Persistent<ScriptPromiseResolver> m_resolver; 214 Persistent<ScriptPromiseResolver> m_resolver;
217 }; 215 };
218 216
219 CacheStorage* CacheStorage::create(GlobalFetch::ScopedFetcher* fetcher, WebServi ceWorkerCacheStorage* webCacheStorage) 217 CacheStorage* CacheStorage::create(GlobalFetch::ScopedFetcher* fetcher, WebServi ceWorkerCacheStorage* webCacheStorage)
220 { 218 {
221 return new CacheStorage(fetcher, wrapUnique(webCacheStorage)); 219 return new CacheStorage(fetcher, adoptPtr(webCacheStorage));
222 } 220 }
223 221
224 ScriptPromise CacheStorage::open(ScriptState* scriptState, const String& cacheNa me, ExceptionState& exceptionState) 222 ScriptPromise CacheStorage::open(ScriptState* scriptState, const String& cacheNa me, ExceptionState& exceptionState)
225 { 223 {
226 if (!commonChecks(scriptState, exceptionState)) 224 if (!commonChecks(scriptState, exceptionState))
227 return ScriptPromise(); 225 return ScriptPromise();
228 226
229 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 227 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
230 const ScriptPromise promise = resolver->promise(); 228 const ScriptPromise promise = resolver->promise();
231 229
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 const ScriptPromise promise = resolver->promise(); 318 const ScriptPromise promise = resolver->promise();
321 319
322 if (m_webCacheStorage) 320 if (m_webCacheStorage)
323 m_webCacheStorage->dispatchMatch(new MatchCallbacks(resolver), webReques t, Cache::toWebQueryParams(options)); 321 m_webCacheStorage->dispatchMatch(new MatchCallbacks(resolver), webReques t, Cache::toWebQueryParams(options));
324 else 322 else
325 resolver->reject(createNoImplementationException()); 323 resolver->reject(createNoImplementationException());
326 324
327 return promise; 325 return promise;
328 } 326 }
329 327
330 CacheStorage::CacheStorage(GlobalFetch::ScopedFetcher* fetcher, std::unique_ptr< WebServiceWorkerCacheStorage> webCacheStorage) 328 CacheStorage::CacheStorage(GlobalFetch::ScopedFetcher* fetcher, PassOwnPtr<WebSe rviceWorkerCacheStorage> webCacheStorage)
331 : m_scopedFetcher(fetcher) 329 : m_scopedFetcher(fetcher)
332 , m_webCacheStorage(std::move(webCacheStorage)) 330 , m_webCacheStorage(std::move(webCacheStorage))
333 { 331 {
334 } 332 }
335 333
336 CacheStorage::~CacheStorage() 334 CacheStorage::~CacheStorage()
337 { 335 {
338 } 336 }
339 337
340 void CacheStorage::dispose() 338 void CacheStorage::dispose()
341 { 339 {
342 m_webCacheStorage.reset(); 340 m_webCacheStorage.reset();
343 } 341 }
344 342
345 DEFINE_TRACE(CacheStorage) 343 DEFINE_TRACE(CacheStorage)
346 { 344 {
347 visitor->trace(m_scopedFetcher); 345 visitor->trace(m_scopedFetcher);
348 visitor->trace(m_nameToCacheMap); 346 visitor->trace(m_nameToCacheMap);
349 } 347 }
350 348
351 } // namespace blink 349 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698