Title: [228848] branches/safari-605-branch

Diff

Modified: branches/safari-605-branch/LayoutTests/ChangeLog (228847 => 228848)


--- branches/safari-605-branch/LayoutTests/ChangeLog	2018-02-20 23:31:21 UTC (rev 228847)
+++ branches/safari-605-branch/LayoutTests/ChangeLog	2018-02-20 23:31:25 UTC (rev 228848)
@@ -1,5 +1,32 @@
 2018-02-20  Jason Marcell  <jmarc...@apple.com>
 
+        Cherry-pick r228714. rdar://problem/37714031
+
+    2018-02-19  Tim Horton  <timothy_hor...@apple.com>
+
+            REGRESSION (r219342): Touch event coordinates and elementFromPoint coordinates differ
+            https://bugs.webkit.org/show_bug.cgi?id=182910
+            <rdar://problem/37533950>
+
+            Reviewed by Simon Fraser.
+
+            * fast/dom/elementFromPoint-scaled-scrolled.html:
+            Revert changes to this test made in r219342.
+
+            * fast/dom/elementFromPoint-scaled-scrolled-layout-viewport.html:
+            * fast/dom/elementFromPoint-scaled-scrolled-layout-viewport-expected.txt:
+            Add a test that is equivalent to elementFromPoint-scaled-scrolled.html after r219342,
+            which turns on the new setting. This test is disabled on iOS (like it was
+            in r219342) because it needs window.scrollTo.
+
+            * platform/ios-wk2/fast/dom/elementFromPoint-relative-to-viewport-expected.txt:
+            This now passes.
+
+            * platform/ios/TestExpectations:
+            Re-mark-failing a test that was un-marked-failing by r219342.
+
+2018-02-20  Jason Marcell  <jmarc...@apple.com>
+
         Cherry-pick r228574. rdar://problem/37697675
 
     2018-02-16  Chris Dumez  <cdu...@apple.com>

Modified: branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled-expected.txt (228847 => 228848)


--- branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled-expected.txt	2018-02-20 23:31:21 UTC (rev 228847)
+++ branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled-expected.txt	2018-02-20 23:31:25 UTC (rev 228848)
@@ -1,21 +1,3 @@
-This test applies page scale and scrolls the page, and checks that elementFromPoint returns the correct element.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-PASS document.elementFromPoint(225, 125) is b1
-PASS document.elementFromPoint(525, 425) is b2
-PASS document.elementFromPoint(225, 125) is b1
-PASS document.elementFromPoint(525, 425) is b2
-PASS document.elementFromPoint(115, 15) is b1
-PASS document.elementFromPoint(415, 315) is b2
-PASS document.elementFromPoint(-85, 15) is null
-PASS document.elementFromPoint(215, 315) is b2
-PASS document.elementFromPoint(525, 425) is b2
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
+B1B2B3
+This test is successful if elementFromPoint returns the correct element.
+B3

Copied: branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled-layout-viewport-expected.txt (from rev 228847, branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled-expected.txt) (0 => 228848)


--- branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled-layout-viewport-expected.txt	                        (rev 0)
+++ branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled-layout-viewport-expected.txt	2018-02-20 23:31:25 UTC (rev 228848)
@@ -0,0 +1,20 @@
+This test applies page scale and scrolls the page, and checks that elementFromPoint returns the correct element.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+PASS document.elementFromPoint(225, 125) is b1
+PASS document.elementFromPoint(525, 425) is b2
+PASS document.elementFromPoint(225, 125) is b1
+PASS document.elementFromPoint(525, 425) is b2
+PASS document.elementFromPoint(115, 15) is b1
+PASS document.elementFromPoint(415, 315) is b2
+PASS document.elementFromPoint(-85, 15) is null
+PASS document.elementFromPoint(215, 315) is b2
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Copied: branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled-layout-viewport.html (from rev 228847, branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled.html) (0 => 228848)


--- branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled-layout-viewport.html	                        (rev 0)
+++ branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled-layout-viewport.html	2018-02-20 23:31:25 UTC (rev 228848)
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+    body {
+        width: 2000px;
+        height: 2000px;
+    }
+    button {
+        position: absolute;
+        width: 50px;
+        height: 50px;
+    }
+    #b1 {
+        left: 200px;
+        top: 100px;
+    }
+    #b2 {
+        left: 500px;
+        top: 400px;
+    }
+</style>
+<script src=""
+</head>
+<body _onload_="runTest();" style="width:2000px;height:2000px;margin:0px;padding:100px">
+<button id="b1"></button>
+<button id="b2"></button>
+<script>
+function runTest() {
+    description("This test applies page scale and scrolls the page, and checks that elementFromPoint returns the correct element.");
+    if (window.internals) {
+        window.internals.settings.setVisualViewportEnabled(true);
+        window.internals.settings.setClientCoordinatesRelativeToLayoutViewport(true);
+        window.internals.setPageScaleFactor(2, 0, 0);
+    }
+    window.scrollTo(100, 100);
+
+    // The layout viewport hasn't been scrolled.
+    shouldBe("document.elementFromPoint(225, 125)", "b1");
+    shouldBe("document.elementFromPoint(525, 425)", "b2");
+
+    window.scrollTo(200, 200);
+
+    // b1 is now offscreen, but still within the layout viewport.
+    shouldBe("document.elementFromPoint(225, 125)", "b1");
+    shouldBe("document.elementFromPoint(525, 425)", "b2");
+
+    window.scrollTo(500, 400);
+    shouldBe("document.elementFromPoint(115, 15)", "b1");
+    shouldBe("document.elementFromPoint(415, 315)", "b2");
+
+    window.scrollTo(700, 400);
+    shouldBeNull("document.elementFromPoint(-85, 15)");
+    shouldBe("document.elementFromPoint(215, 315)", "b2");
+
+    finishJSTest();
+}
+</script>
+<script src=""
+</body>
+</html>

Modified: branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled.html (228847 => 228848)


--- branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled.html	2018-02-20 23:31:21 UTC (rev 228847)
+++ branches/safari-605-branch/LayoutTests/fast/dom/elementFromPoint-scaled-scrolled.html	2018-02-20 23:31:25 UTC (rev 228848)
@@ -1,68 +1,24 @@
 <!DOCTYPE html>
 <html>
 <head>
-<style>
-    body {
-        width: 2000px;
-        height: 2000px;
-    }
-    button {
-        position: absolute;
-        width: 50px;
-        height: 50px;
-    }
-    #b1 {
-        left: 200px;
-        top: 100px;
-    }
-    #b2 {
-        left: 500px;
-        top: 400px;
-    }
-</style>
-<script src=""
+<script src=""
 </head>
 <body _onload_="runTest();" style="width:2000px;height:2000px;margin:0px;padding:100px">
-<button id="b1"></button>
-<button id="b2"></button>
+<button style="width:50px;height:50px;">B1</button><button style="width:50px;height:50px;">B2</button><button style="width:50px;height:50px;">B3</button>
+<div>This test is successful if elementFromPoint returns the correct element.</div>
+<div id="result"></div>
 <script>
 function runTest() {
-    description("This test applies page scale and scrolls the page, and checks that elementFromPoint returns the correct element.");
-    if (window.internals) {
-        window.internals.settings.setVisualViewportEnabled(true);
+    if (window.internals)
         window.internals.setPageScaleFactor(2, 0, 0);
-    }
-    window.scrollTo(100, 100);
+    window.scrollTo(100,100);
 
-    // The layout viewport hasn't been scrolled.
-    shouldBe("document.elementFromPoint(225, 125)", "b1");
-    shouldBe("document.elementFromPoint(525, 425)", "b2");
+    if (window.testRunner)
+        testRunner.dumpAsText();
 
-    window.scrollTo(200, 200);
-
-    // b1 is now offscreen, but still within the layout viewport.
-    shouldBe("document.elementFromPoint(225, 125)", "b1");
-    shouldBe("document.elementFromPoint(525, 425)", "b2");
-
-    window.scrollTo(500, 400);
-    shouldBe("document.elementFromPoint(115, 15)", "b1");
-    shouldBe("document.elementFromPoint(415, 315)", "b2");
-
-    window.scrollTo(700, 400);
-    shouldBeNull("document.elementFromPoint(-85, 15)");
-    shouldBe("document.elementFromPoint(215, 315)", "b2");
-
-    window.scrollTo(0, 0);
-    if (window.internals)
-        window.internals.setPageScaleFactor(0.5, 0, 0);
-    // b2 is now technically outside the 800x600 scaled viewport rect,
-    // but should still be found.
-
-    shouldBe("document.elementFromPoint(525, 425)", "b2");
-
-    finishJSTest();
+    document.getElementById("result").innerText = document.elementFromPoint(125, 25).innerText;
 }
 </script>
