cef/patch/patches/storage_incognito_2289.patch
2021-08-24 17:43:02 -04:00

73 lines
3.5 KiB
Diff

diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc
index 4960b1067e1c4..2686fa5bc550b 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 f7a2f30d3748a..098ff6540d8ea 100644
--- content/browser/browser_context.cc
+++ content/browser/browser_context.cc
@@ -137,7 +137,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());
}
@@ -387,7 +387,8 @@ BrowserContext::CreateVideoDecodePerfHistory() {
const bool kUseInMemoryDBDefault = false;
bool use_in_memory_db = base::GetFieldTrialParamByFeatureAsBool(
media::kMediaCapabilitiesWithParameters, kUseInMemoryDBParamName,
- kUseInMemoryDBDefault);
+ kUseInMemoryDBDefault) ||
+ GetPath().empty();
std::unique_ptr<media::VideoDecodeStatsDB> 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 <sstream>
#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 c96e3fad1a70f..302b2be31d8dc 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<DatabasesTable>(db_.get());
meta_table_ = std::make_unique<sql::MetaTable>();
- 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))) &&