diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc index 676c2cc22baca..e6f9642e1cba5 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 eb88768c1e1c2..2c6c143d4660e 100644 --- content/browser/browser_context.cc +++ content/browser/browser_context.cc @@ -152,7 +152,7 @@ StoragePartition* BrowserContext::GetStoragePartition( BrowserContext* self, const StoragePartitionConfig& storage_partition_config, bool can_create) { - if (self->IsOffTheRecord()) { + if (self->IsOffTheRecord() || self->GetPath().empty()) { // An off the record profile MUST only use in memory storage partitions. CHECK(storage_partition_config.in_memory()); } @@ -430,7 +430,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 9d87aa95e9300..ae82242746e45 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" @@ -36,7 +37,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 806e42d494176..1f16adce58383 100644 --- storage/browser/database/database_tracker.cc +++ storage/browser/database/database_tracker.cc @@ -494,7 +494,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))) &&