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

Side by Side Diff: content/browser/in_process_webkit/dom_storage_context_impl.cc

Issue 9726022: Revert 127573 - DOMStorageContextImpl that's implemented in terms of the new dom_storage classes. A… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 9 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/in_process_webkit/dom_storage_context_impl.h" 5 #include "content/browser/in_process_webkit/dom_storage_context_impl.h"
6 6
7 #ifdef ENABLE_NEW_DOM_STORAGE_BACKEND 7 #ifdef ENABLE_NEW_DOM_STORAGE_BACKEND
8 // This class is replaced by a new implementation in 8 // This class is replaced by a new implementation in
9 // content/browser/dom_storage/dom_storage_context_impl_new.h 9 // content/browser/dom_storage/dom_storage_context_impl_new.h
10 #else 10 #else
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 message_filter_set_.erase(message_filter); 191 message_filter_set_.erase(message_filter);
192 } 192 }
193 193
194 const DOMStorageContextImpl::MessageFilterSet* 194 const DOMStorageContextImpl::MessageFilterSet*
195 DOMStorageContextImpl::GetMessageFilterSet() const { 195 DOMStorageContextImpl::GetMessageFilterSet() const {
196 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 196 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
197 return &message_filter_set_; 197 return &message_filter_set_;
198 } 198 }
199 199
200 void DOMStorageContextImpl::PurgeMemory() { 200 void DOMStorageContextImpl::PurgeMemory() {
201 if (!webkit_message_loop_->RunsTasksOnCurrentThread()) {
202 webkit_message_loop_->PostTask(
203 FROM_HERE,
204 base::Bind(&DOMStorageContextImpl::PurgeMemory, this));
205 return;
206 }
207
208 // It is only safe to purge the memory from the LocalStorage namespace, 201 // It is only safe to purge the memory from the LocalStorage namespace,
209 // because it is backed by disk and can be reloaded later. If we purge a 202 // because it is backed by disk and can be reloaded later. If we purge a
210 // SessionStorage namespace, its data will be gone forever, because it isn't 203 // SessionStorage namespace, its data will be gone forever, because it isn't
211 // currently backed by disk. 204 // currently backed by disk.
212 DOMStorageNamespace* local_storage = 205 DOMStorageNamespace* local_storage =
213 GetStorageNamespace(kLocalStorageNamespaceId, false); 206 GetStorageNamespace(kLocalStorageNamespaceId, false);
214 if (local_storage) 207 if (local_storage)
215 local_storage->PurgeMemory(); 208 local_storage->PurgeMemory();
216 } 209 }
217 210
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 file_util::FileEnumerator file_enumerator( 270 file_util::FileEnumerator file_enumerator(
278 data_path_.Append(kLocalStorageDirectory), false, 271 data_path_.Append(kLocalStorageDirectory), false,
279 file_util::FileEnumerator::FILES); 272 file_util::FileEnumerator::FILES);
280 for (FilePath file_path = file_enumerator.Next(); !file_path.empty(); 273 for (FilePath file_path = file_enumerator.Next(); !file_path.empty();
281 file_path = file_enumerator.Next()) { 274 file_path = file_enumerator.Next()) {
282 if (file_path.Extension() == kLocalStorageExtension) 275 if (file_path.Extension() == kLocalStorageExtension)
283 file_util::Delete(file_path, false); 276 file_util::Delete(file_path, false);
284 } 277 }
285 } 278 }
286 279
287 void DOMStorageContextImpl::SetClearLocalState(bool clear_local_state) {
288 if (!webkit_message_loop_->RunsTasksOnCurrentThread()) {
289 webkit_message_loop_->PostTask(
290 FROM_HERE,
291 base::Bind(
292 &DOMStorageContextImpl::SetClearLocalState,
293 this, clear_local_state));
294 return;
295 }
296 clear_local_state_on_exit_ = clear_local_state;
297 }
298
299 void DOMStorageContextImpl::SaveSessionState() {
300 if (!webkit_message_loop_->RunsTasksOnCurrentThread()) {
301 webkit_message_loop_->PostTask(
302 FROM_HERE,
303 base::Bind(&DOMStorageContextImpl::SaveSessionState, this));
304 return;
305 }
306 save_session_state_ = true;
307 }
308
309 DOMStorageNamespace* DOMStorageContextImpl::CreateLocalStorage() { 280 DOMStorageNamespace* DOMStorageContextImpl::CreateLocalStorage() {
310 FilePath dir_path; 281 FilePath dir_path;
311 if (!data_path_.empty()) 282 if (!data_path_.empty())
312 dir_path = data_path_.Append(kLocalStorageDirectory); 283 dir_path = data_path_.Append(kLocalStorageDirectory);
313 DOMStorageNamespace* new_namespace = 284 DOMStorageNamespace* new_namespace =
314 DOMStorageNamespace::CreateLocalStorageNamespace(this, dir_path); 285 DOMStorageNamespace::CreateLocalStorageNamespace(this, dir_path);
315 RegisterStorageNamespace(new_namespace); 286 RegisterStorageNamespace(new_namespace);
316 return new_namespace; 287 return new_namespace;
317 } 288 }
318 289
(...skipping 19 matching lines...) Expand all
338 DOMStorageNamespace* existing_namespace = 309 DOMStorageNamespace* existing_namespace =
339 GetStorageNamespace(existing_id, false); 310 GetStorageNamespace(existing_id, false);
340 // If nothing exists, then there's nothing to clone. 311 // If nothing exists, then there's nothing to clone.
341 if (existing_namespace) 312 if (existing_namespace)
342 RegisterStorageNamespace(existing_namespace->Copy(clone_id)); 313 RegisterStorageNamespace(existing_namespace->Copy(clone_id));
343 } 314 }
344 315
345 void DOMStorageContextImpl::GetAllStorageFiles( 316 void DOMStorageContextImpl::GetAllStorageFiles(
346 const GetAllStorageFilesCallback& callback) { 317 const GetAllStorageFilesCallback& callback) {
347 if (!webkit_message_loop_->RunsTasksOnCurrentThread()) { 318 if (!webkit_message_loop_->RunsTasksOnCurrentThread()) {
348 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
349 webkit_message_loop_->PostTask( 319 webkit_message_loop_->PostTask(
350 FROM_HERE, 320 FROM_HERE,
351 base::Bind( 321 base::Bind(
352 &DOMStorageContextImpl::GetAllStorageFiles, this, callback)); 322 &DOMStorageContextImpl::GetAllStorageFiles, this, callback));
353 return; 323 return;
354 } 324 }
355 325
356 std::vector<FilePath> files; 326 std::vector<FilePath> files;
357 file_util::FileEnumerator file_enumerator( 327 file_util::FileEnumerator file_enumerator(
358 data_path_.Append(kLocalStorageDirectory), false, 328 data_path_.Append(kLocalStorageDirectory), false,
(...skipping 16 matching lines...) Expand all
375 callback.Run(files); 345 callback.Run(files);
376 } 346 }
377 347
378 FilePath DOMStorageContextImpl::GetFilePath(const string16& origin_id) const { 348 FilePath DOMStorageContextImpl::GetFilePath(const string16& origin_id) const {
379 FilePath storage_dir = data_path_.Append(kLocalStorageDirectory); 349 FilePath storage_dir = data_path_.Append(kLocalStorageDirectory);
380 FilePath::StringType id = webkit_glue::WebStringToFilePathString(origin_id); 350 FilePath::StringType id = webkit_glue::WebStringToFilePathString(origin_id);
381 return storage_dir.Append(id.append(kLocalStorageExtension)); 351 return storage_dir.Append(id.append(kLocalStorageExtension));
382 } 352 }
383 353
384 #endif // ENABLE_NEW_DOM_STORAGE_BACKEND 354 #endif // ENABLE_NEW_DOM_STORAGE_BACKEND
355
OLDNEW
« no previous file with comments | « content/browser/in_process_webkit/dom_storage_context_impl.h ('k') | content/browser/in_process_webkit/dom_storage_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698