| diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc |
| index f90e9fce0675..33551a2874bc 100644 |
| --- content/browser/blob_storage/chrome_blob_storage_context.cc |
| +++ content/browser/blob_storage/chrome_blob_storage_context.cc |
| @@ -117,7 +117,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 90ec29eda0e7..80cf13d79eff 100644 |
| --- content/browser/browser_context.cc |
| +++ content/browser/browser_context.cc |
| @@ -59,6 +59,7 @@ |
| #include "content/public/common/content_switches.h" |
| #include "content/public/common/service_manager_connection.h" |
| #include "content/public/common/service_names.mojom.h" |
| +#include "media/capabilities/in_memory_video_decode_stats_db_impl.h" |
| #include "media/base/media_switches.h" |
| #include "media/capabilities/in_memory_video_decode_stats_db_impl.h" |
| #include "media/capabilities/video_decode_stats_db_impl.h" |
| @@ -170,7 +171,7 @@ StoragePartition* GetStoragePartitionFromConfig( |
| StoragePartitionImplMap* partition_map = |
| GetStoragePartitionMap(browser_context); |
| |
| - if (browser_context->IsOffTheRecord()) |
| + if (browser_context->IsOffTheRecord() || browser_context->GetPath().empty()) |
| in_memory = true; |
| |
| return partition_map->Get(partition_domain, partition_name, in_memory, |
| @@ -674,7 +675,7 @@ media::VideoDecodePerfHistory* BrowserContext::GetVideoDecodePerfHistory() { |
| kUseInMemoryDBDefault); |
| |
| std::unique_ptr<media::VideoDecodeStatsDB> stats_db; |
| - if (use_in_memory_db) { |
| + if (use_in_memory_db || GetPath().empty()) { |
| stats_db = |
| std::make_unique<media::InMemoryVideoDecodeStatsDBImpl>(nullptr); |
| } else { |
| diff --git storage/browser/database/database_tracker.cc storage/browser/database/database_tracker.cc |
| index 41dc6c9ac188..b125c1d2bcc8 100644 |
| --- storage/browser/database/database_tracker.cc |
| +++ storage/browser/database/database_tracker.cc |
| @@ -506,7 +506,7 @@ bool DatabaseTracker::LazyInit() { |
| meta_table_.reset(new sql::MetaTable()); |
| |
| is_initialized_ = |
| - base::CreateDirectory(db_dir_) && |
| + (is_incognito_ ? true : base::CreateDirectory(db_dir_)) && |
| (db_->is_open() || |
| (is_incognito_ ? db_->OpenInMemory() : |
| db_->Open(kTrackerDatabaseFullPath))) && |