[iOS] Add a experiment to change the bookmark string
This CL adds an experiment to test different strings to add a page
to the bookmarks.
Bug: 1329496
Change-Id: I4b9be9d7f46243e499260b814a23819ab7fde8c4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3695399
Auto-Submit: Gauthier Ambard <[email protected]>
Reviewed-by: David Jean <[email protected]>
Commit-Queue: Gauthier Ambard <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1012482}
diff --git a/ios/chrome/browser/flags/BUILD.gn b/ios/chrome/browser/flags/BUILD.gn
index 740dc6a..5f8e97fe 100644
--- a/ios/chrome/browser/flags/BUILD.gn
+++ b/ios/chrome/browser/flags/BUILD.gn
@@ -68,6 +68,7 @@
"//ios/chrome/browser/ui/omnibox:features",
"//ios/chrome/browser/ui/overlays/infobar_banner:feature_flags",
"//ios/chrome/browser/ui/popup_menu/overflow_menu:feature_flags",
+ "//ios/chrome/browser/ui/popup_menu/public:features",
"//ios/chrome/browser/ui/start_surface:feature_flags",
"//ios/chrome/browser/ui/tab_switcher/tab_grid:features",
"//ios/chrome/browser/ui/toolbar_container:feature_flags",
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index 5877623..6f5a449 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -78,6 +78,7 @@
#import "ios/chrome/browser/ui/omnibox/omnibox_ui_features.h"
#import "ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_features.h"
#import "ios/chrome/browser/ui/popup_menu/overflow_menu/feature_flags.h"
+#import "ios/chrome/browser/ui/popup_menu/public/features.h"
#import "ios/chrome/browser/ui/start_surface/start_surface_features.h"
#import "ios/chrome/browser/ui/tab_switcher/tab_grid/features.h"
#import "ios/chrome/browser/ui/toolbar_container/toolbar_container_features.h"
@@ -373,6 +374,24 @@
std::size(kBubbleRichIPHRichWithSnooze), nullptr},
};
+const FeatureEntry::FeatureParam kPopupMenuBookmarkStringAddABookmark[] = {
+ {kPopupMenuBookmarkStringParamName,
+ kPopupMenuBookmarkStringParamAddABookmark}};
+const FeatureEntry::FeatureParam kPopupMenuBookmarkStringAddToBookmarks[] = {
+ {kPopupMenuBookmarkStringParamName,
+ kPopupMenuBookmarkStringParamAddToBookmarks}};
+const FeatureEntry::FeatureParam kPopupMenuBookmarkStringBookmarkThisPage[] = {
+ {kPopupMenuBookmarkStringParamName,
+ kPopupMenuBookmarkStringParamBookmarkThisPage}};
+
+const FeatureEntry::FeatureVariation kPopupMenuBookmarkStringVarations[] = {
+ {"(Add A Bookmark)", kPopupMenuBookmarkStringAddABookmark,
+ std::size(kPopupMenuBookmarkStringAddABookmark), nullptr},
+ {"(Add To Bookmarks)", kPopupMenuBookmarkStringAddToBookmarks,
+ std::size(kPopupMenuBookmarkStringAddToBookmarks), nullptr},
+ {"(Bookmark This Page)", kPopupMenuBookmarkStringBookmarkThisPage,
+ std::size(kPopupMenuBookmarkStringBookmarkThisPage), 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
@@ -946,6 +965,11 @@
flag_descriptions::kEnableDiscoverFeedGhostCardsName,
flag_descriptions::kEnableDiscoverFeedGhostCardsDescription,
flags_ui::kOsIos, FEATURE_VALUE_TYPE(kDiscoverFeedGhostCardsEnabled)},
+ {"bookmark-string-menu", flag_descriptions::kBookmarkStringName,
+ flag_descriptions::kBookmarkStringDescription, flags_ui::kOsIos,
+ FEATURE_WITH_PARAMS_VALUE_TYPE(kBookmarkString,
+ kPopupMenuBookmarkStringVarations,
+ "BookmarkString")},
};
bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
index 68223d4..35d8777 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -111,15 +111,20 @@
"disabled, initial upload is delayed until deferred initialization. This "
"does not affect recovery mode.";
-extern const char kBubbleRichIPHName[] = "Bubble rich IPH";
-extern const char kBubbleRichIPHDescription[] =
+const char kBubbleRichIPHName[] = "Bubble rich IPH";
+const char kBubbleRichIPHDescription[] =
"When enabled, displays a rich description (ex: title, image, etc..) of "
"the feature presented in the bubble. Also enables password suggestion "
"highlight IPH. When enabled with no option, uses the default bubble "
"style.";
-extern const char kCalendarExperienceKitName[] = "Experience Kit Calendar";
-extern const char kCalendarExperienceKitDescription[] =
+const char kBookmarkStringName[] = "Bookmark action string";
+const char kBookmarkStringDescription[] =
+ "This flag is used to change the string of the action allowing the user to "
+ "bookmark a page from the overflow menu.";
+
+const char kCalendarExperienceKitName[] = "Experience Kit Calendar";
+const char kCalendarExperienceKitDescription[] =
"When enabled, long pressing on dates will trigger Experience Kit Calendar "
"event handling";
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
index 0d4204fe..f1cc4a0 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -99,6 +99,11 @@
extern const char kBubbleRichIPHName[];
extern const char kBubbleRichIPHDescription[];
+// Title and description for the flag to change the string of the "Bookmark"
+// action in the overflow menu.
+extern const char kBookmarkStringName[];
+extern const char kBookmarkStringDescription[];
+
// Title and description for the flag to enable experience kit calendar events.
extern const char kCalendarExperienceKitName[];
extern const char kCalendarExperienceKitDescription[];