OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/ash/system_tray_delegate_chromeos.h" | 5 #include "chrome/browser/ui/ash/system_tray_delegate_chromeos.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
862 return ash::Shell::GetInstance()->system_tray_notifier(); | 862 return ash::Shell::GetInstance()->system_tray_notifier(); |
863 } | 863 } |
864 | 864 |
865 void SystemTrayDelegateChromeOS::SetProfile(Profile* profile) { | 865 void SystemTrayDelegateChromeOS::SetProfile(Profile* profile) { |
866 // Stop observing the AppWindowRegistry of the current |user_profile_|. | 866 // Stop observing the AppWindowRegistry of the current |user_profile_|. |
867 StopObservingAppWindowRegistry(); | 867 StopObservingAppWindowRegistry(); |
868 | 868 |
869 user_profile_ = profile; | 869 user_profile_ = profile; |
870 | 870 |
871 // Start observing the AppWindowRegistry of the newly set |user_profile_|. | 871 // Start observing the AppWindowRegistry of the newly set |user_profile_|. |
872 apps::AppWindowRegistry::Get(user_profile_)->AddObserver(this); | 872 extensions::AppWindowRegistry::Get(user_profile_)->AddObserver(this); |
873 | 873 |
874 PrefService* prefs = profile->GetPrefs(); | 874 PrefService* prefs = profile->GetPrefs(); |
875 user_pref_registrar_.reset(new PrefChangeRegistrar); | 875 user_pref_registrar_.reset(new PrefChangeRegistrar); |
876 user_pref_registrar_->Init(prefs); | 876 user_pref_registrar_->Init(prefs); |
877 user_pref_registrar_->Add( | 877 user_pref_registrar_->Add( |
878 prefs::kUse24HourClock, | 878 prefs::kUse24HourClock, |
879 base::Bind(&SystemTrayDelegateChromeOS::UpdateClockType, | 879 base::Bind(&SystemTrayDelegateChromeOS::UpdateClockType, |
880 base::Unretained(this))); | 880 base::Unretained(this))); |
881 user_pref_registrar_->Add( | 881 user_pref_registrar_->Add( |
882 prefs::kLanguageRemapSearchKeyTo, | 882 prefs::kLanguageRemapSearchKeyTo, |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1004 have_session_length_limit_ = false; | 1004 have_session_length_limit_ = false; |
1005 session_length_limit_ = base::TimeDelta(); | 1005 session_length_limit_ = base::TimeDelta(); |
1006 } | 1006 } |
1007 GetSystemTrayNotifier()->NotifySessionLengthLimitChanged(); | 1007 GetSystemTrayNotifier()->NotifySessionLengthLimitChanged(); |
1008 } | 1008 } |
1009 | 1009 |
1010 void SystemTrayDelegateChromeOS::StopObservingAppWindowRegistry() { | 1010 void SystemTrayDelegateChromeOS::StopObservingAppWindowRegistry() { |
1011 if (!user_profile_) | 1011 if (!user_profile_) |
1012 return; | 1012 return; |
1013 | 1013 |
1014 apps::AppWindowRegistry* registry = | 1014 extensions::AppWindowRegistry* registry = |
1015 apps::AppWindowRegistry::Factory::GetForBrowserContext(user_profile_, | 1015 extensions::AppWindowRegistry::Factory::GetForBrowserContext( |
1016 false); | 1016 user_profile_, false); |
1017 if (registry) | 1017 if (registry) |
1018 registry->RemoveObserver(this); | 1018 registry->RemoveObserver(this); |
1019 } | 1019 } |
1020 | 1020 |
1021 void SystemTrayDelegateChromeOS::NotifyIfLastWindowClosed() { | 1021 void SystemTrayDelegateChromeOS::NotifyIfLastWindowClosed() { |
1022 if (!user_profile_) | 1022 if (!user_profile_) |
1023 return; | 1023 return; |
1024 | 1024 |
1025 BrowserList* browser_list = | 1025 BrowserList* browser_list = |
1026 BrowserList::GetInstance(chrome::HOST_DESKTOP_TYPE_ASH); | 1026 BrowserList::GetInstance(chrome::HOST_DESKTOP_TYPE_ASH); |
1027 for (BrowserList::const_iterator it = browser_list->begin(); | 1027 for (BrowserList::const_iterator it = browser_list->begin(); |
1028 it != browser_list->end(); | 1028 it != browser_list->end(); |
1029 ++it) { | 1029 ++it) { |
1030 if ((*it)->profile()->IsSameProfile(user_profile_)) { | 1030 if ((*it)->profile()->IsSameProfile(user_profile_)) { |
1031 // The current user has at least one open browser window. | 1031 // The current user has at least one open browser window. |
1032 return; | 1032 return; |
1033 } | 1033 } |
1034 } | 1034 } |
1035 | 1035 |
1036 if (!apps::AppWindowRegistry::Get(user_profile_)->app_windows().empty()) { | 1036 if (!extensions::AppWindowRegistry::Get( |
| 1037 user_profile_)->app_windows().empty()) { |
1037 // The current user has at least one open app window. | 1038 // The current user has at least one open app window. |
1038 return; | 1039 return; |
1039 } | 1040 } |
1040 | 1041 |
1041 GetSystemTrayNotifier()->NotifyLastWindowClosed(); | 1042 GetSystemTrayNotifier()->NotifyLastWindowClosed(); |
1042 } | 1043 } |
1043 | 1044 |
1044 // LoginState::Observer overrides. | 1045 // LoginState::Observer overrides. |
1045 void SystemTrayDelegateChromeOS::LoggedInStateChanged() { | 1046 void SystemTrayDelegateChromeOS::LoggedInStateChanged() { |
1046 // It apparently sometimes takes a while after login before the current user | 1047 // It apparently sometimes takes a while after login before the current user |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1272 void SystemTrayDelegateChromeOS::UserAddedToSession( | 1273 void SystemTrayDelegateChromeOS::UserAddedToSession( |
1273 const std::string& user_id) { | 1274 const std::string& user_id) { |
1274 GetSystemTrayNotifier()->NotifyUserAddedToSession(); | 1275 GetSystemTrayNotifier()->NotifyUserAddedToSession(); |
1275 } | 1276 } |
1276 | 1277 |
1277 // Overridden from chrome::BrowserListObserver. | 1278 // Overridden from chrome::BrowserListObserver. |
1278 void SystemTrayDelegateChromeOS::OnBrowserRemoved(Browser* browser) { | 1279 void SystemTrayDelegateChromeOS::OnBrowserRemoved(Browser* browser) { |
1279 NotifyIfLastWindowClosed(); | 1280 NotifyIfLastWindowClosed(); |
1280 } | 1281 } |
1281 | 1282 |
1282 // Overridden from apps::AppWindowRegistry::Observer. | 1283 // Overridden from extensions::AppWindowRegistry::Observer. |
1283 void SystemTrayDelegateChromeOS::OnAppWindowRemoved( | 1284 void SystemTrayDelegateChromeOS::OnAppWindowRemoved( |
1284 apps::AppWindow* app_window) { | 1285 extensions::AppWindow* app_window) { |
1285 NotifyIfLastWindowClosed(); | 1286 NotifyIfLastWindowClosed(); |
1286 } | 1287 } |
1287 | 1288 |
1288 void SystemTrayDelegateChromeOS::OnAccessibilityStatusChanged( | 1289 void SystemTrayDelegateChromeOS::OnAccessibilityStatusChanged( |
1289 const AccessibilityStatusEventDetails& details) { | 1290 const AccessibilityStatusEventDetails& details) { |
1290 if (details.notification_type == ACCESSIBILITY_MANAGER_SHUTDOWN) | 1291 if (details.notification_type == ACCESSIBILITY_MANAGER_SHUTDOWN) |
1291 accessibility_subscription_.reset(); | 1292 accessibility_subscription_.reset(); |
1292 else | 1293 else |
1293 OnAccessibilityModeChanged(details.notify); | 1294 OnAccessibilityModeChanged(details.notify); |
1294 } | 1295 } |
1295 | 1296 |
1296 ash::SystemTrayDelegate* CreateSystemTrayDelegate() { | 1297 ash::SystemTrayDelegate* CreateSystemTrayDelegate() { |
1297 return new SystemTrayDelegateChromeOS(); | 1298 return new SystemTrayDelegateChromeOS(); |
1298 } | 1299 } |
1299 | 1300 |
1300 } // namespace chromeos | 1301 } // namespace chromeos |
OLD | NEW |