Revert "[Side search clean-up] Remove features::kSideSearch"

This reverts commit bba0f62673780eb5e63806425e39bcae46883d6c.

Reason for revert: Need finch control of side search so we can run holdback experiments.

Original change's description:
> [Side search clean-up] Remove features::kSideSearch
>
> This CL removes Flag kSideSearch that has been enabled by default.
>
> Bug: 1401094
> Change-Id: I81a6c48cde5fd1e6b16f53379dcbc229a19a63da
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4182976
> Commit-Queue: pengchao Cai <[email protected]>
> Reviewed-by: Yuheng Huang <[email protected]>
> Cr-Commit-Position: refs/heads/main@{#1095360}

Bug: 1401094, 277819250
Change-Id: I947a941c8934e22ef8ff342a56dc5122ec7062a4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4415647
Commit-Queue: Michael Crouse <[email protected]>
Reviewed-by: Thomas Lukaszewicz <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1129023}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index f7dcb716..8c8c55e 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -8770,6 +8770,10 @@
      FEATURE_VALUE_TYPE(
          password_manager::features::kRevampedPasswordManagementBubble)},
 
+    {"side-search", flag_descriptions::kSideSearchName,
+     flag_descriptions::kSideSearchDescription, kOsDesktop,
+     FEATURE_VALUE_TYPE(features::kSideSearch)},
+
     {"search-web-in-side-panel", flag_descriptions::kSearchWebInSidePanelName,
      flag_descriptions::kSearchWebInSidePanelDescription, kOsDesktop,
      FEATURE_VALUE_TYPE(features::kSearchWebInSidePanel)},
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 2efca72..f284a2c 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -6679,6 +6679,11 @@
     "Enable the new password managment bubble triggered by clicking the key "
     "icon in the omnibox.";
 
+const char kSideSearchName[] = "Side search";
+const char kSideSearchDescription[] =
+    "Enables an easily accessible way to access your most recent Google search "
+    "results page embedded in a browser side panel";
+
 const char kSearchWebInSidePanelName[] = "Search web in side panel";
 const char kSearchWebInSidePanelDescription[] =
     "Displays right-click search results of a highlighted text in side panel";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 3227fbe6..07dfeb2 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -3848,6 +3848,9 @@
 extern const char kRevampedPasswordManagementBubbleName[];
 extern const char kRevampedPasswordManagementBubbleDescription[];
 
+extern const char kSideSearchName[];
+extern const char kSideSearchDescription[];
+
 extern const char kSearchWebInSidePanelName[];
 extern const char kSearchWebInSidePanelDescription[];
 #endif  // defined(TOOLKIT_VIEWS)
