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 2f47003249d4cd50fcbfb916aa17a5da77334f30..6a00eb3dc87d573f284f2e607d423362b75767b5 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 |
@@ -9,9 +9,7 @@ |
#include "ash/resources/grit/ash_resources.h" |
#include "ash/shelf/shelf_model.h" |
-#include "ash/shell.h" |
#include "ash/wm/window_properties.h" |
-#include "ash/wm/window_util.h" |
#include "ash/wm_window.h" |
#include "base/memory/ptr_util.h" |
#include "chrome/browser/chrome_notification_types.h" |
@@ -23,6 +21,7 @@ |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_commands.h" |
#include "chrome/browser/ui/browser_finder.h" |
+#include "chrome/browser/ui/browser_list.h" |
#include "chrome/browser/ui/browser_window.h" |
#include "chrome/browser/ui/chrome_pages.h" |
#include "chrome/browser/ui/settings_window_manager.h" |
@@ -130,23 +129,21 @@ void BrowserShortcutLauncherItemController::UpdateBrowserItemState() { |
ash::ShelfItem browser_item = shelf_model_->items()[browser_index]; |
ash::ShelfItemStatus browser_status = ash::STATUS_CLOSED; |
- aura::Window* window = ash::wm::GetActiveWindow(); |
- if (window) { |
+ Browser* browser = BrowserList::GetInstance()->GetLastActive(); |
+ if (browser && browser->window()->IsActive() && |
+ IsBrowserRepresentedInBrowserList(browser)) { |
// Check if the active browser / tab is a browser which is not an app, |
// a windowed app, a popup or any other item which is not a browser of |
// interest. |
- Browser* browser = chrome::FindBrowserWithWindow(window); |
- if (IsBrowserRepresentedInBrowserList(browser)) { |
- browser_status = ash::STATUS_ACTIVE; |
- // If an app that has item is running in active WebContents, browser item |
- // status cannot be active. |
- content::WebContents* contents = |
- browser->tab_strip_model()->GetActiveWebContents(); |
- if (contents && |
- (ChromeLauncherController::instance()->GetShelfIDForWebContents( |
- contents) != browser_item.id)) |
- browser_status = ash::STATUS_RUNNING; |
- } |
+ browser_status = ash::STATUS_ACTIVE; |
+ // If an app that has item is running in active WebContents, browser item |
+ // status cannot be active. |
+ content::WebContents* contents = |
+ browser->tab_strip_model()->GetActiveWebContents(); |
+ if (contents && |
+ (ChromeLauncherController::instance()->GetShelfIDForWebContents( |
+ contents) != browser_item.id)) |
+ browser_status = ash::STATUS_RUNNING; |
} |
if (browser_status == ash::STATUS_CLOSED) { |
@@ -322,12 +319,12 @@ BrowserShortcutLauncherItemController::ActivateOrAdvanceToNextBrowser() { |
chrome::NewEmptyWindow(ChromeLauncherController::instance()->profile()); |
return ash::SHELF_ACTION_NEW_WINDOW_CREATED; |
} |
- Browser* browser = chrome::FindBrowserWithWindow(ash::wm::GetActiveWindow()); |
+ Browser* browser = BrowserList::GetInstance()->GetLastActive(); |
if (items.size() == 1) { |
// If there is only one suitable browser, we can either activate it, or |
// bounce it (if it is already active). |
- if (browser == items[0]) { |
- AnimateWindow(browser->window()->GetNativeWindow(), |
+ if (items[0]->window()->IsActive()) { |
+ AnimateWindow(items[0]->window()->GetNativeWindow(), |
wm::WINDOW_ANIMATION_TYPE_BOUNCE); |
return ash::SHELF_ACTION_NONE; |
} |
@@ -339,7 +336,8 @@ BrowserShortcutLauncherItemController::ActivateOrAdvanceToNextBrowser() { |
std::vector<Browser*>::iterator i = |
std::find(items.begin(), items.end(), browser); |
if (i != items.end()) { |
- browser = (++i == items.end()) ? items[0] : *i; |
+ if (browser->window()->IsActive()) |
+ browser = (++i == items.end()) ? items[0] : *i; |
} else { |
browser = chrome::FindTabbedBrowser( |
ChromeLauncherController::instance()->profile(), true); |
@@ -360,10 +358,10 @@ bool BrowserShortcutLauncherItemController::IsBrowserRepresentedInBrowserList( |
return false; |
// v1 App popup windows with a valid app id have their own icon. |
- ash::ShelfModel* model = ash::Shell::Get()->shelf_model(); |
if (browser->is_app() && browser->is_type_popup() && |
- model->GetShelfIDForAppID(web_app::GetExtensionIdFromApplicationName( |
- browser->app_name())) > 0) { |
+ shelf_model_->GetShelfIDForAppID( |
+ web_app::GetExtensionIdFromApplicationName(browser->app_name())) != |
+ ash::kInvalidShelfID) { |
return false; |
} |