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

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

Issue 428783008: GetActiveUserProfile() should not be called before profile is initialized. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment on GetProfile added. Created 6 years, 4 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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/input_method/input_method_engine.h" 5 #include "chrome/browser/chromeos/input_method/input_method_engine.h"
6 6
7 #undef FocusIn 7 #undef FocusIn
8 #undef FocusOut 8 #undef FocusOut
9 #undef RootWindow 9 #undef RootWindow
10 #include <map> 10 #include <map>
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 112
113 InputMethodEngine::InputMethodEngine() 113 InputMethodEngine::InputMethodEngine()
114 : current_input_type_(ui::TEXT_INPUT_TYPE_NONE), 114 : current_input_type_(ui::TEXT_INPUT_TYPE_NONE),
115 active_(false), 115 active_(false),
116 context_id_(0), 116 context_id_(0),
117 next_context_id_(1), 117 next_context_id_(1),
118 composition_text_(new CompositionText()), 118 composition_text_(new CompositionText()),
119 composition_cursor_(0), 119 composition_cursor_(0),
120 candidate_window_(new ui::CandidateWindow()), 120 candidate_window_(new ui::CandidateWindow()),
121 window_visible_(false), 121 window_visible_(false),
122 sent_key_event_(NULL) {} 122 sent_key_event_(NULL),
123 profile_(NULL) {
124 }
123 125
124 InputMethodEngine::~InputMethodEngine() { 126 InputMethodEngine::~InputMethodEngine() {
125 if (start_time_.ToInternalValue()) 127 if (start_time_.ToInternalValue())
126 RecordHistogram("WorkingTime", (end_time_ - start_time_).InSeconds()); 128 RecordHistogram("WorkingTime", (end_time_ - start_time_).InSeconds());
127 input_method::InputMethodManager::Get()->RemoveInputMethodExtension(imm_id_); 129 input_method::InputMethodManager::Get()->RemoveInputMethodExtension(profile_,
130 imm_id_);
128 } 131 }
129 132
130 void InputMethodEngine::Initialize( 133 void InputMethodEngine::Initialize(
134 Profile* profile,
131 scoped_ptr<InputMethodEngineInterface::Observer> observer, 135 scoped_ptr<InputMethodEngineInterface::Observer> observer,
132 const char* engine_name, 136 const char* engine_name,
133 const char* extension_id, 137 const char* extension_id,
134 const char* engine_id, 138 const char* engine_id,
135 const std::vector<std::string>& languages, 139 const std::vector<std::string>& languages,
136 const std::vector<std::string>& layouts, 140 const std::vector<std::string>& layouts,
137 const GURL& options_page, 141 const GURL& options_page,
138 const GURL& input_view) { 142 const GURL& input_view) {
139 DCHECK(observer) << "Observer must not be null."; 143 DCHECK(observer) << "Observer must not be null.";
140 144
145 profile_ = profile;
146
141 // TODO(komatsu): It is probably better to set observer out of Initialize. 147 // TODO(komatsu): It is probably better to set observer out of Initialize.
142 observer_ = observer.Pass(); 148 observer_ = observer.Pass();
143 engine_id_ = engine_id; 149 engine_id_ = engine_id;
144 extension_id_ = extension_id; 150 extension_id_ = extension_id;
145 151
146 input_method::InputMethodManager* manager = 152 input_method::InputMethodManager* manager =
147 input_method::InputMethodManager::Get(); 153 input_method::InputMethodManager::Get();
148 ComponentExtensionIMEManager* comp_ext_ime_manager = 154 ComponentExtensionIMEManager* comp_ext_ime_manager =
149 manager->GetComponentExtensionIMEManager(); 155 manager->GetComponentExtensionIMEManager();
150 156
(...skipping 10 matching lines...) Expand all
161 std::string(), // TODO(uekawa): Set short name. 167 std::string(), // TODO(uekawa): Set short name.
162 layouts, 168 layouts,
163 languages, 169 languages,
164 extension_ime_util::IsKeyboardLayoutExtension( 170 extension_ime_util::IsKeyboardLayoutExtension(
165 imm_id_), // is_login_keyboard 171 imm_id_), // is_login_keyboard
166 options_page, 172 options_page,
167 input_view); 173 input_view);
168 174
169 // TODO(komatsu): It is probably better to call AddInputMethodExtension 175 // TODO(komatsu): It is probably better to call AddInputMethodExtension
170 // out of Initialize. 176 // out of Initialize.
171 manager->AddInputMethodExtension(imm_id_, this); 177 manager->AddInputMethodExtension(profile, imm_id_, this);
172 } 178 }
173 179
174 const input_method::InputMethodDescriptor& InputMethodEngine::GetDescriptor() 180 const input_method::InputMethodDescriptor& InputMethodEngine::GetDescriptor()
175 const { 181 const {
176 return descriptor_; 182 return descriptor_;
177 } 183 }
178 184
179 void InputMethodEngine::RecordHistogram(const char* name, int count) { 185 void InputMethodEngine::RecordHistogram(const char* name, int count) {
180 std::string histo_name = 186 std::string histo_name =
181 base::StringPrintf("InputMethod.%s.%s", name, engine_id_.c_str()); 187 base::StringPrintf("InputMethod.%s.%s", name, engine_id_.c_str());
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 // TODO(nona): Implement it. 679 // TODO(nona): Implement it.
674 break; 680 break;
675 } 681 }
676 } 682 }
677 } 683 }
678 684
679 // TODO(nona): Support item.children. 685 // TODO(nona): Support item.children.
680 } 686 }
681 687
682 } // namespace chromeos 688 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698