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))) &&
