Title: [277840] trunk
Revision
277840
Author
[email protected]
Date
2021-05-20 17:24:33 -0700 (Thu, 20 May 2021)

Log Message

[WPE] Spatial navigation tests fail with async overflow scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=225922

Reviewed by Simon Fraser.

Source/WebCore:

Add absoluteClippedOverflowRectForSpatialNavigation for when the
clipped overflow rect not taking into account composited scrolling is
necessary.

No new tests, covered by existing tests.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isOffScreen const):
* page/SpatialNavigation.cpp:
(WebCore::hasOffscreenRect):
* rendering/RenderObject.h:
(WebCore::RenderObject::absoluteClippedOverflowRectForSpatialNavigation const):
(WebCore::RenderObject::visibleRectContextForSpatialNavigation):

LayoutTests:

Some spatial navigation tests now pass on WPE.

* platform/wpe/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (277839 => 277840)


--- trunk/LayoutTests/ChangeLog	2021-05-21 00:15:13 UTC (rev 277839)
+++ trunk/LayoutTests/ChangeLog	2021-05-21 00:24:33 UTC (rev 277840)
@@ -1,3 +1,14 @@
+2021-05-20  Chris Lord  <[email protected]>
+
+        [WPE] Spatial navigation tests fail with async overflow scrolling enabled
+        https://bugs.webkit.org/show_bug.cgi?id=225922
+
+        Reviewed by Simon Fraser.
+
+        Some spatial navigation tests now pass on WPE.
+
+        * platform/wpe/TestExpectations:
+
 2021-05-20  Amir Mark Jr  <[email protected]>
 
         [macOS] imported/w3c/web-platform-tests/IndexedDB/blob-valid-before-commit.any.html is a flaky failure

Modified: trunk/LayoutTests/platform/wpe/TestExpectations (277839 => 277840)


--- trunk/LayoutTests/platform/wpe/TestExpectations	2021-05-21 00:15:13 UTC (rev 277839)
+++ trunk/LayoutTests/platform/wpe/TestExpectations	2021-05-21 00:24:33 UTC (rev 277840)
@@ -708,9 +708,6 @@
 webkit.org/b/225379 [ Debug ] imported/w3c/web-platform-tests/webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html [ Crash ]
 
 # Test failing since async scrolling was activated in WPE.
-webkit.org/b/224596 fast/spatial-navigation/snav-clipped-overflowed-content.html [ Failure ]
-webkit.org/b/224596 fast/spatial-navigation/snav-only-clipped-overflow-content.html [ Failure ]
-webkit.org/b/224596 fast/spatial-navigation/snav-simple-content-overflow.html [ Failure ]
 webkit.org/b/224596 css3/filters/clipping-overflow-scroll-with-pixel-moving-effect-on-parent.html [ ImageOnlyFailure ]
 webkit.org/b/224596 css3/filters/clipping-overflow-scroll-with-pixel-moving-effect-on.html [ ImageOnlyFailure ]
 webkit.org/b/224596 fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html [ ImageOnlyFailure ]

Modified: trunk/Source/WebCore/ChangeLog (277839 => 277840)


--- trunk/Source/WebCore/ChangeLog	2021-05-21 00:15:13 UTC (rev 277839)
+++ trunk/Source/WebCore/ChangeLog	2021-05-21 00:24:33 UTC (rev 277840)
@@ -1,3 +1,24 @@
+2021-05-20  Chris Lord  <[email protected]>
+
+        [WPE] Spatial navigation tests fail with async overflow scrolling enabled
+        https://bugs.webkit.org/show_bug.cgi?id=225922
+
+        Reviewed by Simon Fraser.
+
+        Add absoluteClippedOverflowRectForSpatialNavigation for when the
+        clipped overflow rect not taking into account composited scrolling is
+        necessary.
+
+        No new tests, covered by existing tests.
+
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::isOffScreen const):
+        * page/SpatialNavigation.cpp:
+        (WebCore::hasOffscreenRect):
+        * rendering/RenderObject.h:
+        (WebCore::RenderObject::absoluteClippedOverflowRectForSpatialNavigation const):
+        (WebCore::RenderObject::visibleRectContextForSpatialNavigation):
+
 2021-05-20  Kate Cheney  <[email protected]>
 
         Mark ServiceWorkerThreadProxy with a default app-bound value

Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (277839 => 277840)


