diff options
author | kevers@chromium.org <kevers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-03 19:49:32 +0000 |
---|---|---|
committer | kevers@chromium.org <kevers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-03 19:49:32 +0000 |
commit | 0a6cf0c859d643f4565ce360a1bb6fd747c1f41d (patch) | |
tree | 01ae0a2c3fd617c24cfe64fbe569db25829add94 /ui/base/ime | |
parent | c28f868dfa7b20a12b6f7b7b437dc74c28b85cf0 (diff) | |
download | chromium_src-0a6cf0c859d643f4565ce360a1bb6fd747c1f41d.zip chromium_src-0a6cf0c859d643f4565ce360a1bb6fd747c1f41d.tar.gz chromium_src-0a6cf0c859d643f4565ce360a1bb6fd747c1f41d.tar.bz2 |
Fix unsafe typecast in interactive_ui_tests when the virtual keyboard is enabled.
BUG=247746
TEST=interactive_ui_tests: TextInput_TextInputStateChangedTest
Review URL: https://codereview.chromium.org/25705003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226820 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base/ime')
-rw-r--r-- | ui/base/ime/input_method_base_unittest.cc | 13 | ||||
-rw-r--r-- | ui/base/ime/input_method_observer.h | 25 | ||||
-rw-r--r-- | ui/base/ime/mock_input_method.cc | 28 | ||||
-rw-r--r-- | ui/base/ime/mock_input_method.h | 15 |
4 files changed, 58 insertions, 23 deletions
diff --git a/ui/base/ime/input_method_base_unittest.cc b/ui/base/ime/input_method_base_unittest.cc index cc7304c..3d06a1a 100644 --- a/ui/base/ime/input_method_base_unittest.cc +++ b/ui/base/ime/input_method_base_unittest.cc @@ -176,6 +176,19 @@ class MockInputMethodObserver : public InputMethodObserver { } private: + virtual void OnTextInputTypeChanged(const TextInputClient* client) OVERRIDE { + } + virtual void OnFocus() OVERRIDE { + } + virtual void OnBlur() OVERRIDE { + } + virtual void OnUntranslatedIMEMessage( + const base::NativeEvent& event) OVERRIDE { + } + virtual void OnCaretBoundsChanged(const TextInputClient* client) OVERRIDE { + } + virtual void OnInputLocaleChanged() OVERRIDE { + } virtual void OnTextInputStateChanged(const TextInputClient* client) OVERRIDE { verifier_->OnTextInputStateChanged(client); } diff --git a/ui/base/ime/input_method_observer.h b/ui/base/ime/input_method_observer.h index 195da9c..fc517cc 100644 --- a/ui/base/ime/input_method_observer.h +++ b/ui/base/ime/input_method_observer.h @@ -16,6 +16,31 @@ class UI_EXPORT InputMethodObserver { public: virtual ~InputMethodObserver() {} + // Called whenever the text input type is changed for the focused client. + // Currently only used by the mock input method for testing. + virtual void OnTextInputTypeChanged(const TextInputClient* client) = 0; + + // Called when the top-level system window gets keyboard focus. Currently + // only used by the mock input method for testing. + virtual void OnFocus() = 0; + + // Called when the top-level system window loses keyboard focus. Currently + // only used by the mock input method for testing. + virtual void OnBlur() = 0; + + // Called when the focused window receives native IME messages that are not + // translated into other predefined event callbacks. Currently this method is + // used only for IME testing on Windows. + virtual void OnUntranslatedIMEMessage(const base::NativeEvent& event) = 0; + + // Called whenever the caret bounds is changed for the input client. + // Currently only used by the mock input method for testing. + virtual void OnCaretBoundsChanged(const TextInputClient* client) = 0; + + // Called whenever the input locale is changed for the focused client. + // This method is currently used only on Windows and only for testing. + virtual void OnInputLocaleChanged() = 0; + // Called when either: // - the TextInputClient is changed (e.g. by a change of focus) // - the TextInputType of the TextInputClient changes diff --git a/ui/base/ime/mock_input_method.cc b/ui/base/ime/mock_input_method.cc index b6323ef..c5fa4e2 100644 --- a/ui/base/ime/mock_input_method.cc +++ b/ui/base/ime/mock_input_method.cc @@ -59,35 +59,45 @@ void MockInputMethod::Init(bool focused) { } void MockInputMethod::OnFocus() { - FOR_EACH_OBSERVER(Observer, observer_list_, OnFocus()); + FOR_EACH_OBSERVER(InputMethodObserver, observer_list_, OnFocus()); } void MockInputMethod::OnBlur() { - FOR_EACH_OBSERVER(Observer, observer_list_, OnBlur()); + FOR_EACH_OBSERVER(InputMethodObserver, observer_list_, OnBlur()); } bool MockInputMethod::OnUntranslatedIMEMessage(const base::NativeEvent& event, NativeEventResult* result) { - FOR_EACH_OBSERVER(Observer, observer_list_, OnUntranslatedIMEMessage(event)); + FOR_EACH_OBSERVER(InputMethodObserver, + observer_list_, + OnUntranslatedIMEMessage(event)); if (result) *result = NativeEventResult(); return false; } void MockInputMethod::OnTextInputTypeChanged(const TextInputClient* client) { - FOR_EACH_OBSERVER(Observer, observer_list_, OnTextInputTypeChanged(client)); - FOR_EACH_OBSERVER(Observer, observer_list_, OnTextInputStateChanged(client)); + FOR_EACH_OBSERVER(InputMethodObserver, + observer_list_, + OnTextInputTypeChanged(client)); + FOR_EACH_OBSERVER(InputMethodObserver, + observer_list_, + OnTextInputStateChanged(client)); } void MockInputMethod::OnCaretBoundsChanged(const TextInputClient* client) { - FOR_EACH_OBSERVER(Observer, observer_list_, OnCaretBoundsChanged(client)); + FOR_EACH_OBSERVER(InputMethodObserver, + observer_list_, + OnCaretBoundsChanged(client)); } void MockInputMethod::CancelComposition(const TextInputClient* client) { } void MockInputMethod::OnInputLocaleChanged() { - FOR_EACH_OBSERVER(Observer, observer_list_, OnInputLocaleChanged()); + FOR_EACH_OBSERVER(InputMethodObserver, + observer_list_, + OnInputLocaleChanged()); } std::string MockInputMethod::GetInputLocale() { @@ -119,11 +129,11 @@ bool MockInputMethod::IsCandidatePopupOpen() const { } void MockInputMethod::AddObserver(InputMethodObserver* observer) { - observer_list_.AddObserver(static_cast<Observer*>(observer)); + observer_list_.AddObserver(observer); } void MockInputMethod::RemoveObserver(InputMethodObserver* observer) { - observer_list_.RemoveObserver(static_cast<Observer*>(observer)); + observer_list_.RemoveObserver(observer); } } // namespace ui diff --git a/ui/base/ime/mock_input_method.h b/ui/base/ime/mock_input_method.h index 8e14988..d1e2e8d 100644 --- a/ui/base/ime/mock_input_method.h +++ b/ui/base/ime/mock_input_method.h @@ -25,19 +25,6 @@ class TextInputClient; // ui/base/ime/input_method_factory.h class UI_EXPORT MockInputMethod : NON_EXPORTED_BASE(public InputMethod) { public: - class Observer : public InputMethodObserver { - public: - virtual void OnTextInputTypeChanged(const TextInputClient* client) = 0; - virtual void OnFocus() = 0; - virtual void OnBlur() = 0; - virtual void OnUntranslatedIMEMessage(const base::NativeEvent& event) = 0; - virtual void OnCaretBoundsChanged(const TextInputClient* client) = 0; - virtual void OnInputLocaleChanged() = 0; - - // InputMethodObserver overrides - virtual void OnTextInputStateChanged(const TextInputClient* client) = 0; - virtual void OnInputMethodDestroyed(const InputMethod* input_method) = 0; - }; explicit MockInputMethod(internal::InputMethodDelegate* delegate); virtual ~MockInputMethod(); @@ -72,7 +59,7 @@ class UI_EXPORT MockInputMethod : NON_EXPORTED_BASE(public InputMethod) { private: TextInputClient* text_input_client_; bool is_sticky_text_input_client_; - ObserverList<Observer> observer_list_; + ObserverList<InputMethodObserver> observer_list_; DISALLOW_COPY_AND_ASSIGN(MockInputMethod); }; |