| Index: chrome/browser/chrome_browser_main.cc
|
| diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
|
| index 46c9926416695b1ab9e563177179c345de2d0c0e..9b9b1ff2b85e876888b4048a613d1c1c7e246e5c 100644
|
| --- a/chrome/browser/chrome_browser_main.cc
|
| +++ b/chrome/browser/chrome_browser_main.cc
|
| @@ -143,6 +143,7 @@
|
| #include "chrome/browser/chromeos/login/ownership_service.h"
|
| #include "chrome/browser/chromeos/login/screen_locker.h"
|
| #include "chrome/browser/chromeos/login/user_manager.h"
|
| +#include "chrome/browser/chromeos/system/runtime_environment.h"
|
| #include "chrome/browser/chromeos/system_key_event_listener.h"
|
| #include "chrome/browser/chromeos/user_cros_settings_provider.h"
|
| #include "chrome/browser/chromeos/xinput_hierarchy_changed_event_listener.h"
|
| @@ -1817,8 +1818,12 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunInternal() {
|
| chromeos::AudioHandler::Initialize();
|
|
|
| // Listen for system key events so that the user will be able to adjust the
|
| - // volume on the login screen.
|
| - chromeos::SystemKeyEventListener::Initialize();
|
| + // volume on the login screen, if Chrome is running on Chrome OS
|
| + // (i.e. not Linux desktop), and in non-test mode.
|
| + if (chromeos::system::runtime_environment::IsRunningOnChromeOS() &&
|
| + !parameters().ui_task) { // ui_task is non-NULL when running tests.
|
| + chromeos::SystemKeyEventListener::Initialize();
|
| + }
|
|
|
| // Listen for XI_HierarchyChanged events.
|
| chromeos::XInputHierarchyChangedEventListener::GetInstance();
|
| @@ -2039,6 +2044,8 @@ void ChromeBrowserMainParts::PostMainMessageLoopRun() {
|
| // Singletons are finally destroyed in AtExitManager.
|
| chromeos::XInputHierarchyChangedEventListener::GetInstance()->Stop();
|
|
|
| + // chromeos::SystemKeyEventListener::Shutdown() is always safe to call,
|
| + // even if Initialize() wasn't called.
|
| chromeos::SystemKeyEventListener::Shutdown();
|
| chromeos::AudioHandler::Shutdown();
|
| #endif
|
|
|