| Index: content/browser/site_per_process_browsertest.cc
|
| diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
|
| index 1540a4ff8348a234d2b295a8903c399303669369..dadfadfe816da806aff45e8844aa067de69afaae 100644
|
| --- a/content/browser/site_per_process_browsertest.cc
|
| +++ b/content/browser/site_per_process_browsertest.cc
|
| @@ -235,6 +235,25 @@ class TestInputEventObserver : public RenderWidgetHost::InputEventObserver {
|
| DISALLOW_COPY_AND_ASSIGN(TestInputEventObserver);
|
| };
|
|
|
| +double GetFrameDeviceScaleFactor(const ToRenderFrameHost& adapter) {
|
| + double device_scale_factor;
|
| + const char kGetFrameDeviceScaleFactor[] =
|
| + "window.domAutomationController.send(window.devicePixelRatio);";
|
| + EXPECT_TRUE(ExecuteScriptAndExtractDouble(adapter, kGetFrameDeviceScaleFactor,
|
| + &device_scale_factor));
|
| + return device_scale_factor;
|
| +}
|
| +
|
| +// This method returns the scale factor on Android and 1.0 on other
|
| +// platforms in order to adjust coordinates appropriately.
|
| +double GetAdjustmentScaleFactorForAndroid(Shell* shell) {
|
| +#if defined(OS_ANDROID)
|
| + return GetFrameDeviceScaleFactor(shell->web_contents());
|
| +#else
|
| + return 1.0;
|
| +#endif
|
| +}
|
| +
|
| // Helper function that performs a surface hittest.
|
| void SurfaceHitTestTestHelper(
|
| Shell* shell,
|
| @@ -274,21 +293,40 @@ void SurfaceHitTestTestHelper(
|
| static_cast<RenderWidgetHostViewChildFrame*>(rwhv_child));
|
| notifier.WaitForSurfaceReady();
|
|
|
| + float scale_factor = GetAdjustmentScaleFactorForAndroid(shell);
|
| +
|
| + // Get the view bounds of the child iframe, which should account for the
|
| + // relative offset of its direct parent within the root frame, for use in
|
| + // targeting the input event.
|
| + gfx::Rect bounds = rwhv_child->GetViewBounds();
|
| +
|
| // Target input event to child frame.
|
| blink::WebMouseEvent child_event(blink::WebInputEvent::MouseDown,
|
| blink::WebInputEvent::NoModifiers,
|
| blink::WebInputEvent::TimeStampForTesting);
|
| child_event.button = blink::WebPointerProperties::Button::Left;
|
| - child_event.x = 75;
|
| - child_event.y = 75;
|
| + child_event.x =
|
| + gfx::ToCeiledInt((bounds.x() - root_view->GetViewBounds().x()) /
|
| + scale_factor) +
|
| + 3;
|
| + child_event.y =
|
| + gfx::ToCeiledInt((bounds.y() - root_view->GetViewBounds().y()) /
|
| + scale_factor) +
|
| + 3;
|
| child_event.clickCount = 1;
|
| main_frame_monitor.ResetEventReceived();
|
| child_frame_monitor.ResetEventReceived();
|
| router->RouteMouseEvent(root_view, &child_event, ui::LatencyInfo());
|
|
|
| EXPECT_TRUE(child_frame_monitor.EventWasReceived());
|
| - EXPECT_EQ(23, child_frame_monitor.event().x);
|
| - EXPECT_EQ(23, child_frame_monitor.event().y);
|
| + // The expected result coordinates are (3, 3), but can get slightly
|
| + // different results due to rounding error with some device scale factors.
|
| + EXPECT_TRUE(child_frame_monitor.event().x <= 5 &&
|
| + child_frame_monitor.event().x >= 1)
|
| + << " actual event.x: " << child_frame_monitor.event().x;
|
| + EXPECT_TRUE(child_frame_monitor.event().y <= 5 &&
|
| + child_frame_monitor.event().y >= 1)
|
| + << " actual event.y: " << child_frame_monitor.event().y;
|
| EXPECT_FALSE(main_frame_monitor.EventWasReceived());
|
|
|
| child_frame_monitor.ResetEventReceived();
|
| @@ -706,15 +744,6 @@ bool operator==(const ParsedFeaturePolicyDeclaration& first,
|
| second.origins);
|
| }
|
|
|
| -double GetFrameDeviceScaleFactor(const ToRenderFrameHost& adapter) {
|
| - double device_scale_factor;
|
| - const char kGetFrameDeviceScaleFactor[] =
|
| - "window.domAutomationController.send(window.devicePixelRatio);";
|
| - EXPECT_TRUE(ExecuteScriptAndExtractDouble(adapter, kGetFrameDeviceScaleFactor,
|
| - &device_scale_factor));
|
| - return device_scale_factor;
|
| -}
|
| -
|
| IN_PROC_BROWSER_TEST_F(SitePerProcessHighDPIBrowserTest,
|
| SubframeLoadsWithCorrectDeviceScaleFactor) {
|
| GURL main_url(embedded_test_server()->GetURL(
|
| @@ -965,15 +994,7 @@ class FrameRectChangedMessageFilter : public content::BrowserMessageFilter {
|
| // Test that the view bounds for an out-of-process iframe are set and updated
|
| // correctly, including accounting for local frame offsets in the parent and
|
| // scroll positions.
|
| -#if defined(OS_ANDROID)
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| -#define MAYBE_ViewBoundsInNestedFrameTest DISABLED_ViewBoundsInNestedFrameTest
|
| -#else
|
| -#define MAYBE_ViewBoundsInNestedFrameTest ViewBoundsInNestedFrameTest
|
| -#endif
|
| -IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| - MAYBE_ViewBoundsInNestedFrameTest) {
|
| +IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, ViewBoundsInNestedFrameTest) {
|
| GURL main_url(embedded_test_server()->GetURL(
|
| "a.com", "/cross_site_iframe_factory.html?a(a)"));
|
| EXPECT_TRUE(NavigateToURL(shell(), main_url));
|
| @@ -1010,11 +1031,26 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| static_cast<RenderWidgetHostViewChildFrame*>(rwhv_nested));
|
| notifier.WaitForSurfaceReady();
|
|
|
| +#if defined(OS_ANDROID)
|
| + // Android browser tests have some differences that affect the results. One
|
| + // is viewport dimensions, the other is that it handles scale factor
|
| + // differently.
|
| + int expected_x = 487;
|
| +#else
|
| + int expected_x = 397;
|
| +#endif
|
| + int expected_y = 112;
|
| + float scale_factor = GetAdjustmentScaleFactorForAndroid(shell());
|
| +
|
| // Verify the view bounds of the nested iframe, which should account for the
|
| // relative offset of its direct parent within the root frame.
|
| gfx::Rect bounds = rwhv_nested->GetViewBounds();
|
| - EXPECT_EQ(bounds.x() - rwhv_root->GetViewBounds().x(), 397);
|
| - EXPECT_EQ(bounds.y() - rwhv_root->GetViewBounds().y(), 112);
|
| + int diff_x = bounds.x() - rwhv_root->GetViewBounds().x() - expected_x;
|
| + int diff_y = bounds.y() - rwhv_root->GetViewBounds().y() - expected_y;
|
| + // diff_x and diff_y should usually be zero, but can get slightly different
|
| + // results due to rounding error with some device scale factors.
|
| + EXPECT_TRUE(diff_x <= 2 && diff_x >= -2) << " actual diff_x: " << diff_x;
|
| + EXPECT_TRUE(diff_y <= 2 && diff_y >= -2) << " actual diff_y: " << diff_y;
|
|
|
| scoped_refptr<FrameRectChangedMessageFilter> filter =
|
| new FrameRectChangedMessageFilter();
|
| @@ -1025,8 +1061,11 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| blink::WebMouseWheelEvent scroll_event(
|
| blink::WebInputEvent::MouseWheel, blink::WebInputEvent::NoModifiers,
|
| blink::WebInputEvent::TimeStampForTesting);
|
| - scroll_event.x = 387;
|
| - scroll_event.y = 110;
|
| +
|
| + scroll_event.x = gfx::ToFlooredInt(
|
| + (bounds.x() - rwhv_root->GetViewBounds().x() - 5) / scale_factor);
|
| + scroll_event.y = gfx::ToFlooredInt(
|
| + (bounds.y() - rwhv_root->GetViewBounds().y() - 5) / scale_factor);
|
| scroll_event.deltaX = 0.0f;
|
| scroll_event.deltaY = -30.0f;
|
| rwhv_root->ProcessMouseWheelEvent(scroll_event, ui::LatencyInfo());
|
| @@ -1042,8 +1081,6 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
|
|
| // Test that scrolling a nested out-of-process iframe bubbles unused scroll
|
| // delta to a parent frame.
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| // Flaky: https://crbug.com/627238
|
| IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| DISABLED_ScrollBubblingFromOOPIFTest) {
|
| @@ -1265,9 +1302,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_ScrollEventToOOPIF) {
|
|
|
| // Test that mouse events are being routed to the correct RenderWidgetHostView
|
| // based on coordinates.
|
| -#if defined(OS_ANDROID) || defined(THREAD_SANITIZER)
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| +#if defined(THREAD_SANITIZER)
|
| // The test times out often on TSAN bot.
|
| // https://crbug.com/591170.
|
| #define MAYBE_SurfaceHitTestTest DISABLED_SurfaceHitTestTest
|
| @@ -1280,8 +1315,8 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_SurfaceHitTestTest) {
|
|
|
| // Same test as above, but runs in high-dpi mode.
|
| #if defined(OS_ANDROID) || defined(OS_WIN)
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| +// High DPI browser tests are not needed on Android, and confuse some of the
|
| +// coordinate calculations. Android uses fixed device scale factor.
|
| // Windows is disabled because of https://crbug.com/545547.
|
| #define MAYBE_HighDPISurfaceHitTestTest DISABLED_SurfaceHitTestTest
|
| #else
|
| @@ -1294,15 +1329,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessHighDPIBrowserTest,
|
|
|
| // Test that mouse events are being routed to the correct RenderWidgetHostView
|
| // when there are nested out-of-process iframes.
|
| -#if defined(OS_ANDROID)
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| -#define MAYBE_NestedSurfaceHitTestTest DISABLED_NestedSurfaceHitTestTest
|
| -#else
|
| -#define MAYBE_NestedSurfaceHitTestTest NestedSurfaceHitTestTest
|
| -#endif
|
| -IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| - MAYBE_NestedSurfaceHitTestTest) {
|
| +IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, NestedSurfaceHitTestTest) {
|
| GURL main_url(embedded_test_server()->GetURL(
|
| "/frame_tree/page_with_positioned_nested_frames.html"));
|
| EXPECT_TRUE(NavigateToURL(shell(), main_url));
|
| @@ -1348,36 +1375,47 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| static_cast<RenderWidgetHostViewChildFrame*>(rwhv_nested));
|
| notifier.WaitForSurfaceReady();
|
|
|
| + float scale_factor = GetAdjustmentScaleFactorForAndroid(shell());
|
| +
|
| + // Get the view bounds of the nested iframe, which should account for the
|
| + // relative offset of its direct parent within the root frame, for use in
|
| + // targeting the input event.
|
| + gfx::Rect bounds = rwhv_nested->GetViewBounds();
|
| +
|
| // Target input event to nested frame.
|
| blink::WebMouseEvent nested_event(blink::WebInputEvent::MouseDown,
|
| blink::WebInputEvent::NoModifiers,
|
| blink::WebInputEvent::TimeStampForTesting);
|
| nested_event.button = blink::WebPointerProperties::Button::Left;
|
| - nested_event.x = 125;
|
| - nested_event.y = 125;
|
| + nested_event.x =
|
| + gfx::ToCeiledInt((bounds.x() - root_view->GetViewBounds().x()) /
|
| + scale_factor) +
|
| + 5;
|
| + nested_event.y =
|
| + gfx::ToCeiledInt((bounds.y() - root_view->GetViewBounds().y()) /
|
| + scale_factor) +
|
| + 5;
|
| nested_event.clickCount = 1;
|
| nested_frame_monitor.ResetEventReceived();
|
| main_frame_monitor.ResetEventReceived();
|
| router->RouteMouseEvent(root_view, &nested_event, ui::LatencyInfo());
|
|
|
| EXPECT_TRUE(nested_frame_monitor.EventWasReceived());
|
| - EXPECT_EQ(21, nested_frame_monitor.event().x);
|
| - EXPECT_EQ(21, nested_frame_monitor.event().y);
|
| + // The expected result coordinates are (5, 5), but can get slightly
|
| + // different results due to rounding error with some device scale factors.
|
| + EXPECT_TRUE(nested_frame_monitor.event().x <= 6 &&
|
| + nested_frame_monitor.event().x >= 4)
|
| + << " actual event.x: " << nested_frame_monitor.event().x;
|
| + EXPECT_TRUE(nested_frame_monitor.event().y <= 6 &&
|
| + nested_frame_monitor.event().y >= 4)
|
| + << " actual event.y: " << nested_frame_monitor.event().y;
|
| EXPECT_FALSE(main_frame_monitor.EventWasReceived());
|
| }
|
|
|
| // This test tests that browser process hittesting ignores frames with
|
| // pointer-events: none.
|
| -#if defined(OS_ANDROID)
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| -#define MAYBE_SurfaceHitTestPointerEventsNone \
|
| - DISABLED_SurfaceHitTestPointerEventsNone
|
| -#else
|
| -#define MAYBE_SurfaceHitTestPointerEventsNone SurfaceHitTestPointerEventsNone
|
| -#endif
|
| IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| - MAYBE_SurfaceHitTestPointerEventsNone) {
|
| + SurfaceHitTestPointerEventsNone) {
|
| GURL main_url(embedded_test_server()->GetURL(
|
| "/frame_tree/page_with_positioned_frame_pointer-events_none.html"));
|
| EXPECT_TRUE(NavigateToURL(shell(), main_url));
|
| @@ -1430,17 +1468,8 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
|
|
| // This test verifies that MouseEnter and MouseLeave events fire correctly
|
| // when the mouse cursor moves between processes.
|
| -#if defined(OS_ANDROID)
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| -#define MAYBE_CrossProcessMouseEnterAndLeaveTest \
|
| - DISABLED_CrossProcessMouseEnterAndLeaveTest
|
| -#else
|
| -#define MAYBE_CrossProcessMouseEnterAndLeaveTest \
|
| - CrossProcessMouseEnterAndLeaveTest
|
| -#endif
|
| IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| - MAYBE_CrossProcessMouseEnterAndLeaveTest) {
|
| + CrossProcessMouseEnterAndLeaveTest) {
|
| GURL main_url(embedded_test_server()->GetURL(
|
| "a.com", "/cross_site_iframe_factory.html?a(b,c(d))"));
|
| EXPECT_TRUE(NavigateToURL(shell(), main_url));
|
| @@ -1494,9 +1523,22 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| RenderWidgetHostMouseEventMonitor d_frame_monitor(
|
| d_node->current_frame_host()->GetRenderWidgetHost());
|
|
|
| + float scale_factor = GetAdjustmentScaleFactorForAndroid(shell());
|
| +
|
| + // Get the view bounds of the child iframe, which should account for the
|
| + // relative offset of its direct parent within the root frame, for use in
|
| + // targeting the input event.
|
| + gfx::Rect a_bounds = rwhv_a->GetViewBounds();
|
| + gfx::Rect b_bounds = rwhv_b->GetViewBounds();
|
| + gfx::Rect d_bounds = rwhv_d->GetViewBounds();
|
| +
|
| gfx::Point point_in_a_frame(2, 2);
|
| - gfx::Point point_in_b_frame(313, 147);
|
| - gfx::Point point_in_d_frame(471, 207);
|
| + gfx::Point point_in_b_frame(
|
| + gfx::ToCeiledInt((b_bounds.x() - a_bounds.x()) / scale_factor) + 25,
|
| + gfx::ToCeiledInt((b_bounds.y() - a_bounds.y()) / scale_factor) + 25);
|
| + gfx::Point point_in_d_frame(
|
| + gfx::ToCeiledInt((d_bounds.x() - a_bounds.x()) / scale_factor) + 25,
|
| + gfx::ToCeiledInt((d_bounds.y() - a_bounds.y()) / scale_factor) + 25);
|
|
|
| blink::WebMouseEvent mouse_event(blink::WebInputEvent::MouseMove,
|
| blink::WebInputEvent::NoModifiers,
|
| @@ -1546,15 +1588,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| // Verify that mouse capture works on a RenderWidgetHostView level, so that
|
| // dragging scroll bars and selecting text continues even when the mouse
|
| // cursor crosses over cross-process frame boundaries.
|
| -#if defined(OS_ANDROID)
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| -#define MAYBE_CrossProcessMouseCapture DISABLED_CrossProcessMouseCapture
|
| -#else
|
| -#define MAYBE_CrossProcessMouseCapture CrossProcessMouseCapture
|
| -#endif
|
| -IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| - MAYBE_CrossProcessMouseCapture) {
|
| +IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, CrossProcessMouseCapture) {
|
| GURL main_url(embedded_test_server()->GetURL(
|
| "/frame_tree/page_with_positioned_frame.html"));
|
| EXPECT_TRUE(NavigateToURL(shell(), main_url));
|
| @@ -1587,13 +1621,28 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| static_cast<RenderWidgetHostViewChildFrame*>(rwhv_child));
|
| notifier.WaitForSurfaceReady();
|
|
|
| + float scale_factor = GetAdjustmentScaleFactorForAndroid(shell());
|
| +
|
| + // Get the view bounds of the child iframe, which should account for the
|
| + // relative offset of its direct parent within the root frame, for use in
|
| + // targeting the input event.
|
| + gfx::Rect bounds = rwhv_child->GetViewBounds();
|
| + int child_frame_target_x =
|
| + gfx::ToCeiledInt((bounds.x() - root_view->GetViewBounds().x()) /
|
| + scale_factor) +
|
| + 5;
|
| + int child_frame_target_y =
|
| + gfx::ToCeiledInt((bounds.y() - root_view->GetViewBounds().y()) /
|
| + scale_factor) +
|
| + 5;
|
| +
|
| // Target MouseDown to child frame.
|
| blink::WebMouseEvent mouse_event(blink::WebInputEvent::MouseDown,
|
| blink::WebInputEvent::NoModifiers,
|
| blink::WebInputEvent::TimeStampForTesting);
|
| mouse_event.button = blink::WebPointerProperties::Button::Left;
|
| - mouse_event.x = 75;
|
| - mouse_event.y = 75;
|
| + mouse_event.x = child_frame_target_x;
|
| + mouse_event.y = child_frame_target_y;
|
| mouse_event.clickCount = 1;
|
| main_frame_monitor.ResetEventReceived();
|
| child_frame_monitor.ResetEventReceived();
|
| @@ -1625,8 +1674,8 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| // A MouseUp to the child frame should cancel the mouse capture.
|
| mouse_event.setType(blink::WebInputEvent::MouseUp);
|
| mouse_event.setModifiers(blink::WebInputEvent::NoModifiers);
|
| - mouse_event.x = 75;
|
| - mouse_event.y = 75;
|
| + mouse_event.x = child_frame_target_x;
|
| + mouse_event.y = child_frame_target_y;
|
| main_frame_monitor.ResetEventReceived();
|
| child_frame_monitor.ResetEventReceived();
|
| router->RouteMouseEvent(root_view, &mouse_event, ui::LatencyInfo());
|
| @@ -1665,8 +1714,8 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| // frame receiving the event.
|
| mouse_event.setType(blink::WebInputEvent::MouseMove);
|
| mouse_event.setModifiers(blink::WebInputEvent::LeftButtonDown);
|
| - mouse_event.x = 75;
|
| - mouse_event.y = 75;
|
| + mouse_event.x = child_frame_target_x;
|
| + mouse_event.y = child_frame_target_y;
|
| main_frame_monitor.ResetEventReceived();
|
| child_frame_monitor.ResetEventReceived();
|
| router->RouteMouseEvent(root_view, &mouse_event, ui::LatencyInfo());
|
| @@ -5964,7 +6013,14 @@ void CreateContextMenuTestHelper(
|
| static_cast<WebContentsImpl*>(shell->web_contents())
|
| ->GetInputEventRouter();
|
|
|
| - gfx::Point point(75, 75);
|
| + float scale_factor = GetAdjustmentScaleFactorForAndroid(shell);
|
| +
|
| + gfx::Rect root_bounds = root_view->GetViewBounds();
|
| + gfx::Rect bounds = rwhv_child->GetViewBounds();
|
| +
|
| + gfx::Point point(
|
| + gfx::ToCeiledInt((bounds.x() - root_bounds.x()) / scale_factor) + 10,
|
| + gfx::ToCeiledInt((bounds.y() - root_bounds.y()) / scale_factor) + 10);
|
|
|
| // Target right-click event to child frame.
|
| blink::WebMouseEvent click_event(blink::WebInputEvent::MouseDown,
|
| @@ -5992,14 +6048,7 @@ void CreateContextMenuTestHelper(
|
|
|
| // Test that a mouse right-click to an out-of-process iframe causes a context
|
| // menu to be generated with the correct screen position.
|
| -#if defined(OS_ANDROID)
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| -#define MAYBE_CreateContextMenuTest DISABLED_CreateContextMenuTest
|
| -#else
|
| -#define MAYBE_CreateContextMenuTest CreateContextMenuTest
|
| -#endif
|
| -IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_CreateContextMenuTest) {
|
| +IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, CreateContextMenuTest) {
|
| CreateContextMenuTestHelper(shell(), embedded_test_server());
|
| }
|
|
|
| @@ -6007,8 +6056,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_CreateContextMenuTest) {
|
| // menu to be generated with the correct screen position on a screen with
|
| // non-default scale factor.
|
| #if defined(OS_ANDROID) || defined(OS_WIN)
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| +// High DPI tests don't work properly on Android, which has fixed scale factor.
|
| // Windows is disabled because of https://crbug.com/545547.
|
| #define MAYBE_HighDPICreateContextMenuTest DISABLED_HighDPICreateContextMenuTest
|
| #else
|
| @@ -6085,22 +6133,15 @@ class ShowWidgetMessageFilter : public content::BrowserMessageFilter {
|
|
|
| // Test that clicking a select element in an out-of-process iframe creates
|
| // a popup menu in the correct position.
|
| -#if defined(OS_ANDROID)
|
| -// Surface-based hit testing and coordinate translation is not yet available
|
| -// on Android.
|
| -#define MAYBE_PopupMenuTest DISABLED_PopupMenuTest
|
| -#else
|
| -#define MAYBE_PopupMenuTest PopupMenuTest
|
| -#endif
|
| -IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_PopupMenuTest) {
|
| +IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, PopupMenuTest) {
|
| GURL main_url(
|
| embedded_test_server()->GetURL("/cross_site_iframe_factory.html?a(a)"));
|
| EXPECT_TRUE(NavigateToURL(shell(), main_url));
|
|
|
| FrameTreeNode* root = web_contents()->GetFrameTree()->root();
|
|
|
| -#if !defined(OS_MACOSX)
|
| - // Unused variable on Mac.
|
| +#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
| + // Unused variable on Mac and Android.
|
| RenderWidgetHostViewBase* rwhv_root = static_cast<RenderWidgetHostViewBase*>(
|
| root->current_frame_host()->GetRenderWidgetHost()->GetView());
|
| #endif
|
| @@ -6139,9 +6180,9 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_PopupMenuTest) {
|
|
|
| filter->Wait();
|
| gfx::Rect popup_rect = filter->last_initial_rect();
|
| -#if defined(OS_MACOSX)
|
| - // On Mac we receive the coordinates before they are transformed, so they
|
| - // are still relative to the out-of-process iframe origin.
|
| +#if defined(OS_MACOSX) || defined(OS_ANDROID)
|
| + // On Mac and Android we receive the coordinates before they are transformed,
|
| + // so they are still relative to the out-of-process iframe origin.
|
| EXPECT_EQ(popup_rect.x(), 9);
|
| EXPECT_EQ(popup_rect.y(), 9);
|
| #else
|
| @@ -8993,8 +9034,7 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
|
| // Test that MouseDown and MouseUp to the same coordinates do not result in
|
| // different coordinates after routing. See bug https://crbug.com/670253.
|
| #if defined(OS_ANDROID)
|
| -// Browser process hit testing is not implemented on Android.
|
| -// https://crbug.com/491334
|
| +// Android uses fixed scale factor, which makes this test unnecessary.
|
| #define MAYBE_MouseClickWithNonIntegerScaleFactor \
|
| DISABLED_MouseClickWithNonIntegerScaleFactor
|
| #else
|
|
|