diff options
author | yoichio@chromium.org <yoichio@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-17 16:00:36 +0000 |
---|---|---|
committer | yoichio@chromium.org <yoichio@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-17 16:00:36 +0000 |
commit | e7c569db7e186d111353ff682a7411d0ea272719 (patch) | |
tree | 2e9c69b90b731852ed2e43644fe9f1d30cd22d8e /content/renderer/render_view_browsertest.cc | |
parent | 93303348979e9a7840ea8aa4e0f55c139529c963 (diff) | |
download | chromium_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.cc | 54 |
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 |