--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2021-05-21 00:15:13 UTC (rev 277839)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp	2021-05-21 00:24:33 UTC (rev 277840)
@@ -550,7 +550,7 @@
     if (!m_renderer)
         return true;
 
-    IntRect contentRect = snappedIntRect(m_renderer->absoluteClippedOverflowRectForRepaint());
+    IntRect contentRect = snappedIntRect(m_renderer->absoluteClippedOverflowRectForSpatialNavigation());
     // FIXME: unclear if we need LegacyIOSDocumentVisibleRect.
     IntRect viewRect = m_renderer->view().frameView().visibleContentRect(ScrollableArea::LegacyIOSDocumentVisibleRect);
     viewRect.intersect(contentRect);

Modified: trunk/Source/WebCore/page/SpatialNavigation.cpp (277839 => 277840)


--- trunk/Source/WebCore/page/SpatialNavigation.cpp	2021-05-21 00:15:13 UTC (rev 277839)
+++ trunk/Source/WebCore/page/SpatialNavigation.cpp	2021-05-21 00:24:33 UTC (rev 277840)
@@ -325,7 +325,7 @@
     if (!render)
         return true;
 
-    LayoutRect rect(render->absoluteClippedOverflowRectForRepaint());
+    LayoutRect rect(render->absoluteClippedOverflowRectForSpatialNavigation());
     if (rect.isEmpty())
         return true;
 

Modified: trunk/Source/WebCore/rendering/RenderObject.h (277839 => 277840)


--- trunk/Source/WebCore/rendering/RenderObject.h	2021-05-21 00:15:13 UTC (rev 277839)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2021-05-21 00:24:33 UTC (rev 277840)
@@ -627,6 +627,7 @@
     // Returns the rect that should be repainted whenever this object changes. The rect is in the view's
     // coordinate space. This method deals with outlines and overflow.
     LayoutRect absoluteClippedOverflowRectForRepaint() const { return clippedOverflowRect(nullptr, visibleRectContextForRepaint()); }
+    LayoutRect absoluteClippedOverflowRectForSpatialNavigation() const { return clippedOverflowRect(nullptr, visibleRectContextForSpatialNavigation()); }
     WEBCORE_EXPORT IntRect pixelSnappedAbsoluteClippedOverflowRect() const;
     virtual LayoutRect clippedOverflowRect(const RenderLayerModelObject* repaintContainer, VisibleRectContext) const;
     LayoutRect clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const { return clippedOverflowRect(repaintContainer, visibleRectContextForRepaint()); }
@@ -759,6 +760,7 @@
     static FragmentedFlowState computedFragmentedFlowState(const RenderObject&);
 
     static VisibleRectContext visibleRectContextForRepaint();
+    static VisibleRectContext visibleRectContextForSpatialNavigation();
 
     bool isSetNeedsLayoutForbidden() const;
 
@@ -1137,6 +1139,11 @@
     return { false, false, { VisibleRectContextOption::ApplyContainerClip, VisibleRectContextOption::ApplyCompositedContainerScrolls } };
 }
 
+inline auto RenderObject::visibleRectContextForSpatialNavigation() -> VisibleRectContext
+{
+    return { false, false, { VisibleRectContextOption::ApplyContainerClip, VisibleRectContextOption::ApplyCompositedContainerScrolls, VisibleRectContextOption::ApplyCompositedClips } };
+}
+
 inline bool RenderObject::isSetNeedsLayoutForbidden() const
 {
 #if ASSERT_ENABLED
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to