diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc
index 676c2cc22bac..e6f9642e1cba 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 13837eb391ce..e3a15a7158b2 100644
--- content/browser/browser_context.cc
+++ content/browser/browser_context.cc
@@ -251,7 +251,7 @@ StoragePartition* BrowserContext::GetStoragePartition(
       GetStoragePartitionMap(browser_context);
 
   auto config_to_use = storage_partition_config;
-  if (browser_context->IsOffTheRecord())
+  if (browser_context->IsOffTheRecord() || browser_context->GetPath().empty())
     config_to_use = storage_partition_config.CopyWithInMemorySet();
 
   return partition_map->Get(config_to_use, can_create);
@@ -573,7 +573,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 fdf4b2466077..938df52d348e 100644
--- storage/browser/database/database_tracker.cc
+++ storage/browser/database/database_tracker.cc
@@ -508,7 +508,7 @@ bool DatabaseTracker::LazyInit() {
     meta_table_.reset(new sql::MetaTable());
 
     is_initialized_ =
-        base::CreateDirectory(db_dir_) &&
+        (is_off_the_record_ ? true : base::CreateDirectory(db_dir_)) &&
         (db_->is_open() ||
          (is_off_the_record_ ? db_->OpenInMemory()
                              : db_->Open(kTrackerDatabaseFullPath))) &&