diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc index 1beba57fbb164..448fbcb006e32 100644 --- content/browser/blob_storage/chrome_blob_storage_context.cc +++ content/browser/blob_storage/chrome_blob_storage_context.cc @@ -115,7 +115,8 @@ ChromeBlobStorageContext* ChromeBlobStorageContext::GetFor( // If we're not incognito mode, schedule all of our file tasks to enable // disk on the storage context. - if (!context->IsOffTheRecord() && io_thread_valid) { + if (!context->GetPath().empty() && !context->IsOffTheRecord() && + io_thread_valid) { file_task_runner = base::ThreadPool::CreateTaskRunner( {base::MayBlock(), base::TaskPriority::USER_VISIBLE, base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}); diff --git content/browser/browser_context.cc content/browser/browser_context.cc index 06b34e105411d..59b704c0d88a8 100644 --- content/browser/browser_context.cc +++ content/browser/browser_context.cc @@ -130,7 +130,7 @@ StoragePartition* BrowserContext::GetStoragePartition( StoragePartition* BrowserContext::GetStoragePartition( const StoragePartitionConfig& storage_partition_config, bool can_create) { - if (IsOffTheRecord()) { + if (IsOffTheRecord() || GetPath().empty()) { // An off the record profile MUST only use in memory storage partitions. CHECK(storage_partition_config.in_memory()); } @@ -365,7 +365,8 @@ BrowserContext::CreateVideoDecodePerfHistory() { const bool kUseInMemoryDBDefault = false; bool use_in_memory_db = base::GetFieldTrialParamByFeatureAsBool( media::kMediaCapabilitiesWithParameters, kUseInMemoryDBParamName, - kUseInMemoryDBDefault); + kUseInMemoryDBDefault) || + GetPath().empty(); std::unique_ptr stats_db; if (use_in_memory_db) { diff --git content/public/browser/storage_partition_config.cc content/public/browser/storage_partition_config.cc index 160c24ce6e6cc..336aee0b8a0e3 100644 --- content/public/browser/storage_partition_config.cc +++ content/public/browser/storage_partition_config.cc @@ -7,6 +7,7 @@ #include #include "base/check.h" +#include "base/files/file_path.h" #include "base/strings/string_number_conversions.h" #include "content/public/browser/browser_context.h" #include "url/gurl.h" @@ -22,7 +23,8 @@ StoragePartitionConfig& StoragePartitionConfig::operator=( // static StoragePartitionConfig StoragePartitionConfig::CreateDefault( BrowserContext* browser_context) { - return StoragePartitionConfig("", "", browser_context->IsOffTheRecord()); + return StoragePartitionConfig("", "", browser_context->IsOffTheRecord() || + browser_context->GetPath().empty()); } // static diff --git storage/browser/database/database_tracker.cc storage/browser/database/database_tracker.cc index 8abec7e8e4b09..1bac4e476c543 100644 --- storage/browser/database/database_tracker.cc +++ storage/browser/database/database_tracker.cc @@ -562,7 +562,7 @@ bool DatabaseTracker::LazyInit() { databases_table_ = std::make_unique(db_.get()); meta_table_ = std::make_unique(); - is_initialized_ = base::CreateDirectory(db_dir_) && + is_initialized_ = (is_incognito_ ? true : base::CreateDirectory(db_dir_)) && (db_->is_open() || (is_incognito_ ? db_->OpenInMemory() : db_->Open(kTrackerDatabaseFullPath))) &&