Add flags to control ambient authentication in private modes.

EnableAmbientAuthenticationInIncognito and
EnableAmbientAuthenticationInGuestSession flags are added to enable
authentication without user action in incognito or guest modes.
This authentication is now enabled by default, but will be disabled in
a few milestones. It has no UI to re-enable and is only manageable
using Enterprise policies.

Bug: 458508
Change-Id: If311a6cdd6b8a94a6339e268e10f83e2004d8294
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1707276
Commit-Queue: Ramin Halavati <[email protected]>
Auto-Submit: Ramin Halavati <[email protected]>
Reviewed-by: Elly Fong-Jones <[email protected]>
Reviewed-by: Ramin Halavati <[email protected]>
Reviewed-by: Martin Šrámek <[email protected]>
Cr-Commit-Position: refs/heads/master@{#679526}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 1672b7b..004a6131 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3546,6 +3546,18 @@
      flag_descriptions::kClickToCallUIDescription, kOsAll,
      FEATURE_VALUE_TYPE(kClickToCallUI)},
 
+    {"enable-ambient-authentication-in-incognito",
+     flag_descriptions::kEnableAmbientAuthenticationInIncognitoName,
+     flag_descriptions::kEnableAmbientAuthenticationInIncognitoDescription,
+     kOsAll,
+     FEATURE_VALUE_TYPE(features::kEnableAmbientAuthenticationInIncognito)},
+
+    {"enable-ambient-authentication-in-guest-session",
+     flag_descriptions::kEnableAmbientAuthenticationInGuestSessionName,
+     flag_descriptions::kEnableAmbientAuthenticationInGuestSessionDescription,
+     kOsAll,
+     FEATURE_VALUE_TYPE(features::kEnableAmbientAuthenticationInGuestSession)},
+
     {"enable-filesystem-in-incognito",
      flag_descriptions::kEnableFilesystemInIncognitoName,
      flag_descriptions::kEnableFilesystemInIncognitoDescription, kOsAll,
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index acce498..feaac24 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -341,6 +341,16 @@
     "expiry_milestone": 79
   },
   {
+    "name": "enable-ambient-authentication-in-incognito",
+    "owners": ["rhalavati", "[email protected]"],
+    "expiry_milestone": 87
+  },
+  {
+    "name": "enable-ambient-authentication-in-guest-session",
+    "owners": ["rhalavati", "[email protected]"],
+    "expiry_milestone": 87
+  },
+  {
     "name": "enable-autofill-save-card-show-no-thanks",
     "owners": ["siashah", "[email protected]"],
     "expiry_milestone": 82
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 78a8dd6..4efa080 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -409,6 +409,18 @@
     "Enables experimental support for Accessibility Object Model APIs "
     "that are in development.";
 
+const char kEnableAmbientAuthenticationInIncognitoName[] =
+    "Enable Ambient Authentication in Incognito mode";
+const char kEnableAmbientAuthenticationInIncognitoDescription[] =
+    "Enables ambient authentication in Incognito mode. This flag may be "
+    "overriden by policies.";
+
+const char kEnableAmbientAuthenticationInGuestSessionName[] =
+    "Enable Ambient Authentication in Guest session.";
+const char kEnableAmbientAuthenticationInGuestSessionDescription[] =
+    "Enables ambient authentication in Guest session. This flag may be "
+    "overriden by policies.";
+
 const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement";
 const char kEnableAudioFocusEnforcementDescription[] =
     "Enables enforcement of a single media session having audio focus at "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index e9e9d5a..da18b11c 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -261,6 +261,12 @@
 extern const char kEnableAccessibilityObjectModelName[];
 extern const char kEnableAccessibilityObjectModelDescription[];
 
+extern const char kEnableAmbientAuthenticationInIncognitoName[];
+extern const char kEnableAmbientAuthenticationInIncognitoDescription[];
+
+extern const char kEnableAmbientAuthenticationInGuestSessionName[];
+extern const char kEnableAmbientAuthenticationInGuestSessionDescription[];
+
 extern const char kEnableAudioFocusEnforcementName[];
 extern const char kEnableAudioFocusEnforcementDescription[];