Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Unified Diff: chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm

Issue 2793443003: Removed NOTIFICATION_BROWSER_CLOSING notification (Closed)
Patch Set: Update CL basing on review comments (rebase) Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
diff --git a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
index a6af1335119734f8fd82aaa655305513ed810924..777e1f11c73011be2163a161ef55a7a6c3576292 100644
--- a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
+++ b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
@@ -11,13 +11,13 @@
#include "base/mac/bundle_locations.h"
#include "base/macros.h"
#include "base/metrics/user_metrics.h"
+#include "base/scoped_observer.h"
#include "base/strings/string_util.h"
#include "base/strings/sys_string_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/prefs/incognito_mode_prefs.h"
#include "chrome/browser/profiles/avatar_menu.h"
@@ -38,6 +38,7 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_list.h"
+#include "chrome/browser/ui/browser_list_observer.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/chrome_pages.h"
#import "chrome/browser/ui/cocoa/browser_window_utils.h"
@@ -64,7 +65,6 @@
#include "components/signin/core/browser/signin_metrics.h"
#include "components/signin/core/common/profile_management_switches.h"
#include "content/public/browser/native_web_keyboard_event.h"
-#include "content/public/browser/notification_service.h"
#include "content/public/browser/render_widget_host_view.h"
#include "content/public/browser/web_contents.h"
#include "google_apis/gaia/oauth2_token_service.h"
@@ -325,16 +325,16 @@ void GaiaWebContentsDelegate::HandleKeyboardEvent(
// Class that listens to changes to the OAuth2Tokens for the active profile,
// changes to the avatar menu model or browser close notifications.
class ActiveProfileObserverBridge : public AvatarMenuObserver,
- public content::NotificationObserver,
+ public chrome::BrowserListObserver,
public OAuth2TokenService::Observer {
public:
ActiveProfileObserverBridge(ProfileChooserController* controller,
Browser* browser)
: controller_(controller),
browser_(browser),
+ browser_list_observer_(this),
token_observer_registered_(false) {
- registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSING,
- content::NotificationService::AllSources());
+ browser_list_observer_.Add(BrowserList::GetInstance());
if (!browser_->profile()->IsGuestSession())
AddTokenServiceObserver();
}
@@ -394,12 +394,9 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
}
}
- // content::NotificationObserver:
- void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) override {
- DCHECK_EQ(chrome::NOTIFICATION_BROWSER_CLOSING, type);
- if (browser_ == content::Source<Browser>(source).ptr()) {
+ // chrome::BrowserListObserver:
+ void OnBrowserClosing(Browser* browser) override {
+ if (browser_ == browser) {
RemoveTokenServiceObserver();
// Clean up the bubble's WebContents (used by the Gaia embedded view), to
// make sure the guest profile doesn't have any dangling host renderers.
@@ -412,7 +409,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
ProfileChooserController* controller_; // Weak; owns this.
Browser* browser_; // Weak.
- content::NotificationRegistrar registrar_;
+ ScopedObserver<BrowserList, BrowserListObserver> browser_list_observer_;
// The observer can be removed both when closing the browser, and by just
// closing the avatar bubble. However, in the case of closing the browser,
« no previous file with comments | « chrome/browser/ui/browser_list_observer.h ('k') | chrome/browser/ui/extensions/extension_installed_bubble.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698