Chromium Code Reviews| Index: content/renderer/service_worker/service_worker_cache_storage_dispatcher.h |
| diff --git a/content/renderer/service_worker/service_worker_cache_storage_dispatcher.h b/content/renderer/service_worker/service_worker_cache_storage_dispatcher.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ac0191ac26d4051e21511309c02548b5e5dafc04 |
| --- /dev/null |
| +++ b/content/renderer/service_worker/service_worker_cache_storage_dispatcher.h |
| @@ -0,0 +1,86 @@ |
| +// 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. |
| + |
| +#ifndef CONTENT_RENDERER_SERVICE_WORKER_SERVICE_WORKER_CACHE_STORAGE_DISPATCHER_H_ |
| +#define CONTENT_RENDERER_SERVICE_WORKER_SERVICE_WORKER_CACHE_STORAGE_DISPATCHER_H_ |
| + |
| +#include <vector> |
| + |
| +#include "base/id_map.h" |
| +#include "base/strings/string16.h" |
| +#include "content/public/renderer/render_process_observer.h" |
| +#include "third_party/WebKit/public/platform/WebServiceWorkerCacheStorage.h" |
| +#include "third_party/WebKit/public/platform/WebServiceWorkerCacheStorageError.h" |
| + |
| +namespace content { |
| + |
| +class ServiceWorkerScriptContext; |
| + |
| +// There is one ServiceWorkerCacheStorageDispatcher per |
| +// ServiceWorkerScriptContext. It starts CacheStorage operations with messages |
| +// to the browser process and runs callbacks at operation completion. |
|
falken
2014/07/28 04:48:58
nit: extra space after "runs"
gavinp
2014/07/28 04:55:27
Done.
|
| + |
| +class ServiceWorkerCacheStorageDispatcher |
| + : public blink::WebServiceWorkerCacheStorage { |
| + public: |
| + ServiceWorkerCacheStorageDispatcher( |
| + ServiceWorkerScriptContext* script_context); |
| + virtual ~ServiceWorkerCacheStorageDispatcher(); |
| + |
| + bool OnMessageReceived(const IPC::Message& message); |
| + |
| + // Message handlers for messages from the browser process. |
| + void OnCacheStorageCreateSuccess(int request_id, int cache_id); |
| + void OnCacheStorageRenameSuccess(int request_id); |
| + void OnCacheStorageGetSuccess(int request_id, int cache_id); |
| + void OnCacheStorageDeleteSuccess(int request_id); |
| + void OnCacheStorageKeysSuccess(int request_id, |
| + const std::vector<base::string16>& keys); |
| + |
| + void OnCacheStorageCreateError( |
| + int request_id, |
| + blink::WebServiceWorkerCacheStorageError reason); |
| + void OnCacheStorageRenameError( |
| + int request_id, |
| + blink::WebServiceWorkerCacheStorageError reason); |
| + void OnCacheStorageGetError(int request_id, |
| + blink::WebServiceWorkerCacheStorageError reason); |
| + void OnCacheStorageDeleteError( |
| + int request_id, |
| + blink::WebServiceWorkerCacheStorageError reason); |
| + void OnCacheStorageKeysError(int request_id, |
| + blink::WebServiceWorkerCacheStorageError reason); |
| + |
| + // From WebServiceWorkerCacheStorage: |
| + virtual void dispatchCreate(CacheStorageWithCacheCallbacks* callbacks, |
| + const blink::WebString& key) OVERRIDE; |
| + virtual void dispatchRename(CacheStorageCallbacks* callbacks, |
| + const blink::WebString& oldKey, |
| + const blink::WebString& newKey) OVERRIDE; |
| + virtual void dispatchGet(CacheStorageWithCacheCallbacks* callbacks, |
| + const blink::WebString& key) OVERRIDE; |
| + virtual void dispatchDelete(CacheStorageCallbacks* callbacks, |
| + const blink::WebString& key) OVERRIDE; |
| + virtual void dispatchKeys(CacheStorageKeysCallbacks* callbacks) OVERRIDE; |
| + |
| + private: |
| + typedef IDMap<CacheStorageCallbacks, IDMapOwnPointer> CallbacksMap; |
| + typedef IDMap<CacheStorageWithCacheCallbacks, IDMapOwnPointer> |
| + WithCacheCallbacksMap; |
| + typedef IDMap<CacheStorageKeysCallbacks, IDMapOwnPointer> |
| + KeysCallbacksMap; |
| + |
| + // Not owned. The script context containing this object. |
| + ServiceWorkerScriptContext* script_context_; |
| + |
| + WithCacheCallbacksMap create_callbacks_; |
| + CallbacksMap rename_callbacks_; |
| + WithCacheCallbacksMap get_callbacks_; |
| + CallbacksMap delete_callbacks_; |
| + KeysCallbacksMap keys_callbacks_; |
| +}; |
| + |
| +} // namespace content |
| + |
| +#endif // CONTENT_RENDERER_SERVICE_WORKER_SERVICE_WORKER_CACHE_STORAGE_DISPATCHER_H_ |