Deprecate the local browser preference for stacked tabs.

This preference is already ignored (assuming the default-enabled
force-disable-stacked-tabs flag is enabled), so this CL is a
behavioral no-op.

Bug: 1250061
Change-Id: I714406de6de740da58f053d313cfa650b0c8b996
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3206542
Reviewed-by: Dominic Battré <[email protected]>
Reviewed-by: Peter Boström <[email protected]>
Reviewed-by: David Pennington <[email protected]>
Commit-Queue: Taylor Bergquist <[email protected]>
Cr-Commit-Position: refs/heads/main@{#938043}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 05044d9..5a09b11 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -448,6 +448,8 @@
 #endif  // BUILDFLAG(ENABLE_SIDE_SEARCH)
 
 namespace {
+// Deprecated 10/2021
+const char kTabStripStackedLayout[] = "tab-strip-stacked-layout";
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 // Deprecated 5/2021
@@ -690,6 +692,8 @@
 // Register local state used only for migration (clearing or moving to a new
 // key).
 void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) {
+  registry->RegisterBooleanPref(kTabStripStackedLayout, false);
+
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   registry->RegisterDictionaryPref(kRegisteredSupervisedUserAllowlists);
   registry->RegisterStringPref(kFirstRunTrialGroup, std::string());
@@ -1118,10 +1122,6 @@
   DeviceOAuth2TokenStoreDesktop::RegisterPrefs(registry);
 #endif
 
-#if defined(TOOLKIT_VIEWS)
-  RegisterBrowserViewLocalPrefs(registry);
-#endif
-
   // This is intentionally last.
   RegisterLocalStatePrefsForMigration(registry);
 }
@@ -1525,6 +1525,9 @@
   // Added 09/2021.
   local_state->ClearPref(kCloudPolicyOverridesPlatformPolicy);
 
+  // Added 10/2021.
+  local_state->ClearPref(kTabStripStackedLayout);
+
   // Please don't delete the following line. It is used by PRESUBMIT.py.
   // END_MIGRATE_OBSOLETE_LOCAL_STATE_PREFS
 }
diff --git a/chrome/browser/ui/browser_view_prefs.cc b/chrome/browser/ui/browser_view_prefs.cc
index 3cebb55..9c51fe8 100644
--- a/chrome/browser/ui/browser_view_prefs.cc
+++ b/chrome/browser/ui/browser_view_prefs.cc
@@ -8,8 +8,6 @@
 #include "build/chromeos_buildflags.h"
 #include "chrome/common/pref_names.h"
 #include "components/pref_registry/pref_registry_syncable.h"
-#include "components/prefs/pref_registry_simple.h"
-#include "components/prefs/pref_service.h"
 
 #if defined(USE_OZONE)
 #include "ui/ozone/public/ozone_platform.h"
@@ -17,11 +15,6 @@
 
 namespace {
 
-// DEPRECATED: this is replaced by kTabStripStackedLayout and exists for
-// backwards compatibility.
-// Old values: 0 = SHRINK (default), 1 = STACKED.
-const char kTabStripLayoutType[] = "tab_strip_layout_type";
-
 // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
 // of lacros-chrome is complete.
 #if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -38,11 +31,6 @@
 
 }  // namespace
 
-void RegisterBrowserViewLocalPrefs(PrefRegistrySimple* registry) {
-  registry->RegisterIntegerPref(kTabStripLayoutType, 0);
-  registry->RegisterBooleanPref(prefs::kTabStripStackedLayout, false);
-}
-
 void RegisterBrowserViewProfilePrefs(
     user_prefs::PrefRegistrySyncable* registry) {
 // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
@@ -53,11 +41,3 @@
 #endif  // (defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) &&
         // defined(!OS_CHROMEOS)
 }
-
-void MigrateBrowserTabStripPrefs(PrefService* prefs) {
-  if (prefs->HasPrefPath(kTabStripLayoutType)) {
-    prefs->SetBoolean(prefs::kTabStripStackedLayout,
-                      prefs->GetInteger(kTabStripLayoutType) != 0);
-    prefs->ClearPref(kTabStripLayoutType);
-  }
-}
diff --git a/chrome/browser/ui/browser_view_prefs.h b/chrome/browser/ui/browser_view_prefs.h
index 1259085b..6252f27 100644
--- a/chrome/browser/ui/browser_view_prefs.h
+++ b/chrome/browser/ui/browser_view_prefs.h
@@ -5,23 +5,13 @@
 #ifndef CHROME_BROWSER_UI_BROWSER_VIEW_PREFS_H_
 #define CHROME_BROWSER_UI_BROWSER_VIEW_PREFS_H_
 
