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

Side by Side Diff: chrome/browser/in_process_webkit/dom_storage_context.h

Issue 5722003: Make DOMStorageDispatcherHost be a message filter (and rename it accordingly)... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: get rid of _DELAY_HANDLE macro Created 10 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef CHROME_BROWSER_IN_PROCESS_WEBKIT_DOM_STORAGE_CONTEXT_H_ 5 #ifndef CHROME_BROWSER_IN_PROCESS_WEBKIT_DOM_STORAGE_CONTEXT_H_
6 #define CHROME_BROWSER_IN_PROCESS_WEBKIT_DOM_STORAGE_CONTEXT_H_ 6 #define CHROME_BROWSER_IN_PROCESS_WEBKIT_DOM_STORAGE_CONTEXT_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
11 11
12 #include "base/file_path.h" 12 #include "base/file_path.h"
13 #include "base/string16.h" 13 #include "base/string16.h"
14 #include "base/time.h" 14 #include "base/time.h"
15 15
16 class DOMStorageArea; 16 class DOMStorageArea;
17 class DOMStorageDispatcherHost; 17 class DOMStorageMessageFilter;
18 class DOMStorageNamespace; 18 class DOMStorageNamespace;
19 class WebKitContext; 19 class WebKitContext;
20 20
21 // This is owned by WebKitContext and is all the dom storage information that's 21 // This is owned by WebKitContext and is all the dom storage information that's
22 // shared by all the ResourceMessageFilter/DOMStorageDispatcherHosts that share 22 // shared by all the DOMStorageMessageFilters that share the same profile. The
23 // the same profile. The specifics of responsibilities are fairly well 23 // specifics of responsibilities are fairly well documented here and in
24 // documented here and in StorageNamespace and StorageArea. Everything is only 24 // StorageNamespace and StorageArea. Everything is only to be accessed on the
25 // to be accessed on the WebKit thread unless noted otherwise. 25 // WebKit thread unless noted otherwise.
26 // 26 //
27 // NOTE: Virtual methods facilitate mocking functions for testing. 27 // NOTE: Virtual methods facilitate mocking functions for testing.
28 class DOMStorageContext { 28 class DOMStorageContext {
29 public: 29 public:
30 explicit DOMStorageContext(WebKitContext* webkit_context); 30 explicit DOMStorageContext(WebKitContext* webkit_context);
31 virtual ~DOMStorageContext(); 31 virtual ~DOMStorageContext();
32 32
33 // Allocate a new storage area id. Only call on the WebKit thread. 33 // Allocate a new storage area id. Only call on the WebKit thread.
34 int64 AllocateStorageAreaId(); 34 int64 AllocateStorageAreaId();
35 35
(...skipping 11 matching lines...) Expand all
47 DOMStorageArea* GetStorageArea(int64 id); 47 DOMStorageArea* GetStorageArea(int64 id);
48 48
49 // Called on WebKit thread when a session storage namespace can be deleted. 49 // Called on WebKit thread when a session storage namespace can be deleted.
50 void DeleteSessionStorageNamespace(int64 namespace_id); 50 void DeleteSessionStorageNamespace(int64 namespace_id);
51 51
52 // Get a namespace from an id. What's returned is owned by this class. If 52 // Get a namespace from an id. What's returned is owned by this class. If
53 // allocation_allowed is true, then this function will create the storage 53 // allocation_allowed is true, then this function will create the storage
54 // namespace if it hasn't been already. 54 // namespace if it hasn't been already.
55 DOMStorageNamespace* GetStorageNamespace(int64 id, bool allocation_allowed); 55 DOMStorageNamespace* GetStorageNamespace(int64 id, bool allocation_allowed);
56 56
57 // Sometimes an event from one DOM storage dispatcher host requires 57 // Sometimes an event from one DOM storage message filter requires
58 // communication to all of them. 58 // communication to all of them.
59 typedef std::set<DOMStorageDispatcherHost*> DispatcherHostSet; 59 typedef std::set<DOMStorageMessageFilter*> MessageFilterSet;
60 void RegisterDispatcherHost(DOMStorageDispatcherHost* dispatcher_host); 60 void RegisterMessageFilter(DOMStorageMessageFilter* message_filter);
61 void UnregisterDispatcherHost(DOMStorageDispatcherHost* dispatcher_host); 61 void UnregisterMessageFilter(DOMStorageMessageFilter* MessageFilter);
62 const DispatcherHostSet* GetDispatcherHostSet() const; 62 const MessageFilterSet* GetMessageFilterSet() const;
63 63
64 // Tells storage namespaces to purge any memory they do not need. 64 // Tells storage namespaces to purge any memory they do not need.
65 virtual void PurgeMemory(); 65 virtual void PurgeMemory();
66 66
67 // Delete any local storage files that have been touched since the cutoff 67 // Delete any local storage files that have been touched since the cutoff
68 // date that's supplied. 68 // date that's supplied.
69 void DeleteDataModifiedSince(const base::Time& cutoff, 69 void DeleteDataModifiedSince(const base::Time& cutoff,
70 const char* url_scheme_to_be_skipped, 70 const char* url_scheme_to_be_skipped,
71 const std::vector<string16>& protected_origins); 71 const std::vector<string16>& protected_origins);
72 72
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 // True if the destructor should delete its files. 126 // True if the destructor should delete its files.
127 bool clear_local_state_on_exit_; 127 bool clear_local_state_on_exit_;
128 128
129 // Path where the profile data is stored. 129 // Path where the profile data is stored.
130 // TODO(pastarmovj): Keep in mind that unlike indexed db data_path_ variable 130 // TODO(pastarmovj): Keep in mind that unlike indexed db data_path_ variable
131 // this one still has to point to the upper level dir because of the 131 // this one still has to point to the upper level dir because of the
132 // MigrateLocalStorageDirectory function. Once this function disappears we can 132 // MigrateLocalStorageDirectory function. Once this function disappears we can
133 // make it point directly to the dom storage path. 133 // make it point directly to the dom storage path.
134 FilePath data_path_; 134 FilePath data_path_;
135 135
136 // All the DOMStorageDispatcherHosts that are attached to us. ONLY USE ON THE 136 // All the DOMStorageMessageFilters that are attached to us. ONLY USE ON THE
137 // IO THREAD! 137 // IO THREAD!
138 DispatcherHostSet dispatcher_host_set_; 138 MessageFilterSet message_filter_set_;
139 139
140 // Maps ids to StorageAreas. We do NOT own these objects. StorageNamespace 140 // Maps ids to StorageAreas. We do NOT own these objects. StorageNamespace
141 // (which does own them) will notify us when we should remove the entries. 141 // (which does own them) will notify us when we should remove the entries.
142 typedef std::map<int64, DOMStorageArea*> StorageAreaMap; 142 typedef std::map<int64, DOMStorageArea*> StorageAreaMap;
143 StorageAreaMap storage_area_map_; 143 StorageAreaMap storage_area_map_;
144 144
145 // Maps ids to StorageNamespaces. We own these objects. 145 // Maps ids to StorageNamespaces. We own these objects.
146 typedef std::map<int64, DOMStorageNamespace*> StorageNamespaceMap; 146 typedef std::map<int64, DOMStorageNamespace*> StorageNamespaceMap;
147 StorageNamespaceMap storage_namespace_map_; 147 StorageNamespaceMap storage_namespace_map_;
148 148
149 DISALLOW_IMPLICIT_CONSTRUCTORS(DOMStorageContext); 149 DISALLOW_IMPLICIT_CONSTRUCTORS(DOMStorageContext);
150 }; 150 };
151 151
152 #endif // CHROME_BROWSER_IN_PROCESS_WEBKIT_DOM_STORAGE_CONTEXT_H_ 152 #endif // CHROME_BROWSER_IN_PROCESS_WEBKIT_DOM_STORAGE_CONTEXT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698