[ios] Remove TabParentingGlobalObserver and helper classes

Fixed: 384034042
Change-Id: I56a2b132d9b6aae8bc1bd28b013c624cf1076f94
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6177761
Reviewed-by: Mike Dougherty <michaeldo@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1408590}
diff --git a/ios/chrome/browser/main/model/DEPS b/ios/chrome/browser/main/model/DEPS
index 28aa9ee7..de1001ec 100644
--- a/ios/chrome/browser/main/model/DEPS
+++ b/ios/chrome/browser/main/model/DEPS
@@ -29,7 +29,6 @@
     "+ios/chrome/browser/sync/model/sync_error_browser_agent.h",
     "+ios/chrome/browser/tabs/model/closing_web_state_observer_browser_agent.h",
     "+ios/chrome/browser/tabs/model/synced_window_delegate_browser_agent.h",
-    "+ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h",
     "+ios/chrome/browser/url_loading/model/url_loading_browser_agent.h",
     "+ios/chrome/browser/url_loading/model/url_loading_notifier_browser_agent.h",
     "+ios/chrome/browser/web/model/page_placeholder_browser_agent.h",
diff --git a/ios/chrome/browser/main/model/browser_agent_util.mm b/ios/chrome/browser/main/model/browser_agent_util.mm
index 4ee2271..d61b7b35 100644
--- a/ios/chrome/browser/main/model/browser_agent_util.mm
+++ b/ios/chrome/browser/main/model/browser_agent_util.mm
@@ -32,7 +32,6 @@
 #import "ios/chrome/browser/tab_insertion/model/tab_insertion_browser_agent.h"
 #import "ios/chrome/browser/tabs/model/closing_web_state_observer_browser_agent.h"
 #import "ios/chrome/browser/tabs/model/synced_window_delegate_browser_agent.h"
-#import "ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h"
 #import "ios/chrome/browser/url_loading/model/url_loading_browser_agent.h"
 #import "ios/chrome/browser/url_loading/model/url_loading_notifier_browser_agent.h"
 #import "ios/chrome/browser/view_source/model/view_source_browser_agent.h"
@@ -69,7 +68,6 @@
   // LensBrowserAgent must be created before WebNavigationBrowserAgent.
   LensBrowserAgent::CreateForBrowser(browser);
   WebNavigationBrowserAgent::CreateForBrowser(browser);
-  TabParentingBrowserAgent::CreateForBrowser(browser);
 
   if (!browser_is_off_record) {
     ClosingWebStateObserverBrowserAgent::CreateForBrowser(browser);
diff --git a/ios/chrome/browser/tabs/model/BUILD.gn b/ios/chrome/browser/tabs/model/BUILD.gn
index 17e3816..ca227e61 100644
--- a/ios/chrome/browser/tabs/model/BUILD.gn
+++ b/ios/chrome/browser/tabs/model/BUILD.gn
@@ -9,10 +9,6 @@
     "synced_window_delegate_browser_agent.h",
     "tab_helper_delegate_installer.h",
     "tab_helper_util.h",
-    "tab_parenting_browser_agent.h",
-    "tab_parenting_browser_agent.mm",
-    "tab_parenting_global_observer.cc",
-    "tab_parenting_global_observer.h",
     "tab_title_util.h",
     "tabs_closer.h",
   ]
