Commit 3d449d4a authored by Darren Shen's avatar Darren Shen Committed by Commit Bot

ime: Mark IMEBridge initialization and usage as Chrome OS only.

IMEBridge is only ever initialized for Chrome OS [1], so all usages of
IMEBridge::Get() will return nullptr for other platforms.

Mark those functions as Chrome OS only, and (re)move any usages that
appear in other platforms.

A followup patch will move IMEBridge to ui/base/ime/chromeos.

[1] https://source.chromium.org/search?q=IMEBridge::Initialize&sq=&ss=chromium%2Fchromium%2Fsrc&originalUrl=https:%2F%2Fcs.chromium.org%2F

Bug: 1083803
Change-Id: Ic9cb463a918ef990dfff5ef29e311b3fbfb664b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2212198Reviewed-by: default avatarKeith Lee <keithlee@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#772136}
parent 7339cf57
...@@ -289,6 +289,20 @@ InputMethodChromeOS::GetInputMethodKeyboardController() { ...@@ -289,6 +289,20 @@ InputMethodChromeOS::GetInputMethodKeyboardController() {
return InputMethodBase::GetInputMethodKeyboardController(); return InputMethodBase::GetInputMethodKeyboardController();
} }
void InputMethodChromeOS::OnFocus() {
ui::IMEBridge* bridge = ui::IMEBridge::Get();
if (bridge) {
bridge->SetInputContextHandler(this);
bridge->MaybeSwitchEngine();
}
}
void InputMethodChromeOS::OnBlur() {
if (ui::IMEBridge::Get() &&
ui::IMEBridge::Get()->GetInputContextHandler() == this)
ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
}
void InputMethodChromeOS::OnWillChangeFocusedClient( void InputMethodChromeOS::OnWillChangeFocusedClient(
TextInputClient* focused_before, TextInputClient* focused_before,
TextInputClient* focused) { TextInputClient* focused) {
......
...@@ -44,6 +44,8 @@ class COMPONENT_EXPORT(UI_BASE_IME_CHROMEOS) InputMethodChromeOS ...@@ -44,6 +44,8 @@ class COMPONENT_EXPORT(UI_BASE_IME_CHROMEOS) InputMethodChromeOS
InputMethodKeyboardController* GetInputMethodKeyboardController() override; InputMethodKeyboardController* GetInputMethodKeyboardController() override;
// Overridden from InputMethodBase: // Overridden from InputMethodBase:
void OnFocus() override;
void OnBlur() override;
void OnWillChangeFocusedClient(TextInputClient* focused_before, void OnWillChangeFocusedClient(TextInputClient* focused_before,
TextInputClient* focused) override; TextInputClient* focused) override;
void OnDidChangeFocusedClient(TextInputClient* focused_before, void OnDidChangeFocusedClient(TextInputClient* focused_before,
......
...@@ -13,7 +13,9 @@ ...@@ -13,7 +13,9 @@
namespace ui { namespace ui {
#if defined(OS_CHROMEOS)
static IMEBridge* g_ime_bridge = nullptr; static IMEBridge* g_ime_bridge = nullptr;
#endif
// An implementation of IMEBridge. // An implementation of IMEBridge.
class IMEBridgeImpl : public IMEBridge { class IMEBridgeImpl : public IMEBridge {
...@@ -126,6 +128,7 @@ IMEBridge::IMEBridge() {} ...@@ -126,6 +128,7 @@ IMEBridge::IMEBridge() {}
IMEBridge::~IMEBridge() {} IMEBridge::~IMEBridge() {}
#if defined(OS_CHROMEOS)
// static. // static.
void IMEBridge::Initialize() { void IMEBridge::Initialize() {
if (!g_ime_bridge) if (!g_ime_bridge)
...@@ -142,5 +145,6 @@ void IMEBridge::Shutdown() { ...@@ -142,5 +145,6 @@ void IMEBridge::Shutdown() {
IMEBridge* IMEBridge::Get() { IMEBridge* IMEBridge::Get() {
return g_ime_bridge; return g_ime_bridge;
} }
#endif
} // namespace ui } // namespace ui
...@@ -30,6 +30,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) IMEBridge { ...@@ -30,6 +30,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) IMEBridge {
public: public:
virtual ~IMEBridge(); virtual ~IMEBridge();
#if defined(OS_CHROMEOS)
// Allocates the global instance. Must be called before any calls to Get(). // Allocates the global instance. Must be called before any calls to Get().
static void Initialize(); static void Initialize();
...@@ -38,6 +39,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) IMEBridge { ...@@ -38,6 +39,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) IMEBridge {
// Returns IMEBridge global instance. Initialize() must be called first. // Returns IMEBridge global instance. Initialize() must be called first.
static IMEBridge* Get(); static IMEBridge* Get();
#endif
// Returns current InputContextHandler. This function returns NULL if input // Returns current InputContextHandler. This function returns NULL if input
// context is not ready to use. // context is not ready to use.
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#include "base/check.h" #include "base/check.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "ui/base/ime/ime_bridge.h"
#include "ui/base/ime/input_method_delegate.h" #include "ui/base/ime/input_method_delegate.h"
#include "ui/base/ime/input_method_keyboard_controller_stub.h" #include "ui/base/ime/input_method_keyboard_controller_stub.h"
#include "ui/base/ime/input_method_observer.h" #include "ui/base/ime/input_method_observer.h"
...@@ -30,9 +29,6 @@ InputMethodBase::InputMethodBase( ...@@ -30,9 +29,6 @@ InputMethodBase::InputMethodBase(
InputMethodBase::~InputMethodBase() { InputMethodBase::~InputMethodBase() {
for (InputMethodObserver& observer : observer_list_) for (InputMethodObserver& observer : observer_list_)
observer.OnInputMethodDestroyed(this); observer.OnInputMethodDestroyed(this);
if (ui::IMEBridge::Get() &&
ui::IMEBridge::Get()->GetInputContextHandler() == this)
ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
} }
void InputMethodBase::SetDelegate(internal::InputMethodDelegate* delegate) { void InputMethodBase::SetDelegate(internal::InputMethodDelegate* delegate) {
...@@ -40,17 +36,9 @@ void InputMethodBase::SetDelegate(internal::InputMethodDelegate* delegate) { ...@@ -40,17 +36,9 @@ void InputMethodBase::SetDelegate(internal::InputMethodDelegate* delegate) {
} }
void InputMethodBase::OnFocus() { void InputMethodBase::OnFocus() {
ui::IMEBridge* bridge = ui::IMEBridge::Get();
if (bridge) {
bridge->SetInputContextHandler(this);
bridge->MaybeSwitchEngine();
}
} }
void InputMethodBase::OnBlur() { void InputMethodBase::OnBlur() {
if (ui::IMEBridge::Get() &&
ui::IMEBridge::Get()->GetInputContextHandler() == this)
ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
} }
#if defined(OS_WIN) #if defined(OS_WIN)
......
...@@ -8,8 +8,6 @@ ...@@ -8,8 +8,6 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/environment.h" #include "base/environment.h"
#include "ui/base/ime/constants.h" #include "ui/base/ime/constants.h"
#include "ui/base/ime/ime_bridge.h"
#include "ui/base/ime/ime_engine_handler_interface.h"
#include "ui/base/ime/linux/linux_input_method_context_factory.h" #include "ui/base/ime/linux/linux_input_method_context_factory.h"
#include "ui/base/ime/text_input_client.h" #include "ui/base/ime/text_input_client.h"
#include "ui/events/event.h" #include "ui/events/event.h"
...@@ -215,14 +213,6 @@ void InputMethodAuraLinux::UpdateContextFocusState() { ...@@ -215,14 +213,6 @@ void InputMethodAuraLinux::UpdateContextFocusState() {
context_simple_->Focus(); context_simple_->Focus();
else else
context_simple_->Blur(); context_simple_->Blur();
if (!ui::IMEBridge::Get()) // IMEBridge could be null for tests.
return;
ui::IMEEngineHandlerInterface::InputContext context(
GetTextInputType(), GetTextInputMode(), GetTextInputFlags(),
ui::TextInputClient::FOCUS_REASON_OTHER, GetClientShouldDoLearning());
ui::IMEBridge::Get()->SetCurrentInputContext(context);
} }
void InputMethodAuraLinux::OnTextInputTypeChanged( void InputMethodAuraLinux::OnTextInputTypeChanged(
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "base/win/windows_version.h" #include "base/win/windows_version.h"
#include "ui/base/ime/ime_bridge.h" #include "ui/base/ime/ime_bridge.h"
#include "ui/base/ime/ime_engine_handler_interface.h"
#include "ui/base/ime/text_input_client.h" #include "ui/base/ime/text_input_client.h"
#include "ui/base/ime/win/on_screen_keyboard_display_manager_input_pane.h" #include "ui/base/ime/win/on_screen_keyboard_display_manager_input_pane.h"
#include "ui/base/ime/win/on_screen_keyboard_display_manager_tab_tip.h" #include "ui/base/ime/win/on_screen_keyboard_display_manager_tab_tip.h"
...@@ -491,14 +490,4 @@ ui::EventDispatchDetails InputMethodWinBase::ProcessUnhandledKeyEvent( ...@@ -491,14 +490,4 @@ ui::EventDispatchDetails InputMethodWinBase::ProcessUnhandledKeyEvent(
return details; return details;
} }
void InputMethodWinBase::UpdateEngineFocusAndInputContext() {
if (!ui::IMEBridge::Get()) // IMEBridge could be null for tests.
return;
ui::IMEEngineHandlerInterface::InputContext context(
GetTextInputType(), GetTextInputMode(), GetTextInputFlags(),
ui::TextInputClient::FOCUS_REASON_OTHER, GetClientShouldDoLearning());
ui::IMEBridge::Get()->SetCurrentInputContext(context);
}
} // namespace ui } // namespace ui
...@@ -62,10 +62,6 @@ class COMPONENT_EXPORT(UI_BASE_IME_WIN) InputMethodWinBase ...@@ -62,10 +62,6 @@ class COMPONENT_EXPORT(UI_BASE_IME_WIN) InputMethodWinBase
ui::KeyEvent* event, ui::KeyEvent* event,
const std::vector<MSG>* char_msgs); const std::vector<MSG>* char_msgs);
// Update focus state for Chromium IME extension and update input context in
// ui::IMEBridge.
void UpdateEngineFocusAndInputContext();
// The toplevel window handle. // The toplevel window handle.
const HWND toplevel_window_handle_; const HWND toplevel_window_handle_;
......
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/command_line.h" #include "base/command_line.h"
#include "base/metrics/histogram_macros.h" #include "base/metrics/histogram_macros.h"
#include "ui/base/ime/ime_bridge.h"
#include "ui/base/ime/ime_engine_handler_interface.h"
#include "ui/base/ime/text_input_client.h" #include "ui/base/ime/text_input_client.h"
#include "ui/base/ime/win/tsf_input_scope.h" #include "ui/base/ime/win/tsf_input_scope.h"
#include "ui/display/win/screen_win.h" #include "ui/display/win/screen_win.h"
...@@ -348,8 +346,6 @@ void InputMethodWinImm32::UpdateIMEState() { ...@@ -348,8 +346,6 @@ void InputMethodWinImm32::UpdateIMEState() {
imm32_manager_.SetTextInputMode(window_handle, text_input_mode); imm32_manager_.SetTextInputMode(window_handle, text_input_mode);
tsf_inputscope::SetInputScopeForTsfUnawareWindow( tsf_inputscope::SetInputScopeForTsfUnawareWindow(
window_handle, text_input_type, text_input_mode); window_handle, text_input_type, text_input_mode);
InputMethodWinBase::UpdateEngineFocusAndInputContext();
} }
} // namespace ui } // namespace ui
...@@ -100,7 +100,6 @@ void InputMethodWinTSF::OnTextInputTypeChanged(const TextInputClient* client) { ...@@ -100,7 +100,6 @@ void InputMethodWinTSF::OnTextInputTypeChanged(const TextInputClient* client) {
} }
ui::TSFBridge::GetInstance()->CancelComposition(); ui::TSFBridge::GetInstance()->CancelComposition();
ui::TSFBridge::GetInstance()->OnTextInputTypeChanged(client); ui::TSFBridge::GetInstance()->OnTextInputTypeChanged(client);
InputMethodWinBase::UpdateEngineFocusAndInputContext();
} }
void InputMethodWinTSF::OnCaretBoundsChanged(const TextInputClient* client) { void InputMethodWinTSF::OnCaretBoundsChanged(const TextInputClient* client) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment