diff options
Diffstat (limited to 'chromium/content/browser/browser_context.cc')
-rw-r--r-- | chromium/content/browser/browser_context.cc | 72 |
1 files changed, 31 insertions, 41 deletions
diff --git a/chromium/content/browser/browser_context.cc b/chromium/content/browser/browser_context.cc index 85251cbcd6b..13e78598fea 100644 --- a/chromium/content/browser/browser_context.cc +++ b/chromium/content/browser/browser_context.cc @@ -29,7 +29,6 @@ #include "base/no_destructor.h" #include "base/notreached.h" #include "base/supports_user_data.h" -#include "base/task/post_task.h" #include "base/threading/sequenced_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h" #include "base/unguessable_token.h" @@ -53,6 +52,7 @@ #include "content/public/browser/render_process_host.h" #include "content/public/browser/shared_cors_origin_access_list.h" #include "content/public/browser/site_instance.h" +#include "content/public/browser/storage_partition_config.h" #include "content/public/common/content_client.h" #include "content/public/common/content_switches.h" #include "media/base/media_switches.h" @@ -121,22 +121,6 @@ StoragePartitionImplMap* GetStoragePartitionMap( return partition_map; } -StoragePartition* GetStoragePartitionFromConfig( - BrowserContext* browser_context, - const std::string& partition_domain, - const std::string& partition_name, - bool in_memory, - bool can_create) { - StoragePartitionImplMap* partition_map = - GetStoragePartitionMap(browser_context); - - if (browser_context->IsOffTheRecord()) - in_memory = true; - - return partition_map->Get(partition_domain, partition_name, in_memory, - can_create); -} - void SaveSessionStateOnIOThread(AppCacheServiceImpl* appcache_service) { appcache_service->set_force_keep_session_state(); } @@ -254,34 +238,39 @@ StoragePartition* BrowserContext::GetStoragePartition( BrowserContext* browser_context, SiteInstance* site_instance, bool can_create) { - std::string partition_domain; - std::string partition_name; - bool in_memory = false; - - if (site_instance) { - GetContentClient()->browser()->GetStoragePartitionConfigForSite( - browser_context, site_instance->GetSiteURL(), true, &partition_domain, - &partition_name, &in_memory); + if (!site_instance) { + return GetStoragePartition( + browser_context, StoragePartitionConfig::CreateDefault(), can_create); } - return GetStoragePartitionFromConfig(browser_context, partition_domain, - partition_name, in_memory, can_create); + return GetStoragePartitionForSite(browser_context, + site_instance->GetSiteURL(), can_create); +} + +StoragePartition* BrowserContext::GetStoragePartition( + BrowserContext* browser_context, + const StoragePartitionConfig& storage_partition_config, + bool can_create) { + StoragePartitionImplMap* partition_map = + GetStoragePartitionMap(browser_context); + + auto config_to_use = storage_partition_config; + if (browser_context->IsOffTheRecord()) + config_to_use = storage_partition_config.CopyWithInMemorySet(); + + return partition_map->Get(config_to_use, can_create); } StoragePartition* BrowserContext::GetStoragePartitionForSite( BrowserContext* browser_context, const GURL& site, bool can_create) { - std::string partition_domain; - std::string partition_name; - bool in_memory; + auto storage_partition_config = + GetContentClient()->browser()->GetStoragePartitionConfigForSite( + browser_context, site); - GetContentClient()->browser()->GetStoragePartitionConfigForSite( - browser_context, site, true, &partition_domain, &partition_name, - &in_memory); - - return GetStoragePartitionFromConfig(browser_context, partition_domain, - partition_name, in_memory, can_create); + return GetStoragePartition(browser_context, storage_partition_config, + can_create); } void BrowserContext::ForEachStoragePartition( @@ -306,7 +295,8 @@ size_t BrowserContext::GetStoragePartitionCount( StoragePartition* BrowserContext::GetDefaultStoragePartition( BrowserContext* browser_context) { - return GetStoragePartition(browser_context, nullptr); + return GetStoragePartition(browser_context, + StoragePartitionConfig::CreateDefault()); } // static @@ -318,8 +308,8 @@ void BrowserContext::CreateMemoryBackedBlob(BrowserContext* browser_context, ChromeBlobStorageContext* blob_context = ChromeBlobStorageContext::GetFor(browser_context); - base::PostTaskAndReplyWithResult( - FROM_HERE, {BrowserThread::IO}, + GetIOThreadTaskRunner({})->PostTaskAndReplyWithResult( + FROM_HERE, base::BindOnce(&ChromeBlobStorageContext::CreateMemoryBackedBlob, base::WrapRefCounted(blob_context), data, content_type), std::move(callback)); @@ -421,8 +411,8 @@ void BrowserContext::SaveSessionState(BrowserContext* browser_context) { base::WrapRefCounted(database_tracker))); if (BrowserThread::IsThreadInitialized(BrowserThread::IO)) { - base::PostTask( - FROM_HERE, {BrowserThread::IO}, + GetIOThreadTaskRunner({})->PostTask( + FROM_HERE, base::BindOnce(&SaveSessionStateOnIOThread, static_cast<AppCacheServiceImpl*>( storage_partition->GetAppCacheService()))); |