cef/patch/patches/storage_incognito_2289.patch
2021-04-23 11:38:51 -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 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<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 9d87aa95e9300..ae82242746e45 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"
@@ -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<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))) &&