diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc index df1a7ae70bdc3..10e9a0b3b881a 100644 --- content/browser/blob_storage/chrome_blob_storage_context.cc +++ content/browser/blob_storage/chrome_blob_storage_context.cc @@ -120,7 +120,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 967c0ea22204d..e1a64c68e00f8 100644 --- content/browser/browser_context.cc +++ content/browser/browser_context.cc @@ -129,7 +129,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()); } @@ -370,7 +370,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 b430ebb66bb5f..8fc54d2e7d713 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" @@ -37,7 +38,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 842886e2fce98..b77e43ea07458 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))) &&