| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include "base/location.h" | 7 #include "base/location.h" |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 content::WebContents* embedder_web_contents = | 468 content::WebContents* embedder_web_contents = |
| 469 GetFirstAppWindowWebContents(); | 469 GetFirstAppWindowWebContents(); |
| 470 ASSERT_TRUE(embedder_web_contents); | 470 ASSERT_TRUE(embedder_web_contents); |
| 471 ASSERT_TRUE(guest_web_contents()); | 471 ASSERT_TRUE(guest_web_contents()); |
| 472 // Click the guest to request fullscreen. | 472 // Click the guest to request fullscreen. |
| 473 ExtensionTestMessageListener passed_listener( | 473 ExtensionTestMessageListener passed_listener( |
| 474 "FULLSCREEN_STEP_PASSED", false); | 474 "FULLSCREEN_STEP_PASSED", false); |
| 475 passed_listener.set_failure_message("TEST_FAILED"); | 475 passed_listener.set_failure_message("TEST_FAILED"); |
| 476 content::SimulateMouseClickAt(guest_web_contents(), | 476 content::SimulateMouseClickAt(guest_web_contents(), |
| 477 0, | 477 0, |
| 478 blink::WebMouseEvent::ButtonLeft, | 478 blink::WebMouseEvent::Button::Left, |
| 479 gfx::Point(20, 20)); | 479 gfx::Point(20, 20)); |
| 480 ASSERT_TRUE(passed_listener.WaitUntilSatisfied()); | 480 ASSERT_TRUE(passed_listener.WaitUntilSatisfied()); |
| 481 } | 481 } |
| 482 | 482 |
| 483 protected: | 483 protected: |
| 484 TestGuestViewManagerFactory factory_; | 484 TestGuestViewManagerFactory factory_; |
| 485 content::WebContents* guest_web_contents_; | 485 content::WebContents* guest_web_contents_; |
| 486 content::WebContents* embedder_web_contents_; | 486 content::WebContents* embedder_web_contents_; |
| 487 gfx::Point corner_; | 487 gfx::Point corner_; |
| 488 bool mouse_click_result_; | 488 bool mouse_click_result_; |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 674 RunAppHelper("testAdvanceFocus", "web_view/focus", NO_TEST_SERVER, | 674 RunAppHelper("testAdvanceFocus", "web_view/focus", NO_TEST_SERVER, |
| 675 &embedder_web_contents)); | 675 &embedder_web_contents)); |
| 676 done_listener->WaitUntilSatisfied(); | 676 done_listener->WaitUntilSatisfied(); |
| 677 } | 677 } |
| 678 | 678 |
| 679 { | 679 { |
| 680 ExtensionTestMessageListener listener("button1-focused", false); | 680 ExtensionTestMessageListener listener("button1-focused", false); |
| 681 listener.set_failure_message("TEST_FAILED"); | 681 listener.set_failure_message("TEST_FAILED"); |
| 682 SimulateRWHMouseClick( | 682 SimulateRWHMouseClick( |
| 683 embedder_web_contents->GetRenderViewHost()->GetWidget(), | 683 embedder_web_contents->GetRenderViewHost()->GetWidget(), |
| 684 blink::WebMouseEvent::ButtonLeft, 200, 20); | 684 blink::WebMouseEvent::Button::Left, 200, 20); |
| 685 content::SimulateKeyPress(embedder_web_contents, ui::DomKey::TAB, | 685 content::SimulateKeyPress(embedder_web_contents, ui::DomKey::TAB, |
| 686 ui::DomCode::TAB, ui::VKEY_TAB, false, false, | 686 ui::DomCode::TAB, ui::VKEY_TAB, false, false, |
| 687 false, false); | 687 false, false); |
| 688 ASSERT_TRUE(listener.WaitUntilSatisfied()); | 688 ASSERT_TRUE(listener.WaitUntilSatisfied()); |
| 689 } | 689 } |
| 690 | 690 |
| 691 { | 691 { |
| 692 // Wait for button1 to be focused again, this means we were asked to | 692 // Wait for button1 to be focused again, this means we were asked to |
| 693 // move the focus to the next focusable element. | 693 // move the focus to the next focusable element. |
| 694 ExtensionTestMessageListener listener("button1-advance-focus", false); | 694 ExtensionTestMessageListener listener("button1-advance-focus", false); |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 913 // <webview> sees transformed coordinates, the point is transformed in | 913 // <webview> sees transformed coordinates, the point is transformed in |
| 914 // CrossProcessFrameConnector::TransformPointToRootCoordSpace. | 914 // CrossProcessFrameConnector::TransformPointToRootCoordSpace. |
| 915 IN_PROC_BROWSER_TEST_F(WebViewContextMenuInteractiveTest, | 915 IN_PROC_BROWSER_TEST_F(WebViewContextMenuInteractiveTest, |
| 916 ContextMenuParamCoordinates) { | 916 ContextMenuParamCoordinates) { |
| 917 TestHelper("testCoordinates", "web_view/context_menus/coordinates", | 917 TestHelper("testCoordinates", "web_view/context_menus/coordinates", |
| 918 NO_TEST_SERVER); | 918 NO_TEST_SERVER); |
| 919 ASSERT_TRUE(guest_web_contents()); | 919 ASSERT_TRUE(guest_web_contents()); |
| 920 | 920 |
| 921 ContextMenuWaiter menu_observer(content::NotificationService::AllSources()); | 921 ContextMenuWaiter menu_observer(content::NotificationService::AllSources()); |
| 922 SimulateRWHMouseClick(guest_web_contents()->GetRenderViewHost()->GetWidget(), | 922 SimulateRWHMouseClick(guest_web_contents()->GetRenderViewHost()->GetWidget(), |
| 923 blink::WebMouseEvent::ButtonRight, 10, 20); | 923 blink::WebMouseEvent::Button::Right, 10, 20); |
| 924 // Wait until the context menu is opened and closed. | 924 // Wait until the context menu is opened and closed. |
| 925 menu_observer.WaitForMenuOpenAndClose(); | 925 menu_observer.WaitForMenuOpenAndClose(); |
| 926 ASSERT_EQ(10, menu_observer.params().x); | 926 ASSERT_EQ(10, menu_observer.params().x); |
| 927 ASSERT_EQ(20, menu_observer.params().y); | 927 ASSERT_EQ(20, menu_observer.params().y); |
| 928 } | 928 } |
| 929 | 929 |
| 930 // Tests whether <webview> context menu sees <webview> local coordinates in its | 930 // Tests whether <webview> context menu sees <webview> local coordinates in its |
| 931 // RenderViewContextMenu params, when it is subject to CSS transforms. | 931 // RenderViewContextMenu params, when it is subject to CSS transforms. |
| 932 // | 932 // |
| 933 // This test doesn't makes sense in --use-cross-process-frames-for-guests, since | 933 // This test doesn't makes sense in --use-cross-process-frames-for-guests, since |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 967 embedder_web_contents()->GetRenderWidgetHostView()->GetViewBounds(); | 967 embedder_web_contents()->GetRenderWidgetHostView()->GetViewBounds(); |
| 968 gfx::Rect guest_view_bounds = | 968 gfx::Rect guest_view_bounds = |
| 969 guest_web_contents()->GetRenderWidgetHostView()->GetViewBounds(); | 969 guest_web_contents()->GetRenderWidgetHostView()->GetViewBounds(); |
| 970 ContextMenuWaiter menu_observer(content::NotificationService::AllSources()); | 970 ContextMenuWaiter menu_observer(content::NotificationService::AllSources()); |
| 971 gfx::Point guest_window_point(150, 150); | 971 gfx::Point guest_window_point(150, 150); |
| 972 gfx::Point embedder_window_point = guest_window_point; | 972 gfx::Point embedder_window_point = guest_window_point; |
| 973 embedder_window_point += guest_view_bounds.OffsetFromOrigin(); | 973 embedder_window_point += guest_view_bounds.OffsetFromOrigin(); |
| 974 embedder_window_point -= embedder_view_bounds.OffsetFromOrigin(); | 974 embedder_window_point -= embedder_view_bounds.OffsetFromOrigin(); |
| 975 SimulateRWHMouseClick( | 975 SimulateRWHMouseClick( |
| 976 embedder_web_contents()->GetRenderViewHost()->GetWidget(), | 976 embedder_web_contents()->GetRenderViewHost()->GetWidget(), |
| 977 blink::WebMouseEvent::ButtonRight, | 977 blink::WebMouseEvent::Button::Right, |
| 978 /* Using window coordinates for the embedder */ | 978 /* Using window coordinates for the embedder */ |
| 979 embedder_window_point.x(), embedder_window_point.y()); | 979 embedder_window_point.x(), embedder_window_point.y()); |
| 980 | 980 |
| 981 menu_observer.WaitForMenuOpenAndClose(); | 981 menu_observer.WaitForMenuOpenAndClose(); |
| 982 EXPECT_EQ(menu_observer.params().x, guest_window_point.x()); | 982 EXPECT_EQ(menu_observer.params().x, guest_window_point.x()); |
| 983 EXPECT_EQ(menu_observer.params().y, guest_window_point.y()); | 983 EXPECT_EQ(menu_observer.params().y, guest_window_point.y()); |
| 984 } | 984 } |
| 985 } | 985 } |
| 986 | 986 |
| 987 IN_PROC_BROWSER_TEST_P(WebViewInteractiveTest, ExecuteCode) { | 987 IN_PROC_BROWSER_TEST_P(WebViewInteractiveTest, ExecuteCode) { |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1152 content::WebContents* embedder_web_contents = GetFirstAppWindowWebContents(); | 1152 content::WebContents* embedder_web_contents = GetFirstAppWindowWebContents(); |
| 1153 ASSERT_TRUE(embedder_web_contents); | 1153 ASSERT_TRUE(embedder_web_contents); |
| 1154 ASSERT_TRUE(guest_web_contents()); | 1154 ASSERT_TRUE(guest_web_contents()); |
| 1155 | 1155 |
| 1156 // 1) We click on the guest so that we get a focus event. | 1156 // 1) We click on the guest so that we get a focus event. |
| 1157 ExtensionTestMessageListener next_step_listener("TEST_STEP_PASSED", false); | 1157 ExtensionTestMessageListener next_step_listener("TEST_STEP_PASSED", false); |
| 1158 next_step_listener.set_failure_message("TEST_STEP_FAILED"); | 1158 next_step_listener.set_failure_message("TEST_STEP_FAILED"); |
| 1159 { | 1159 { |
| 1160 content::SimulateMouseClickAt(guest_web_contents(), | 1160 content::SimulateMouseClickAt(guest_web_contents(), |
| 1161 0, | 1161 0, |
| 1162 blink::WebMouseEvent::ButtonLeft, | 1162 blink::WebMouseEvent::Button::Left, |
| 1163 gfx::Point(10, 10)); | 1163 gfx::Point(10, 10)); |
| 1164 EXPECT_TRUE(content::ExecuteScript( | 1164 EXPECT_TRUE(content::ExecuteScript( |
| 1165 embedder_web_contents, | 1165 embedder_web_contents, |
| 1166 "window.runCommand('testFocusRestoredRunNextStep', 1);")); | 1166 "window.runCommand('testFocusRestoredRunNextStep', 1);")); |
| 1167 } | 1167 } |
| 1168 // Wait for the next step to complete. | 1168 // Wait for the next step to complete. |
| 1169 ASSERT_TRUE(next_step_listener.WaitUntilSatisfied()); | 1169 ASSERT_TRUE(next_step_listener.WaitUntilSatisfied()); |
| 1170 | 1170 |
| 1171 // 2) We click on the embedder so the guest's focus goes away and it observes | 1171 // 2) We click on the embedder so the guest's focus goes away and it observes |
| 1172 // a blur event. | 1172 // a blur event. |
| 1173 next_step_listener.Reset(); | 1173 next_step_listener.Reset(); |
| 1174 { | 1174 { |
| 1175 content::SimulateMouseClickAt(embedder_web_contents, | 1175 content::SimulateMouseClickAt(embedder_web_contents, |
| 1176 0, | 1176 0, |
| 1177 blink::WebMouseEvent::ButtonLeft, | 1177 blink::WebMouseEvent::Button::Left, |
| 1178 gfx::Point(200, 20)); | 1178 gfx::Point(200, 20)); |
| 1179 EXPECT_TRUE(content::ExecuteScript( | 1179 EXPECT_TRUE(content::ExecuteScript( |
| 1180 embedder_web_contents, | 1180 embedder_web_contents, |
| 1181 "window.runCommand('testFocusRestoredRunNextStep', 2);")); | 1181 "window.runCommand('testFocusRestoredRunNextStep', 2);")); |
| 1182 } | 1182 } |
| 1183 // Wait for the next step to complete. | 1183 // Wait for the next step to complete. |
| 1184 ASSERT_TRUE(next_step_listener.WaitUntilSatisfied()); | 1184 ASSERT_TRUE(next_step_listener.WaitUntilSatisfied()); |
| 1185 | 1185 |
| 1186 // 3) We click on the guest again to bring back focus directly to the previous | 1186 // 3) We click on the guest again to bring back focus directly to the previous |
| 1187 // input element, then we ensure text_input_type is properly set. | 1187 // input element, then we ensure text_input_type is properly set. |
| 1188 next_step_listener.Reset(); | 1188 next_step_listener.Reset(); |
| 1189 { | 1189 { |
| 1190 content::SimulateMouseClickAt(guest_web_contents(), | 1190 content::SimulateMouseClickAt(guest_web_contents(), |
| 1191 0, | 1191 0, |
| 1192 blink::WebMouseEvent::ButtonLeft, | 1192 blink::WebMouseEvent::Button::Left, |
| 1193 gfx::Point(10, 10)); | 1193 gfx::Point(10, 10)); |
| 1194 EXPECT_TRUE(content::ExecuteScript( | 1194 EXPECT_TRUE(content::ExecuteScript( |
| 1195 embedder_web_contents, | 1195 embedder_web_contents, |
| 1196 "window.runCommand('testFocusRestoredRunNextStep', 3)")); | 1196 "window.runCommand('testFocusRestoredRunNextStep', 3)")); |
| 1197 } | 1197 } |
| 1198 // Wait for the next step to complete. | 1198 // Wait for the next step to complete. |
| 1199 ASSERT_TRUE(next_step_listener.WaitUntilSatisfied()); | 1199 ASSERT_TRUE(next_step_listener.WaitUntilSatisfied()); |
| 1200 | 1200 |
| 1201 // |text_input_client| is not available for mac and android. | 1201 // |text_input_client| is not available for mac and android. |
| 1202 #if !defined(OS_MACOSX) && !defined(OS_ANDROID) | 1202 #if !defined(OS_MACOSX) && !defined(OS_ANDROID) |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1297 SetupTest("web_view/text_selection", | 1297 SetupTest("web_view/text_selection", |
| 1298 "/extensions/platform_apps/web_view/text_selection/guest.html"); | 1298 "/extensions/platform_apps/web_view/text_selection/guest.html"); |
| 1299 ASSERT_TRUE(guest_web_contents()); | 1299 ASSERT_TRUE(guest_web_contents()); |
| 1300 ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( | 1300 ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( |
| 1301 GetPlatformAppWindow())); | 1301 GetPlatformAppWindow())); |
| 1302 | 1302 |
| 1303 // Wait until guest sees a context menu, select an arbitrary item (copy). | 1303 // Wait until guest sees a context menu, select an arbitrary item (copy). |
| 1304 ExtensionTestMessageListener ctx_listener("MSG_CONTEXTMENU", false); | 1304 ExtensionTestMessageListener ctx_listener("MSG_CONTEXTMENU", false); |
| 1305 ContextMenuNotificationObserver menu_observer(IDC_CONTENT_CONTEXT_COPY); | 1305 ContextMenuNotificationObserver menu_observer(IDC_CONTENT_CONTEXT_COPY); |
| 1306 SimulateRWHMouseClick(guest_web_contents()->GetRenderViewHost()->GetWidget(), | 1306 SimulateRWHMouseClick(guest_web_contents()->GetRenderViewHost()->GetWidget(), |
| 1307 blink::WebMouseEvent::ButtonRight, 20, 20); | 1307 blink::WebMouseEvent::Button::Right, 20, 20); |
| 1308 ASSERT_TRUE(ctx_listener.WaitUntilSatisfied()); | 1308 ASSERT_TRUE(ctx_listener.WaitUntilSatisfied()); |
| 1309 | 1309 |
| 1310 // Now verify that the selection text propagates properly to RWHV. | 1310 // Now verify that the selection text propagates properly to RWHV. |
| 1311 content::RenderWidgetHostView* guest_rwhv = | 1311 content::RenderWidgetHostView* guest_rwhv = |
| 1312 guest_web_contents()->GetRenderWidgetHostView(); | 1312 guest_web_contents()->GetRenderWidgetHostView(); |
| 1313 ASSERT_TRUE(guest_rwhv); | 1313 ASSERT_TRUE(guest_rwhv); |
| 1314 std::string selected_text = base::UTF16ToUTF8(guest_rwhv->GetSelectedText()); | 1314 std::string selected_text = base::UTF16ToUTF8(guest_rwhv->GetSelectedText()); |
| 1315 ASSERT_TRUE(selected_text.size() >= 10u); | 1315 ASSERT_TRUE(selected_text.size() >= 10u); |
| 1316 ASSERT_EQ("AAAAAAAAAA", selected_text.substr(0, 10)); | 1316 ASSERT_EQ("AAAAAAAAAA", selected_text.substr(0, 10)); |
| 1317 } | 1317 } |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1387 ASSERT_TRUE(ui_test_utils::SendKeyPressToWindowSync( | 1387 ASSERT_TRUE(ui_test_utils::SendKeyPressToWindowSync( |
| 1388 GetPlatformAppWindow(), ui::VKEY_C, false, false, false, false)); | 1388 GetPlatformAppWindow(), ui::VKEY_C, false, false, false, false)); |
| 1389 | 1389 |
| 1390 next_step_listener.Reset(); | 1390 next_step_listener.Reset(); |
| 1391 EXPECT_TRUE(content::ExecuteScript( | 1391 EXPECT_TRUE(content::ExecuteScript( |
| 1392 embedder_web_contents(), | 1392 embedder_web_contents(), |
| 1393 "window.runCommand('testKeyboardFocusRunNextStep', 'aBc');")); | 1393 "window.runCommand('testKeyboardFocusRunNextStep', 'aBc');")); |
| 1394 | 1394 |
| 1395 ASSERT_TRUE(next_step_listener.WaitUntilSatisfied()); | 1395 ASSERT_TRUE(next_step_listener.WaitUntilSatisfied()); |
| 1396 } | 1396 } |
| OLD | NEW |