Index: content/renderer/dom_storage/dom_storage_dispatcher.h |
=================================================================== |
--- content/renderer/dom_storage/dom_storage_dispatcher.h (revision 139572) |
+++ content/renderer/dom_storage/dom_storage_dispatcher.h (working copy) |
@@ -6,24 +6,43 @@ |
#define CONTENT_RENDERER_DOM_STORAGE_DOM_STORAGE_DISPATCHER_H_ |
#pragma once |
-#include "ipc/ipc_channel.h" |
+#include "base/memory/ref_counted.h" |
+class GURL; |
struct DOMStorageMsg_Event_Params; |
+namespace dom_storage { |
+class DomStorageCachedArea; |
+} |
+namespace IPC { |
+class Message; |
+} |
// Dispatches DomStorage related messages sent to a renderer process from the |
// main browser process. There is one instance per child process. Messages |
// are dispatched on the main renderer thread. The RenderThreadImpl |
-// creates an instance and delegates calls to it. |
-class DomStorageDispatcher : public IPC::Channel::Listener { |
+// creates an instance and delegates calls to it. This classes also manages |
+// the collection of DomStorageCachedAreas that are active in the process. |
+class DomStorageDispatcher { |
public: |
- DomStorageDispatcher() {} |
+ DomStorageDispatcher(); |
+ ~DomStorageDispatcher(); |
- // IPC::Channel::Listener implementation |
- virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; |
+ // Each call to open should be balanced with a call to close. |
+ scoped_refptr<dom_storage::DomStorageCachedArea> OpenCachedArea( |
+ int connection_id, int64 namespace_id, const GURL& origin); |
+ void CloseCachedArea( |
+ int connection_id, dom_storage::DomStorageCachedArea* area); |
+ bool OnMessageReceived(const IPC::Message& msg); |
+ |
private: |
+ class ProxyImpl; |
+ |
// IPC message handlers |
void OnStorageEvent(const DOMStorageMsg_Event_Params& params); |
+ void OnAsyncOperationComplete(bool success); |
+ |
+ scoped_refptr<ProxyImpl> proxy_; |
}; |
#endif // CONTENT_RENDERER_DOM_STORAGE_DOM_STORAGE_DISPATCHER_H_ |