ambient: Restrict flag visibility

Restrict the ambient mode flag to only Chromium builds and the Canary/Dev
channels.

Bug: b/148692733
Test: manual
Change-Id: I2554d6d1d07b57eafc079722e188cf079031d3ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2361284
Commit-Queue: Tao Wu <[email protected]>
Reviewed-by: Xiaohui Chen <[email protected]>
Cr-Commit-Position: refs/heads/master@{#799329}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index ec9206f..d1c494a1 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2183,6 +2183,8 @@
 constexpr char kAssistantBetterOnboardingInternalName[] =
     "enable-assistant-better-onboarding";
 constexpr char kAssistantTimersV2InternalName[] = "enable-assistant-timers-v2";
+
+constexpr char kAmbientModeInternalName[] = "enable-ambient-mode";
 #endif  // OS_CHROMEOS
 
 // RECORDING USER METRICS FOR FLAGS:
@@ -5909,7 +5911,7 @@
      SINGLE_VALUE_TYPE(switches::kDoubleBufferCompositing)},
 
 #if defined(OS_CHROMEOS)
-    {"enable-ambient-mode", flag_descriptions::kEnableAmbientModeName,
+    {kAmbientModeInternalName, flag_descriptions::kEnableAmbientModeName,
      flag_descriptions::kEnableAmbientModeDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::features::kAmbientModeFeature)},
 #endif  // defined(OS_CHROMEOS)
@@ -6354,6 +6356,14 @@
       !strcmp(kAssistantTimersV2InternalName, entry.internal_name)) {
     return !base::FeatureList::IsEnabled(features::kTeamfoodFlags);
   }
+
+  // enable-ambient-mode is only available for Unknown/Canary/Dev channels.
+  if (!strcmp(kAmbientModeInternalName, entry.internal_name) &&
+      channel != version_info::Channel::DEV &&
+      channel != version_info::Channel::CANARY &&
+      channel != version_info::Channel::UNKNOWN) {
+    return true;
+  }
 #endif  // defined(OS_CHROMEOS)
 
   // data-reduction-proxy-lo-fi and enable-data-reduction-proxy-lite-page