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

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

Issue 560024: Reland 37913. Clear local state on exit. (Closed)
Patch Set: Created 10 years, 10 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // source code is governed by a BSD-style license that can be found in the 2 // Use of this source code is governed by a BSD-style license that can be
3 // LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/in_process_webkit/dom_storage_context.h" 5 #include "chrome/browser/in_process_webkit/dom_storage_context.h"
6 6
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/string_util.h"
9 #include "chrome/browser/chrome_thread.h" 10 #include "chrome/browser/chrome_thread.h"
10 #include "chrome/browser/in_process_webkit/dom_storage_area.h" 11 #include "chrome/browser/in_process_webkit/dom_storage_area.h"
11 #include "chrome/browser/in_process_webkit/dom_storage_namespace.h" 12 #include "chrome/browser/in_process_webkit/dom_storage_namespace.h"
12 #include "chrome/browser/in_process_webkit/webkit_context.h" 13 #include "chrome/browser/in_process_webkit/webkit_context.h"
13 #include "chrome/common/dom_storage_common.h" 14 #include "chrome/common/dom_storage_common.h"
15 #include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h"
16 #include "third_party/WebKit/WebKit/chromium/public/WebString.h"
14 #include "webkit/glue/glue_util.h" 17 #include "webkit/glue/glue_util.h"
18 #include "webkit/glue/webkit_glue.h"
15 19
16 const FilePath::CharType DOMStorageContext::kLocalStorageDirectory[] = 20 const FilePath::CharType DOMStorageContext::kLocalStorageDirectory[] =
17 FILE_PATH_LITERAL("Local Storage"); 21 FILE_PATH_LITERAL("Local Storage");
18 22
19 const FilePath::CharType DOMStorageContext::kLocalStorageExtension[] = 23 const FilePath::CharType DOMStorageContext::kLocalStorageExtension[] =
20 FILE_PATH_LITERAL(".localstorage"); 24 FILE_PATH_LITERAL(".localstorage");
21 25
22 static const FilePath::CharType kLocalStorageOldPath[] = 26 static const FilePath::CharType kLocalStorageOldPath[] =
23 FILE_PATH_LITERAL("localStorage"); 27 FILE_PATH_LITERAL("localStorage");
24 28
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 /* static */ 233 /* static */
230 void DOMStorageContext::CompleteCloningSessionStorage( 234 void DOMStorageContext::CompleteCloningSessionStorage(
231 DOMStorageContext* context, int64 existing_id, int64 clone_id) { 235 DOMStorageContext* context, int64 existing_id, int64 clone_id) {
232 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); 236 DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT));
233 DOMStorageNamespace* existing_namespace = 237 DOMStorageNamespace* existing_namespace =
234 context->GetStorageNamespace(existing_id, false); 238 context->GetStorageNamespace(existing_id, false);
235 // If nothing exists, then there's nothing to clone. 239 // If nothing exists, then there's nothing to clone.
236 if (existing_namespace) 240 if (existing_namespace)
237 context->RegisterStorageNamespace(existing_namespace->Copy(clone_id)); 241 context->RegisterStorageNamespace(existing_namespace->Copy(clone_id));
238 } 242 }
243
244 // static
245 void DOMStorageContext::ClearLocalState(const FilePath& profile_path,
246 const char* url_scheme_to_be_skip) {
247 file_util::FileEnumerator file_enumerator(profile_path.Append(
248 kLocalStorageDirectory), false, file_util::FileEnumerator::FILES);
249 for (FilePath file_path = file_enumerator.Next(); !file_path.empty();
250 file_path = file_enumerator.Next()) {
251 if (file_path.Extension() == kLocalStorageExtension) {
252 scoped_ptr<WebKit::WebSecurityOrigin> web_security_origin(
253 WebKit::WebSecurityOrigin::createFromDatabaseIdentifier(
254 webkit_glue::FilePathToWebString(file_path.BaseName())));
255 if (!EqualsASCII(web_security_origin->protocol(), url_scheme_to_be_skip))
256 file_util::Delete(file_path, false);
257 }
258 }
259 }
OLDNEW
« no previous file with comments | « chrome/browser/in_process_webkit/dom_storage_context.h ('k') | chrome/browser/net/sqlite_persistent_cookie_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698