[iOS] Youtube Incognito flag variation
This CL adds a variation to the Youtube Incognito flag, to choose
whether to handle the fetching errors with incognito interstitial or not.
Bug: 389048721
Change-Id: I54c9d807c71f19d8a449acfd2be1307c7b662285
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6172627
Reviewed-by: Quentin Pubert <[email protected]>
Commit-Queue: Elmehdi Rahmaoui <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1407200}
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index 3ead7d57..7ef2b19 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -1268,6 +1268,19 @@
kUpdatedFirstRunSequenceArm3, std::size(kUpdatedFirstRunSequenceArm3),
nullptr}};
+const FeatureEntry::FeatureParam
+ kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitial[] = {
+ {kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitialParam,
+ "true"},
+};
+
+const FeatureEntry::FeatureVariation kYoutubeIncognitoVariations[] = {
+ {"Error handling without Incognito Interstitial",
+ kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitial,
+ std::size(kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitial),
+ nullptr},
+};
+
// To add a new entry, add to the end of kFeatureEntries. There are four
// distinct types of entries:
// . ENABLE_DISABLE_VALUE: entry is either enabled, disabled, or uses the
@@ -2202,7 +2215,9 @@
flags_ui::kOsIos, FEATURE_VALUE_TYPE(kChromeStartupParametersAsync)},
{"ios-youtube-incognito", flag_descriptions::kYoutubeIncognitoName,
flag_descriptions::kYoutubeIncognitoDescription, flags_ui::kOsIos,
- FEATURE_VALUE_TYPE(kYoutubeIncognito)},
+ FEATURE_WITH_PARAMS_VALUE_TYPE(kYoutubeIncognito,
+ kYoutubeIncognitoVariations,
+ "IOSYoutubeIncognito")},
{"lens-overlay-enable-location-bar-entrypoint",
flag_descriptions::kLensOverlayEnableLocationBarEntrypointName,
flag_descriptions::kLensOverlayEnableLocationBarEntrypointDescription,
diff --git a/ios/chrome/browser/shared/public/features/features.h b/ios/chrome/browser/shared/public/features/features.h
index f7daf33..775d2b97 100644
--- a/ios/chrome/browser/shared/public/features/features.h
+++ b/ios/chrome/browser/shared/public/features/features.h
@@ -943,6 +943,15 @@
// incognito.
BASE_DECLARE_FEATURE(kYoutubeIncognito);
+// Feature param to specify whether the youtube incognito handling is done
+// without the incognito interstitial.
+extern const char
+ kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitialParam[];
+
+// Returns whether
+// `kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitialParam` is enabled.
+bool IsYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitialEnabled();
+
// Feature flag to enable Reactivation Notifications.
BASE_DECLARE_FEATURE(kIOSReactivationNotifications);
diff --git a/ios/chrome/browser/shared/public/features/features.mm b/ios/chrome/browser/shared/public/features/features.mm
index 93e78e0..3669da4 100644
--- a/ios/chrome/browser/shared/public/features/features.mm
+++ b/ios/chrome/browser/shared/public/features/features.mm
@@ -1150,6 +1150,15 @@
"YoutubeIncognito",
base::FEATURE_DISABLED_BY_DEFAULT);
+const char kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitialParam[] =
+ "youtube-incognito-error-handling-without-incognito-interstitial";
+
+bool IsYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitialEnabled() {
+ return base::GetFieldTrialParamByFeatureAsBool(
+ kYoutubeIncognito,
+ kYoutubeIncognitoErrorHandlingWithoutIncognitoInterstitialParam, false);
+}
+
BASE_FEATURE(kIOSReactivationNotifications,
"IOSReactivationNotifications",
base::FEATURE_DISABLED_BY_DEFAULT);