diff --git a/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h b/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h
deleted file mode 100644
index 0465b930..0000000
--- a/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_BROWSER_AGENT_H_
-#define IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_BROWSER_AGENT_H_
-
-#import "ios/chrome/browser/shared/model/browser/browser_observer.h"
-#import "ios/chrome/browser/shared/model/browser/browser_user_data.h"
-#import "ios/chrome/browser/shared/model/web_state_list/web_state_list_observer.h"
-
-class TabParentingBrowserAgent
-    : public BrowserObserver,
-      public BrowserUserData<TabParentingBrowserAgent>,
-      public WebStateListObserver {
- public:
-  ~TabParentingBrowserAgent() override;
-  TabParentingBrowserAgent(const TabParentingBrowserAgent&) = delete;
-  TabParentingBrowserAgent& operator=(const TabParentingBrowserAgent&) = delete;
-
-  // BrowserObserver implementation.
-  void BrowserDestroyed(Browser* browser) override;
-
-  // WebStateListObserver implementation.
-  void WebStateListDidChange(WebStateList* web_state_list,
-                             const WebStateListChange& change,
-                             const WebStateListStatus& status) override;
-
- private:
-  friend class BrowserUserData<TabParentingBrowserAgent>;
-  BROWSER_USER_DATA_KEY_DECL();
-
-  explicit TabParentingBrowserAgent(Browser* browser);
-};
-
-#endif  // IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_BROWSER_AGENT_H_
diff --git a/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.mm b/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.mm
deleted file mode 100644
index 4fa64699..0000000
--- a/ios/chrome/browser/tabs/model/tab_parenting_browser_agent.mm
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/chrome/browser/tabs/model/tab_parenting_browser_agent.h"
-
-#import "ios/chrome/browser/shared/model/web_state_list/web_state_list.h"
-#import "ios/chrome/browser/tabs/model/tab_parenting_global_observer.h"
-
-BROWSER_USER_DATA_KEY_IMPL(TabParentingBrowserAgent)
-
-TabParentingBrowserAgent::TabParentingBrowserAgent(Browser* browser) {
-  browser->AddObserver(this);
-  browser->GetWebStateList()->AddObserver(this);
-}
-
-TabParentingBrowserAgent::~TabParentingBrowserAgent() = default;
-
-#pragma mark - BrowserObserver
-
-void TabParentingBrowserAgent::BrowserDestroyed(Browser* browser) {
-  // Stop observing web state list.
-  browser->GetWebStateList()->RemoveObserver(this);
-  browser->RemoveObserver(this);
-}
-
-#pragma mark - WebStateListObserver
-
-void TabParentingBrowserAgent::WebStateListDidChange(
-    WebStateList* web_state_list,
-    const WebStateListChange& change,
-    const WebStateListStatus& status) {
-  switch (change.type()) {
-    case WebStateListChange::Type::kStatusOnly:
-      // Do nothing when a WebState is selected and its status is updated.
-      break;
-    case WebStateListChange::Type::kDetach:
-      // Do nothing when a WebState is detached.
-      break;
-    case WebStateListChange::Type::kMove:
-      // Do nothing when a WebState is moved.
-      break;
-    case WebStateListChange::Type::kReplace: {
-      const WebStateListChangeReplace& replace_change =
-          change.As<WebStateListChangeReplace>();
-      TabParentingGlobalObserver::GetInstance()->OnTabParented(
-          replace_change.inserted_web_state());
-      break;
-    }
-    case WebStateListChange::Type::kInsert: {
-      const WebStateListChangeInsert& insert_change =
-          change.As<WebStateListChangeInsert>();
-      TabParentingGlobalObserver::GetInstance()->OnTabParented(
-          insert_change.inserted_web_state());
-      break;
-    }
-    case WebStateListChange::Type::kGroupCreate:
-      // Do nothing when a group is created.
-      break;
-    case WebStateListChange::Type::kGroupVisualDataUpdate:
-      // Do nothing when a tab group's visual data are updated.
-      break;
-    case WebStateListChange::Type::kGroupMove:
-      // Do nothing when a tab group is moved.
-      break;
-    case WebStateListChange::Type::kGroupDelete:
-      // Do nothing when a group is deleted.
-      break;
-  }
-}
diff --git a/ios/chrome/browser/tabs/model/tab_parenting_global_observer.cc b/ios/chrome/browser/tabs/model/tab_parenting_global_observer.cc
deleted file mode 100644
index d4059df3..0000000
--- a/ios/chrome/browser/tabs/model/tab_parenting_global_observer.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ios/chrome/browser/tabs/model/tab_parenting_global_observer.h"
-
-#include "base/no_destructor.h"
-
-TabParentingGlobalObserver* TabParentingGlobalObserver::GetInstance() {
-  static base::NoDestructor<TabParentingGlobalObserver> instance;
-  return instance.get();
-}
-
-base::CallbackListSubscription TabParentingGlobalObserver::RegisterCallback(
-    const OnTabParentedCallback& cb) {
-  return on_tab_parented_callback_list_.Add(cb);
-}
-
-void TabParentingGlobalObserver::OnTabParented(web::WebState* web_state) {
-  on_tab_parented_callback_list_.Notify(web_state);
-}
-
-TabParentingGlobalObserver::TabParentingGlobalObserver() {}
-
-TabParentingGlobalObserver::~TabParentingGlobalObserver() {}
diff --git a/ios/chrome/browser/tabs/model/tab_parenting_global_observer.h b/ios/chrome/browser/tabs/model/tab_parenting_global_observer.h
deleted file mode 100644
index be5df2f4..0000000
--- a/ios/chrome/browser/tabs/model/tab_parenting_global_observer.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_GLOBAL_OBSERVER_H_
-#define IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_GLOBAL_OBSERVER_H_
-
-#include "base/callback_list.h"
-#include "base/no_destructor.h"
-
-namespace web {
-class WebState;
-}
-
-// Allows clients to observe every tab (i.e., WebState) that is parented.
-// NOTE: Should be used only to correspond to //chrome flows that listen for
-// the TAB_PARENTED notification from all sources.
-class TabParentingGlobalObserver {
- public:
-  using OnTabParentedCallback = base::RepeatingCallback<void(web::WebState*)>;
-
-  // Returns the instance of TabParentingGlobalObserver.
-  static TabParentingGlobalObserver* GetInstance();
-
-  TabParentingGlobalObserver(const TabParentingGlobalObserver&) = delete;
-  TabParentingGlobalObserver& operator=(const TabParentingGlobalObserver&) =
-      delete;
-
-  // Registers `cb` to be invoked when a tab is parented.
-  base::CallbackListSubscription RegisterCallback(
-      const OnTabParentedCallback& cb);
-
-  // Called to notify all registered callbacks that `web_state` was parented.
-  void OnTabParented(web::WebState* web_state);
-
- private:
-  friend class base::NoDestructor<TabParentingGlobalObserver>;
-
-  TabParentingGlobalObserver();
-  ~TabParentingGlobalObserver();
-
-  base::RepeatingCallbackList<void(web::WebState*)>
-      on_tab_parented_callback_list_;
-};
-
-#endif  // IOS_CHROME_BROWSER_TABS_MODEL_TAB_PARENTING_GLOBAL_OBSERVER_H_