borealis: add flag for storage ballooning
Adding a flag that will enable storage ballooning for Borealis. This
will involve setting up the disk image in a different way and enabling
other disk functionality. This flag takes precedence over the existing
disk flag.
Bug: b/232862990
Change-Id: I1cad04bf49dae935ec5665e22b38485cda26840e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3747442
Reviewed-by: Chloe Pelling <[email protected]>
Auto-Submit: Daniel Ng <[email protected]>
Commit-Queue: Chloe Pelling <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1021042}
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc
index caf60f23..9d201726 100644
--- a/ash/constants/ash_features.cc
+++ b/ash/constants/ash_features.cc
@@ -259,6 +259,11 @@
const base::Feature kBorealisLinuxMode{"BorealisLinuxMode",
base::FEATURE_DISABLED_BY_DEFAULT};
+// Enable storage ballooning for Borealis. This takes precedence over
+// kBorealisDiskManagement.
+const base::Feature kBorealisStorageBallooning{
+ "BorealisStorageBallooning", base::FEATURE_DISABLED_BY_DEFAULT};
+
// Enable TermsOfServiceURL policy for managed users.
// https://crbug.com/1221342
const base::Feature kManagedTermsOfService{"ManagedTermsOfService",
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h
index 1c9e76f..8eacb301 100644
--- a/ash/constants/ash_features.h
+++ b/ash/constants/ash_features.h
@@ -113,6 +113,8 @@
COMPONENT_EXPORT(ASH_CONSTANTS)
extern const base::Feature kBorealisPermitted;
COMPONENT_EXPORT(ASH_CONSTANTS)
+extern const base::Feature kBorealisStorageBallooning;
+COMPONENT_EXPORT(ASH_CONSTANTS)
extern const base::Feature kCalendarView;
COMPONENT_EXPORT(ASH_CONSTANTS)
extern const base::Feature kCalendarModelDebugMode;
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 9db63b1..4b22a6d 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2646,6 +2646,8 @@
// This differs slightly from its symbol's name since "enabled" is used
// internally to refer to whether borealis is installed or not.
constexpr char kBorealisPermittedInternalName[] = "borealis-enabled";
+constexpr char kBorealisStorageBallooningInternalName[] =
+ "borealis-storage-ballooning";
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -7997,6 +7999,10 @@
{kBorealisPermittedInternalName, flag_descriptions::kBorealisPermittedName,
flag_descriptions::kBorealisPermittedDescription, kOsCrOS,
FEATURE_VALUE_TYPE(ash::features::kBorealisPermitted)},
+ {kBorealisStorageBallooningInternalName,
+ flag_descriptions::kBorealisStorageBallooningName,
+ flag_descriptions::kBorealisStorageBallooningDescription, kOsCrOS,
+ FEATURE_VALUE_TYPE(ash::features::kBorealisStorageBallooning)},
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
{"https-only-mode-setting", flag_descriptions::kHttpsOnlyModeName,
@@ -8832,6 +8838,10 @@
return !base::FeatureList::IsEnabled(features::kBorealis);
}
+ if (!strcmp(kBorealisStorageBallooningInternalName, entry.internal_name)) {
+ return !base::FeatureList::IsEnabled(features::kBorealis);
+ }
+
// Only show wallpaper fast refresh flag if channel is one of
// Dev/Canary/Unknown.
if (!strcmp(kWallpaperFastRefreshInternalName, entry.internal_name)) {
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 34518c9..914b5e1 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -688,6 +688,11 @@
"expiry_milestone": 110
},
{
+ "name": "borealis-storage-ballooning",
+ "owners": [ "danielng" ],
+ "expiry_milestone": 110
+ },
+ {
"name": "broker-file-operations-on-disk-cache-in-network-service",
"owners": [ "yhirano", "network-service-dev" ],
"expiry_milestone": 120
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 9e823db..0427f5d2 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -603,6 +603,11 @@
"other reasons, including: administrator settings, device hardware "
"capabilities, or other security measures.";
+const char kBorealisStorageBallooningName[] = "Borealis Storage Ballooning";
+const char kBorealisStorageBallooningDescription[] =
+ "Enables storage balloning for Borealis. This takes precedence over the "
+ "other Borealis Disk management flag.";
+
const char kBypassAppBannerEngagementChecksName[] =
"Bypass user engagement checks";
const char kBypassAppBannerEngagementChecksDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 25ad924c..f36b6d27 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -324,6 +324,9 @@
extern const char kBorealisPermittedName[];
extern const char kBorealisPermittedDescription[];
+extern const char kBorealisStorageBallooningName[];
+extern const char kBorealisStorageBallooningDescription[];
+
extern const char kBypassAppBannerEngagementChecksName[];
extern const char kBypassAppBannerEngagementChecksDescription[];
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 974948ba..3bd1220 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -59924,6 +59924,7 @@
<int value="988781221" label="SyncSetupFriendlySettings:disabled"/>
<int value="988981463" label="ImageCaptureAPI:enabled"/>
<int value="989062160" label="ModuleScriptsImportMetaUrl:enabled"/>
+ <int value="989740984" label="BorealisStorageBallooning:enabled"/>
<int value="990380525"
label="AutofillRationalizeStreetAddressAndAddressLine:enabled"/>
<int value="991462028"
@@ -60213,6 +60214,7 @@
<int value="1168226627" label="OmniboxMaxZeroSuggestMatches:enabled"/>
<int value="1169418814" label="ManualFallbacksFilling:enabled"/>
<int value="1170030686" label="BookmarkBottomSheet:enabled"/>
+ <int value="1172226600" label="BorealisStorageBallooning:disabled"/>
<int value="1173244409" label="AutofillUseMobileLabelDisambiguation:enabled"/>
<int value="1174088940" label="enable-wasm"/>
<int value="1176183341" label="SearchHistoryLink:enabled"/>