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() {
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(
TextInputClient* focused_before,
TextInputClient* focused) {
......
......@@ -44,6 +44,8 @@ class COMPONENT_EXPORT(UI_BASE_IME_CHROMEOS) InputMethodChromeOS
InputMethodKeyboardController* GetInputMethodKeyboardController() override;
// Overridden from InputMethodBase:
void OnFocus() override;
void OnBlur() override;
void OnWillChangeFocusedClient(TextInputClient* focused_before,
TextInputClient* focused) override;
void OnDidChangeFocusedClient(TextInputClient* focused_before,
......
......@@ -13,7 +13,9 @@
namespace ui {
#if defined(OS_CHROMEOS)
static IMEBridge* g_ime_bridge = nullptr;
#endif
// An implementation of IMEBridge.
class IMEBridgeImpl : public IMEBridge {
......@@ -126,6 +128,7 @@ IMEBridge::IMEBridge() {}
IMEBridge::~IMEBridge() {}
#if defined(OS_CHROMEOS)
// static.
void IMEBridge::Initialize() {
if (!g_ime_bridge)
......@@ -142,5 +145,6 @@ void IMEBridge::Shutdown() {
IMEBridge* IMEBridge::Get() {
return g_ime_bridge;
}
#endif
} // namespace ui
......@@ -30,6 +30,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) IMEBridge {
public:
virtual ~IMEBridge();
#if defined(OS_CHROMEOS)
// Allocates the global instance. Must be called before any calls to Get().
static void Initialize();
......@@ -38,6 +39,7 @@ class COMPONENT_EXPORT(UI_BASE_IME) IMEBridge {
// Returns IMEBridge global instance. Initialize() must be called first.
static IMEBridge* Get();
#endif
// Returns current InputContextHandler. This function returns NULL if input
// context is not ready to use.
......
......@@ -9,7 +9,6 @@
#include "base/check.h"
#include "base/strings/utf_string_conversions.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_keyboard_controller_stub.h"
#include "ui/base/ime/input_method_observer.h"
......@@ -30,9 +29,6 @@ InputMethodBase::InputMethodBase(
InputMethodBase::~InputMethodBase() {
for (InputMethodObserver& observer : observer_list_)
observer.OnInputMethodDestroyed(this);
if (ui::IMEBridge::Get() &&
ui::IMEBridge::Get()->GetInputContextHandler() == this)
ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
}
void InputMethodBase::SetDelegate(internal::InputMethodDelegate* delegate) {
......@@ -40,17 +36,9 @@ void InputMethodBase::SetDelegate(internal::InputMethodDelegate* delegate) {
}
void InputMethodBase::OnFocus() {
ui::IMEBridge* bridge = ui::IMEBridge::Get();
if (bridge) {
bridge->SetInputContextHandler(this);
bridge->MaybeSwitchEngine();
}
}
void InputMethodBase::OnBlur() {
if (ui::IMEBridge::Get() &&
ui::IMEBridge::Get()->GetInputContextHandler() == this)
ui::IMEBridge::Get()->SetInputContextHandler(nullptr);
}
#if defined(OS_WIN)
......
......@@ -8,8 +8,6 @@
#include "base/bind.h"
#include "base/environment.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/text_input_client.h"
#include "ui/events/event.h"
......@@ -215,14 +213,6 @@ void InputMethodAuraLinux::UpdateContextFocusState() {
context_simple_->Focus();
else
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(
......
......@@ -14,7 +14,6 @@
#include "base/memory/ptr_util.h"
#include "base/win/windows_version.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/win/on_screen_keyboard_display_manager_input_pane.h"
#include "ui/base/ime/win/on_screen_keyboard_display_manager_tab_tip.h"
......@@ -491,14 +490,4 @@ ui::EventDispatchDetails InputMethodWinBase::ProcessUnhandledKeyEvent(
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
......@@ -62,10 +62,6 @@ class COMPONENT_EXPORT(UI_BASE_IME_WIN) InputMethodWinBase
ui::KeyEvent* event,
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.
const HWND toplevel_window_handle_;
......
......@@ -12,8 +12,6 @@
#include "base/bind.h"
#include "base/command_line.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/win/tsf_input_scope.h"
#include "ui/display/win/screen_win.h"
......@@ -348,8 +346,6 @@ void InputMethodWinImm32::UpdateIMEState() {
imm32_manager_.SetTextInputMode(window_handle, text_input_mode);
tsf_inputscope::SetInputScopeForTsfUnawareWindow(
window_handle, text_input_type, text_input_mode);
InputMethodWinBase::UpdateEngineFocusAndInputContext();
}
} // namespace ui
......@@ -100,7 +100,6 @@ void InputMethodWinTSF::OnTextInputTypeChanged(const TextInputClient* client) {
}
ui::TSFBridge::GetInstance()->CancelComposition();
ui::TSFBridge::GetInstance()->OnTextInputTypeChanged(client);
InputMethodWinBase::UpdateEngineFocusAndInputContext();
}
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