Add RenderDocument flag to about:flags
Bug: 936696
Change-Id: Iab187eafacbdb864bb2f26a6ff0a58b2f3589f99
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4607738
Reviewed-by: Fergal Daly <[email protected]>
Commit-Queue: Rakina Zata Amni <[email protected]>
Auto-Submit: Rakina Zata Amni <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1157423}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 9fb46877..6a3b1ad 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2800,6 +2800,20 @@
std::size(kBackForwardCache_ForceCaching), nullptr},
};
+const FeatureEntry::FeatureParam kRenderDocument_Subframe[] = {
+ {"level", "subframe"}};
+const FeatureEntry::FeatureParam kRenderDocument_AllFrames[] = {
+ {"level", "all-frames"}};
+
+const FeatureEntry::FeatureVariation kRenderDocumentVariations[] = {
+ {"Swap RenderFrameHosts on same-site navigations from subframes and "
+ "crashed frames (experimental)",
+ kRenderDocument_Subframe, std::size(kRenderDocument_Subframe), nullptr},
+ {"Swap RenderFrameHosts on same-site navigations from any frame "
+ "(experimental)",
+ kRenderDocument_AllFrames, std::size(kRenderDocument_AllFrames), nullptr},
+};
+
#if BUILDFLAG(IS_ANDROID)
const FeatureEntry::Choice kWebOtpBackendChoices[] = {
{flags_ui::kGenericExperimentChoiceDefault, "", ""},
@@ -10476,6 +10490,12 @@
FEATURE_VALUE_TYPE(ash::features::kBatterySaverAlwaysOn)},
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+ {"render-document", flag_descriptions::kRenderDocumentName,
+ flag_descriptions::kRenderDocumentDescription, kOsAll,
+ FEATURE_WITH_PARAMS_VALUE_TYPE(features::kRenderDocument,
+ kRenderDocumentVariations,
+ "RenderDocument")},
+
// NOTE: Adding a new flag requires adding a corresponding entry to enum
// "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag
// Histograms" in tools/metrics/histograms/README.md (run the
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 1796ac31..28bacb1 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -6661,6 +6661,11 @@
"expiry_milestone": 118
},
{
+ "name": "render-document",
+ "owners": [ "rakina" ],
+ "expiry_milestone": 120
+ },
+ {
"name": "replace-sync-promos-with-sign-in-promos",
"owners": [ "treib", "mastiz", "[email protected]", "[email protected]", "[email protected]", "chrome-signin-team"],
"expiry_milestone": 119
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 90c196d..c3f82061 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2821,6 +2821,10 @@
const char kPwaUpdateDialogForAppIconDescription[] =
"Enable a confirmation dialog that shows up when a PWA changes its icon";
+const char kRenderDocumentName[] = "Enable RenderDocument";
+const char kRenderDocumentDescription[] =
+ "Enable swapping RenderFrameHosts on same-site navigations";
+
const char kQuicName[] = "Experimental QUIC protocol";
const char kQuicDescription[] = "Enable experimental QUIC protocol support.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 7e79537..7e3abf2 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1582,6 +1582,9 @@
extern const char kPwaUpdateDialogForAppIconName[];
extern const char kPwaUpdateDialogForAppIconDescription[];
+extern const char kRenderDocumentName[];
+extern const char kRenderDocumentDescription[];
+
extern const char kQuicName[];
extern const char kQuicDescription[];