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

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

Issue 23068021: Remove PerBrowser launcher, reland step 1 of 2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 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_launcher_item_controller.cc
diff --git a/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.cc b/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.cc
index a2c958ea2d43c46ee1716bb759478d4b36365191..583956d5278fd405cd203acde74516190dd42287 100644
--- a/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.cc
+++ b/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.cc
@@ -13,7 +13,7 @@
#include "chrome/browser/favicon/favicon_tab_helper.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/ash/launcher/chrome_launcher_app_menu_item.h"
-#include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h"
+#include "chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_window.h"
@@ -63,17 +63,11 @@ void BrowserLauncherItemController::Init() {
ash::LauncherItemStatus app_status =
ash::wm::IsActiveWindow(window_) ?
ash::STATUS_ACTIVE : ash::STATUS_RUNNING;
- if (type() != TYPE_TABBED && type() != TYPE_WINDOWED_APP) {
+ if (type() != TYPE_TABBED && type() != TYPE_WINDOWED_APP)
launcher_controller()->CreateAppLauncherItem(this, app_id(), app_status);
- } else {
- launcher_controller()->CreateTabbedLauncherItem(
- this,
- is_incognito_ ? ChromeLauncherController::STATE_INCOGNITO :
- ChromeLauncherController::STATE_NOT_INCOGNITO,
- app_status);
- if (type() == TYPE_WINDOWED_APP)
- launcher_controller()->LockV1AppWithID(LauncherItemController::app_id());
- }
+ else if (type() == TYPE_WINDOWED_APP)
+ launcher_controller()->LockV1AppWithID(LauncherItemController::app_id());
+
// In testing scenarios we can get tab strips with no active contents.
if (tab_model_->active_index() != TabStripModel::kNoTab)
UpdateLauncher(tab_model_->GetActiveWebContents());
@@ -92,8 +86,7 @@ BrowserLauncherItemController* BrowserLauncherItemController::Create(
type = TYPE_TABBED;
if (!browser->is_type_tabbed() &&
browser->is_type_popup() &&
- browser->is_app() &&
- ChromeLauncherController::instance()->GetPerAppInterface()) {
+ browser->is_app()) {
app_id = web_app::GetExtensionIdFromApplicationName(
browser->app_name());
// Only allow this for known applications. Some unit tests for example
@@ -180,11 +173,6 @@ void BrowserLauncherItemController::OnRemoved() {
void BrowserLauncherItemController::LauncherItemChanged(
int index,
const ash::LauncherItem& old_item) {
- if (!launcher_controller()->GetPerAppInterface() &&
- launcher_model()->items()[index].status == ash::STATUS_ACTIVE &&
- old_item.status == ash::STATUS_RUNNING) {
- Activate();
- }
}
ChromeLauncherAppMenuItems
@@ -201,9 +189,8 @@ void BrowserLauncherItemController::ActiveTabChanged(
int reason) {
// Update immediately on a tab change.
if (old_contents &&
- (!launcher_controller()->GetPerAppInterface() ||
- TabStripModel::kNoTab !=
- tab_model_->GetIndexOfWebContents(old_contents)))
+ TabStripModel::kNoTab !=
+ tab_model_->GetIndexOfWebContents(old_contents))
UpdateAppState(old_contents);
UpdateAppState(new_contents);
UpdateLauncher(new_contents);
@@ -257,60 +244,15 @@ void BrowserLauncherItemController::OnWindowPropertyChanged(
}
void BrowserLauncherItemController::UpdateItemStatus() {
- if (launcher_controller()->GetPerAppInterface())
- return;
-
- ash::LauncherItemStatus status;
- if (ash::wm::IsActiveWindow(window_)) {
- // Clear attention state if active.
- if (window_->GetProperty(aura::client::kDrawAttentionKey))
- window_->SetProperty(aura::client::kDrawAttentionKey, false);
- status = ash::STATUS_ACTIVE;
- } else if (window_->GetProperty(aura::client::kDrawAttentionKey)) {
- status = ash::STATUS_ATTENTION;
- } else {
- status = ash::STATUS_RUNNING;
- }
- launcher_controller()->SetItemStatus(launcher_id(), status);
}
void BrowserLauncherItemController::UpdateLauncher(content::WebContents* tab) {
- if (launcher_controller()->GetPerAppInterface())
- return;
-
- if (type() == TYPE_APP_PANEL)
- return; // Maintained entirely by ChromeLauncherController.
-
- if (!tab)
- return; // Assume the window is going to be closed if there are no tabs.
-
- int item_index = launcher_model()->ItemIndexByID(launcher_id());
- if (item_index == -1)
- return;
-
- ash::LauncherItem item = launcher_model()->items()[item_index];
- DCHECK_EQ(TYPE_TABBED, type());
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- FaviconTabHelper* favicon_tab_helper =
- FaviconTabHelper::FromWebContents(tab);
- if (favicon_tab_helper->ShouldDisplayFavicon()) {
- item.image = favicon_tab_helper->GetFavicon().AsImageSkia();
- if (item.image.isNull()) {
- item.image = *rb.GetImageSkiaNamed(IDR_DEFAULT_FAVICON);
- }
- } else {
- item.image = *rb.GetImageSkiaNamed(IDR_DEFAULT_FAVICON);
- }
- launcher_model()->Set(item_index, item);
}
void BrowserLauncherItemController::UpdateAppState(content::WebContents* tab) {
ChromeLauncherController::AppState app_state;
- if (!launcher_controller()->GetPerAppInterface() &&
- tab_model_->GetIndexOfWebContents(tab) == TabStripModel::kNoTab) {
- app_state = ChromeLauncherController::APP_STATE_REMOVED;
- } else if (tab_model_->GetActiveWebContents() == tab) {
+ if (tab_model_->GetActiveWebContents() == tab) {
if (ash::wm::IsActiveWindow(window_))
app_state = ChromeLauncherController::APP_STATE_WINDOW_ACTIVE;
else

Powered by Google App Engine
This is Rietveld 408576698