| Index: chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc
|
| diff --git a/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc b/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc
|
| index 38443d3030b2d0beae064231f95932e440830148..8950f6056b3ee81d32bb519614442893a0688a86 100644
|
| --- a/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc
|
| +++ b/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc
|
| @@ -565,17 +565,13 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessTextInputManagerTest,
|
| reset_state_observer.Wait();
|
| }
|
|
|
| -// TODO(ekaramad): Enable the following tests on other platforms when the
|
| -// corresponding feature is implemented (http://crbug.com/578168).
|
| -#if defined(USE_AURA)
|
| // This test creates a page with multiple child frames and adds an <input> to
|
| // each frame. Then, sequentially, each <input> is focused by sending a tab key.
|
| -// Then, after |TextInputState.type| for a view is changed to text, another key
|
| -// is pressed (a character) and then the test verifies that TextInputManager
|
| -// receives the corresponding update on the change in selection bounds on the
|
| -// browser side.
|
| +// Then, after |TextInputState.type| for a view is changed to text, the test
|
| +// sends a set composition IPC to the active widget and waits until the widget
|
| +// updates its composition range.
|
| IN_PROC_BROWSER_TEST_F(SitePerProcessTextInputManagerTest,
|
| - TrackSelectionBoundsForAllFrames) {
|
| + TrackCompositionRangeForAllFrames) {
|
| CreateIframePage("a(b,c(a,b),d)");
|
| std::vector<content::RenderFrameHost*> frames{
|
| GetFrame(IndexVector{}), GetFrame(IndexVector{0}),
|
| @@ -585,34 +581,38 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessTextInputManagerTest,
|
| for (auto* frame : frames)
|
| views.push_back(frame->GetView());
|
| for (size_t i = 0; i < frames.size(); ++i)
|
| - AddInputFieldToFrame(frames[i], "text", "", true);
|
| + AddInputFieldToFrame(frames[i], "text", "text", true);
|
|
|
| content::WebContents* web_contents = active_contents();
|
|
|
| - auto send_tab_insert_text_wait_for_bounds_change = [&web_contents](
|
| + auto send_tab_set_composition_wait_for_bounds_change = [&web_contents](
|
| content::RenderWidgetHostView* view) {
|
| ViewTextInputTypeObserver type_observer(web_contents, view,
|
| ui::TEXT_INPUT_TYPE_TEXT);
|
| SimulateKeyPress(web_contents, ui::DomKey::TAB, ui::DomCode::TAB,
|
| ui::VKEY_TAB, false, false, false, false);
|
| type_observer.Wait();
|
| - ViewSelectionBoundsChangedObserver bounds_observer(web_contents, view);
|
| - SimulateKeyPress(web_contents, ui::DomKey::FromCharacter('E'),
|
| - ui::DomCode::US_E, ui::VKEY_E, false, false, false, false);
|
| - bounds_observer.Wait();
|
| +
|
| + ViewCompositionRangeChangedObserver range_observer(web_contents, view);
|
| + EXPECT_TRUE(content::RequestCompositionInfoFromActiveWidget(web_contents));
|
| + range_observer.Wait();
|
| };
|
|
|
| for (auto* view : views)
|
| - send_tab_insert_text_wait_for_bounds_change(view);
|
| + send_tab_set_composition_wait_for_bounds_change(view);
|
| }
|
|
|
| +// TODO(ekaramad): Enable the following tests on other platforms when the
|
| +// corresponding feature is implemented (http://crbug.com/578168).
|
| +#if defined(USE_AURA)
|
| // This test creates a page with multiple child frames and adds an <input> to
|
| // each frame. Then, sequentially, each <input> is focused by sending a tab key.
|
| -// Then, after |TextInputState.type| for a view is changed to text, the test
|
| -// sends a set composition IPC to the active widget and waits until the widget
|
| -// updates its composition range.
|
| +// Then, after |TextInputState.type| for a view is changed to text, another key
|
| +// is pressed (a character) and then the test verifies that TextInputManager
|
| +// receives the corresponding update on the change in selection bounds on the
|
| +// browser side.
|
| IN_PROC_BROWSER_TEST_F(SitePerProcessTextInputManagerTest,
|
| - TrackCompositionRangeForAllFrames) {
|
| + TrackSelectionBoundsForAllFrames) {
|
| CreateIframePage("a(b,c(a,b),d)");
|
| std::vector<content::RenderFrameHost*> frames{
|
| GetFrame(IndexVector{}), GetFrame(IndexVector{0}),
|
| @@ -622,24 +622,25 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessTextInputManagerTest,
|
| for (auto* frame : frames)
|
| views.push_back(frame->GetView());
|
| for (size_t i = 0; i < frames.size(); ++i)
|
| - AddInputFieldToFrame(frames[i], "text", "text", true);
|
| + AddInputFieldToFrame(frames[i], "text", "", true);
|
|
|
| content::WebContents* web_contents = active_contents();
|
|
|
| - auto send_tab_set_composition_wait_for_bounds_change = [&web_contents](
|
| + auto send_tab_insert_text_wait_for_bounds_change = [&web_contents](
|
| content::RenderWidgetHostView* view) {
|
| ViewTextInputTypeObserver type_observer(web_contents, view,
|
| ui::TEXT_INPUT_TYPE_TEXT);
|
| SimulateKeyPress(web_contents, ui::DomKey::TAB, ui::DomCode::TAB,
|
| ui::VKEY_TAB, false, false, false, false);
|
| type_observer.Wait();
|
| - ViewCompositionRangeChangedObserver range_observer(web_contents, view);
|
| - EXPECT_TRUE(content::RequestCompositionInfoFromActiveWidget(web_contents));
|
| - range_observer.Wait();
|
| + ViewSelectionBoundsChangedObserver bounds_observer(web_contents, view);
|
| + SimulateKeyPress(web_contents, ui::DomKey::FromCharacter('E'),
|
| + ui::DomCode::US_E, ui::VKEY_E, false, false, false, false);
|
| + bounds_observer.Wait();
|
| };
|
|
|
| for (auto* view : views)
|
| - send_tab_set_composition_wait_for_bounds_change(view);
|
| + send_tab_insert_text_wait_for_bounds_change(view);
|
| }
|
|
|
| // This test creates a page with multiple child frames and adds an <input> to
|
|
|