| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/site_per_process_browsertest.h" | 5 #include "content/browser/site_per_process_browsertest.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 &success)); | 126 &success)); |
| 127 EXPECT_TRUE(success); | 127 EXPECT_TRUE(success); |
| 128 } | 128 } |
| 129 | 129 |
| 130 // Helper function to generate a click on the given RenderWidgetHost. The | 130 // Helper function to generate a click on the given RenderWidgetHost. The |
| 131 // mouse event is forwarded directly to the RenderWidgetHost without any | 131 // mouse event is forwarded directly to the RenderWidgetHost without any |
| 132 // hit-testing. | 132 // hit-testing. |
| 133 void SimulateMouseClick(RenderWidgetHost* rwh, int x, int y) { | 133 void SimulateMouseClick(RenderWidgetHost* rwh, int x, int y) { |
| 134 blink::WebMouseEvent mouse_event; | 134 blink::WebMouseEvent mouse_event; |
| 135 mouse_event.type = blink::WebInputEvent::MouseDown; | 135 mouse_event.type = blink::WebInputEvent::MouseDown; |
| 136 mouse_event.button = blink::WebPointerProperties::ButtonLeft; | 136 mouse_event.button = blink::WebPointerProperties::Button::Left; |
| 137 mouse_event.x = x; | 137 mouse_event.x = x; |
| 138 mouse_event.y = y; | 138 mouse_event.y = y; |
| 139 rwh->ForwardMouseEvent(mouse_event); | 139 rwh->ForwardMouseEvent(mouse_event); |
| 140 } | 140 } |
| 141 | 141 |
| 142 // Retrieve document.origin for the frame |ftn|. | 142 // Retrieve document.origin for the frame |ftn|. |
| 143 std::string GetDocumentOrigin(FrameTreeNode* ftn) { | 143 std::string GetDocumentOrigin(FrameTreeNode* ftn) { |
| 144 std::string origin; | 144 std::string origin; |
| 145 EXPECT_TRUE(ExecuteScriptAndExtractString( | 145 EXPECT_TRUE(ExecuteScriptAndExtractString( |
| 146 ftn, "domAutomationController.send(document.origin)", &origin)); | 146 ftn, "domAutomationController.send(document.origin)", &origin)); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 RenderWidgetHostViewBase* rwhv_child = static_cast<RenderWidgetHostViewBase*>( | 241 RenderWidgetHostViewBase* rwhv_child = static_cast<RenderWidgetHostViewBase*>( |
| 242 child_node->current_frame_host()->GetRenderWidgetHost()->GetView()); | 242 child_node->current_frame_host()->GetRenderWidgetHost()->GetView()); |
| 243 | 243 |
| 244 SurfaceHitTestReadyNotifier notifier( | 244 SurfaceHitTestReadyNotifier notifier( |
| 245 static_cast<RenderWidgetHostViewChildFrame*>(rwhv_child)); | 245 static_cast<RenderWidgetHostViewChildFrame*>(rwhv_child)); |
| 246 notifier.WaitForSurfaceReady(); | 246 notifier.WaitForSurfaceReady(); |
| 247 | 247 |
| 248 // Target input event to child frame. | 248 // Target input event to child frame. |
| 249 blink::WebMouseEvent child_event; | 249 blink::WebMouseEvent child_event; |
| 250 child_event.type = blink::WebInputEvent::MouseDown; | 250 child_event.type = blink::WebInputEvent::MouseDown; |
| 251 child_event.button = blink::WebPointerProperties::ButtonLeft; | 251 child_event.button = blink::WebPointerProperties::Button::Left; |
| 252 child_event.x = 75; | 252 child_event.x = 75; |
| 253 child_event.y = 75; | 253 child_event.y = 75; |
| 254 child_event.clickCount = 1; | 254 child_event.clickCount = 1; |
| 255 main_frame_monitor.ResetEventReceived(); | 255 main_frame_monitor.ResetEventReceived(); |
| 256 child_frame_monitor.ResetEventReceived(); | 256 child_frame_monitor.ResetEventReceived(); |
| 257 router->RouteMouseEvent(root_view, &child_event); | 257 router->RouteMouseEvent(root_view, &child_event); |
| 258 | 258 |
| 259 EXPECT_TRUE(child_frame_monitor.EventWasReceived()); | 259 EXPECT_TRUE(child_frame_monitor.EventWasReceived()); |
| 260 EXPECT_EQ(23, child_frame_monitor.event().x); | 260 EXPECT_EQ(23, child_frame_monitor.event().x); |
| 261 EXPECT_EQ(23, child_frame_monitor.event().y); | 261 EXPECT_EQ(23, child_frame_monitor.event().y); |
| 262 EXPECT_FALSE(main_frame_monitor.EventWasReceived()); | 262 EXPECT_FALSE(main_frame_monitor.EventWasReceived()); |
| 263 | 263 |
| 264 child_frame_monitor.ResetEventReceived(); | 264 child_frame_monitor.ResetEventReceived(); |
| 265 main_frame_monitor.ResetEventReceived(); | 265 main_frame_monitor.ResetEventReceived(); |
| 266 | 266 |
| 267 // Target input event to main frame. | 267 // Target input event to main frame. |
| 268 blink::WebMouseEvent main_event; | 268 blink::WebMouseEvent main_event; |
| 269 main_event.type = blink::WebInputEvent::MouseDown; | 269 main_event.type = blink::WebInputEvent::MouseDown; |
| 270 main_event.button = blink::WebPointerProperties::ButtonLeft; | 270 main_event.button = blink::WebPointerProperties::Button::Left; |
| 271 main_event.x = 1; | 271 main_event.x = 1; |
| 272 main_event.y = 1; | 272 main_event.y = 1; |
| 273 main_event.clickCount = 1; | 273 main_event.clickCount = 1; |
| 274 // Ladies and gentlemen, THIS is the main_event! | 274 // Ladies and gentlemen, THIS is the main_event! |
| 275 router->RouteMouseEvent(root_view, &main_event); | 275 router->RouteMouseEvent(root_view, &main_event); |
| 276 | 276 |
| 277 EXPECT_FALSE(child_frame_monitor.EventWasReceived()); | 277 EXPECT_FALSE(child_frame_monitor.EventWasReceived()); |
| 278 EXPECT_TRUE(main_frame_monitor.EventWasReceived()); | 278 EXPECT_TRUE(main_frame_monitor.EventWasReceived()); |
| 279 EXPECT_EQ(1, main_frame_monitor.event().x); | 279 EXPECT_EQ(1, main_frame_monitor.event().x); |
| 280 EXPECT_EQ(1, main_frame_monitor.event().y); | 280 EXPECT_EQ(1, main_frame_monitor.event().y); |
| (...skipping 930 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1211 ->GetRenderWidgetHost() | 1211 ->GetRenderWidgetHost() |
| 1212 ->GetView()); | 1212 ->GetView()); |
| 1213 | 1213 |
| 1214 SurfaceHitTestReadyNotifier notifier( | 1214 SurfaceHitTestReadyNotifier notifier( |
| 1215 static_cast<RenderWidgetHostViewChildFrame*>(rwhv_nested)); | 1215 static_cast<RenderWidgetHostViewChildFrame*>(rwhv_nested)); |
| 1216 notifier.WaitForSurfaceReady(); | 1216 notifier.WaitForSurfaceReady(); |
| 1217 | 1217 |
| 1218 // Target input event to nested frame. | 1218 // Target input event to nested frame. |
| 1219 blink::WebMouseEvent nested_event; | 1219 blink::WebMouseEvent nested_event; |
| 1220 nested_event.type = blink::WebInputEvent::MouseDown; | 1220 nested_event.type = blink::WebInputEvent::MouseDown; |
| 1221 nested_event.button = blink::WebPointerProperties::ButtonLeft; | 1221 nested_event.button = blink::WebPointerProperties::Button::Left; |
| 1222 nested_event.x = 125; | 1222 nested_event.x = 125; |
| 1223 nested_event.y = 125; | 1223 nested_event.y = 125; |
| 1224 nested_event.clickCount = 1; | 1224 nested_event.clickCount = 1; |
| 1225 nested_frame_monitor.ResetEventReceived(); | 1225 nested_frame_monitor.ResetEventReceived(); |
| 1226 main_frame_monitor.ResetEventReceived(); | 1226 main_frame_monitor.ResetEventReceived(); |
| 1227 router->RouteMouseEvent(root_view, &nested_event); | 1227 router->RouteMouseEvent(root_view, &nested_event); |
| 1228 | 1228 |
| 1229 EXPECT_TRUE(nested_frame_monitor.EventWasReceived()); | 1229 EXPECT_TRUE(nested_frame_monitor.EventWasReceived()); |
| 1230 EXPECT_EQ(21, nested_frame_monitor.event().x); | 1230 EXPECT_EQ(21, nested_frame_monitor.event().x); |
| 1231 EXPECT_EQ(21, nested_frame_monitor.event().y); | 1231 EXPECT_EQ(21, nested_frame_monitor.event().y); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1276 RenderWidgetHostViewBase* rwhv_child = static_cast<RenderWidgetHostViewBase*>( | 1276 RenderWidgetHostViewBase* rwhv_child = static_cast<RenderWidgetHostViewBase*>( |
| 1277 child_node->current_frame_host()->GetRenderWidgetHost()->GetView()); | 1277 child_node->current_frame_host()->GetRenderWidgetHost()->GetView()); |
| 1278 | 1278 |
| 1279 SurfaceHitTestReadyNotifier notifier( | 1279 SurfaceHitTestReadyNotifier notifier( |
| 1280 static_cast<RenderWidgetHostViewChildFrame*>(rwhv_child)); | 1280 static_cast<RenderWidgetHostViewChildFrame*>(rwhv_child)); |
| 1281 notifier.WaitForSurfaceReady(); | 1281 notifier.WaitForSurfaceReady(); |
| 1282 | 1282 |
| 1283 // Target input event to child frame. | 1283 // Target input event to child frame. |
| 1284 blink::WebMouseEvent child_event; | 1284 blink::WebMouseEvent child_event; |
| 1285 child_event.type = blink::WebInputEvent::MouseDown; | 1285 child_event.type = blink::WebInputEvent::MouseDown; |
| 1286 child_event.button = blink::WebPointerProperties::ButtonLeft; | 1286 child_event.button = blink::WebPointerProperties::Button::Left; |
| 1287 child_event.x = 75; | 1287 child_event.x = 75; |
| 1288 child_event.y = 75; | 1288 child_event.y = 75; |
| 1289 child_event.clickCount = 1; | 1289 child_event.clickCount = 1; |
| 1290 main_frame_monitor.ResetEventReceived(); | 1290 main_frame_monitor.ResetEventReceived(); |
| 1291 child_frame_monitor.ResetEventReceived(); | 1291 child_frame_monitor.ResetEventReceived(); |
| 1292 router->RouteMouseEvent(root_view, &child_event); | 1292 router->RouteMouseEvent(root_view, &child_event); |
| 1293 | 1293 |
| 1294 EXPECT_TRUE(main_frame_monitor.EventWasReceived()); | 1294 EXPECT_TRUE(main_frame_monitor.EventWasReceived()); |
| 1295 EXPECT_EQ(75, main_frame_monitor.event().x); | 1295 EXPECT_EQ(75, main_frame_monitor.event().x); |
| 1296 EXPECT_EQ(75, main_frame_monitor.event().y); | 1296 EXPECT_EQ(75, main_frame_monitor.event().y); |
| (...skipping 4077 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5374 | 5374 |
| 5375 RenderWidgetHostInputEventRouter* router = | 5375 RenderWidgetHostInputEventRouter* router = |
| 5376 static_cast<WebContentsImpl*>(shell->web_contents()) | 5376 static_cast<WebContentsImpl*>(shell->web_contents()) |
| 5377 ->GetInputEventRouter(); | 5377 ->GetInputEventRouter(); |
| 5378 | 5378 |
| 5379 gfx::Point point(75, 75); | 5379 gfx::Point point(75, 75); |
| 5380 | 5380 |
| 5381 // Target right-click event to child frame. | 5381 // Target right-click event to child frame. |
| 5382 blink::WebMouseEvent click_event; | 5382 blink::WebMouseEvent click_event; |
| 5383 click_event.type = blink::WebInputEvent::MouseDown; | 5383 click_event.type = blink::WebInputEvent::MouseDown; |
| 5384 click_event.button = blink::WebPointerProperties::ButtonRight; | 5384 click_event.button = blink::WebPointerProperties::Button::Right; |
| 5385 click_event.x = point.x(); | 5385 click_event.x = point.x(); |
| 5386 click_event.y = point.y(); | 5386 click_event.y = point.y(); |
| 5387 click_event.clickCount = 1; | 5387 click_event.clickCount = 1; |
| 5388 router->RouteMouseEvent(root_view, &click_event); | 5388 router->RouteMouseEvent(root_view, &click_event); |
| 5389 | 5389 |
| 5390 // We also need a MouseUp event, needed by Windows. | 5390 // We also need a MouseUp event, needed by Windows. |
| 5391 click_event.type = blink::WebInputEvent::MouseUp; | 5391 click_event.type = blink::WebInputEvent::MouseUp; |
| 5392 click_event.x = point.x(); | 5392 click_event.x = point.x(); |
| 5393 click_event.y = point.y(); | 5393 click_event.y = point.y(); |
| 5394 router->RouteMouseEvent(root_view, &click_event); | 5394 router->RouteMouseEvent(root_view, &click_event); |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5529 | 5529 |
| 5530 EXPECT_NE(shell()->web_contents()->GetSiteInstance(), | 5530 EXPECT_NE(shell()->web_contents()->GetSiteInstance(), |
| 5531 child_node->current_frame_host()->GetSiteInstance()); | 5531 child_node->current_frame_host()->GetSiteInstance()); |
| 5532 | 5532 |
| 5533 scoped_refptr<ShowWidgetMessageFilter> filter = new ShowWidgetMessageFilter(); | 5533 scoped_refptr<ShowWidgetMessageFilter> filter = new ShowWidgetMessageFilter(); |
| 5534 child_node->current_frame_host()->GetProcess()->AddFilter(filter.get()); | 5534 child_node->current_frame_host()->GetProcess()->AddFilter(filter.get()); |
| 5535 | 5535 |
| 5536 // Target left-click event to child frame. | 5536 // Target left-click event to child frame. |
| 5537 blink::WebMouseEvent click_event; | 5537 blink::WebMouseEvent click_event; |
| 5538 click_event.type = blink::WebInputEvent::MouseDown; | 5538 click_event.type = blink::WebInputEvent::MouseDown; |
| 5539 click_event.button = blink::WebPointerProperties::ButtonLeft; | 5539 click_event.button = blink::WebPointerProperties::Button::Left; |
| 5540 click_event.x = 15; | 5540 click_event.x = 15; |
| 5541 click_event.y = 15; | 5541 click_event.y = 15; |
| 5542 click_event.clickCount = 1; | 5542 click_event.clickCount = 1; |
| 5543 rwhv_child->ProcessMouseEvent(click_event, ui::LatencyInfo()); | 5543 rwhv_child->ProcessMouseEvent(click_event, ui::LatencyInfo()); |
| 5544 | 5544 |
| 5545 // Dismiss the popup. | 5545 // Dismiss the popup. |
| 5546 click_event.x = 1; | 5546 click_event.x = 1; |
| 5547 click_event.y = 1; | 5547 click_event.y = 1; |
| 5548 rwhv_child->ProcessMouseEvent(click_event, ui::LatencyInfo()); | 5548 rwhv_child->ProcessMouseEvent(click_event, ui::LatencyInfo()); |
| 5549 | 5549 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5604 | 5604 |
| 5605 EXPECT_NE(shell()->web_contents()->GetSiteInstance(), | 5605 EXPECT_NE(shell()->web_contents()->GetSiteInstance(), |
| 5606 c_node->current_frame_host()->GetSiteInstance()); | 5606 c_node->current_frame_host()->GetSiteInstance()); |
| 5607 | 5607 |
| 5608 scoped_refptr<ShowWidgetMessageFilter> filter = new ShowWidgetMessageFilter(); | 5608 scoped_refptr<ShowWidgetMessageFilter> filter = new ShowWidgetMessageFilter(); |
| 5609 c_node->current_frame_host()->GetProcess()->AddFilter(filter.get()); | 5609 c_node->current_frame_host()->GetProcess()->AddFilter(filter.get()); |
| 5610 | 5610 |
| 5611 // Target left-click event to child frame. | 5611 // Target left-click event to child frame. |
| 5612 blink::WebMouseEvent click_event; | 5612 blink::WebMouseEvent click_event; |
| 5613 click_event.type = blink::WebInputEvent::MouseDown; | 5613 click_event.type = blink::WebInputEvent::MouseDown; |
| 5614 click_event.button = blink::WebPointerProperties::ButtonLeft; | 5614 click_event.button = blink::WebPointerProperties::Button::Left; |
| 5615 click_event.x = 15; | 5615 click_event.x = 15; |
| 5616 click_event.y = 15; | 5616 click_event.y = 15; |
| 5617 click_event.clickCount = 1; | 5617 click_event.clickCount = 1; |
| 5618 rwhv_c_node->ProcessMouseEvent(click_event, ui::LatencyInfo()); | 5618 rwhv_c_node->ProcessMouseEvent(click_event, ui::LatencyInfo()); |
| 5619 | 5619 |
| 5620 // Prompt the WebContents to dismiss the popup by clicking elsewhere. | 5620 // Prompt the WebContents to dismiss the popup by clicking elsewhere. |
| 5621 click_event.x = 1; | 5621 click_event.x = 1; |
| 5622 click_event.y = 1; | 5622 click_event.y = 1; |
| 5623 rwhv_c_node->ProcessMouseEvent(click_event, ui::LatencyInfo()); | 5623 rwhv_c_node->ProcessMouseEvent(click_event, ui::LatencyInfo()); |
| 5624 | 5624 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 5654 while (last_b_node_bounds_rect.x() == | 5654 while (last_b_node_bounds_rect.x() == |
| 5655 b_node->current_frame_host()->GetView()->GetViewBounds().x() && | 5655 b_node->current_frame_host()->GetView()->GetViewBounds().x() && |
| 5656 last_b_node_bounds_rect.y() == | 5656 last_b_node_bounds_rect.y() == |
| 5657 b_node->current_frame_host()->GetView()->GetViewBounds().y()) { | 5657 b_node->current_frame_host()->GetView()->GetViewBounds().y()) { |
| 5658 base::RunLoop run_loop; | 5658 base::RunLoop run_loop; |
| 5659 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 5659 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
| 5660 FROM_HERE, run_loop.QuitClosure(), TestTimeouts::tiny_timeout()); | 5660 FROM_HERE, run_loop.QuitClosure(), TestTimeouts::tiny_timeout()); |
| 5661 run_loop.Run(); | 5661 run_loop.Run(); |
| 5662 } | 5662 } |
| 5663 | 5663 |
| 5664 click_event.button = blink::WebPointerProperties::ButtonLeft; | 5664 click_event.button = blink::WebPointerProperties::Button::Left; |
| 5665 click_event.x = 15; | 5665 click_event.x = 15; |
| 5666 click_event.y = 15; | 5666 click_event.y = 15; |
| 5667 click_event.clickCount = 1; | 5667 click_event.clickCount = 1; |
| 5668 rwhv_c_node->ProcessMouseEvent(click_event, ui::LatencyInfo()); | 5668 rwhv_c_node->ProcessMouseEvent(click_event, ui::LatencyInfo()); |
| 5669 | 5669 |
| 5670 click_event.x = 1; | 5670 click_event.x = 1; |
| 5671 click_event.y = 1; | 5671 click_event.y = 1; |
| 5672 rwhv_c_node->ProcessMouseEvent(click_event, ui::LatencyInfo()); | 5672 rwhv_c_node->ProcessMouseEvent(click_event, ui::LatencyInfo()); |
| 5673 | 5673 |
| 5674 filter->Wait(); | 5674 filter->Wait(); |
| (...skipping 2081 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7756 // https://crbug.com/627893, recreating the opener RenderView was hitting a | 7756 // https://crbug.com/627893, recreating the opener RenderView was hitting a |
| 7757 // CHECK(params.swapped_out) in the renderer process, since its | 7757 // CHECK(params.swapped_out) in the renderer process, since its |
| 7758 // RenderViewHost was brought into an active state by the navigation to | 7758 // RenderViewHost was brought into an active state by the navigation to |
| 7759 // |stall_url| above, even though it never committed. | 7759 // |stall_url| above, even though it never committed. |
| 7760 GURL b_url(embedded_test_server()->GetURL("b.com", "/title3.html")); | 7760 GURL b_url(embedded_test_server()->GetURL("b.com", "/title3.html")); |
| 7761 EXPECT_TRUE(NavigateToURL(popup_shell, b_url)); | 7761 EXPECT_TRUE(NavigateToURL(popup_shell, b_url)); |
| 7762 EXPECT_FALSE(rvh->is_active()); | 7762 EXPECT_FALSE(rvh->is_active()); |
| 7763 } | 7763 } |
| 7764 | 7764 |
| 7765 } // namespace content | 7765 } // namespace content |
| OLD | NEW |