summaryrefslogtreecommitdiffstats
path: root/chromium/content/browser/browser_context.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/browser_context.cc')
-rw-r--r--chromium/content/browser/browser_context.cc72
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())));