-class PrefRegistrySimple;
-class PrefService;
-
 namespace user_prefs {
 class PrefRegistrySyncable;
 }
 
-// Register local state preferences specific to BrowserView.
-void RegisterBrowserViewLocalPrefs(PrefRegistrySimple* registry);
-
 // Register profile-specific preferences specific to BrowserView. These
 // preferences may be synced, depending on the pref's |sync_status| parameter.
 void RegisterBrowserViewProfilePrefs(
     user_prefs::PrefRegistrySyncable* registry);
 
-// Converts deprecated int tabstrip layout type into a boolean value indicating
-// stacked layout preference.
-void MigrateBrowserTabStripPrefs(PrefService* pref);
-
 #endif  // CHROME_BROWSER_UI_BROWSER_VIEW_PREFS_H_
diff --git a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
index 217dfaa..34abbd8d 100644
--- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
+++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -47,7 +47,6 @@
 #include "chrome/browser/ui/web_applications/app_browser_controller.h"
 #include "chrome/browser/web_applications/system_web_apps/system_web_app_delegate.h"
 #include "chrome/common/chrome_switches.h"
-#include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/feature_engagement/public/event_constants.h"
@@ -55,7 +54,6 @@
 #include "components/feature_engagement/public/tracker.h"
 #include "components/omnibox/browser/autocomplete_classifier.h"
 #include "components/omnibox/browser/autocomplete_match.h"
-#include "components/prefs/pref_service.h"
 #include "components/tab_groups/tab_group_color.h"
 #include "components/tab_groups/tab_group_id.h"
 #include "components/tab_groups/tab_group_visual_data.h"
@@ -82,17 +80,6 @@
 
 namespace {
 
-bool DetermineTabStripLayoutStacked(PrefService* prefs, bool* adjust_layout) {
-  *adjust_layout = false;
-  // For ash, always allow entering stacked mode.
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-  *adjust_layout = true;
-  return prefs->GetBoolean(prefs::kTabStripStackedLayout);
-#else
-  return false;
-#endif
-}
-
 // Gets the source browser view during a tab dragging. Returns nullptr if there
 // is none.
 BrowserView* GetSourceBrowserViewInTabDragging() {
@@ -226,12 +213,6 @@
     menu_model_factory_ = std::make_unique<TabMenuModelFactory>();
   }
   model_->SetTabStripUI(this);
-
-  local_pref_registrar_.Init(g_browser_process->local_state());
-  local_pref_registrar_.Add(
-      prefs::kTabStripStackedLayout,
-      base::BindRepeating(&BrowserTabStripController::UpdateStackedLayout,
-                          base::Unretained(this)));
 }
 
 BrowserTabStripController::~BrowserTabStripController() {
@@ -497,13 +478,9 @@
 
 void BrowserTabStripController::StackedLayoutMaybeChanged() {
   bool adjust_layout = false;
-  bool stacked_layout = DetermineTabStripLayoutStacked(
-      g_browser_process->local_state(), &adjust_layout);
+  bool stacked_layout = false;
   if (!adjust_layout || stacked_layout == tabstrip_->stacked_layout())
     return;
-
-  g_browser_process->local_state()->SetBoolean(prefs::kTabStripStackedLayout,
-                                               tabstrip_->stacked_layout());
 }
 
 void BrowserTabStripController::OnStartedDragging(bool dragging_window) {
@@ -832,8 +809,7 @@
 
 void BrowserTabStripController::UpdateStackedLayout() {
   bool adjust_layout = false;
-  bool stacked_layout = DetermineTabStripLayoutStacked(
-      g_browser_process->local_state(), &adjust_layout);
+  bool stacked_layout = false;
   tabstrip_->set_adjust_layout(adjust_layout);
   tabstrip_->SetStackedLayout(stacked_layout);
 }
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index 2944803..8fca16f 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -2541,10 +2541,6 @@
 const char kPerformanceTracingEnabled[] =
     "feedback.performance_tracing_enabled";
 
-// Boolean indicating whether tabstrip uses stacked layout (on touch devices).
-// Defaults to false.
-const char kTabStripStackedLayout[] = "tab-strip-stacked-layout";
-
 // Indicates that factory reset was requested from options page or reset screen.
 const char kFactoryResetRequested[] = "FactoryResetRequested";
 
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index beb725e..748fd3e 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -815,8 +815,6 @@
 
 extern const char kPerformanceTracingEnabled[];
 
-extern const char kTabStripStackedLayout[];
-
 extern const char kRegisteredBackgroundContents[];
 
 extern const char kTotalMemoryLimitMb[];