Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / ui / ash / launcher / multi_profile_browser_status_monitor.h
blob60061c5ec2c7f3eede61551377e3fea6eb1eae3f
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_UI_ASH_LAUNCHER_MULTI_PROFILE_BROWSER_STATUS_MONITOR_H_
6 #define CHROME_BROWSER_UI_ASH_LAUNCHER_MULTI_PROFILE_BROWSER_STATUS_MONITOR_H_
8 #include "chrome/browser/ui/ash/launcher/browser_status_monitor.h"
10 // MultiProfileBrowserStatusMonitor uses mainly the BrowserStatusMonitor
11 // with the addition that it creates and destroys launcher items for windowed
12 // V1 apps - upon creation as well as upon user switch.
13 class MultiProfileBrowserStatusMonitor : public BrowserStatusMonitor {
14 public:
15 explicit MultiProfileBrowserStatusMonitor(
16 ChromeLauncherController* launcher_controller);
17 ~MultiProfileBrowserStatusMonitor() override;
19 // BrowserStatusMonitor overrides.
20 void ActiveUserChanged(const std::string& user_email) override;
21 void AddV1AppToShelf(Browser* browser) override;
22 void RemoveV1AppFromShelf(Browser* browser) override;
24 private:
25 typedef std::vector<Browser*> AppList;
26 AppList app_list_;
28 // Connect a V1 app to the launcher.
29 void ConnectV1AppToLauncher(Browser* browser);
31 // Disconnect a V1 app from the launcher.
32 void DisconnectV1AppFromLauncher(Browser* browser);
34 // The launcher controller which is associated with this object.
35 ChromeLauncherController* launcher_controller_;
37 DISALLOW_COPY_AND_ASSIGN(MultiProfileBrowserStatusMonitor);
40 #endif // CHROME_BROWSER_UI_ASH_LAUNCHER_MULTI_PROFILE_BROWSER_STATUS_MONITOR_H_