| Index: components/test_runner/text_input_controller.cc
|
| diff --git a/components/test_runner/text_input_controller.cc b/components/test_runner/text_input_controller.cc
|
| index c2241267b8bef72a4d07a80203a24516772ecfdc..2ce0147a3a7c8f01dcb0c32be2b933c8f38613b2 100644
|
| --- a/components/test_runner/text_input_controller.cc
|
| +++ b/components/test_runner/text_input_controller.cc
|
| @@ -11,7 +11,9 @@
|
| #include "gin/object_template_builder.h"
|
| #include "gin/wrappable.h"
|
| #include "third_party/WebKit/public/web/WebCompositionUnderline.h"
|
| +#include "third_party/WebKit/public/web/WebFrameWidget.h"
|
| #include "third_party/WebKit/public/web/WebInputEvent.h"
|
| +#include "third_party/WebKit/public/web/WebInputMethodController.h"
|
| #include "third_party/WebKit/public/web/WebKit.h"
|
| #include "third_party/WebKit/public/web/WebLocalFrame.h"
|
| #include "third_party/WebKit/public/web/WebRange.h"
|
| @@ -160,11 +162,12 @@ void TextInputController::Install(blink::WebLocalFrame* frame) {
|
| }
|
|
|
| void TextInputController::InsertText(const std::string& text) {
|
| - view()->commitText(blink::WebString::fromUTF8(text), 0);
|
| + inputMethodController()->commitText(blink::WebString::fromUTF8(text), 0);
|
| }
|
|
|
| void TextInputController::UnmarkText() {
|
| - view()->finishComposingText(blink::WebWidget::KeepSelection);
|
| + inputMethodController()->finishComposingText(
|
| + blink::WebInputMethodController::KeepSelection);
|
| }
|
|
|
| void TextInputController::DoCommand(const std::string& text) {
|
| @@ -203,7 +206,8 @@ void TextInputController::SetMarkedText(const std::string& text,
|
| underlines.push_back(underline);
|
| }
|
|
|
| - view()->setComposition(web_text, underlines, start, start + length);
|
| + inputMethodController()->setComposition(web_text, underlines, start,
|
| + start + length);
|
| }
|
|
|
| bool TextInputController::HasMarkedText() {
|
| @@ -292,7 +296,7 @@ void TextInputController::SetComposition(const std::string& text) {
|
| std::vector<blink::WebCompositionUnderline> underlines;
|
| underlines.push_back(blink::WebCompositionUnderline(
|
| 0, textLength, SK_ColorBLACK, false, SK_ColorTRANSPARENT));
|
| - view()->setComposition(
|
| + inputMethodController()->setComposition(
|
| newText, blink::WebVector<blink::WebCompositionUnderline>(underlines),
|
| textLength, textLength);
|
| }
|
| @@ -301,4 +305,13 @@ blink::WebView* TextInputController::view() {
|
| return web_view_test_proxy_base_->web_view();
|
| }
|
|
|
| +blink::WebInputMethodController* TextInputController::inputMethodController() {
|
| + blink::WebLocalFrame* mainFrame = view()->mainFrame()->toWebLocalFrame();
|
| + if (!mainFrame) {
|
| + CHECK(false) << "WebView does not have a local main frame and"
|
| + " cannot handle input method controller tasks.";
|
| + }
|
| + return mainFrame->frameWidget()->getActiveWebInputMethodController();
|
| +}
|
| +
|
| } // namespace test_runner
|
|
|