summaryrefslogtreecommitdiffstats
path: root/content/renderer/render_view_browsertest.cc
diff options
context:
space:
mode:
authoryoichio@chromium.org <yoichio@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-17 16:00:36 +0000
committeryoichio@chromium.org <yoichio@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-17 16:00:36 +0000
commite7c569db7e186d111353ff682a7411d0ea272719 (patch)
tree2e9c69b90b731852ed2e43644fe9f1d30cd22d8e /content/renderer/render_view_browsertest.cc
parent93303348979e9a7840ea8aa4e0f55c139529c963 (diff)
downloadchromium_src-e7c569db7e186d111353ff682a7411d0ea272719.zip
chromium_src-e7c569db7e186d111353ff682a7411d0ea272719.tar.gz
chromium_src-e7c569db7e186d111353ff682a7411d0ea272719.tar.bz2
fix the bug that IME is broken on pepper flash.
This is a regression bug inserted by https://chromiumcodereview.appspot.com/18682002. The cl replace GetTextInputType() with webwidget_->textInputInfo().type. To be aware of pepper plugin, ui::TextInputType new_type should be a value of GetTextInputType(), which is overrided at RenderViewImpl. So this cl reverted the change. BUG=260530 TEST=add to render_view_browsertest.cc Review URL: https://chromiumcodereview.appspot.com/19289007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212055 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/render_view_browsertest.cc')
-rw-r--r--content/renderer/render_view_browsertest.cc54
1 files changed, 54 insertions, 0 deletions
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
index 004fb3b..2be61c3 100644
--- a/content/renderer/render_view_browsertest.cc
+++ b/content/renderer/render_view_browsertest.cc
@@ -103,6 +103,22 @@ class WebUITestWebUIControllerFactory : public WebUIControllerFactory {
}
};
+class MockRenderViewPepperHelper : public RenderViewPepperHelper {
+ public:
+ MockRenderViewPepperHelper() : text_input_type_(ui::TEXT_INPUT_TYPE_NONE) {}
+ virtual bool IsPluginFocused() const OVERRIDE {
+ return true;
+ }
+ virtual ui::TextInputType GetTextInputType() const OVERRIDE {
+ return text_input_type_;
+ }
+ void SetTextInputType(ui::TextInputType text_input_type) {
+ text_input_type_ = text_input_type;
+ }
+ private:
+ ui::TextInputType text_input_type_;
+};
+
} // namespace
class RenderViewImplTest : public RenderViewTest {
@@ -1919,4 +1935,42 @@ TEST_F(RenderViewImplTest, BasicRenderFrame) {
EXPECT_TRUE(view()->main_render_frame_.get());
}
+TEST_F(RenderViewImplTest, TextInputTypeWithPepper) {
+ MockRenderViewPepperHelper* pepper_helper = new MockRenderViewPepperHelper();
+ pepper_helper->SetTextInputType(ui::TEXT_INPUT_TYPE_EMAIL);
+ view()->pepper_helper_ .reset(pepper_helper);
+
+ view()->OnSetInputMethodActive(true);
+ view()->set_send_content_state_immediately(true);
+ LoadHTML("<html>"
+ "<head>"
+ "</head>"
+ "<body>"
+ "<input id=\"test1\" type=\"text\" value=\"some text\"></input>"
+ "</body>"
+ "</html>");
+ render_thread_->sink().ClearMessages();
+
+ // Move the input focus to the first <input> element, where we should
+ // activate IMEs.
+ ExecuteJavaScript("document.getElementById('test1').focus();");
+ ProcessPendingMessages();
+ render_thread_->sink().ClearMessages();
+
+ // Update the IME status and verify if our IME backend sends an IPC message
+ // using mock pepper status.
+ view()->UpdateTextInputType();
+ const IPC::Message* msg = render_thread_->sink().GetMessageAt(0);
+ EXPECT_TRUE(msg != NULL);
+ EXPECT_EQ(ViewHostMsg_TextInputTypeChanged::ID, msg->type());
+ ui::TextInputType type;
+ bool can_compose_inline;
+ ui::TextInputMode input_mode;
+ ViewHostMsg_TextInputTypeChanged::Read(msg,
+ &type,
+ &can_compose_inline,
+ &input_mode);
+ EXPECT_EQ(ui::TEXT_INPUT_TYPE_EMAIL, type);
+}
+
} // namespace content