Index: Source/modules/serviceworkers/CacheStorage.cpp |
diff --git a/Source/modules/serviceworkers/CacheStorage.cpp b/Source/modules/serviceworkers/CacheStorage.cpp |
deleted file mode 100644 |
index c7614f41878b5d1130decd803c97d0cf94dd9f3a..0000000000000000000000000000000000000000 |
--- a/Source/modules/serviceworkers/CacheStorage.cpp |
+++ /dev/null |
@@ -1,281 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "config.h" |
-#include "modules/serviceworkers/CacheStorage.h" |
- |
-#include "bindings/core/v8/ScriptPromiseResolver.h" |
-#include "bindings/core/v8/ScriptState.h" |
-#include "core/dom/DOMException.h" |
-#include "core/dom/ExceptionCode.h" |
-#include "modules/fetch/Request.h" |
-#include "modules/fetch/Response.h" |
-#include "public/platform/WebServiceWorkerCacheError.h" |
-#include "public/platform/WebServiceWorkerCacheStorage.h" |
- |
-namespace blink { |
- |
-namespace { |
- |
-PassRefPtrWillBeRawPtr<DOMException> createNoImplementationException() |
-{ |
- return DOMException::create(NotSupportedError, "No CacheStorage implementation provided."); |
-} |
- |
-} |
- |
-// FIXME: Consider using CallbackPromiseAdapter. |
-class CacheStorage::Callbacks final : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { |
- WTF_MAKE_NONCOPYABLE(Callbacks); |
-public: |
- explicit Callbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver) |
- : m_resolver(resolver) { } |
- virtual ~Callbacks() { } |
- |
- virtual void onSuccess() override |
- { |
- m_resolver->resolve(true); |
- m_resolver.clear(); |
- } |
- |
- virtual void onError(WebServiceWorkerCacheError* reason) override |
- { |
- if (*reason == WebServiceWorkerCacheErrorNotFound) |
- m_resolver->resolve(false); |
- else |
- m_resolver->reject(Cache::domExceptionForCacheError(*reason)); |
- m_resolver.clear(); |
- } |
- |
-private: |
- RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; |
-}; |
- |
-// FIXME: Consider using CallbackPromiseAdapter. |
-class CacheStorage::WithCacheCallbacks final : public WebServiceWorkerCacheStorage::CacheStorageWithCacheCallbacks { |
- WTF_MAKE_NONCOPYABLE(WithCacheCallbacks); |
-public: |
- WithCacheCallbacks(const String& cacheName, CacheStorage* cacheStorage, PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver) |
- : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resolver) { } |
- virtual ~WithCacheCallbacks() { } |
- |
- virtual void onSuccess(WebServiceWorkerCache* webCache) override |
- { |
- // FIXME: Remove this once content's WebServiceWorkerCache implementation has landed. |
- if (!webCache) { |
- m_resolver->reject("not implemented"); |
- return; |
- } |
- Cache* cache = Cache::create(webCache); |
- m_cacheStorage->m_nameToCacheMap.set(m_cacheName, cache); |
- m_resolver->resolve(cache); |
- m_resolver.clear(); |
- } |
- |
- virtual void onError(WebServiceWorkerCacheError* reason) override |
- { |
- if (*reason == WebServiceWorkerCacheErrorNotFound) |
- m_resolver->resolve(); |
- else |
- m_resolver->reject(Cache::domExceptionForCacheError(*reason)); |
- m_resolver.clear(); |
- } |
- |
-private: |
- String m_cacheName; |
- Persistent<CacheStorage> m_cacheStorage; |
- RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; |
-}; |
- |
-// FIXME: Consider using CallbackPromiseAdapter. |
-class CacheStorage::MatchCallbacks : public WebServiceWorkerCacheStorage::CacheStorageMatchCallbacks { |
- WTF_MAKE_NONCOPYABLE(MatchCallbacks); |
-public: |
- MatchCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver) |
- : m_resolver(resolver) { } |
- |
- virtual void onSuccess(WebServiceWorkerResponse* webResponse) override |
- { |
- m_resolver->resolve(Response::create(m_resolver->scriptState()->executionContext(), *webResponse)); |
- m_resolver.clear(); |
- } |
- |
- virtual void onError(WebServiceWorkerCacheError* reason) override |
- { |
- if (*reason == WebServiceWorkerCacheErrorNotFound) |
- m_resolver->resolve(); |
- else |
- m_resolver->reject(Cache::domExceptionForCacheError(*reason)); |
- m_resolver.clear(); |
- } |
- |
-private: |
- RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; |
-}; |
- |
- |
-// FIXME: Consider using CallbackPromiseAdapter. |
-class CacheStorage::DeleteCallbacks final : public WebServiceWorkerCacheStorage::CacheStorageCallbacks { |
- WTF_MAKE_NONCOPYABLE(DeleteCallbacks); |
-public: |
- DeleteCallbacks(const String& cacheName, CacheStorage* cacheStorage, PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver) |
- : m_cacheName(cacheName), m_cacheStorage(cacheStorage), m_resolver(resolver) { } |
- virtual ~DeleteCallbacks() { } |
- |
- virtual void onSuccess() override |
- { |
- m_cacheStorage->m_nameToCacheMap.remove(m_cacheName); |
- m_resolver->resolve(true); |
- m_resolver.clear(); |
- } |
- |
- virtual void onError(WebServiceWorkerCacheError* reason) override |
- { |
- if (*reason == WebServiceWorkerCacheErrorNotFound) |
- m_resolver->resolve(false); |
- else |
- m_resolver->reject(Cache::domExceptionForCacheError(*reason)); |
- m_resolver.clear(); |
- } |
- |
-private: |
- String m_cacheName; |
- Persistent<CacheStorage> m_cacheStorage; |
- RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; |
-}; |
- |
-// FIXME: Consider using CallbackPromiseAdapter. |
-class CacheStorage::KeysCallbacks final : public WebServiceWorkerCacheStorage::CacheStorageKeysCallbacks { |
- WTF_MAKE_NONCOPYABLE(KeysCallbacks); |
-public: |
- explicit KeysCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver) |
- : m_resolver(resolver) { } |
- virtual ~KeysCallbacks() { } |
- |
- virtual void onSuccess(WebVector<WebString>* keys) override |
- { |
- Vector<String> wtfKeys; |
- for (size_t i = 0; i < keys->size(); ++i) |
- wtfKeys.append((*keys)[i]); |
- m_resolver->resolve(wtfKeys); |
- m_resolver.clear(); |
- } |
- |
- virtual void onError(WebServiceWorkerCacheError* reason) override |
- { |
- m_resolver->reject(Cache::domExceptionForCacheError(*reason)); |
- m_resolver.clear(); |
- } |
- |
-private: |
- RefPtrWillBePersistent<ScriptPromiseResolver> m_resolver; |
-}; |
- |
-CacheStorage* CacheStorage::create(WebServiceWorkerCacheStorage* webCacheStorage) |
-{ |
- return new CacheStorage(adoptPtr(webCacheStorage)); |
-} |
- |
-ScriptPromise CacheStorage::open(ScriptState* scriptState, const String& cacheName) |
-{ |
- RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
- const ScriptPromise promise = resolver->promise(); |
- |
- if (m_nameToCacheMap.contains(cacheName)) { |
- Cache* cache = m_nameToCacheMap.find(cacheName)->value; |
- resolver->resolve(cache); |
- return promise; |
- } |
- |
- if (m_webCacheStorage) |
- m_webCacheStorage->dispatchOpen(new WithCacheCallbacks(cacheName, this, resolver), cacheName); |
- else |
- resolver->reject(createNoImplementationException()); |
- |
- return promise; |
-} |
- |
-ScriptPromise CacheStorage::has(ScriptState* scriptState, const String& cacheName) |
-{ |
- RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
- const ScriptPromise promise = resolver->promise(); |
- |
- if (m_nameToCacheMap.contains(cacheName)) { |
- resolver->resolve(true); |
- return promise; |
- } |
- |
- if (m_webCacheStorage) |
- m_webCacheStorage->dispatchHas(new Callbacks(resolver), cacheName); |
- else |
- resolver->reject(createNoImplementationException()); |
- |
- return promise; |
-} |
- |
-ScriptPromise CacheStorage::deleteFunction(ScriptState* scriptState, const String& cacheName) |
-{ |
- RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
- const ScriptPromise promise = resolver->promise(); |
- |
- if (m_webCacheStorage) |
- m_webCacheStorage->dispatchDelete(new DeleteCallbacks(cacheName, this, resolver), cacheName); |
- else |
- resolver->reject(createNoImplementationException()); |
- |
- return promise; |
-} |
- |
-ScriptPromise CacheStorage::keys(ScriptState* scriptState) |
-{ |
- RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
- const ScriptPromise promise = resolver->promise(); |
- |
- if (m_webCacheStorage) |
- m_webCacheStorage->dispatchKeys(new KeysCallbacks(resolver)); |
- else |
- resolver->reject(createNoImplementationException()); |
- |
- return promise; |
-} |
- |
-ScriptPromise CacheStorage::match(ScriptState* scriptState, const RequestInfo& request, const CacheQueryOptions& options, ExceptionState& exceptionState) |
-{ |
- ASSERT(!request.isNull()); |
- |
- if (request.isRequest()) |
- return matchImpl(scriptState, request.getAsRequest(), options); |
- Request* newRequest = Request::create(scriptState->executionContext(), request.getAsUSVString(), exceptionState); |
- if (exceptionState.hadException()) |
- return ScriptPromise(); |
- return matchImpl(scriptState, newRequest, options); |
-} |
- |
-ScriptPromise CacheStorage::matchImpl(ScriptState* scriptState, const Request* request, const CacheQueryOptions& options) |
-{ |
- WebServiceWorkerRequest webRequest; |
- request->populateWebServiceWorkerRequest(webRequest); |
- |
- RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState); |
- const ScriptPromise promise = resolver->promise(); |
- |
- if (m_webCacheStorage) |
- m_webCacheStorage->dispatchMatch(new MatchCallbacks(resolver), webRequest, Cache::toWebQueryParams(options)); |
- else |
- resolver->reject(createNoImplementationException()); |
- |
- return promise; |
-} |
- |
-DEFINE_TRACE(CacheStorage) |
-{ |
- visitor->trace(m_nameToCacheMap); |
-} |
- |
-CacheStorage::CacheStorage(PassOwnPtr<WebServiceWorkerCacheStorage> webCacheStorage) |
- : m_webCacheStorage(webCacheStorage) |
-{ |
-} |
- |
-} // namespace blink |