diff options
author | yusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-15 01:50:03 +0000 |
---|---|---|
committer | yusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-15 01:50:03 +0000 |
commit | 0b6da80b684557f26cab8986fa5e4995731160fc (patch) | |
tree | 19ff1ee381976ef4c8af7a02ea1c18d7df98a72b | |
parent | a3cd44aefa9d4091d287a62130180ba75a87bbd6 (diff) | |
download | chromium_src-0b6da80b684557f26cab8986fa5e4995731160fc.zip chromium_src-0b6da80b684557f26cab8986fa5e4995731160fc.tar.gz chromium_src-0b6da80b684557f26cab8986fa5e4995731160fc.tar.bz2 |
Share the same keyboard layout among all windows.
- Call SetKeyboardLayoutPerWindow(false) in LanguageMenuButton::LanguageMenuButton().
- Mock Keyboard APIs so LanguageMenuButton::LanguageMenuButton() can call the function even in browser_tests.
In browser_tests, code like "if (CrosLibrary::Get()->EnsureLoaded()) SetKeyboardLayoutPerWindow(false);" does not work since the EnsureLoaded() function is replaced so it always returns true without loading libcros.so (i.e. the function pointer |SetKeyboardLayoutPerWindow| is NULL). We could fix this by either of the following:
1) Add NULL check: if (CrosLibrary::Get()->EnsureLoaded() && (SetKeyboardLayoutPerWindow != NULL)) SetKeyboardLayoutPerWindow(false);
2) Mock keyboard APIs and just call: CrosLibrary::Get()->GetKeyboardLibrary()->SetKeyboardLayoutPerWindow(false);
I'd choose 2), since 1) looks a bit error-prone and inconsistent with other libcros libraries (e.g. power, language, ...)
FYI, we can use the new cros/keyboard_library.h interface to implement the "swap ctrl/caps" feature in a clean way.
BUG=chromium-os:2433
TEST=manually
Review URL: http://codereview.chromium.org/2781006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49754 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/cros/cros_in_process_browser_test.cc | 33 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/cros_in_process_browser_test.h | 8 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/cros_library.cc | 18 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/cros_library.h | 10 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/keyboard_library.cc | 42 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/keyboard_library.h | 56 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/language_library.cc | 4 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/mock_keyboard_library.h | 28 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/login_browsertest.cc | 3 | ||||
-rw-r--r-- | chrome/browser/chromeos/status/language_menu_button.cc | 4 | ||||
-rwxr-xr-x | chrome/chrome_browser.gypi | 2 | ||||
-rwxr-xr-x | chrome/chrome_tests.gypi | 2 |
12 files changed, 205 insertions, 5 deletions
diff --git a/chrome/browser/chromeos/cros/cros_in_process_browser_test.cc b/chrome/browser/chromeos/cros/cros_in_process_browser_test.cc index 4a73ceb..570067c 100644 --- a/chrome/browser/chromeos/cros/cros_in_process_browser_test.cc +++ b/chrome/browser/chromeos/cros/cros_in_process_browser_test.cc @@ -10,6 +10,7 @@ #include "chrome/browser/browser.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/cros/mock_cryptohome_library.h" +#include "chrome/browser/chromeos/cros/mock_keyboard_library.h" #include "chrome/browser/chromeos/cros/mock_language_library.h" #include "chrome/browser/chromeos/cros/mock_library_loader.h" #include "chrome/browser/chromeos/cros/mock_network_library.h" @@ -33,6 +34,7 @@ using ::testing::_; CrosInProcessBrowserTest::CrosInProcessBrowserTest() : loader_(NULL), mock_cryptohome_library_(NULL), + mock_keyboard_library_(NULL), mock_language_library_(NULL), mock_network_library_(NULL), mock_power_library_(NULL), @@ -47,6 +49,7 @@ chromeos::CrosLibrary::TestApi* CrosInProcessBrowserTest::test_api() { } void CrosInProcessBrowserTest::InitStatusAreaMocks() { + InitMockKeyboardLibrary(); InitMockLanguageLibrary(); InitMockNetworkLibrary(); InitMockPowerLibrary(); @@ -71,6 +74,14 @@ void CrosInProcessBrowserTest::InitMockCryptohomeLibrary() { test_api()->SetCryptohomeLibrary(mock_cryptohome_library_, true); } +void CrosInProcessBrowserTest::InitMockKeyboardLibrary() { + InitMockLibraryLoader(); + if (mock_keyboard_library_) + return; + mock_keyboard_library_ = new MockKeyboardLibrary(); + test_api()->SetKeyboardLibrary(mock_keyboard_library_, true); +} + void CrosInProcessBrowserTest::InitMockLanguageLibrary() { InitMockLibraryLoader(); if (mock_language_library_) @@ -112,12 +123,32 @@ void CrosInProcessBrowserTest::InitMockSynapticsLibrary() { } void CrosInProcessBrowserTest::SetStatusAreaMocksExpectations() { + SetKeyboardLibraryStatusAreaExpectations(); SetLanguageLibraryStatusAreaExpectations(); SetNetworkLibraryStatusAreaExpectations(); SetPowerLibraryStatusAreaExpectations(); SetSynapticsLibraryExpectations(); } +void CrosInProcessBrowserTest::SetKeyboardLibraryStatusAreaExpectations() { + EXPECT_CALL(*mock_keyboard_library_, GetCurrentKeyboardLayoutName()) + .Times(AnyNumber()) + .WillRepeatedly((Return("us"))) + .RetiresOnSaturation(); + EXPECT_CALL(*mock_keyboard_library_, SetCurrentKeyboardLayoutByName(_)) + .Times(AnyNumber()) + .WillRepeatedly((Return(true))) + .RetiresOnSaturation(); + EXPECT_CALL(*mock_keyboard_library_, SetKeyboardLayoutPerWindow(_)) + .Times(AnyNumber()) + .WillRepeatedly((Return(true))) + .RetiresOnSaturation(); + EXPECT_CALL(*mock_keyboard_library_, GetKeyboardLayoutPerWindow(_)) + .Times(AnyNumber()) + .WillRepeatedly((Return(true))) + .RetiresOnSaturation(); +} + void CrosInProcessBrowserTest::SetLanguageLibraryStatusAreaExpectations() { EXPECT_CALL(*mock_language_library_, AddObserver(_)) .Times(1) @@ -218,6 +249,8 @@ void CrosInProcessBrowserTest::TearDownInProcessBrowserTestFixture() { test_api()->SetLibraryLoader(NULL, false); if (mock_cryptohome_library_) test_api()->SetCryptohomeLibrary(NULL, false); + if (mock_keyboard_library_) + test_api()->SetKeyboardLibrary(NULL, false); if (mock_language_library_) test_api()->SetLanguageLibrary(NULL, false); if (mock_network_library_) diff --git a/chrome/browser/chromeos/cros/cros_in_process_browser_test.h b/chrome/browser/chromeos/cros/cros_in_process_browser_test.h index 84f26aa..0a0b7ad 100644 --- a/chrome/browser/chromeos/cros/cros_in_process_browser_test.h +++ b/chrome/browser/chromeos/cros/cros_in_process_browser_test.h @@ -12,13 +12,14 @@ namespace chromeos { -class MockLibraryLoader; -class MockScreenLockLibrary; class MockCryptohomeLibrary; +class MockKeyboardLibrary; class MockLanguageLibrary; +class MockLibraryLoader; class MockNetworkLibrary; class MockPowerLibrary; class MockScreenLockLibrary; +class MockScreenLockLibrary; class MockSynapticsLibrary; // Base class for Chromium OS tests wanting to bring up a browser in the @@ -47,6 +48,7 @@ class CrosInProcessBrowserTest : public InProcessBrowserTest { // Initialization of mocks. void InitMockCryptohomeLibrary(); + void InitMockKeyboardLibrary(); void InitMockLanguageLibrary(); void InitMockNetworkLibrary(); void InitMockPowerLibrary(); @@ -62,6 +64,7 @@ class CrosInProcessBrowserTest : public InProcessBrowserTest { void SetStatusAreaMocksExpectations(); // Methods to setup minimal mocks expectations for status area. + void SetKeyboardLibraryStatusAreaExpectations(); void SetLanguageLibraryStatusAreaExpectations(); void SetNetworkLibraryStatusAreaExpectations(); void SetPowerLibraryStatusAreaExpectations(); @@ -76,6 +79,7 @@ class CrosInProcessBrowserTest : public InProcessBrowserTest { // Mocks, destroyed by CrosLibrary class. MockLibraryLoader* loader_; MockCryptohomeLibrary* mock_cryptohome_library_; + MockKeyboardLibrary* mock_keyboard_library_; MockLanguageLibrary* mock_language_library_; MockNetworkLibrary* mock_network_library_; MockPowerLibrary* mock_power_library_; diff --git a/chrome/browser/chromeos/cros/cros_library.cc b/chrome/browser/chromeos/cros/cros_library.cc index 023bc01..46e59cd 100644 --- a/chrome/browser/chromeos/cros/cros_library.cc +++ b/chrome/browser/chromeos/cros/cros_library.cc @@ -6,6 +6,7 @@ #include "chrome/browser/chromeos/cros/cros_library_loader.h" #include "chrome/browser/chromeos/cros/cryptohome_library.h" +#include "chrome/browser/chromeos/cros/keyboard_library.h" #include "chrome/browser/chromeos/cros/language_library.h" #include "chrome/browser/chromeos/cros/login_library.h" #include "chrome/browser/chromeos/cros/mount_library.h" @@ -20,6 +21,7 @@ namespace chromeos { CrosLibrary::CrosLibrary() : library_loader_(NULL), crypto_lib_(NULL), + keyboard_lib_(NULL), language_lib_(NULL), login_lib_(NULL), mount_lib_(NULL), @@ -51,6 +53,8 @@ CrosLibrary::~CrosLibrary() { delete library_loader_; if (own_cryptohome_lib_) delete crypto_lib_; + if (own_keyboard_lib_) + delete keyboard_lib_; if (own_language_lib_) delete language_lib_; if (own_login_lib_) @@ -83,6 +87,12 @@ CryptohomeLibrary* CrosLibrary::GetCryptohomeLibrary() { return crypto_lib_; } +KeyboardLibrary* CrosLibrary::GetKeyboardLibrary() { + if (!keyboard_lib_) + keyboard_lib_ = new KeyboardLibraryImpl(); + return keyboard_lib_; +} + LanguageLibrary* CrosLibrary::GetLanguageLibrary() { if (!language_lib_) language_lib_ = new LanguageLibraryImpl(); @@ -174,6 +184,14 @@ void CrosLibrary::TestApi::SetCryptohomeLibrary(CryptohomeLibrary* library, library_->crypto_lib_ = library; } +void CrosLibrary::TestApi::SetKeyboardLibrary(KeyboardLibrary* library, + bool own) { + if (library_->own_keyboard_lib_) + delete library_->keyboard_lib_; + library_->own_keyboard_lib_ = own; + library_->keyboard_lib_ = library; +} + void CrosLibrary::TestApi::SetLanguageLibrary(LanguageLibrary* library, bool own) { if (library_->own_language_lib_) diff --git a/chrome/browser/chromeos/cros/cros_library.h b/chrome/browser/chromeos/cros/cros_library.h index 13ac5ed..ea36b29 100644 --- a/chrome/browser/chromeos/cros/cros_library.h +++ b/chrome/browser/chromeos/cros/cros_library.h @@ -12,6 +12,7 @@ namespace chromeos { class CryptohomeLibrary; +class KeyboardLibrary; class LanguageLibrary; class LibraryLoader; class LoginLibrary; @@ -40,6 +41,8 @@ class CrosLibrary { void SetLibraryLoader(LibraryLoader* loader, bool own); // Setter for CryptohomeLibrary. void SetCryptohomeLibrary(CryptohomeLibrary* library, bool own); + // Setter for KeyboardLibrary + void SetKeyboardLibrary(KeyboardLibrary* library, bool own); // Setter for LanguageLibrary void SetLanguageLibrary(LanguageLibrary* library, bool own); // Setter for LoginLibrary. @@ -71,7 +74,10 @@ class CrosLibrary { // Getter for CryptohomeLibrary. CryptohomeLibrary* GetCryptohomeLibrary(); - // // Getter for LanguageLibrary + // Getter for KeyboardLibrary + KeyboardLibrary* GetKeyboardLibrary(); + + // Getter for LanguageLibrary LanguageLibrary* GetLanguageLibrary(); // Getter for LoginLibrary. @@ -119,6 +125,7 @@ class CrosLibrary { LibraryLoader* library_loader_; CryptohomeLibrary* crypto_lib_; + KeyboardLibrary* keyboard_lib_; LanguageLibrary* language_lib_; LoginLibrary* login_lib_; MountLibrary* mount_lib_; @@ -131,6 +138,7 @@ class CrosLibrary { bool own_library_loader_; bool own_cryptohome_lib_; + bool own_keyboard_lib_; bool own_language_lib_; bool own_login_lib_; bool own_mount_lib_; diff --git a/chrome/browser/chromeos/cros/keyboard_library.cc b/chrome/browser/chromeos/cros/keyboard_library.cc new file mode 100644 index 0000000..c9c9ab2 --- /dev/null +++ b/chrome/browser/chromeos/cros/keyboard_library.cc @@ -0,0 +1,42 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/cros/keyboard_library.h" + +#include "chrome/browser/chromeos/cros/cros_library.h" +#include "third_party/cros/chromeos_keyboard.h" + +namespace chromeos { + +std::string KeyboardLibraryImpl::GetCurrentKeyboardLayoutName() const { + if (CrosLibrary::Get()->EnsureLoaded()) { + return chromeos::GetCurrentKeyboardLayoutName(); + } + return ""; +} + +bool KeyboardLibraryImpl::SetCurrentKeyboardLayoutByName( + const std::string& layout_name) { + if (CrosLibrary::Get()->EnsureLoaded()) { + return chromeos::SetCurrentKeyboardLayoutByName(layout_name); + } + return false; +} + +bool KeyboardLibraryImpl::GetKeyboardLayoutPerWindow( + bool* is_per_window) const { + if (CrosLibrary::Get()->EnsureLoaded()) { + return chromeos::GetKeyboardLayoutPerWindow(is_per_window); + } + return false; +} + +bool KeyboardLibraryImpl::SetKeyboardLayoutPerWindow(bool is_per_window) { + if (CrosLibrary::Get()->EnsureLoaded()) { + return chromeos::SetKeyboardLayoutPerWindow(is_per_window); + } + return false; +} + +} // namespace chromeos diff --git a/chrome/browser/chromeos/cros/keyboard_library.h b/chrome/browser/chromeos/cros/keyboard_library.h new file mode 100644 index 0000000..fcdec9e --- /dev/null +++ b/chrome/browser/chromeos/cros/keyboard_library.h @@ -0,0 +1,56 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_CROS_KEYBOARD_LIBRARY_H_ +#define CHROME_BROWSER_CHROMEOS_CROS_KEYBOARD_LIBRARY_H_ + +#include "third_party/cros/chromeos_keyboard.h" + +#include <string> + +#include "base/basictypes.h" + +namespace chromeos { + +// This class handles the interaction with the ChromeOS keyboard library APIs. +class KeyboardLibrary { + public: + virtual ~KeyboardLibrary() {} + + // Returns the current layout name like "us". On error, returns "". + virtual std::string GetCurrentKeyboardLayoutName() const = 0; + + // Sets the current keyboard layout to |layout_name|. Returns true on + // success. + virtual bool SetCurrentKeyboardLayoutByName( + const std::string& layout_name) = 0; + + // Gets whehter we have separate keyboard layout per window, or not. The + // result is stored in |is_per_window|. Returns true on success. + virtual bool GetKeyboardLayoutPerWindow(bool* is_per_window) const = 0; + + // Sets whether we have separate keyboard layout per window, or not. If false + // is given, the same keyboard layout will be shared for all applications. + // Returns true on success. + virtual bool SetKeyboardLayoutPerWindow(bool is_per_window) = 0; +}; + +class KeyboardLibraryImpl : public KeyboardLibrary { + public: + KeyboardLibraryImpl() {} + virtual ~KeyboardLibraryImpl() {} + + // KeyboardLibrary overrides. + virtual std::string GetCurrentKeyboardLayoutName() const; + virtual bool SetCurrentKeyboardLayoutByName(const std::string& layout_name); + virtual bool GetKeyboardLayoutPerWindow(bool* is_per_window) const; + virtual bool SetKeyboardLayoutPerWindow(bool is_per_window); + + private: + DISALLOW_COPY_AND_ASSIGN(KeyboardLibraryImpl); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_CROS_KEYBOARD_LIBRARY_H_ diff --git a/chrome/browser/chromeos/cros/language_library.cc b/chrome/browser/chromeos/cros/language_library.cc index 8104b09..f7346bc 100644 --- a/chrome/browser/chromeos/cros/language_library.cc +++ b/chrome/browser/chromeos/cros/language_library.cc @@ -9,8 +9,8 @@ #include "base/string_util.h" #include "chrome/browser/chrome_thread.h" #include "chrome/browser/chromeos/cros/cros_library.h" +#include "chrome/browser/chromeos/cros/keyboard_library.h" #include "chrome/browser/chromeos/language_preferences.h" -#include "third_party/cros/chromeos_keyboard.h" #include "third_party/icu/public/common/unicode/uloc.h" // Allows InvokeLater without adding refcounting. This class is a Singleton and @@ -357,7 +357,7 @@ void LanguageLibraryImpl::UpdateCurrentInputMethod( DLOG(INFO) << "UpdateCurrentInputMethod (UI thread)"; // Change the keyboard layout to a preferred layout for the input method. - chromeos::SetCurrentKeyboardLayoutByName( + CrosLibrary::Get()->GetKeyboardLibrary()->SetCurrentKeyboardLayoutByName( new_input_method.keyboard_layout); if (current_input_method_.id != new_input_method.id) { diff --git a/chrome/browser/chromeos/cros/mock_keyboard_library.h b/chrome/browser/chromeos/cros/mock_keyboard_library.h new file mode 100644 index 0000000..67bcdce --- /dev/null +++ b/chrome/browser/chromeos/cros/mock_keyboard_library.h @@ -0,0 +1,28 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_CROS_MOCK_KEYBOARD_LIBRARY_H_ +#define CHROME_BROWSER_CHROMEOS_CROS_MOCK_KEYBOARD_LIBRARY_H_ + +#include <string> + +#include "chrome/browser/chromeos/cros/keyboard_library.h" +#include "testing/gmock/include/gmock/gmock.h" + +namespace chromeos { + +class MockKeyboardLibrary : public KeyboardLibrary { + public: + MockKeyboardLibrary() {} + virtual ~MockKeyboardLibrary() {} + + MOCK_CONST_METHOD0(GetCurrentKeyboardLayoutName, std::string(void)); + MOCK_METHOD1(SetCurrentKeyboardLayoutByName, bool(const std::string&)); + MOCK_CONST_METHOD1(GetKeyboardLayoutPerWindow, bool(bool*)); + MOCK_METHOD1(SetKeyboardLayoutPerWindow, bool(bool)); +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_CROS_MOCK_KEYBOARD_LIBRARY_H_ diff --git a/chrome/browser/chromeos/login/login_browsertest.cc b/chrome/browser/chromeos/login/login_browsertest.cc index 6c3a94c..c359a1b 100644 --- a/chrome/browser/chromeos/login/login_browsertest.cc +++ b/chrome/browser/chromeos/login/login_browsertest.cc @@ -8,6 +8,7 @@ #include "chrome/browser/chromeos/cros/cros_in_process_browser_test.h" #include "chrome/browser/profile_manager.h" #include "chrome/browser/chromeos/cros/mock_cryptohome_library.h" +#include "chrome/browser/chromeos/cros/mock_keyboard_library.h" #include "chrome/browser/chromeos/cros/mock_language_library.h" #include "chrome/browser/chromeos/cros/mock_library_loader.h" #include "chrome/browser/chromeos/cros/mock_network_library.h" @@ -35,6 +36,7 @@ class LoginTestBase : public InProcessBrowserTest { EXPECT_CALL(loader_, Load(_)) .WillRepeatedly(Return(true)); + testApi_->SetKeyboardLibrary(&mock_keyboard_library_, false); testApi_->SetLanguageLibrary(&mock_language_library_, false); EXPECT_CALL(mock_language_library_, GetActiveInputMethods()) .WillRepeatedly( @@ -56,6 +58,7 @@ class LoginTestBase : public InProcessBrowserTest { protected: NiceMock<MockLibraryLoader> loader_; NiceMock<MockCryptohomeLibrary> mock_cryptohome_library_; + NiceMock<MockKeyboardLibrary> mock_keyboard_library_; NiceMock<MockLanguageLibrary> mock_language_library_; NiceMock<MockNetworkLibrary> mock_network_library_; NiceMock<MockPowerLibrary> mock_power_library_; diff --git a/chrome/browser/chromeos/status/language_menu_button.cc b/chrome/browser/chromeos/status/language_menu_button.cc index d7a8edb..b07eec1 100644 --- a/chrome/browser/chromeos/status/language_menu_button.cc +++ b/chrome/browser/chromeos/status/language_menu_button.cc @@ -12,6 +12,7 @@ #include "base/utf_string_conversions.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/cros/cros_library.h" +#include "chrome/browser/chromeos/cros/keyboard_library.h" #include "chrome/browser/chromeos/status/language_menu_l10n_util.h" #include "chrome/browser/chromeos/status/status_area_host.h" #include "chrome/browser/metrics/user_metrics.h" @@ -144,6 +145,9 @@ LanguageMenuButton::LanguageMenuButton(StatusAreaHost* host) // initial OS boot). UpdateIndicator(L"EN", L""); + // Use the same keyboard layout on all windows. + CrosLibrary::Get()->GetKeyboardLibrary()->SetKeyboardLayoutPerWindow(false); + // Sync current and previous input methods on Chrome prefs with ibus-daemon. // InputMethodChanged() will be called soon and the indicator will be updated. LanguageLibrary* library = CrosLibrary::Get()->GetLanguageLibrary(); diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index cc75e14..de982fd 100755 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -359,6 +359,8 @@ 'browser/chromeos/cros/cros_library_loader.h', 'browser/chromeos/cros/cryptohome_library.cc', 'browser/chromeos/cros/cryptohome_library.h', + 'browser/chromeos/cros/keyboard_library.cc', + 'browser/chromeos/cros/keyboard_library.h', 'browser/chromeos/cros/language_library.cc', 'browser/chromeos/cros/language_library.h', 'browser/chromeos/cros/login_library.cc', diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index 8b06e38..4103883 100755 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -1457,6 +1457,8 @@ 'browser/chromeos/cros/cros_in_process_browser_test.h', 'browser/chromeos/cros/mock_cros_library.h', 'browser/chromeos/cros/mock_cryptohome_library.h', + 'browser/chromeos/cros/mock_keyboard_library.h', + 'browser/chromeos/cros/mock_language_library.h', 'browser/chromeos/cros/mock_mount_library.cc', 'browser/chromeos/cros/mock_mount_library.h', 'browser/chromeos/cros/mock_network_library.h', |