Chromium Code Reviews| 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..183659de0678b61621f2bd5b85fcaeda9e7413b2 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 |
| @@ -6,8 +6,10 @@ |
| #include "ash/aura/wm_window_aura.h" |
| #include "ash/common/shelf/shelf_delegate.h" |
| +#include "ash/common/shelf/shelf_item_types.h" |
| #include "ash/common/wm_shell.h" |
| #include "ash/common/wm_window_property.h" |
| +#include "ash/wm/window_properties.h" |
| #include "ash/wm/window_util.h" |
| #include "base/stl_util.h" |
| #include "base/strings/stringprintf.h" |
| @@ -15,6 +17,7 @@ |
| #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" |
| #include "chrome/browser/ui/ash/launcher/extension_app_window_launcher_item_controller.h" |
| #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" |
| +#include "chrome/browser/ui/ash/property_util.h" |
| #include "extensions/browser/app_window/app_window.h" |
| #include "extensions/browser/app_window/native_app_window.h" |
| #include "extensions/common/extension.h" |
| @@ -28,11 +31,10 @@ namespace { |
| std::string GetLaunchId(AppWindow* app_window) { |
| // Set launch_id default value to an empty string. If showInShelf parameter |
| - // is true or the window type is panel and the window key is not empty, its |
| - // value is appended to the launch_id. Otherwise, if the window key is |
| - // empty, the session_id is used. |
| + // is true and the window key is not empty, its value is appended to the |
| + // launch_id. Otherwise, if the window key is empty, the session_id is used. |
| std::string launch_id; |
| - if (app_window->show_in_shelf() || app_window->window_type_is_panel()) { |
| + if (app_window->show_in_shelf()) { |
|
James Cook
2016/11/02 17:53:44
Can you tell me more about this? This sounds like
msw
2016/11/10 21:07:46
I aimed to remove all panel use/control from this
|
| if (!app_window->window_key().empty()) |
| launch_id = app_window->window_key(); |
| else |
| @@ -127,7 +129,14 @@ void ExtensionAppWindowLauncherController::RegisterApp(AppWindow* app_window) { |
| if (app_window->is_ime_window()) |
| return; |
| + // Ash's ShelfWindowWatcher handles app panel windows once their type is set. |
| aura::Window* window = app_window->GetNativeWindow(); |
| + if (app_window->window_type_is_panel()) { |
| + property_util::SetIntProperty(window, ash::kShelfItemTypeKey, |
| + ash::TYPE_APP_PANEL); |
| + return; |
| + } |
| + |
| // Get the app's shelf identifier and add an entry to the map. |
| DCHECK(window_to_app_shelf_id_map_.find(window) == |
| window_to_app_shelf_id_map_.end()); |
| @@ -151,10 +160,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, |