feat: allow customizing browser data location (#33554)
* feat: redirect Electron/Chromium cache location * fix: network services should also use browserData * test: browserData * chore: no need to explicitly create dir * feat: browserData => sessionData * test: check existings of specific items * docs: add background on userData and sessionData Co-authored-by: emmanuel.kimmerlin@thomsonreuters.com <emmanuel.kimmerlin@thomsonreuters.com>
This commit is contained in:
parent
03e68e2efe
commit
9483e714c4
12 changed files with 128 additions and 18 deletions
|
@ -473,6 +473,8 @@ IconLoader::IconSize GetIconSizeByString(const std::string& size) {
|
|||
int GetPathConstant(const std::string& name) {
|
||||
if (name == "appData")
|
||||
return DIR_APP_DATA;
|
||||
else if (name == "sessionData")
|
||||
return DIR_SESSION_DATA;
|
||||
else if (name == "userData")
|
||||
return chrome::DIR_USER_DATA;
|
||||
else if (name == "cache")
|
||||
|
|
|
@ -110,7 +110,7 @@ void BrowserProcessImpl::PostEarlyInitialization() {
|
|||
// Only use a persistent prefs store when cookie encryption is enabled as that
|
||||
// is the only key that needs it
|
||||
base::FilePath prefs_path;
|
||||
CHECK(base::PathService::Get(chrome::DIR_USER_DATA, &prefs_path));
|
||||
CHECK(base::PathService::Get(electron::DIR_SESSION_DATA, &prefs_path));
|
||||
prefs_path = prefs_path.Append(FILE_PATH_LITERAL("Local State"));
|
||||
base::ThreadRestrictions::ScopedAllowIO allow_io;
|
||||
scoped_refptr<JsonPrefStore> user_pref_store =
|
||||
|
|
|
@ -1139,11 +1139,11 @@ void ElectronBrowserClient::OnNetworkServiceCreated(
|
|||
|
||||
std::vector<base::FilePath>
|
||||
ElectronBrowserClient::GetNetworkContextsParentDirectory() {
|
||||
base::FilePath user_data_dir;
|
||||
base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir);
|
||||
DCHECK(!user_data_dir.empty());
|
||||
base::FilePath session_data;
|
||||
base::PathService::Get(DIR_SESSION_DATA, &session_data);
|
||||
DCHECK(!session_data.empty());
|
||||
|
||||
return {user_data_dir};
|
||||
return {session_data};
|
||||
}
|
||||
|
||||
std::string ElectronBrowserClient::GetProduct() {
|
||||
|
|
|
@ -120,8 +120,7 @@ ElectronBrowserContext::ElectronBrowserContext(const std::string& partition,
|
|||
base::StringToInt(command_line->GetSwitchValueASCII(switches::kDiskCacheSize),
|
||||
&max_cache_size_);
|
||||
|
||||
CHECK(base::PathService::Get(chrome::DIR_USER_DATA, &path_));
|
||||
|
||||
base::PathService::Get(DIR_SESSION_DATA, &path_);
|
||||
if (!in_memory && !partition.empty())
|
||||
path_ = path_.Append(FILE_PATH_LITERAL("Partitions"))
|
||||
.Append(base::FilePath::FromUTF8Unsafe(
|
||||
|
|
|
@ -501,7 +501,7 @@ void ElectronBrowserMainParts::PostCreateMainMessageLoop() {
|
|||
// https://source.chromium.org/chromium/chromium/src/+/master:chrome/common/chrome_switches.cc;l=689;drc=9d82515060b9b75fa941986f5db7390299669ef1
|
||||
config->should_use_preference =
|
||||
command_line.HasSwitch(::switches::kEnableEncryptionSelection);
|
||||
base::PathService::Get(chrome::DIR_USER_DATA, &config->user_data_path);
|
||||
base::PathService::Get(DIR_SESSION_DATA, &config->user_data_path);
|
||||
OSCrypt::SetConfig(std::move(config));
|
||||
#endif
|
||||
#if BUILDFLAG(IS_POSIX)
|
||||
|
|
|
@ -91,10 +91,10 @@ const char kBrowserCloseMethod[] = "Browser.close";
|
|||
|
||||
// static
|
||||
void DevToolsManagerDelegate::StartHttpHandler() {
|
||||
base::FilePath user_dir;
|
||||
base::PathService::Get(chrome::DIR_USER_DATA, &user_dir);
|
||||
base::FilePath session_data;
|
||||
base::PathService::Get(DIR_SESSION_DATA, &session_data);
|
||||
content::DevToolsAgentHost::StartRemoteDebuggingServer(
|
||||
CreateSocketFactory(), user_dir, base::FilePath());
|
||||
CreateSocketFactory(), session_data, base::FilePath());
|
||||
}
|
||||
|
||||
DevToolsManagerDelegate::DevToolsManagerDelegate() = default;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue