| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/chromeos/chrome_browser_main_chromeos.h" | 5 #include "chrome/browser/chromeos/chrome_browser_main_chromeos.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "ash/ash_switches.h" | 10 #include "ash/ash_switches.h" |
| (...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 } | 445 } |
| 446 } | 446 } |
| 447 | 447 |
| 448 class GuestLanguageSetCallbackData { | 448 class GuestLanguageSetCallbackData { |
| 449 public: | 449 public: |
| 450 explicit GuestLanguageSetCallbackData(Profile* profile) : profile(profile) { | 450 explicit GuestLanguageSetCallbackData(Profile* profile) : profile(profile) { |
| 451 } | 451 } |
| 452 | 452 |
| 453 // Must match SwitchLanguageCallback type. | 453 // Must match SwitchLanguageCallback type. |
| 454 static void Callback(const scoped_ptr<GuestLanguageSetCallbackData>& self, | 454 static void Callback(const scoped_ptr<GuestLanguageSetCallbackData>& self, |
| 455 const std::string& locale, | 455 scoped_ptr<locale_util::LanguageSwitchResult> result); |
| 456 const std::string& loaded_locale, | |
| 457 bool success); | |
| 458 | 456 |
| 459 Profile* profile; | 457 Profile* profile; |
| 460 }; | 458 }; |
| 461 | 459 |
| 462 // static | 460 // static |
| 463 void GuestLanguageSetCallbackData::Callback( | 461 void GuestLanguageSetCallbackData::Callback( |
| 464 const scoped_ptr<GuestLanguageSetCallbackData>& self, | 462 const scoped_ptr<GuestLanguageSetCallbackData>& self, |
| 465 const std::string& locale, | 463 scoped_ptr<locale_util::LanguageSwitchResult> result) { |
| 466 const std::string& loaded_locale, | |
| 467 bool success) { | |
| 468 input_method::InputMethodManager* manager = | 464 input_method::InputMethodManager* manager = |
| 469 input_method::InputMethodManager::Get(); | 465 input_method::InputMethodManager::Get(); |
| 470 scoped_refptr<input_method::InputMethodManager::State> ime_state = | 466 scoped_refptr<input_method::InputMethodManager::State> ime_state = |
| 471 manager->GetActiveIMEState(); | 467 manager->GetActiveIMEState(); |
| 472 // Active layout must be hardware "login layout". | 468 // Active layout must be hardware "login layout". |
| 473 // The previous one must be "locale default layout". | 469 // The previous one must be "locale default layout". |
| 474 // First, enable all hardware input methods. | 470 // First, enable all hardware input methods. |
| 475 const std::vector<std::string>& input_methods = | 471 const std::vector<std::string>& input_methods = |
| 476 manager->GetInputMethodUtil()->GetHardwareInputMethodIds(); | 472 manager->GetInputMethodUtil()->GetHardwareInputMethodIds(); |
| 477 for (size_t i = 0; i < input_methods.size(); ++i) | 473 for (size_t i = 0; i < input_methods.size(); ++i) |
| 478 ime_state->EnableInputMethod(input_methods[i]); | 474 ime_state->EnableInputMethod(input_methods[i]); |
| 479 | 475 |
| 480 // Second, enable locale based input methods. | 476 // Second, enable locale based input methods. |
| 481 const std::string locale_default_input_method = | 477 const std::string locale_default_input_method = |
| 482 manager->GetInputMethodUtil()->GetLanguageDefaultInputMethodId( | 478 manager->GetInputMethodUtil()->GetLanguageDefaultInputMethodId( |
| 483 loaded_locale); | 479 result->loaded_locale); |
| 484 if (!locale_default_input_method.empty()) { | 480 if (!locale_default_input_method.empty()) { |
| 485 PrefService* user_prefs = self->profile->GetPrefs(); | 481 PrefService* user_prefs = self->profile->GetPrefs(); |
| 486 user_prefs->SetString(prefs::kLanguagePreviousInputMethod, | 482 user_prefs->SetString(prefs::kLanguagePreviousInputMethod, |
| 487 locale_default_input_method); | 483 locale_default_input_method); |
| 488 ime_state->EnableInputMethod(locale_default_input_method); | 484 ime_state->EnableInputMethod(locale_default_input_method); |
| 489 } | 485 } |
| 490 | 486 |
| 491 // Finally, activate the first login input method. | 487 // Finally, activate the first login input method. |
| 492 const std::vector<std::string>& login_input_methods = | 488 const std::vector<std::string>& login_input_methods = |
| 493 manager->GetInputMethodUtil()->GetHardwareLoginInputMethodIds(); | 489 manager->GetInputMethodUtil()->GetHardwareLoginInputMethodIds(); |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 766 // Destroy DBus services immediately after threads are stopped. | 762 // Destroy DBus services immediately after threads are stopped. |
| 767 dbus_services_.reset(); | 763 dbus_services_.reset(); |
| 768 | 764 |
| 769 ChromeBrowserMainPartsLinux::PostDestroyThreads(); | 765 ChromeBrowserMainPartsLinux::PostDestroyThreads(); |
| 770 | 766 |
| 771 // Destroy DeviceSettingsService after g_browser_process. | 767 // Destroy DeviceSettingsService after g_browser_process. |
| 772 DeviceSettingsService::Shutdown(); | 768 DeviceSettingsService::Shutdown(); |
| 773 } | 769 } |
| 774 | 770 |
| 775 } // namespace chromeos | 771 } // namespace chromeos |
| OLD | NEW |