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

Side by Side Diff: content/browser/dom_storage/dom_storage_context_proxy.cc

Issue 22297005: Move webkit/{browser,common}/dom_storage into content/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/dom_storage/dom_storage_context_impl.h" 5 #include "content/browser/dom_storage/dom_storage_context_proxy.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/message_loop/message_loop_proxy.h" 10 #include "base/message_loop/message_loop_proxy.h"
11 #include "content/browser/dom_storage/dom_storage_area.h"
12 #include "content/browser/dom_storage/dom_storage_context_impl.h"
13 #include "content/browser/dom_storage/dom_storage_task_runner.h"
11 #include "content/browser/dom_storage/session_storage_namespace_impl.h" 14 #include "content/browser/dom_storage/session_storage_namespace_impl.h"
12 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
13 #include "webkit/browser/dom_storage/dom_storage_area.h"
14 #include "webkit/browser/dom_storage/dom_storage_context.h"
15 #include "webkit/browser/dom_storage/dom_storage_task_runner.h"
16
17 using dom_storage::DomStorageArea;
18 using dom_storage::DomStorageContext;
19 using dom_storage::DomStorageTaskRunner;
20 using dom_storage::DomStorageWorkerPoolTaskRunner;
21 16
22 namespace content { 17 namespace content {
23 namespace { 18 namespace {
24 19
25 const char kLocalStorageDirectory[] = "Local Storage"; 20 const char kLocalStorageDirectory[] = "Local Storage";
26 const char kSessionStorageDirectory[] = "Session Storage"; 21 const char kSessionStorageDirectory[] = "Session Storage";
27 22
28 void InvokeLocalStorageUsageCallbackHelper( 23 void InvokeLocalStorageUsageCallbackHelper(
29 const DOMStorageContext::GetLocalStorageUsageCallback& callback, 24 const DOMStorageContext::GetLocalStorageUsageCallback& callback,
30 const std::vector<dom_storage::LocalStorageUsageInfo>* infos) { 25 const std::vector<LocalStorageUsageInfo>* infos) {
31 callback.Run(*infos); 26 callback.Run(*infos);
32 } 27 }
33 28
34 void GetLocalStorageUsageHelper( 29 void GetLocalStorageUsageHelper(
35 base::MessageLoopProxy* reply_loop, 30 base::MessageLoopProxy* reply_loop,
36 DomStorageContext* context, 31 DOMStorageContextImpl* context,
37 const DOMStorageContext::GetLocalStorageUsageCallback& callback) { 32 const DOMStorageContext::GetLocalStorageUsageCallback& callback) {
38 std::vector<dom_storage::LocalStorageUsageInfo>* infos = 33 std::vector<LocalStorageUsageInfo>* infos =
39 new std::vector<dom_storage::LocalStorageUsageInfo>; 34 new std::vector<LocalStorageUsageInfo>;
40 context->GetLocalStorageUsage(infos, true); 35 context->GetLocalStorageUsage(infos, true);
41 reply_loop->PostTask( 36 reply_loop->PostTask(
42 FROM_HERE, 37 FROM_HERE,
43 base::Bind(&InvokeLocalStorageUsageCallbackHelper, 38 base::Bind(&InvokeLocalStorageUsageCallbackHelper,
44 callback, base::Owned(infos))); 39 callback, base::Owned(infos)));
45 } 40 }
46 41
47 void InvokeSessionStorageUsageCallbackHelper( 42 void InvokeSessionStorageUsageCallbackHelper(
48 const DOMStorageContext::GetSessionStorageUsageCallback& callback, 43 const DOMStorageContext::GetSessionStorageUsageCallback& callback,
49 const std::vector<dom_storage::SessionStorageUsageInfo>* infos) { 44 const std::vector<SessionStorageUsageInfo>* infos) {
50 callback.Run(*infos); 45 callback.Run(*infos);
51 } 46 }
52 47
53 void GetSessionStorageUsageHelper( 48 void GetSessionStorageUsageHelper(
54 base::MessageLoopProxy* reply_loop, 49 base::MessageLoopProxy* reply_loop,
55 DomStorageContext* context, 50 DOMStorageContextImpl* context,
56 const DOMStorageContext::GetSessionStorageUsageCallback& callback) { 51 const DOMStorageContext::GetSessionStorageUsageCallback& callback) {
57 std::vector<dom_storage::SessionStorageUsageInfo>* infos = 52 std::vector<SessionStorageUsageInfo>* infos =
58 new std::vector<dom_storage::SessionStorageUsageInfo>; 53 new std::vector<SessionStorageUsageInfo>;
59 context->GetSessionStorageUsage(infos); 54 context->GetSessionStorageUsage(infos);
60 reply_loop->PostTask( 55 reply_loop->PostTask(
61 FROM_HERE, 56 FROM_HERE,
62 base::Bind(&InvokeSessionStorageUsageCallbackHelper, 57 base::Bind(&InvokeSessionStorageUsageCallbackHelper,
63 callback, base::Owned(infos))); 58 callback, base::Owned(infos)));
64 } 59 }
65 60
66 } // namespace 61 } // namespace
67 62
68 DOMStorageContextImpl::DOMStorageContextImpl( 63 DOMStorageContextProxy::DOMStorageContextProxy(
69 const base::FilePath& data_path, 64 const base::FilePath& data_path,
70 quota::SpecialStoragePolicy* special_storage_policy) { 65 quota::SpecialStoragePolicy* special_storage_policy) {
71 base::SequencedWorkerPool* worker_pool = BrowserThread::GetBlockingPool(); 66 base::SequencedWorkerPool* worker_pool = BrowserThread::GetBlockingPool();
72 context_ = new dom_storage::DomStorageContext( 67 context_ = new DOMStorageContextImpl(
73 data_path.empty() ? data_path 68 data_path.empty() ? data_path
74 : data_path.AppendASCII(kLocalStorageDirectory), 69 : data_path.AppendASCII(kLocalStorageDirectory),
75 data_path.empty() ? data_path 70 data_path.empty() ? data_path
76 : data_path.AppendASCII(kSessionStorageDirectory), 71 : data_path.AppendASCII(kSessionStorageDirectory),
77 special_storage_policy, 72 special_storage_policy,
78 new DomStorageWorkerPoolTaskRunner( 73 new DOMStorageWorkerPoolTaskRunner(
79 worker_pool, 74 worker_pool,
80 worker_pool->GetNamedSequenceToken("dom_storage_primary"), 75 worker_pool->GetNamedSequenceToken("dom_storage_primary"),
81 worker_pool->GetNamedSequenceToken("dom_storage_commit"), 76 worker_pool->GetNamedSequenceToken("dom_storage_commit"),
82 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO) 77 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)
83 .get())); 78 .get()));
84 } 79 }
85 80
86 DOMStorageContextImpl::~DOMStorageContextImpl() { 81 DOMStorageContextProxy::~DOMStorageContextProxy() {
87 } 82 }
88 83
89 void DOMStorageContextImpl::GetLocalStorageUsage( 84 void DOMStorageContextProxy::GetLocalStorageUsage(
90 const GetLocalStorageUsageCallback& callback) { 85 const GetLocalStorageUsageCallback& callback) {
91 DCHECK(context_.get()); 86 DCHECK(context_.get());
92 context_->task_runner() 87 context_->task_runner()
93 ->PostShutdownBlockingTask(FROM_HERE, 88 ->PostShutdownBlockingTask(FROM_HERE,
94 DomStorageTaskRunner::PRIMARY_SEQUENCE, 89 DOMStorageTaskRunner::PRIMARY_SEQUENCE,
95 base::Bind(&GetLocalStorageUsageHelper, 90 base::Bind(&GetLocalStorageUsageHelper,
96 base::MessageLoopProxy::current(), 91 base::MessageLoopProxy::current(),
97 context_, 92 context_,
98 callback)); 93 callback));
99 } 94 }
100 95
101 void DOMStorageContextImpl::GetSessionStorageUsage( 96 void DOMStorageContextProxy::GetSessionStorageUsage(
102 const GetSessionStorageUsageCallback& callback) { 97 const GetSessionStorageUsageCallback& callback) {
103 DCHECK(context_.get()); 98 DCHECK(context_.get());
104 context_->task_runner() 99 context_->task_runner()
105 ->PostShutdownBlockingTask(FROM_HERE, 100 ->PostShutdownBlockingTask(FROM_HERE,
106 DomStorageTaskRunner::PRIMARY_SEQUENCE, 101 DOMStorageTaskRunner::PRIMARY_SEQUENCE,
107 base::Bind(&GetSessionStorageUsageHelper, 102 base::Bind(&GetSessionStorageUsageHelper,
108 base::MessageLoopProxy::current(), 103 base::MessageLoopProxy::current(),
109 context_, 104 context_,
110 callback)); 105 callback));
111 } 106 }
112 107
113 void DOMStorageContextImpl::DeleteLocalStorage(const GURL& origin) { 108 void DOMStorageContextProxy::DeleteLocalStorage(const GURL& origin) {
114 DCHECK(context_.get()); 109 DCHECK(context_.get());
115 context_->task_runner()->PostShutdownBlockingTask( 110 context_->task_runner()->PostShutdownBlockingTask(
116 FROM_HERE, 111 FROM_HERE,
117 DomStorageTaskRunner::PRIMARY_SEQUENCE, 112 DOMStorageTaskRunner::PRIMARY_SEQUENCE,
118 base::Bind(&DomStorageContext::DeleteLocalStorage, context_, origin)); 113 base::Bind(&DOMStorageContextImpl::DeleteLocalStorage, context_, origin));
119 } 114 }
120 115
121 void DOMStorageContextImpl::DeleteSessionStorage( 116 void DOMStorageContextProxy::DeleteSessionStorage(
122 const dom_storage::SessionStorageUsageInfo& usage_info) { 117 const SessionStorageUsageInfo& usage_info) {
123 DCHECK(context_.get()); 118 DCHECK(context_.get());
124 context_->task_runner()->PostShutdownBlockingTask( 119 context_->task_runner()->PostShutdownBlockingTask(
125 FROM_HERE, 120 FROM_HERE,
126 DomStorageTaskRunner::PRIMARY_SEQUENCE, 121 DOMStorageTaskRunner::PRIMARY_SEQUENCE,
127 base::Bind( 122 base::Bind(&DOMStorageContextImpl::DeleteSessionStorage,
128 &DomStorageContext::DeleteSessionStorage, context_, usage_info)); 123 context_, usage_info));
129 } 124 }
130 125
131 void DOMStorageContextImpl::SetSaveSessionStorageOnDisk() { 126 void DOMStorageContextProxy::SetSaveSessionStorageOnDisk() {
132 DCHECK(context_.get()); 127 DCHECK(context_.get());
133 context_->SetSaveSessionStorageOnDisk(); 128 context_->SetSaveSessionStorageOnDisk();
134 } 129 }
135 130
136 scoped_refptr<SessionStorageNamespace> 131 scoped_refptr<SessionStorageNamespace>
137 DOMStorageContextImpl::RecreateSessionStorage( 132 DOMStorageContextProxy::RecreateSessionStorage(
138 const std::string& persistent_id) { 133 const std::string& persistent_id) {
139 return scoped_refptr<SessionStorageNamespace>( 134 return scoped_refptr<SessionStorageNamespace>(
140 new SessionStorageNamespaceImpl(this, persistent_id)); 135 new SessionStorageNamespaceImpl(this, persistent_id));
141 } 136 }
142 137
143 void DOMStorageContextImpl::StartScavengingUnusedSessionStorage() { 138 void DOMStorageContextProxy::StartScavengingUnusedSessionStorage() {
144 DCHECK(context_.get()); 139 DCHECK(context_.get());
145 context_->task_runner()->PostShutdownBlockingTask( 140 context_->task_runner()->PostShutdownBlockingTask(
146 FROM_HERE, 141 FROM_HERE,
147 DomStorageTaskRunner::PRIMARY_SEQUENCE, 142 DOMStorageTaskRunner::PRIMARY_SEQUENCE,
148 base::Bind(&DomStorageContext::StartScavengingUnusedSessionStorage, 143 base::Bind(&DOMStorageContextImpl::StartScavengingUnusedSessionStorage,
149 context_)); 144 context_));
150 } 145 }
151 146
152 void DOMStorageContextImpl::PurgeMemory() { 147 void DOMStorageContextProxy::PurgeMemory() {
153 DCHECK(context_.get()); 148 DCHECK(context_.get());
154 context_->task_runner()->PostShutdownBlockingTask( 149 context_->task_runner()->PostShutdownBlockingTask(
155 FROM_HERE, 150 FROM_HERE,
156 DomStorageTaskRunner::PRIMARY_SEQUENCE, 151 DOMStorageTaskRunner::PRIMARY_SEQUENCE,
157 base::Bind(&DomStorageContext::PurgeMemory, context_)); 152 base::Bind(&DOMStorageContextImpl::PurgeMemory, context_));
158 } 153 }
159 154
160 void DOMStorageContextImpl::SetForceKeepSessionState() { 155 void DOMStorageContextProxy::SetForceKeepSessionState() {
161 DCHECK(context_.get()); 156 DCHECK(context_.get());
162 context_->task_runner()->PostShutdownBlockingTask( 157 context_->task_runner()->PostShutdownBlockingTask(
163 FROM_HERE, 158 FROM_HERE,
164 DomStorageTaskRunner::PRIMARY_SEQUENCE, 159 DOMStorageTaskRunner::PRIMARY_SEQUENCE,
165 base::Bind(&DomStorageContext::SetForceKeepSessionState, context_)); 160 base::Bind(&DOMStorageContextImpl::SetForceKeepSessionState, context_));
166 } 161 }
167 162
168 void DOMStorageContextImpl::Shutdown() { 163 void DOMStorageContextProxy::Shutdown() {
169 DCHECK(context_.get()); 164 DCHECK(context_.get());
170 context_->task_runner()->PostShutdownBlockingTask( 165 context_->task_runner()->PostShutdownBlockingTask(
171 FROM_HERE, 166 FROM_HERE,
172 DomStorageTaskRunner::PRIMARY_SEQUENCE, 167 DOMStorageTaskRunner::PRIMARY_SEQUENCE,
173 base::Bind(&DomStorageContext::Shutdown, context_)); 168 base::Bind(&DOMStorageContextImpl::Shutdown, context_));
174 } 169 }
175 170
176 } // namespace content 171 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698