summaryrefslogtreecommitdiffstats
path: root/ui/base/ime
diff options
context:
space:
mode:
authorkevers@chromium.org <kevers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-03 19:49:32 +0000
committerkevers@chromium.org <kevers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-03 19:49:32 +0000
commit0a6cf0c859d643f4565ce360a1bb6fd747c1f41d (patch)
tree01ae0a2c3fd617c24cfe64fbe569db25829add94 /ui/base/ime
parentc28f868dfa7b20a12b6f7b7b437dc74c28b85cf0 (diff)
downloadchromium_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.cc13
-rw-r--r--ui/base/ime/input_method_observer.h25
-rw-r--r--ui/base/ime/mock_input_method.cc28
-rw-r--r--ui/base/ime/mock_input_method.h15
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);
};