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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 #include "net/dns/mock_host_resolver.h" | 58 #include "net/dns/mock_host_resolver.h" |
59 #include "net/test/embedded_test_server/embedded_test_server.h" | 59 #include "net/test/embedded_test_server/embedded_test_server.h" |
60 #include "testing/gtest/include/gtest/gtest.h" | 60 #include "testing/gtest/include/gtest/gtest.h" |
61 #include "third_party/WebKit/public/platform/WebInsecureRequestPolicy.h" | 61 #include "third_party/WebKit/public/platform/WebInsecureRequestPolicy.h" |
62 #include "third_party/WebKit/public/web/WebInputEvent.h" | 62 #include "third_party/WebKit/public/web/WebInputEvent.h" |
63 #include "third_party/WebKit/public/web/WebSandboxFlags.h" | 63 #include "third_party/WebKit/public/web/WebSandboxFlags.h" |
64 #include "ui/display/display_switches.h" | 64 #include "ui/display/display_switches.h" |
65 #include "ui/display/screen.h" | 65 #include "ui/display/screen.h" |
66 #include "ui/events/event.h" | 66 #include "ui/events/event.h" |
67 #include "ui/events/event_utils.h" | 67 #include "ui/events/event_utils.h" |
| 68 #include "ui/events/latency_info.h" |
68 #include "ui/gfx/geometry/point.h" | 69 #include "ui/gfx/geometry/point.h" |
69 | 70 |
70 #if defined(USE_AURA) | 71 #if defined(USE_AURA) |
71 #include "content/browser/renderer_host/render_widget_host_view_aura.h" | 72 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
72 #endif | 73 #endif |
73 | 74 |
74 #if defined(OS_MACOSX) | 75 #if defined(OS_MACOSX) |
75 #include "ui/base/test/scoped_preferred_scroller_style_mac.h" | 76 #include "ui/base/test/scoped_preferred_scroller_style_mac.h" |
76 #endif | 77 #endif |
77 | 78 |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 | 250 |
250 // Target input event to child frame. | 251 // Target input event to child frame. |
251 blink::WebMouseEvent child_event; | 252 blink::WebMouseEvent child_event; |
252 child_event.type = blink::WebInputEvent::MouseDown; | 253 child_event.type = blink::WebInputEvent::MouseDown; |
253 child_event.button = blink::WebPointerProperties::Button::Left; | 254 child_event.button = blink::WebPointerProperties::Button::Left; |
254 child_event.x = 75; | 255 child_event.x = 75; |
255 child_event.y = 75; | 256 child_event.y = 75; |
256 child_event.clickCount = 1; | 257 child_event.clickCount = 1; |
257 main_frame_monitor.ResetEventReceived(); | 258 main_frame_monitor.ResetEventReceived(); |
258 child_frame_monitor.ResetEventReceived(); | 259 child_frame_monitor.ResetEventReceived(); |
259 router->RouteMouseEvent(root_view, &child_event); | 260 router->RouteMouseEvent(root_view, &child_event, ui::LatencyInfo()); |
260 | 261 |
261 EXPECT_TRUE(child_frame_monitor.EventWasReceived()); | 262 EXPECT_TRUE(child_frame_monitor.EventWasReceived()); |
262 EXPECT_EQ(23, child_frame_monitor.event().x); | 263 EXPECT_EQ(23, child_frame_monitor.event().x); |
263 EXPECT_EQ(23, child_frame_monitor.event().y); | 264 EXPECT_EQ(23, child_frame_monitor.event().y); |
264 EXPECT_FALSE(main_frame_monitor.EventWasReceived()); | 265 EXPECT_FALSE(main_frame_monitor.EventWasReceived()); |
265 | 266 |
266 child_frame_monitor.ResetEventReceived(); | 267 child_frame_monitor.ResetEventReceived(); |
267 main_frame_monitor.ResetEventReceived(); | 268 main_frame_monitor.ResetEventReceived(); |
268 | 269 |
269 // Target input event to main frame. | 270 // Target input event to main frame. |
270 blink::WebMouseEvent main_event; | 271 blink::WebMouseEvent main_event; |
271 main_event.type = blink::WebInputEvent::MouseDown; | 272 main_event.type = blink::WebInputEvent::MouseDown; |
272 main_event.button = blink::WebPointerProperties::Button::Left; | 273 main_event.button = blink::WebPointerProperties::Button::Left; |
273 main_event.x = 1; | 274 main_event.x = 1; |
274 main_event.y = 1; | 275 main_event.y = 1; |
275 main_event.clickCount = 1; | 276 main_event.clickCount = 1; |
276 // Ladies and gentlemen, THIS is the main_event! | 277 // Ladies and gentlemen, THIS is the main_event! |
277 router->RouteMouseEvent(root_view, &main_event); | 278 router->RouteMouseEvent(root_view, &main_event, ui::LatencyInfo()); |
278 | 279 |
279 EXPECT_FALSE(child_frame_monitor.EventWasReceived()); | 280 EXPECT_FALSE(child_frame_monitor.EventWasReceived()); |
280 EXPECT_TRUE(main_frame_monitor.EventWasReceived()); | 281 EXPECT_TRUE(main_frame_monitor.EventWasReceived()); |
281 EXPECT_EQ(1, main_frame_monitor.event().x); | 282 EXPECT_EQ(1, main_frame_monitor.event().x); |
282 EXPECT_EQ(1, main_frame_monitor.event().y); | 283 EXPECT_EQ(1, main_frame_monitor.event().y); |
283 } | 284 } |
284 | 285 |
285 class RedirectNotificationObserver : public NotificationObserver { | 286 class RedirectNotificationObserver : public NotificationObserver { |
286 public: | 287 public: |
287 // Register to listen for notifications of the given type from either a | 288 // Register to listen for notifications of the given type from either a |
(...skipping 958 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1246 | 1247 |
1247 // Target input event to nested frame. | 1248 // Target input event to nested frame. |
1248 blink::WebMouseEvent nested_event; | 1249 blink::WebMouseEvent nested_event; |
1249 nested_event.type = blink::WebInputEvent::MouseDown; | 1250 nested_event.type = blink::WebInputEvent::MouseDown; |
1250 nested_event.button = blink::WebPointerProperties::Button::Left; | 1251 nested_event.button = blink::WebPointerProperties::Button::Left; |
1251 nested_event.x = 125; | 1252 nested_event.x = 125; |
1252 nested_event.y = 125; | 1253 nested_event.y = 125; |
1253 nested_event.clickCount = 1; | 1254 nested_event.clickCount = 1; |
1254 nested_frame_monitor.ResetEventReceived(); | 1255 nested_frame_monitor.ResetEventReceived(); |
1255 main_frame_monitor.ResetEventReceived(); | 1256 main_frame_monitor.ResetEventReceived(); |
1256 router->RouteMouseEvent(root_view, &nested_event); | 1257 router->RouteMouseEvent(root_view, &nested_event, ui::LatencyInfo()); |
1257 | 1258 |
1258 EXPECT_TRUE(nested_frame_monitor.EventWasReceived()); | 1259 EXPECT_TRUE(nested_frame_monitor.EventWasReceived()); |
1259 EXPECT_EQ(21, nested_frame_monitor.event().x); | 1260 EXPECT_EQ(21, nested_frame_monitor.event().x); |
1260 EXPECT_EQ(21, nested_frame_monitor.event().y); | 1261 EXPECT_EQ(21, nested_frame_monitor.event().y); |
1261 EXPECT_FALSE(main_frame_monitor.EventWasReceived()); | 1262 EXPECT_FALSE(main_frame_monitor.EventWasReceived()); |
1262 } | 1263 } |
1263 | 1264 |
1264 // This test tests that browser process hittesting ignores frames with | 1265 // This test tests that browser process hittesting ignores frames with |
1265 // pointer-events: none. | 1266 // pointer-events: none. |
1266 #if defined(OS_ANDROID) | 1267 #if defined(OS_ANDROID) |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1311 | 1312 |
1312 // Target input event to child frame. | 1313 // Target input event to child frame. |
1313 blink::WebMouseEvent child_event; | 1314 blink::WebMouseEvent child_event; |
1314 child_event.type = blink::WebInputEvent::MouseDown; | 1315 child_event.type = blink::WebInputEvent::MouseDown; |
1315 child_event.button = blink::WebPointerProperties::Button::Left; | 1316 child_event.button = blink::WebPointerProperties::Button::Left; |
1316 child_event.x = 75; | 1317 child_event.x = 75; |
1317 child_event.y = 75; | 1318 child_event.y = 75; |
1318 child_event.clickCount = 1; | 1319 child_event.clickCount = 1; |
1319 main_frame_monitor.ResetEventReceived(); | 1320 main_frame_monitor.ResetEventReceived(); |
1320 child_frame_monitor.ResetEventReceived(); | 1321 child_frame_monitor.ResetEventReceived(); |
1321 router->RouteMouseEvent(root_view, &child_event); | 1322 router->RouteMouseEvent(root_view, &child_event, ui::LatencyInfo()); |
1322 | 1323 |
1323 EXPECT_TRUE(main_frame_monitor.EventWasReceived()); | 1324 EXPECT_TRUE(main_frame_monitor.EventWasReceived()); |
1324 EXPECT_EQ(75, main_frame_monitor.event().x); | 1325 EXPECT_EQ(75, main_frame_monitor.event().x); |
1325 EXPECT_EQ(75, main_frame_monitor.event().y); | 1326 EXPECT_EQ(75, main_frame_monitor.event().y); |
1326 EXPECT_FALSE(child_frame_monitor.EventWasReceived()); | 1327 EXPECT_FALSE(child_frame_monitor.EventWasReceived()); |
1327 } | 1328 } |
1328 | 1329 |
1329 // Tests OOPIF rendering by checking that the RWH of the iframe generates | 1330 // Tests OOPIF rendering by checking that the RWH of the iframe generates |
1330 // OnSwapCompositorFrame message. | 1331 // OnSwapCompositorFrame message. |
1331 #if defined(OS_ANDROID) | 1332 #if defined(OS_ANDROID) |
(...skipping 3549 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4881 // Send a MouseMove to the subframe. The frame contains text, and moving the | 4882 // Send a MouseMove to the subframe. The frame contains text, and moving the |
4882 // mouse over it should cause the renderer to send a mouse cursor update. | 4883 // mouse over it should cause the renderer to send a mouse cursor update. |
4883 blink::WebMouseEvent mouse_event; | 4884 blink::WebMouseEvent mouse_event; |
4884 mouse_event.type = blink::WebInputEvent::MouseMove; | 4885 mouse_event.type = blink::WebInputEvent::MouseMove; |
4885 mouse_event.x = 60; | 4886 mouse_event.x = 60; |
4886 mouse_event.y = 60; | 4887 mouse_event.y = 60; |
4887 RenderWidgetHost* rwh_child = | 4888 RenderWidgetHost* rwh_child = |
4888 root->child_at(0)->current_frame_host()->GetRenderWidgetHost(); | 4889 root->child_at(0)->current_frame_host()->GetRenderWidgetHost(); |
4889 RenderWidgetHostViewBase* root_view = static_cast<RenderWidgetHostViewBase*>( | 4890 RenderWidgetHostViewBase* root_view = static_cast<RenderWidgetHostViewBase*>( |
4890 root->current_frame_host()->GetRenderWidgetHost()->GetView()); | 4891 root->current_frame_host()->GetRenderWidgetHost()->GetView()); |
4891 web_contents()->GetInputEventRouter()->RouteMouseEvent(root_view, | 4892 web_contents()->GetInputEventRouter()->RouteMouseEvent( |
4892 &mouse_event); | 4893 root_view, &mouse_event, ui::LatencyInfo()); |
4893 | 4894 |
4894 // CursorMessageFilter::Wait() implicitly tests whether we receive a | 4895 // CursorMessageFilter::Wait() implicitly tests whether we receive a |
4895 // ViewHostMsg_SetCursor message from the renderer process, because it does | 4896 // ViewHostMsg_SetCursor message from the renderer process, because it does |
4896 // does not return otherwise. | 4897 // does not return otherwise. |
4897 filter->Wait(); | 4898 filter->Wait(); |
4898 EXPECT_EQ(filter->last_set_cursor_routing_id(), rwh_child->GetRoutingID()); | 4899 EXPECT_EQ(filter->last_set_cursor_routing_id(), rwh_child->GetRoutingID()); |
4899 } | 4900 } |
4900 #endif | 4901 #endif |
4901 | 4902 |
4902 // Tests that we are using the correct RenderFrameProxy when navigating an | 4903 // Tests that we are using the correct RenderFrameProxy when navigating an |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5407 | 5408 |
5408 gfx::Point point(75, 75); | 5409 gfx::Point point(75, 75); |
5409 | 5410 |
5410 // Target right-click event to child frame. | 5411 // Target right-click event to child frame. |
5411 blink::WebMouseEvent click_event; | 5412 blink::WebMouseEvent click_event; |
5412 click_event.type = blink::WebInputEvent::MouseDown; | 5413 click_event.type = blink::WebInputEvent::MouseDown; |
5413 click_event.button = blink::WebPointerProperties::Button::Right; | 5414 click_event.button = blink::WebPointerProperties::Button::Right; |
5414 click_event.x = point.x(); | 5415 click_event.x = point.x(); |
5415 click_event.y = point.y(); | 5416 click_event.y = point.y(); |
5416 click_event.clickCount = 1; | 5417 click_event.clickCount = 1; |
5417 router->RouteMouseEvent(root_view, &click_event); | 5418 router->RouteMouseEvent(root_view, &click_event, ui::LatencyInfo()); |
5418 | 5419 |
5419 // We also need a MouseUp event, needed by Windows. | 5420 // We also need a MouseUp event, needed by Windows. |
5420 click_event.type = blink::WebInputEvent::MouseUp; | 5421 click_event.type = blink::WebInputEvent::MouseUp; |
5421 click_event.x = point.x(); | 5422 click_event.x = point.x(); |
5422 click_event.y = point.y(); | 5423 click_event.y = point.y(); |
5423 router->RouteMouseEvent(root_view, &click_event); | 5424 router->RouteMouseEvent(root_view, &click_event, ui::LatencyInfo()); |
5424 | 5425 |
5425 context_menu_delegate.Wait(); | 5426 context_menu_delegate.Wait(); |
5426 | 5427 |
5427 ContextMenuParams params = context_menu_delegate.getParams(); | 5428 ContextMenuParams params = context_menu_delegate.getParams(); |
5428 | 5429 |
5429 EXPECT_EQ(point.x(), params.x); | 5430 EXPECT_EQ(point.x(), params.x); |
5430 EXPECT_EQ(point.y(), params.y); | 5431 EXPECT_EQ(point.y(), params.y); |
5431 } | 5432 } |
5432 | 5433 |
5433 // Test that a mouse right-click to an out-of-process iframe causes a context | 5434 // Test that a mouse right-click to an out-of-process iframe causes a context |
(...skipping 2561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7995 child_rfh->OnDispatchLoad(); | 7996 child_rfh->OnDispatchLoad(); |
7996 | 7997 |
7997 // In the bug, OnDispatchLoad killed the b.com renderer. Ensure that this is | 7998 // In the bug, OnDispatchLoad killed the b.com renderer. Ensure that this is |
7998 // not the case. Note that the process kill doesn't happen immediately, so | 7999 // not the case. Note that the process kill doesn't happen immediately, so |
7999 // IsRenderFrameLive() can't be checked here (yet). Instead, check that | 8000 // IsRenderFrameLive() can't be checked here (yet). Instead, check that |
8000 // JavaScript can still execute in b.com using the popup. | 8001 // JavaScript can still execute in b.com using the popup. |
8001 EXPECT_TRUE(ExecuteScript(popup_shell->web_contents(), "true")); | 8002 EXPECT_TRUE(ExecuteScript(popup_shell->web_contents(), "true")); |
8002 } | 8003 } |
8003 | 8004 |
8004 } // namespace content | 8005 } // namespace content |
OLD | NEW |