Index: chrome/browser/ui/ash/launcher/arc_app_window_launcher_item_controller.h |
diff --git a/chrome/browser/ui/ash/launcher/arc_app_window_launcher_item_controller.h b/chrome/browser/ui/ash/launcher/arc_app_window_launcher_item_controller.h |
index 622ea28446effe98436e173f360c730af4e70742..b2b0ef0dd272f26020e4e6324b5932f01f03a03a 100644 |
--- a/chrome/browser/ui/ash/launcher/arc_app_window_launcher_item_controller.h |
+++ b/chrome/browser/ui/ash/launcher/arc_app_window_launcher_item_controller.h |
@@ -11,11 +11,15 @@ |
#include "base/macros.h" |
#include "chrome/browser/ui/ash/launcher/app_window_launcher_item_controller.h" |
+class ArcAppWindow; |
+class ChromeLauncherController; |
+ |
// Shelf item delegate for ARC app windows. |
class ArcAppWindowLauncherItemController |
: public AppWindowLauncherItemController { |
public: |
- explicit ArcAppWindowLauncherItemController(const std::string& arc_app_id); |
+ ArcAppWindowLauncherItemController(const std::string& arc_app_id, |
+ ChromeLauncherController* owner); |
~ArcAppWindowLauncherItemController() override; |
@@ -31,9 +35,23 @@ class ArcAppWindowLauncherItemController |
void RemoveTaskId(int task_id); |
bool HasAnyTasks() const; |
+ void OnWindowChanged(ArcAppWindow* arc_app_window); |
+ |
private: |
+ // Updates controller icon from the active window. If custom icon of the |
+ // window exists and decoded then set this custom icon for the controller. |
+ // If not and controller has custom icon set then update the icon from default |
+ // AppIconLoader. |
+ void UpdateIcon(ArcAppWindow* arc_app_window); |
+ |
+ // AppWindowLauncherItemController: |
+ void OnActiveWindowChanged(ui::BaseWindow* active_window) override; |
+ |
std::unordered_set<int> task_ids_; |
+ // Unowned property. |
+ ChromeLauncherController* const owner_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ArcAppWindowLauncherItemController); |
}; |