-<script src=""
+</script>
 </body>
-</html>
+</html>
\ No newline at end of file

Modified: branches/safari-605-branch/LayoutTests/platform/ios/TestExpectations (228847 => 228848)


--- branches/safari-605-branch/LayoutTests/platform/ios/TestExpectations	2018-02-20 23:31:21 UTC (rev 228847)
+++ branches/safari-605-branch/LayoutTests/platform/ios/TestExpectations	2018-02-20 23:31:25 UTC (rev 228848)
@@ -2828,7 +2828,7 @@
 webkit.org/b/163046 js/regress-141098.html [ Pass Failure ]
 
 # Test relies on window.scrollTo
-fast/dom/elementFromPoint-scaled-scrolled.html [ Skip ]
+fast/dom/elementFromPoint-scaled-scrolled-layout-viewport.html [ Skip ]
 fast/zooming/client-rect-in-fixed-zoomed.html [ Skip ]
 fast/visual-viewport/zoomed-scroll-to-anchor-in-position-fixed.html [ Skip ]
 fast/visual-viewport/zoomed-scroll-into-view-fixed.html [ Skip ]
@@ -2924,6 +2924,8 @@
 webkit.org/b/171760 imported/w3c/i18n/bidi/bidi-plaintext-011.html [ ImageOnlyFailure ]
 webkit.org/b/171760 imported/w3c/i18n/bidi/block-plaintext-005.html [ ImageOnlyFailure ]
 
+webkit.org/b/172019 imported/w3c/web-platform-tests/cssom-view/elementFromPoint.html [ Failure ]
+
 webkit.org/b/172547 http/tests/xmlhttprequest/xmlhttprequest-50ms-download-dispatch.html [ Failure ]
 
 webkit.org/b/172610 media/ios/autoplay-only-in-main-document.html [ Skip ]

Modified: branches/safari-605-branch/LayoutTests/platform/ios-wk2/fast/dom/elementFromPoint-relative-to-viewport-expected.txt (228847 => 228848)


--- branches/safari-605-branch/LayoutTests/platform/ios-wk2/fast/dom/elementFromPoint-relative-to-viewport-expected.txt	2018-02-20 23:31:21 UTC (rev 228847)
+++ branches/safari-605-branch/LayoutTests/platform/ios-wk2/fast/dom/elementFromPoint-relative-to-viewport-expected.txt	2018-02-20 23:31:25 UTC (rev 228848)
@@ -20,8 +20,8 @@
 Test Initial
 PASS unscrolledBoxInitial is '0'
 PASS scrolledDownBoxInitial is '5'
-FAIL scrolledRightBoxInitial should be 3. Was 2.
-FAIL scrolledDownAndRightBoxInitial should be 8. Was 7.
+PASS scrolledRightBoxInitial is '3'
+PASS scrolledDownAndRightBoxInitial is '8'
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: branches/safari-605-branch/Source/WebCore/ChangeLog (228847 => 228848)


--- branches/safari-605-branch/Source/WebCore/ChangeLog	2018-02-20 23:31:21 UTC (rev 228847)
+++ branches/safari-605-branch/Source/WebCore/ChangeLog	2018-02-20 23:31:25 UTC (rev 228848)
@@ -1,5 +1,33 @@
 2018-02-20  Jason Marcell  <jmarc...@apple.com>
 
