12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ash/system/tray/system_tray_notifier.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#if defined(OS_CHROMEOS) 8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "ash/system/chromeos/network/network_state_notifier.h" 9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif 10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace ash { 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)SystemTrayNotifier::SystemTrayNotifier() { 14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#if defined(OS_CHROMEOS) 15868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) network_state_notifier_.reset(new NetworkStateNotifier()); 16868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)SystemTrayNotifier::~SystemTrayNotifier() { 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::AddAccessibilityObserver( 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) AccessibilityObserver* observer) { 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) accessibility_observers_.AddObserver(observer); 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::RemoveAccessibilityObserver( 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) AccessibilityObserver* observer) { 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) accessibility_observers_.RemoveObserver(observer); 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::AddAudioObserver(AudioObserver* observer) { 33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_observers_.AddObserver(observer); 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::RemoveAudioObserver(AudioObserver* observer) { 37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_observers_.RemoveObserver(observer); 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::AddBluetoothObserver(BluetoothObserver* observer) { 41a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) bluetooth_observers_.AddObserver(observer); 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 44a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::RemoveBluetoothObserver(BluetoothObserver* observer) { 45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) bluetooth_observers_.RemoveObserver(observer); 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::AddClockObserver(ClockObserver* observer) { 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) clock_observers_.AddObserver(observer); 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::RemoveClockObserver(ClockObserver* observer) { 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) clock_observers_.RemoveObserver(observer); 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::AddIMEObserver(IMEObserver* observer) { 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ime_observers_.AddObserver(observer); 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::RemoveIMEObserver(IMEObserver* observer) { 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ime_observers_.RemoveObserver(observer); 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::AddLocaleObserver(LocaleObserver* observer) { 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) locale_observers_.AddObserver(observer); 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::RemoveLocaleObserver(LocaleObserver* observer) { 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) locale_observers_.RemoveObserver(observer); 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochvoid SystemTrayNotifier::AddTracingObserver(TracingObserver* observer) { 73ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch tracing_observers_.AddObserver(observer); 74ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 75ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 76ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochvoid SystemTrayNotifier::RemoveTracingObserver(TracingObserver* observer) { 77ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch tracing_observers_.RemoveObserver(observer); 78ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 79ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::AddUpdateObserver(UpdateObserver* observer) { 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) update_observers_.AddObserver(observer); 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::RemoveUpdateObserver(UpdateObserver* observer) { 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) update_observers_.RemoveObserver(observer); 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::AddUserObserver(UserObserver* observer) { 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) user_observers_.AddObserver(observer); 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::RemoveUserObserver(UserObserver* observer) { 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) user_observers_.RemoveObserver(observer); 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_CHROMEOS) 97c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 98a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::AddLogoutButtonObserver( 99a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) LogoutButtonObserver* observer) { 100a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) logout_button_observers_.AddObserver(observer); 101a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 102a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 103a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::RemoveLogoutButtonObserver( 104a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) LogoutButtonObserver* observer) { 105a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) logout_button_observers_.RemoveObserver(observer); 106a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 107a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 108a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::AddSessionLengthLimitObserver( 109a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) SessionLengthLimitObserver* observer) { 110a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) session_length_limit_observers_.AddObserver(observer); 111a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 112a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 113a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::RemoveSessionLengthLimitObserver( 114a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) SessionLengthLimitObserver* observer) { 115a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) session_length_limit_observers_.RemoveObserver(observer); 116a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 117a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::AddNetworkObserver(NetworkObserver* observer) { 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) network_observers_.AddObserver(observer); 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::RemoveNetworkObserver(NetworkObserver* observer) { 1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) network_observers_.RemoveObserver(observer); 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 126a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::AddNetworkPortalDetectorObserver( 127a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) NetworkPortalDetectorObserver* observer) { 128a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) network_portal_detector_observers_.AddObserver(observer); 129a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 130a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 131a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::RemoveNetworkPortalDetectorObserver( 132a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) NetworkPortalDetectorObserver* observer) { 133a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) network_portal_detector_observers_.RemoveObserver(observer); 134a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 135a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::AddEnterpriseDomainObserver( 1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EnterpriseDomainObserver* observer) { 1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) enterprise_domain_observers_.AddObserver(observer); 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::RemoveEnterpriseDomainObserver( 1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EnterpriseDomainObserver* observer) { 1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) enterprise_domain_observers_.RemoveObserver(observer); 1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 146010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void SystemTrayNotifier::AddMediaCaptureObserver( 147010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) MediaCaptureObserver* observer) { 148010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) media_capture_observers_.AddObserver(observer); 149010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 150010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 151010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void SystemTrayNotifier::RemoveMediaCaptureObserver( 152010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) MediaCaptureObserver* observer) { 153010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) media_capture_observers_.RemoveObserver(observer); 154010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 155010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::AddScreenCaptureObserver( 1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ScreenCaptureObserver* observer) { 1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) screen_capture_observers_.AddObserver(observer); 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::RemoveScreenCaptureObserver( 1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ScreenCaptureObserver* observer) { 1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) screen_capture_observers_.RemoveObserver(observer); 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 166868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)void SystemTrayNotifier::AddScreenShareObserver( 167868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ScreenShareObserver* observer) { 168868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) screen_share_observers_.AddObserver(observer); 169868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 170868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 171868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)void SystemTrayNotifier::RemoveScreenShareObserver( 172868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ScreenShareObserver* observer) { 173868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) screen_share_observers_.RemoveObserver(observer); 174868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 175a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 176a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::AddLastWindowClosedObserver( 177a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) LastWindowClosedObserver* observer) { 178a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) last_window_closed_observers_.AddObserver(observer); 179a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 180a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 181a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::RemoveLastWindowClosedObserver( 182a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) LastWindowClosedObserver* observer) { 183a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) last_window_closed_observers_.RemoveObserver(observer); 184a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyAccessibilityModeChanged( 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) AccessibilityNotificationVisibility notify) { 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER( 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) AccessibilityObserver, 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) accessibility_observers_, 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnAccessibilityModeChanged(notify)); 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 195a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifyAudioOutputVolumeChanged() { 196a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER( 197a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) AudioObserver, 198a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_observers_, 199a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnOutputVolumeChanged()); 200a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 201a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 202a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifyAudioOutputMuteChanged() { 203a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER( 204a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) AudioObserver, 205a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_observers_, 206a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnOutputMuteChanged()); 207a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 208a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 209a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifyAudioNodesChanged() { 210a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER( 211a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) AudioObserver, 212a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_observers_, 213a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnAudioNodesChanged()); 214a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 215a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 216a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifyAudioActiveOutputNodeChanged() { 217a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER( 218a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) AudioObserver, 219a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_observers_, 220a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnActiveOutputNodeChanged()); 221a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 222a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 223a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifyAudioActiveInputNodeChanged() { 224a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER( 225a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) AudioObserver, 226a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) audio_observers_, 227a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnActiveInputNodeChanged()); 228a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 229a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 230ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochvoid SystemTrayNotifier::NotifyTracingModeChanged(bool value) { 231ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch FOR_EACH_OBSERVER( 232ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch TracingObserver, 233ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch tracing_observers_, 234ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch OnTracingModeChanged(value)); 235ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} 236ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 2372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyRefreshBluetooth() { 2382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(BluetoothObserver, 2392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bluetooth_observers_, 2402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnBluetoothRefresh()); 2412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyBluetoothDiscoveringChanged() { 2442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(BluetoothObserver, 2452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bluetooth_observers_, 2462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnBluetoothDiscoveringChanged()); 2472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyRefreshClock() { 2502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(ClockObserver, clock_observers_, Refresh()); 2512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyDateFormatChanged() { 2542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(ClockObserver, 2552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) clock_observers_, 2562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnDateFormatChanged()); 2572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifySystemClockTimeUpdated() { 2602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(ClockObserver, 2612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) clock_observers_, 2622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnSystemClockTimeUpdated()); 2632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2655c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid SystemTrayNotifier::NotifySystemClockCanSetTimeChanged(bool can_set_time) { 2665c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu FOR_EACH_OBSERVER(ClockObserver, 2675c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu clock_observers_, 2685c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu OnSystemClockCanSetTimeChanged(can_set_time)); 2695c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 2705c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 271a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifyRefreshIME() { 2722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(IMEObserver, 2732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ime_observers_, 274a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnIMERefresh()); 2755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 2765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyLocaleChanged( 2782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LocaleObserver::Delegate* delegate, 2792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& cur_locale, 2802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& from_locale, 2812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& to_locale) { 2822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER( 2832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LocaleObserver, 2842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) locale_observers_, 2852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnLocaleChanged(delegate, cur_locale, from_locale, to_locale)); 2862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyUpdateRecommended( 2892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UpdateObserver::UpdateSeverity severity) { 2902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(UpdateObserver, 2912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) update_observers_, 2922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnUpdateRecommended(severity)); 2932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyUserUpdate() { 2962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(UserObserver, 2972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) user_observers_, 2982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnUserUpdate()); 2992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 3002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3014e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)void SystemTrayNotifier::NotifyUserAddedToSession() { 3024e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FOR_EACH_OBSERVER(UserObserver, 3034e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) user_observers_, 3044e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) OnUserAddedToSession()); 3054e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 3064e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 3072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_CHROMEOS) 3082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 309a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifyShowLoginButtonChanged(bool show_login_button) { 310a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER(LogoutButtonObserver, 311a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) logout_button_observers_, 312a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnShowLogoutButtonInTrayChanged(show_login_button)); 313a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 314a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 315a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifyLogoutDialogDurationChanged( 316a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) base::TimeDelta duration) { 317a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER(LogoutButtonObserver, 318a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) logout_button_observers_, 319a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnLogoutDialogDurationChanged(duration)); 320a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 321a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 322a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifySessionStartTimeChanged() { 323a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER(SessionLengthLimitObserver, 324a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) session_length_limit_observers_, 325a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnSessionStartTimeChanged()); 326a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 327a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 328a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifySessionLengthLimitChanged() { 329a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER(SessionLengthLimitObserver, 330a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) session_length_limit_observers_, 331a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnSessionLengthLimitChanged()); 332a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 333a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 33490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void SystemTrayNotifier::NotifyRequestToggleWifi() { 3352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(NetworkObserver, 3362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) network_observers_, 33790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) RequestToggleWifi()); 3382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 3392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 340a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifyOnCaptivePortalDetected( 341a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const std::string& service_path) { 342a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER(NetworkPortalDetectorObserver, 343a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) network_portal_detector_observers_, 344a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnCaptivePortalDetected(service_path)); 345a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 346a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 3472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyEnterpriseDomainChanged() { 3482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(EnterpriseDomainObserver, enterprise_domain_observers_, 3492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnEnterpriseDomainChanged()); 3502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 3512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 352010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void SystemTrayNotifier::NotifyMediaCaptureChanged() { 353010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) FOR_EACH_OBSERVER( 354010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) MediaCaptureObserver, media_capture_observers_, OnMediaCaptureChanged()); 355010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 356010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 3572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyScreenCaptureStart( 3582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::Closure& stop_callback, 359c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& sharing_app_name) { 3602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(ScreenCaptureObserver, screen_capture_observers_, 3612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnScreenCaptureStart(stop_callback, sharing_app_name)); 3622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 3632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SystemTrayNotifier::NotifyScreenCaptureStop() { 3652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FOR_EACH_OBSERVER(ScreenCaptureObserver, screen_capture_observers_, 3662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) OnScreenCaptureStop()); 3672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 3682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 369868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)void SystemTrayNotifier::NotifyScreenShareStart( 370868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) const base::Closure& stop_callback, 371868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) const base::string16& helper_name) { 372868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) FOR_EACH_OBSERVER(ScreenShareObserver, screen_share_observers_, 373868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) OnScreenShareStart(stop_callback, helper_name)); 374868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 375868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 376868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)void SystemTrayNotifier::NotifyScreenShareStop() { 377868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) FOR_EACH_OBSERVER(ScreenShareObserver, screen_share_observers_, 378868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) OnScreenShareStop()); 379868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 380868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 381a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void SystemTrayNotifier::NotifyLastWindowClosed() { 382a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) FOR_EACH_OBSERVER(LastWindowClosedObserver, 383a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) last_window_closed_observers_, 384a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) OnLastWindowClosed()); 385a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 386a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 3872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // OS_CHROMEOS 3882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace ash 390