[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_