| Index: chrome/browser/ui/ash/launcher/chrome_launcher_controller.h
|
| diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h
|
| index 411a5ead8c60a6d1617a629ea5f37fa87578f09b..3a0a841dfa76933b382fa5399bd4dd106744de0e 100644
|
| --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h
|
| +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.h
|
| @@ -17,9 +17,11 @@
|
| #include "base/basictypes.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "base/timer.h"
|
| #include "chrome/browser/extensions/extension_prefs.h"
|
| #include "chrome/browser/extensions/shell_window_registry.h"
|
| #include "chrome/browser/prefs/pref_change_registrar.h"
|
| +#include "chrome/browser/sync/profile_sync_service_observer.h"
|
| #include "content/public/browser/notification_observer.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| #include "ui/aura/client/activation_change_observer.h"
|
| @@ -42,6 +44,7 @@ class BrowserLauncherItemController;
|
| class BrowserLauncherItemControllerTest;
|
| class PrefService;
|
| class Profile;
|
| +class ProfileSyncService;
|
| class TabContents;
|
|
|
| // ChromeLauncherController manages the launcher items needed for tabbed
|
| @@ -53,7 +56,8 @@ class ChromeLauncherController
|
| public content::NotificationObserver,
|
| public extensions::ShellWindowRegistry::Observer,
|
| public aura::client::ActivationChangeObserver,
|
| - public aura::WindowObserver {
|
| + public aura::WindowObserver,
|
| + public ProfileSyncServiceObserver {
|
| public:
|
| // Indicates if a launcher item is incognito or not.
|
| enum IncognitoState {
|
| @@ -226,6 +230,7 @@ class ChromeLauncherController
|
| virtual void LauncherItemMoved(int start_index, int target_index) OVERRIDE;
|
| virtual void LauncherItemChanged(int index,
|
| const ash::LauncherItem& old_item) OVERRIDE;
|
| + virtual void LauncherStatusChanged() OVERRIDE;
|
|
|
| // Overridden from content::NotificationObserver:
|
| virtual void Observe(int type,
|
| @@ -236,17 +241,20 @@ class ChromeLauncherController
|
| virtual void OnShellWindowAdded(ShellWindow* shell_window) OVERRIDE;
|
| virtual void OnShellWindowRemoved(ShellWindow* shell_window) OVERRIDE;
|
|
|
| - // Overriden from client::ActivationChangeObserver:
|
| + // Overridden from client::ActivationChangeObserver:
|
| virtual void OnWindowActivated(
|
| aura::Window* active,
|
| aura::Window* old_active) OVERRIDE;
|
|
|
| - // Overriden from aura::WindowObserver:
|
| + // Overridden from aura::WindowObserver:
|
| virtual void OnWindowRemovingFromRootWindow(aura::Window* window) OVERRIDE;
|
|
|
| - // Overriden from ash::ShellObserver:
|
| + // Overridden from ash::ShellObserver:
|
| virtual void OnShelfAlignmentChanged() OVERRIDE;
|
|
|
| + // Overridden from ProfileSyncServiceObserver:
|
| + virtual void OnStateChanged() OVERRIDE;
|
| +
|
| private:
|
| friend class BrowserLauncherItemControllerTest;
|
| friend class ChromeLauncherControllerTest;
|
| @@ -290,10 +298,6 @@ class ChromeLauncherController
|
| // Returns item status for given |id|.
|
| ash::LauncherItemStatus GetItemStatus(ash::LauncherID id) const;
|
|
|
| - // Finds the launcher item that represents given |app_id| and updates the
|
| - // pending state.
|
| - void MarkAppPending(const std::string& app_id);
|
| -
|
| // Internal helpers for pinning and unpinning that handle both
|
| // client-triggered and internal pinning operations.
|
| void DoPinAppWithID(const std::string& app_id);
|
| @@ -319,6 +323,13 @@ class ChromeLauncherController
|
| ash::LauncherItemStatus status,
|
| int index);
|
|
|
| + // Checks whether sync is completed and no pending synced extension install
|
| + // and calls StopLoadingAnimation when both conditions are met.
|
| + void CheckAppSync();
|
| +
|
| + void StartLoadingAnimation();
|
| + void StopLoadingAnimation();
|
| +
|
| static ChromeLauncherController* instance_;
|
|
|
| ash::LauncherModel* model_;
|
| @@ -354,6 +365,9 @@ class ChromeLauncherController
|
| PrefChangeRegistrar pref_change_registrar_;
|
| aura::client::ActivationClient* activation_client_;
|
|
|
| + ProfileSyncService* observed_sync_service_;
|
| + base::OneShotTimer<ChromeLauncherController> loading_timer_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(ChromeLauncherController);
|
| };
|
|
|
|
|