Chromium Code Reviews| Index: content/browser/browser_context.cc |
| diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc |
| index cbfd2ca7ddfe1fb7e45b733d0950c2775ffb2ef0..41ca5f58e9e5d748dd241e3034914c71fadf2f97 100644 |
| --- a/content/browser/browser_context.cc |
| +++ b/content/browser/browser_context.cc |
| @@ -37,9 +37,10 @@ namespace { |
| const char* kDownloadManagerKeyName = "download_manager"; |
| const char* kStorageParitionMapKeyName = "content_storage_partition_map"; |
| -StoragePartition* GetStoragePartitionByPartitionId( |
| - BrowserContext* browser_context, |
| - const std::string& partition_id) { |
| +StoragePartition* GetStoragePartitionHelper(BrowserContext* browser_context, |
|
Charlie Reis
2012/11/07 02:36:34
nit: This sounds like we should return a Helper ob
nasko
2012/11/07 17:47:01
Done.
|
| + const std::string& partition_domain, |
| + const std::string& partition_name, |
| + bool in_memory) { |
| StoragePartitionImplMap* partition_map = |
| static_cast<StoragePartitionImplMap*>( |
| browser_context->GetUserData(kStorageParitionMapKeyName)); |
| @@ -48,12 +49,20 @@ StoragePartition* GetStoragePartitionByPartitionId( |
| browser_context->SetUserData(kStorageParitionMapKeyName, partition_map); |
| } |
| - return partition_map->Get(partition_id); |
| + if (browser_context->IsOffTheRecord()) |
|
awong
2012/11/07 01:14:11
Add comment explaining why we force to true.
nasko
2012/11/07 17:47:01
Done.
|
| + in_memory = true; |
| + |
| + // TODO(nasko): Webview tags with named partitions will have both |
| + // partition_domain and partition_name set. In this case, mark them in-memory |
| + // until the on-disk storage code has landed. |
|
Charlie Reis
2012/11/07 02:36:34
Can you add a mention of http://crbug.com/159464?
nasko
2012/11/07 17:47:01
Done.
|
| + if (!partition_domain.empty() && !partition_name.empty()) |
| + in_memory = true; |
| + |
| + return partition_map->Get(partition_domain, partition_name, in_memory); |
| } |
| // Run |callback| on each DOMStorageContextImpl in |browser_context|. |
| -void PurgeDOMStorageContextInPartition(const std::string& id, |
| - StoragePartition* storage_partition) { |
| +void PurgeDOMStorageContextInPartition(StoragePartition* storage_partition) { |
| static_cast<StoragePartitionImpl*>(storage_partition)-> |
| GetDOMStorageContext()->PurgeMemory(); |
| } |
| @@ -104,26 +113,34 @@ DownloadManager* BrowserContext::GetDownloadManager( |
| StoragePartition* BrowserContext::GetStoragePartition( |
| BrowserContext* browser_context, |
| SiteInstance* site_instance) { |
| - std::string partition_id; // Default to "" for NULL |site_instance|. |
| + std::string partition_domain; |
| + std::string partition_name; |
| + bool in_memory = false; |
| // TODO(ajwong): After GetDefaultStoragePartition() is removed, get rid of |
| // this conditional and require that |site_instance| is non-NULL. |
| if (site_instance) { |
| - partition_id = GetContentClient()->browser()-> |
| - GetStoragePartitionIdForSite(browser_context, |
| - site_instance->GetSiteURL()); |
| + GetContentClient()->browser()->GetStoragePartitionConfigForSite( |
| + browser_context, site_instance->GetSiteURL(), |
| + &partition_domain, &partition_name, &in_memory); |
| } |
| - return GetStoragePartitionByPartitionId(browser_context, partition_id); |
| + return GetStoragePartitionHelper( |
| + browser_context, partition_domain, partition_name, in_memory); |
| } |
| StoragePartition* BrowserContext::GetStoragePartitionForSite( |
| BrowserContext* browser_context, |
| const GURL& site) { |
| - std::string partition_id = GetContentClient()->browser()-> |
| - GetStoragePartitionIdForSite(browser_context, site); |
| + std::string partition_domain; |
| + std::string partition_name; |
| + bool in_memory; |
| + |
| + GetContentClient()->browser()->GetStoragePartitionConfigForSite( |
| + browser_context, site, &partition_domain, &partition_name, &in_memory); |
| - return GetStoragePartitionByPartitionId(browser_context, partition_id); |
| + return GetStoragePartitionHelper( |
| + browser_context, partition_domain, partition_name, in_memory); |
| } |
| void BrowserContext::ForEachStoragePartition( |