Index: chrome/browser/ui/ash/system_tray_delegate_chromeos.h |
diff --git a/chrome/browser/ui/ash/system_tray_delegate_chromeos.h b/chrome/browser/ui/ash/system_tray_delegate_chromeos.h |
index b53183a1b8117516a8aac4d2bb5b246f143e0e79..2f7b6f541e6c08ef0e194c8b0bb6ee58e5aac0eb 100644 |
--- a/chrome/browser/ui/ash/system_tray_delegate_chromeos.h |
+++ b/chrome/browser/ui/ash/system_tray_delegate_chromeos.h |
@@ -5,20 +5,25 @@ |
#ifndef CHROME_BROWSER_UI_ASH_SYSTEM_TRAY_DELEGATE_CHROMEOS_H_ |
#define CHROME_BROWSER_UI_ASH_SYSTEM_TRAY_DELEGATE_CHROMEOS_H_ |
+#include <vector> |
+ |
#include "ash/ime/input_method_menu_manager.h" |
#include "ash/session/session_state_observer.h" |
+#include "ash/system/chromeos/supervised/custodian_info_tray_observer.h" |
#include "ash/system/tray/system_tray.h" |
#include "ash/system/tray/system_tray_delegate.h" |
#include "ash/system/tray/system_tray_notifier.h" |
+#include "base/callback_forward.h" |
#include "base/callback_list.h" |
#include "base/compiler_specific.h" |
#include "base/containers/scoped_ptr_hash_map.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/weak_ptr.h" |
+#include "base/observer_list.h" |
#include "base/prefs/pref_change_registrar.h" |
#include "chrome/browser/chromeos/accessibility/accessibility_manager.h" |
#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/ui/ash/system_tray_delegate_chromeos.h" |
+#include "chrome/browser/supervised_user/supervised_user_service_observer.h" |
#include "chrome/browser/ui/browser_list_observer.h" |
#include "chromeos/audio/cras_audio_handler.h" |
#include "chromeos/dbus/session_manager_client.h" |
@@ -51,7 +56,8 @@ class SystemTrayDelegateChromeOS |
public ash::SessionStateObserver, |
public chrome::BrowserListObserver, |
public extensions::AppWindowRegistry::Observer, |
- public user_manager::UserManager::UserSessionStateObserver { |
+ public user_manager::UserManager::UserSessionStateObserver, |
+ public SupervisedUserServiceObserver { |
public: |
SystemTrayDelegateChromeOS(); |
@@ -132,6 +138,10 @@ class SystemTrayDelegateChromeOS |
virtual bool IsSearchKeyMappedToCapsLock() override; |
virtual ash::tray::UserAccountsDelegate* GetUserAccountsDelegate( |
const std::string& user_id) override; |
+ virtual void AddCustodianInfoTrayObserver( |
+ ash::CustodianInfoTrayObserver* observer) override; |
+ virtual void RemoveCustodianInfoTrayObserver( |
+ ash::CustodianInfoTrayObserver* observer) override; |
// Overridden from user_manager::UserManager::UserSessionStateObserver: |
virtual void UserAddedToSession(const user_manager::User* active_user) |
@@ -170,6 +180,8 @@ class SystemTrayDelegateChromeOS |
void StopObservingAppWindowRegistry(); |
+ void StopObservingCustodianInfoChanges(); |
+ |
// Notify observers if the current user has no more open browser or app |
// windows. |
void NotifyIfLastWindowClosed(); |
@@ -244,6 +256,9 @@ class SystemTrayDelegateChromeOS |
// Overridden from extensions::AppWindowRegistry::Observer: |
virtual void OnAppWindowRemoved(extensions::AppWindow* app_window) override; |
+ // Overridden from SupervisedUserServiceObserver: |
+ virtual void OnCustodianInfoChanged() override; |
+ |
void OnAccessibilityStatusChanged( |
const AccessibilityStatusEventDetails& details); |
@@ -270,6 +285,9 @@ class SystemTrayDelegateChromeOS |
base::ScopedPtrHashMap<std::string, ash::tray::UserAccountsDelegate> |
accounts_delegates_; |
+ ObserverList<ash::CustodianInfoTrayObserver> |
+ custodian_info_changed_observers_; |
+ |
base::WeakPtrFactory<SystemTrayDelegateChromeOS> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(SystemTrayDelegateChromeOS); |