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