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

Side by Side Diff: chrome/browser/chromeos/input_method/input_method_manager_impl.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 (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 <algorithm> // std::find 7 #include <algorithm> // std::find
8 8
9 #include "ash/ime/input_method_menu_item.h" 9 #include "ash/ime/input_method_menu_item.h"
10 #include "ash/ime/input_method_menu_manager.h" 10 #include "ash/ime/input_method_menu_manager.h"
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 IMEBridge::Get()->GetCurrentEngineHandler(); 426 IMEBridge::Get()->GetCurrentEngineHandler();
427 if (engine) 427 if (engine)
428 engine->PropertyActivate(key); 428 engine->PropertyActivate(key);
429 return; 429 return;
430 } 430 }
431 431
432 DVLOG(1) << "ActivateInputMethodMenuItem: unknown key: " << key; 432 DVLOG(1) << "ActivateInputMethodMenuItem: unknown key: " << key;
433 } 433 }
434 434
435 void InputMethodManagerImpl::AddInputMethodExtension( 435 void InputMethodManagerImpl::AddInputMethodExtension(
436 Profile* profile,
436 const std::string& id, 437 const std::string& id,
437 InputMethodEngineInterface* engine) { 438 InputMethodEngineInterface* engine) {
438 if (state_ == STATE_TERMINATING) 439 if (state_ == STATE_TERMINATING)
439 return; 440 return;
440 441
441 DCHECK(engine); 442 DCHECK(engine);
442 443
443 profile_engine_map_[GetProfile()][id] = engine; 444 profile_engine_map_[profile][id] = engine;
444 445
445 if (id == current_input_method_.id()) { 446 if (id == current_input_method_.id()) {
446 IMEBridge::Get()->SetCurrentEngineHandler(engine); 447 IMEBridge::Get()->SetCurrentEngineHandler(engine);
447 engine->Enable(); 448 engine->Enable();
448 } 449 }
449 450
450 if (extension_ime_util::IsComponentExtensionIME(id)) 451 if (extension_ime_util::IsComponentExtensionIME(id))
451 return; 452 return;
452 453
453 CHECK(extension_ime_util::IsExtensionIME(id)) 454 CHECK(extension_ime_util::IsExtensionIME(id))
454 << id << "is not a valid extension input method ID"; 455 << id << "is not a valid extension input method ID";
455 456
456 const InputMethodDescriptor& descriptor = engine->GetDescriptor(); 457 const InputMethodDescriptor& descriptor = engine->GetDescriptor();
457 extra_input_methods_[id] = descriptor; 458 extra_input_methods_[id] = descriptor;
458 459
459 if (Contains(enabled_extension_imes_, id)) { 460 if (Contains(enabled_extension_imes_, id)) {
460 if (!Contains(active_input_method_ids_, id)) { 461 if (!Contains(active_input_method_ids_, id)) {
461 active_input_method_ids_.push_back(id); 462 active_input_method_ids_.push_back(id);
462 } else { 463 } else {
463 DVLOG(1) << "AddInputMethodExtension: alread added: " 464 DVLOG(1) << "AddInputMethodExtension: alread added: "
464 << id << ", " << descriptor.name(); 465 << id << ", " << descriptor.name();
465 } 466 }
466 467
467 // Ensure that the input method daemon is running. 468 // Ensure that the input method daemon is running.
468 MaybeInitializeCandidateWindowController(); 469 MaybeInitializeCandidateWindowController();
469 } 470 }
470 } 471 }
471 472
472 void InputMethodManagerImpl::RemoveInputMethodExtension(const std::string& id) { 473 void InputMethodManagerImpl::RemoveInputMethodExtension(Profile* profile,
474 const std::string& id) {
473 if (!extension_ime_util::IsExtensionIME(id)) 475 if (!extension_ime_util::IsExtensionIME(id))
474 DVLOG(1) << id << " is not a valid extension input method ID."; 476 DVLOG(1) << id << " is not a valid extension input method ID.";
475 477
476 std::vector<std::string>::iterator i = std::find( 478 std::vector<std::string>::iterator i = std::find(
477 active_input_method_ids_.begin(), active_input_method_ids_.end(), id); 479 active_input_method_ids_.begin(), active_input_method_ids_.end(), id);
478 if (i != active_input_method_ids_.end()) 480 if (i != active_input_method_ids_.end())
479 active_input_method_ids_.erase(i); 481 active_input_method_ids_.erase(i);
480 extra_input_methods_.erase(id); 482 extra_input_methods_.erase(id);
481 483
482 EngineMap& engine_map = profile_engine_map_[GetProfile()]; 484 EngineMap& engine_map = profile_engine_map_[profile];
483 if (IMEBridge::Get()->GetCurrentEngineHandler() == engine_map[id]) 485 if (IMEBridge::Get()->GetCurrentEngineHandler() == engine_map[id])
484 IMEBridge::Get()->SetCurrentEngineHandler(NULL); 486 IMEBridge::Get()->SetCurrentEngineHandler(NULL);
485 engine_map.erase(id); 487 engine_map.erase(id);
486 488
487 // No need to switch input method when terminating. 489 // No need to switch input method when terminating.
488 if (state_ != STATE_TERMINATING) { 490 if (state_ != STATE_TERMINATING) {
489 // If |current_input_method| is no longer in |active_input_method_ids_|, 491 // If |current_input_method| is no longer in |active_input_method_ids_|,
490 // switch to the first one in |active_input_method_ids_|. 492 // switch to the first one in |active_input_method_ids_|.
491 ChangeInputMethod(current_input_method_.id()); 493 ChangeInputMethod(current_input_method_.id());
492 } 494 }
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 CandidateWindowController::CreateCandidateWindowController()); 866 CandidateWindowController::CreateCandidateWindowController());
865 candidate_window_controller_->AddObserver(this); 867 candidate_window_controller_->AddObserver(this);
866 } 868 }
867 869
868 Profile* InputMethodManagerImpl::GetProfile() const { 870 Profile* InputMethodManagerImpl::GetProfile() const {
869 return ProfileManager::GetActiveUserProfile(); 871 return ProfileManager::GetActiveUserProfile();
870 } 872 }
871 873
872 } // namespace input_method 874 } // namespace input_method
873 } // namespace chromeos 875 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698