Chromium Code Reviews| Index: content/browser/in_process_webkit/dom_storage_context.cc |
| diff --git a/content/browser/in_process_webkit/dom_storage_context.cc b/content/browser/in_process_webkit/dom_storage_context.cc |
| index 065d8cff7d8905283ddbe57b258619e5f6766a83..95a5074a4dbcec80fb3f862c103741fcbd2342df 100644 |
| --- a/content/browser/in_process_webkit/dom_storage_context.cc |
| +++ b/content/browser/in_process_webkit/dom_storage_context.cc |
| @@ -52,6 +52,9 @@ void ClearLocalState(const FilePath& domstorage_path, |
| const FilePath::CharType DOMStorageContext::kLocalStorageDirectory[] = |
| FILE_PATH_LITERAL("Local Storage"); |
| +const FilePath::CharType DOMStorageContext::kSessionStorageDirectory[] = |
| + FILE_PATH_LITERAL("Session Storage"); |
| + |
| const FilePath::CharType DOMStorageContext::kLocalStorageExtension[] = |
| FILE_PATH_LITERAL(".localstorage"); |
| @@ -164,6 +167,20 @@ DOMStorageNamespace* DOMStorageContext::GetStorageNamespace( |
| return CreateSessionStorage(id); |
| } |
| +DOMStorageNamespace* DOMStorageContext::RecreateSessionStorageNamespace( |
| + int64 id, |
| + const FilePath& session_storage_directory) { |
| + FilePath dir_path; |
| + if (!data_path_.empty()) { |
| + dir_path = data_path_.Append(kSessionStorageDirectory) |
|
michaeln
2011/12/13 20:40:03
in what circumstances is data_path_ empty, i'm gue
marja
2012/01/11 15:17:53
Yes.
|
| + .Append(session_storage_directory); |
| + } |
| + DOMStorageNamespace* new_namespace = |
| + DOMStorageNamespace::CreateSessionStorageNamespace(this, dir_path, id); |
| + RegisterStorageNamespace(new_namespace); |
| + return new_namespace; |
| +} |
| + |
| void DOMStorageContext::RegisterMessageFilter( |
| DOMStorageMessageFilter* message_filter) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| @@ -265,8 +282,18 @@ DOMStorageNamespace* DOMStorageContext::CreateLocalStorage() { |
| DOMStorageNamespace* DOMStorageContext::CreateSessionStorage( |
| int64 namespace_id) { |
| + FilePath dir_path; |
| + if (!data_path_.empty()) { |
| + // We cannot use derive the directory name for the sessionStorage databases |
|
jochen (gone - plz use gerrit)
2011/12/13 13:47:32
remove "use"
marja
2012/01/11 15:17:53
Done.
|
| + // directly from |namespace_id|. There is no guarantee that the same |
| + // directory won't be created before we restore the session. |
|
michaeln
2011/12/13 20:40:03
can you say more about the latter part of the comm
marja
2012/01/11 15:17:53
This was inaccurate, changed it to "There is no gu
|
| + file_util::CreateDirectory(data_path_.Append(kSessionStorageDirectory)); |
| + file_util::CreateTemporaryDirInDir( |
| + data_path_.Append(kSessionStorageDirectory), "", &dir_path); |
|
michaeln
2011/12/13 20:40:03
where/when are these directories deleted?
marja
2012/01/11 15:17:53
The deletion code is not yet in this CL, but the d
|
| + } |
| DOMStorageNamespace* new_namespace = |
| - DOMStorageNamespace::CreateSessionStorageNamespace(this, namespace_id); |
| + DOMStorageNamespace::CreateSessionStorageNamespace(this, dir_path, |
| + namespace_id); |
| RegisterStorageNamespace(new_namespace); |
| return new_namespace; |
| } |