Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(420)

Side by Side Diff: chrome/browser/chromeos/input_method/input_method_manager_impl.cc

Issue 2801923003: chromeos: Fix chrome --mus startup crash on device (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/input_method/input_method_manager_impl.h" 5 #include "chrome/browser/chromeos/input_method/input_method_manager_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> // std::find 9 #include <algorithm> // std::find
10 #include <memory> 10 #include <memory>
11 #include <set> 11 #include <set>
12 #include <sstream> 12 #include <sstream>
13 #include <utility> 13 #include <utility>
14 14
15 #include "ash/shell.h" 15 #include "ash/shell.h"
16 #include "base/bind.h" 16 #include "base/bind.h"
17 #include "base/feature_list.h" 17 #include "base/feature_list.h"
18 #include "base/hash.h" 18 #include "base/hash.h"
19 #include "base/location.h" 19 #include "base/location.h"
20 #include "base/metrics/histogram_macros.h" 20 #include "base/metrics/histogram_macros.h"
21 #include "base/metrics/sparse_histogram.h" 21 #include "base/metrics/sparse_histogram.h"
22 #include "base/strings/string_split.h" 22 #include "base/strings/string_split.h"
23 #include "base/strings/string_util.h" 23 #include "base/strings/string_util.h"
24 #include "chrome/browser/browser_process.h" 24 #include "chrome/browser/browser_process.h"
25 #include "chrome/browser/chromeos/ash_config.h"
25 #include "chrome/browser/chromeos/input_method/candidate_window_controller.h" 26 #include "chrome/browser/chromeos/input_method/candidate_window_controller.h"
26 #include "chrome/browser/chromeos/input_method/component_extension_ime_manager_i mpl.h" 27 #include "chrome/browser/chromeos/input_method/component_extension_ime_manager_i mpl.h"
27 #include "chrome/browser/chromeos/input_method/input_method_switch_recorder.h" 28 #include "chrome/browser/chromeos/input_method/input_method_switch_recorder.h"
28 #include "chrome/browser/chromeos/language_preferences.h" 29 #include "chrome/browser/chromeos/language_preferences.h"
29 #include "chrome/browser/chromeos/login/session/user_session_manager.h" 30 #include "chrome/browser/chromeos/login/session/user_session_manager.h"
30 #include "chrome/browser/chromeos/profiles/profile_helper.h" 31 #include "chrome/browser/chromeos/profiles/profile_helper.h"
31 #include "chrome/browser/profiles/profile_manager.h" 32 #include "chrome/browser/profiles/profile_manager.h"
32 #include "chrome/browser/ui/ash/ash_util.h"
33 #include "chrome/common/chrome_features.h" 33 #include "chrome/common/chrome_features.h"
34 #include "chrome/common/pref_names.h" 34 #include "chrome/common/pref_names.h"
35 #include "chromeos/system/devicemode.h" 35 #include "chromeos/system/devicemode.h"
36 #include "components/prefs/pref_service.h" 36 #include "components/prefs/pref_service.h"
37 #include "components/user_manager/user_manager.h" 37 #include "components/user_manager/user_manager.h"
38 #include "third_party/icu/source/common/unicode/uloc.h" 38 #include "third_party/icu/source/common/unicode/uloc.h"
39 #include "ui/base/accelerators/accelerator.h" 39 #include "ui/base/accelerators/accelerator.h"
40 #include "ui/base/ime/chromeos/component_extension_ime_manager.h" 40 #include "ui/base/ime/chromeos/component_extension_ime_manager.h"
41 #include "ui/base/ime/chromeos/extension_ime_util.h" 41 #include "ui/base/ime/chromeos/extension_ime_util.h"
42 #include "ui/base/ime/chromeos/fake_ime_keyboard.h" 42 #include "ui/base/ime/chromeos/fake_ime_keyboard.h"
(...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 InputMethodManagerImpl::InputMethodManagerImpl( 914 InputMethodManagerImpl::InputMethodManagerImpl(
915 std::unique_ptr<InputMethodDelegate> delegate, 915 std::unique_ptr<InputMethodDelegate> delegate,
916 bool enable_extension_loading) 916 bool enable_extension_loading)
917 : delegate_(std::move(delegate)), 917 : delegate_(std::move(delegate)),
918 ui_session_(STATE_LOGIN_SCREEN), 918 ui_session_(STATE_LOGIN_SCREEN),
919 state_(NULL), 919 state_(NULL),
920 util_(delegate_.get()), 920 util_(delegate_.get()),
921 component_extension_ime_manager_(new ComponentExtensionIMEManager()), 921 component_extension_ime_manager_(new ComponentExtensionIMEManager()),
922 enable_extension_loading_(enable_extension_loading), 922 enable_extension_loading_(enable_extension_loading),
923 is_ime_menu_activated_(false) { 923 is_ime_menu_activated_(false) {
924 // TODO(mohsen): Revisit using FakeImeKeyboard with mash when InputController 924 // TODO(mohsen): Revisit using FakeImeKeyboard with mash when InputController
kylechar 2017/04/06 19:36:23 Can you change the TODO to be TODO(crbug.com/64286
James Cook 2017/04/06 19:43:42 Done.
925 // work is ready. http://crbug.com/601981 925 // work is ready. http://crbug.com/601981
926 if (IsRunningAsSystemCompositor() && !ash_util::IsRunningInMash()) 926 if (IsRunningAsSystemCompositor() &&
927 chromeos::GetAshConfig() == ash::Config::CLASSIC) {
927 keyboard_.reset(ImeKeyboard::Create()); 928 keyboard_.reset(ImeKeyboard::Create());
928 else 929 } else {
929 keyboard_.reset(new FakeImeKeyboard()); 930 keyboard_.reset(new FakeImeKeyboard());
931 }
930 932
931 // Initializes the system IME list. 933 // Initializes the system IME list.
932 std::unique_ptr<ComponentExtensionIMEManagerDelegate> comp_delegate( 934 std::unique_ptr<ComponentExtensionIMEManagerDelegate> comp_delegate(
933 new ComponentExtensionIMEManagerImpl()); 935 new ComponentExtensionIMEManagerImpl());
934 component_extension_ime_manager_->Initialize(std::move(comp_delegate)); 936 component_extension_ime_manager_->Initialize(std::move(comp_delegate));
935 const InputMethodDescriptors& descriptors = 937 const InputMethodDescriptors& descriptors =
936 component_extension_ime_manager_->GetAllIMEAsInputMethodDescriptor(); 938 component_extension_ime_manager_->GetAllIMEAsInputMethodDescriptor();
937 util_.ResetInputMethods(descriptors); 939 util_.ResetInputMethods(descriptors);
938 chromeos::UserAddingScreen::Get()->AddObserver(this); 940 chromeos::UserAddingScreen::Get()->AddObserver(this);
939 } 941 }
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
1327 if (keyboard_controller) 1329 if (keyboard_controller)
1328 keyboard_controller->Reload(); 1330 keyboard_controller->Reload();
1329 } 1331 }
1330 1332
1331 bool InputMethodManagerImpl::IsEmojiHandwritingVoiceOnImeMenuEnabled() { 1333 bool InputMethodManagerImpl::IsEmojiHandwritingVoiceOnImeMenuEnabled() {
1332 return base::FeatureList::IsEnabled(features::kEHVInputOnImeMenu); 1334 return base::FeatureList::IsEnabled(features::kEHVInputOnImeMenu);
1333 } 1335 }
1334 1336
1335 } // namespace input_method 1337 } // namespace input_method
1336 } // namespace chromeos 1338 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698