+        Cherry-pick r228714. rdar://problem/37714031
+
+    2018-02-19  Tim Horton  <timothy_hor...@apple.com>
+
+            REGRESSION (r219342): Touch event coordinates and elementFromPoint coordinates differ
+            https://bugs.webkit.org/show_bug.cgi?id=182910
+            <rdar://problem/37533950>
+
+            Reviewed by Simon Fraser.
+
+            We reverted other changes to the definition of client coordinates
+            in r219829 due to compatibility concerns. However, we failed to revert
+            r219342 on trunk, leaving elementFromPoint() using coordinates relative
+            to the layout viewport.
+
+            Add a currently off-by-default setting to switch on layout-viewport-relative
+            client coordinates and guard the elementFromPoint changes behind it.
+            A future patch should roll r219829 back in also behind this setting, so
+            that everything remains consistent regardless of which coordinate space we choose.
+
+            * dom/TreeScope.cpp:
+            (WebCore::absolutePointIfNotClipped):
+            * page/Settings.yaml:
+            * rendering/RenderLayer.cpp:
+            (WebCore::RenderLayer::hitTest):
+
+2018-02-20  Jason Marcell  <jmarc...@apple.com>
+
         Cherry-pick r228601. rdar://problem/37697671
 
     2018-02-20  Jason Marcell  <jmarc...@apple.com>

Modified: branches/safari-605-branch/Source/WebCore/dom/TreeScope.cpp (228847 => 228848)


--- branches/safari-605-branch/Source/WebCore/dom/TreeScope.cpp	2018-02-20 23:31:21 UTC (rev 228847)
+++ branches/safari-605-branch/Source/WebCore/dom/TreeScope.cpp	2018-02-20 23:31:25 UTC (rev 228848)
@@ -299,7 +299,8 @@
     if (!document.frame() || !document.view())
         return std::nullopt;
 
-    if (document.frame()->settings().visualViewportEnabled()) {
+    const auto& settings = document.frame()->settings();
+    if (settings.visualViewportEnabled() && settings.clientCoordinatesRelativeToLayoutViewport()) {
         document.updateLayout();
         if (!document.view() || !document.hasLivingRenderTree())
             return std::nullopt;

Modified: branches/safari-605-branch/Source/WebCore/page/Settings.yaml (228847 => 228848)


--- branches/safari-605-branch/Source/WebCore/page/Settings.yaml	2018-02-20 23:31:21 UTC (rev 228847)
+++ branches/safari-605-branch/Source/WebCore/page/Settings.yaml	2018-02-20 23:31:25 UTC (rev 228848)
@@ -708,3 +708,7 @@
 
 mediaCapabilitiesEnabled:
   initial: false
+
+clientCoordinatesRelativeToLayoutViewport:
+  initial: false
+  onChange: setNeedsRecalcStyleInAllFrames

Modified: branches/safari-605-branch/Source/WebCore/rendering/RenderLayer.cpp (228847 => 228848)


--- branches/safari-605-branch/Source/WebCore/rendering/RenderLayer.cpp	2018-02-20 23:31:21 UTC (rev 228847)
+++ branches/safari-605-branch/Source/WebCore/rendering/RenderLayer.cpp	2018-02-20 23:31:25 UTC (rev 228848)
@@ -4931,7 +4931,8 @@
     ASSERT(!isRenderFragmentedFlow());
     LayoutRect hitTestArea = renderer().view().documentRect();
     if (!request.ignoreClipping()) {
-        if (renderer().settings().visualViewportEnabled()) {
+        const auto& settings = renderer().settings();
+        if (settings.visualViewportEnabled() && settings.clientCoordinatesRelativeToLayoutViewport()) {
             auto& frameView = renderer().view().frameView();
             LayoutRect absoluteLayoutViewportRect = frameView.layoutViewportRect();
             auto scaleFactor = frameView.frame().frameScaleFactor();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to