Add flag for HTTP Auth committed interstitials.
This CL adds a flag and feature for enabling HTTP auth via committed
interstitials. Nothing uses it yet.
Change-Id: Ia7d2e3b0c66b22cfd5fa56c6ec65f2289a2665d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1589013
Commit-Queue: Joe DeBlasio <jdeblasio@chromium.org>
Auto-Submit: Joe DeBlasio <jdeblasio@chromium.org>
Reviewed-by: Emily Stark <estark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#655106}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 1417f51..9016328 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1622,6 +1622,10 @@
flag_descriptions::kSSLCommittedInterstitialsName,
flag_descriptions::kSSLCommittedInterstitialsDescription, kOsAll,
FEATURE_VALUE_TYPE(features::kSSLCommittedInterstitials)},
+ {"http-auth-committed-interstitials",
+ flag_descriptions::kHTTPAuthCommittedInterstitialsName,
+ flag_descriptions::kHTTPAuthCommittedInterstitialsDescription, kOsAll,
+ FEATURE_VALUE_TYPE(features::kHTTPAuthCommittedInterstitials)},
#if defined(OS_ANDROID)
{"enable-site-isolation-for-password-sites",
flag_descriptions::kSiteIsolationForPasswordSitesName,
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index f312f6fe..d338f608 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -2112,6 +2112,11 @@
"expiry_milestone": 75
},
{
+ "name": "http-auth-committed-interstitials",
+ "owners": [ "jdeblasio", "estark" ],
+ "expiry_milestone": 77
+ },
+ {
"name": "ignore-gpu-blacklist",
"owners": [ "kbr", "zmo" ],
// A debugging flag intended for end-users where there may not be any other
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index e9cd8d9..8d08faa 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -1112,6 +1112,12 @@
const char kHostedAppShimCreationDescription[] =
"Create app shims on Mac when creating a hosted app.";
+const char kHTTPAuthCommittedInterstitialsName[] =
+ "Enable Committed Interstitials for HTTP Auth";
+const char kHTTPAuthCommittedInterstitialsDescription[] =
+ "Use committed error pages instead of transient navigation entries "
+ "for HTTP auth interstitial pages.";
+
const char kIconNtpName[] = "Large icons on the New Tab page";
const char kIconNtpDescription[] =
"Enable the experimental New Tab page using large icons.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index bcc1850..cfbe831 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -678,6 +678,9 @@
extern const char kHostedAppShimCreationName[];
extern const char kHostedAppShimCreationDescription[];
+extern const char kHTTPAuthCommittedInterstitialsName[];
+extern const char kHTTPAuthCommittedInterstitialsDescription[];
+
extern const char kIconNtpName[];
extern const char kIconNtpDescription[];
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index 50ffc41..0a4bf71 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -339,6 +339,11 @@
"HappinessTrackingSurveysForDesktop", base::FEATURE_DISABLED_BY_DEFAULT};
#endif // !defined(OS_ANDROID)
+// Enables committed error pages instead of transient navigation entries for
+// HTTP auth interstitial pages (i.e. HTTP auth prompts initiated cross-origin).
+const base::Feature kHTTPAuthCommittedInterstitials{
+ "HTTPAuthCommittedInterstitials", base::FEATURE_DISABLED_BY_DEFAULT};
+
#if !defined(OS_ANDROID)
// Replaces the WebUI Cast dialog with a Views toolkit one.
const base::Feature kViewsCastDialog{"ViewsCastDialog",
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index 30cbd74..c824d49 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -217,6 +217,9 @@
extern const base::Feature kHappinessTrackingSurveysForDesktop;
#endif
+COMPONENT_EXPORT(CHROME_FEATURES)
+extern const base::Feature kHTTPAuthCommittedInterstitials;
+
#if !defined(OS_ANDROID)
COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kViewsCastDialog;
#endif
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index bb99eb19..352ef73 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -33599,6 +33599,7 @@
<int value="-120521482" label="DirectManipulationStylus:enabled"/>
<int value="-120091289" label="CrostiniAppSearch:enabled"/>
<int value="-119055644" label="GenericSensor:enabled"/>
+ <int value="-116692797" label="HTTPAuthCommittedInterstitials:enabled"/>
<int value="-115834377" label="EnableUnifiedMultiDeviceSetup:disabled"/>
<int value="-114768488" label="ImmersiveFullscreen:enabled"/>
<int value="-112459802" label="WebXrRenderPath:enabled"/>
@@ -33702,6 +33703,7 @@
<int value="31848187" label="ViewsTaskManager:disabled"/>
<int value="32057053" label="EnterpriseReportingInBrowser:disabled"/>
<int value="32488630" label="EphemeralTab:enabled"/>
+ <int value="32557641" label="HTTPAuthCommittedInterstitials:disabled"/>
<int value="33778663" label="OriginTrials:enabled"/>
<int value="36422284"
label="AutofillSaveCardDialogUnlabeledExpirationDate:enabled"/>