Index: chrome/browser/ui/ash/launcher/extension_app_window_launcher_controller.cc |
diff --git a/chrome/browser/ui/ash/launcher/extension_app_window_launcher_controller.cc b/chrome/browser/ui/ash/launcher/extension_app_window_launcher_controller.cc |
index a01461a6e50770048e3e8ef172edf88c928cdf49..138cec71e67b9313cdfbe6c35c00f69db23076ab 100644 |
--- a/chrome/browser/ui/ash/launcher/extension_app_window_launcher_controller.cc |
+++ b/chrome/browser/ui/ash/launcher/extension_app_window_launcher_controller.cc |
@@ -127,6 +127,20 @@ void ExtensionAppWindowLauncherController::RegisterApp(AppWindow* app_window) { |
if (app_window->is_ime_window()) |
return; |
+ // Ash's ShelfWindowWatcher handles app panel windows separately. |
+ if (app_window->window_type_is_panel()) { |
+ // Load panel app icons now. ShelfWindowWatcher cannot easily trigger this, |
+ // and ShelfModel::Set cannot be called in ShelfItemAdded, since ShelfView |
+ // may not have added a view for the new shelf item at that point. |
+ const std::string& app_id = app_window->extension_id(); |
+ AppIconLoader* app_icon_loader = owner()->GetAppIconLoaderForApp(app_id); |
+ if (app_icon_loader) { |
+ app_icon_loader->FetchImage(app_id); |
+ app_icon_loader->UpdateImage(app_id); |
+ } |
+ return; |
+ } |
+ |
aura::Window* window = app_window->GetNativeWindow(); |
// Get the app's shelf identifier and add an entry to the map. |
DCHECK(window_to_app_shelf_id_map_.find(window) == |
@@ -151,10 +165,7 @@ void ExtensionAppWindowLauncherController::RegisterApp(AppWindow* app_window) { |
shelf_id = controller->shelf_id(); |
controller->AddAppWindow(app_window); |
} else { |
- LauncherItemController::Type type = |
- app_window->window_type_is_panel() |
- ? LauncherItemController::TYPE_APP_PANEL |
- : LauncherItemController::TYPE_APP; |
+ LauncherItemController::Type type = LauncherItemController::TYPE_APP; |
std::string launch_id = GetLaunchId(app_window); |
ExtensionAppWindowLauncherItemController* controller = |
new ExtensionAppWindowLauncherItemController(type, app_id, launch_id, |