Chromium Code Reviews| Index: content/browser/browser_context.cc |
| diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc |
| index 522ccd108edc29658a73f380f2713a33e3b10a37..155995d97162ec3e042ad0e014f91cca5fbd45db 100644 |
| --- a/content/browser/browser_context.cc |
| +++ b/content/browser/browser_context.cc |
| @@ -38,6 +38,8 @@ static const char* kDownloadManagerKeyName = "download_manager"; |
| static const char* kFileSystemContextKeyName = "content_file_system_context"; |
| static const char* kIndexedDBContextKeyName = "content_indexed_db_context"; |
| static const char* kQuotaManagerKeyName = "content_quota_manager"; |
| +static const char* kSaveSessionStorageOnDiskKeyName = |
| + "save_session_storage_on_disk"; |
| namespace content { |
| @@ -80,9 +82,12 @@ void CreateQuotaManagerAndClients(BrowserContext* context) { |
| context->SetUserData(kDatabaseTrackerKeyName, |
| new UserDataAdapter<DatabaseTracker>(db_tracker)); |
| + bool session_storage_on_disk = |
| + context->GetUserData(kSaveSessionStorageOnDiskKeyName) != 0; |
| FilePath path = context->IsOffTheRecord() ? FilePath() : context->GetPath(); |
| scoped_refptr<DOMStorageContextImpl> dom_storage_context = |
| - new DOMStorageContextImpl(path, context->GetSpecialStoragePolicy()); |
| + new DOMStorageContextImpl(path, context->GetSpecialStoragePolicy(), |
| + session_storage_on_disk); |
| context->SetUserData( |
| kDOMStorageContextKeyName, |
| new UserDataAdapter<DOMStorageContextImpl>(dom_storage_context)); |
| @@ -246,6 +251,19 @@ void BrowserContext::PurgeMemory(BrowserContext* browser_context) { |
| GetDOMStorageContextImpl(browser_context)->PurgeMemory(); |
| } |
| +// static |
| +bool BrowserContext::SetSaveSessionStorageOnDisk( |
| + BrowserContext* browser_context, bool save_session_storage_on_disk) { |
| + if (browser_context->GetUserData(kQuotaManagerKeyName)) { |
| + // Too late. |
|
michaeln
2012/07/10 01:16:58
Is this case ever to be expected, if not should we
marja
2012/07/10 13:40:52
Done. DCHECK added. I wasn't sure if it's ok to ad
|
| + return false; |
| + } |
| + browser_context->SetUserData( |
| + kSaveSessionStorageOnDiskKeyName, |
| + save_session_storage_on_disk ? new base::SupportsUserData::Data() : 0); |
| + return true; |
| +} |
| + |
| BrowserContext::~BrowserContext() { |
| // These message loop checks are just to avoid leaks in unittests. |
| if (GetUserData(kDatabaseTrackerKeyName) && |