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

Unified Diff: chrome/browser/ui/ash/launcher/browser_shortcut_launcher_item_controller.cc

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/ash/launcher/browser_shortcut_launcher_item_controller.cc
diff --git a/chrome/browser/ui/ash/launcher/browser_shortcut_launcher_item_controller.cc b/chrome/browser/ui/ash/launcher/browser_shortcut_launcher_item_controller.cc
index ac73581e6498b311d944050f094f1f015b1452be..ecc596275d5d9f98c7f5ba7539b6439e40e3120b 100644
--- a/chrome/browser/ui/ash/launcher/browser_shortcut_launcher_item_controller.cc
+++ b/chrome/browser/ui/ash/launcher/browser_shortcut_launcher_item_controller.cc
@@ -13,7 +13,6 @@
#include "ash/shelf/shelf_model.h"
#include "ash/wm_window.h"
#include "base/memory/ptr_util.h"
-#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h"
#include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_util.h"
@@ -32,7 +31,6 @@
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
#include "components/strings/grit/components_strings.h"
-#include "content/public/browser/notification_service.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/url_constants.h"
#include "ui/aura/window.h"
@@ -107,7 +105,8 @@ base::string16 GetBrowserListTitle(content::WebContents* web_contents) {
BrowserShortcutLauncherItemController::BrowserShortcutLauncherItemController(
ash::ShelfModel* shelf_model)
: ash::ShelfItemDelegate(ash::ShelfID(extension_misc::kChromeAppId)),
- shelf_model_(shelf_model) {
+ shelf_model_(shelf_model),
+ browser_list_observer_(this) {
// Tag all open browser windows with the appropriate shelf id property. This
// associates each window with the shelf item for the active web contents.
for (auto* browser : *BrowserList::GetInstance()) {
@@ -221,7 +220,7 @@ void BrowserShortcutLauncherItemController::ItemSelected(
ash::MenuItemList BrowserShortcutLauncherItemController::GetAppMenuItems(
int event_flags) {
browser_menu_items_.clear();
- registrar_.RemoveAll();
+ browser_list_observer_.RemoveAll();
ash::MenuItemList items;
bool found_tabbed_browser = false;
@@ -253,15 +252,15 @@ ash::MenuItemList BrowserShortcutLauncherItemController::GetAppMenuItems(
}
}
browser_menu_items_.push_back(browser);
- registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSING,
- content::Source<Browser>(browser));
+ if (!browser_list_observer_.IsObservingSources())
+ browser_list_observer_.Add(BrowserList::GetInstance());
}
// If only windowed applications are open, we return an empty list to
// enforce the creation of a new browser.
if (!found_tabbed_browser) {
items.clear();
browser_menu_items_.clear();
- registrar_.RemoveAll();
+ browser_list_observer_.RemoveAll();
}
return items;
}
@@ -294,7 +293,7 @@ void BrowserShortcutLauncherItemController::ExecuteCommand(
}
browser_menu_items_.clear();
- registrar_.RemoveAll();
+ browser_list_observer_.RemoveAll();
}
void BrowserShortcutLauncherItemController::Close() {
@@ -393,18 +392,11 @@ BrowserShortcutLauncherItemController::GetListOfActiveBrowsers() {
return active_browsers;
}
-void BrowserShortcutLauncherItemController::Observe(
- int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- DCHECK_EQ(chrome::NOTIFICATION_BROWSER_CLOSING, type);
- Browser* browser = content::Source<Browser>(source).ptr();
+void BrowserShortcutLauncherItemController::OnBrowserClosing(Browser* browser) {
DCHECK(browser);
BrowserList::BrowserVector::iterator item = std::find(
browser_menu_items_.begin(), browser_menu_items_.end(), browser);
- DCHECK(item != browser_menu_items_.end());
// Clear the entry for the closed browser and leave other indices intact.
- *item = nullptr;
- registrar_.Remove(this, chrome::NOTIFICATION_BROWSER_CLOSING,
- content::Source<Browser>(browser));
+ if (item != browser_menu_items_.end())
+ *item = nullptr;
}
« no previous file with comments | « chrome/browser/ui/ash/launcher/browser_shortcut_launcher_item_controller.h ('k') | chrome/browser/ui/browser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698