diff --git a/chrome/browser/ui/side_search/side_search_side_contents_helper_unittest.cc b/chrome/browser/ui/side_search/side_search_side_contents_helper_unittest.cc
index 32072b92..1ce38949 100644
--- a/chrome/browser/ui/side_search/side_search_side_contents_helper_unittest.cc
+++ b/chrome/browser/ui/side_search/side_search_side_contents_helper_unittest.cc
@@ -67,6 +67,7 @@
 class SideSearchSideContentsHelperTest : public ::testing::Test {
  public:
   void SetUp() override {
+    scoped_feature_list_.InitWithFeatures({features::kSideSearch}, {});
     side_contents_ =
         content::WebContentsTester::CreateTestWebContents(&profile_, nullptr);
     SideSearchSideContentsHelper::CreateForWebContents(side_contents());
diff --git a/chrome/browser/ui/side_search/side_search_tab_contents_helper_interactive_uitest.cc b/chrome/browser/ui/side_search/side_search_tab_contents_helper_interactive_uitest.cc
index c02bcda..7cb6a3d 100644
--- a/chrome/browser/ui/side_search/side_search_tab_contents_helper_interactive_uitest.cc
+++ b/chrome/browser/ui/side_search/side_search_tab_contents_helper_interactive_uitest.cc
@@ -52,6 +52,7 @@
  public:
   // InProcessBrowserTest:
   void SetUp() override {
+    scoped_feature_list_.InitWithFeatures({features::kSideSearch}, {});
     ASSERT_TRUE(embedded_test_server()->InitializeAndListen());
     InProcessBrowserTest::SetUp();
   }
diff --git a/chrome/browser/ui/side_search/side_search_tab_contents_helper_unittest.cc b/chrome/browser/ui/side_search/side_search_tab_contents_helper_unittest.cc
index 1f99caac..79de33c 100644
--- a/chrome/browser/ui/side_search/side_search_tab_contents_helper_unittest.cc
+++ b/chrome/browser/ui/side_search/side_search_tab_contents_helper_unittest.cc
@@ -37,6 +37,7 @@
 class SideSearchTabContentsHelperTest : public ::testing::Test {
  public:
   void SetUp() override {
+    scoped_feature_list_.InitAndEnableFeature(features::kSideSearch);
     web_contents_ =
         content::WebContentsTester::CreateTestWebContents(&profile_, nullptr);
     SideSearchTabContentsHelper::CreateForWebContents(web_contents_.get());
diff --git a/chrome/browser/ui/side_search/side_search_utils.cc b/chrome/browser/ui/side_search/side_search_utils.cc
index 952ca34..7375e33 100644
--- a/chrome/browser/ui/side_search/side_search_utils.cc
+++ b/chrome/browser/ui/side_search/side_search_utils.cc
@@ -121,5 +121,6 @@
 
 bool IsSideSearchEnabled(const Profile* profile) {
   return !profile->IsOffTheRecord() &&
+         base::FeatureList::IsEnabled(features::kSideSearch) &&
          profile->GetPrefs()->GetBoolean(side_search_prefs::kSideSearchEnabled);
 }
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
index 2ab83c9..5b82f79 100644
--- a/chrome/browser/ui/ui_features.cc
+++ b/chrome/browser/ui/ui_features.cc
@@ -85,6 +85,10 @@
              "QuickCommands",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+// Enables the side search feature for Google Search. Presents recent Google
+// search results in a browser side panel.
+BASE_FEATURE(kSideSearch, "SideSearch", base::FEATURE_ENABLED_BY_DEFAULT);
+
 BASE_FEATURE(kSideSearchFeedback,
              "SideSearchFeedback",
              base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/chrome/browser/ui/ui_features.h b/chrome/browser/ui/ui_features.h
index 03ddc0d..c0b02fa 100644
--- a/chrome/browser/ui/ui_features.h
+++ b/chrome/browser/ui/ui_features.h
@@ -78,6 +78,7 @@
 BASE_DECLARE_FEATURE(kSidePanelJourneysQueryless);
 BASE_DECLARE_FEATURE(kSidePanelSearchCompanion);
 
+BASE_DECLARE_FEATURE(kSideSearch);
 BASE_DECLARE_FEATURE(kSideSearchFeedback);
 BASE_DECLARE_FEATURE(kSearchWebInSidePanel);
 
diff --git a/chrome/browser/ui/views/side_search/unified_side_search_controller_interactive_uitest.cc b/chrome/browser/ui/views/side_search/unified_side_search_controller_interactive_uitest.cc
index 374d031..8e3def8 100644
--- a/chrome/browser/ui/views/side_search/unified_side_search_controller_interactive_uitest.cc
+++ b/chrome/browser/ui/views/side_search/unified_side_search_controller_interactive_uitest.cc
@@ -47,8 +47,8 @@
 class SideSearchV2Test : public SideSearchBrowserTest {
  public:
   void SetUp() override {
-    scoped_feature_list_.InitWithFeatures({features::kSearchWebInSidePanel},
-                                          {});
+    scoped_feature_list_.InitWithFeatures(
+        {features::kSideSearch, features::kSearchWebInSidePanel}, {});
     SideSearchBrowserTest::SetUp();
   }
 
@@ -1055,6 +1055,7 @@
     base::FieldTrialParams params = {{kParam, kTriggerCount}};
 
     feature_list_.InitAndEnableFeaturesWithParameters({
+        {features::kSideSearch, {}},
         {features::kSideSearchAutoTriggering, params},
         {feature_engagement::kIPHSideSearchAutoTriggeringFeature,
          GetFeatureEngagementParams()},
@@ -1184,6 +1185,7 @@
  public:
   SideSearchPageActionLabelTriggerBrowserTest() {
     feature_list_.InitAndEnableFeaturesWithParameters({
+        {features::kSideSearch, {}},
         {feature_engagement::kIPHSideSearchPageActionLabelFeature,
          GetFeatureEngagementParams()},
     });