WebKit Bugzilla
Attachment 362580 Details for
Bug 194889
: REGRESSION (240698): Fixed position banners flicker and move when scrolling on iOS
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-194889-20190220181233.patch (text/plain), 3.43 KB, created by
Simon Fraser (smfr)
on 2019-02-20 18:12:34 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Simon Fraser (smfr)
Created:
2019-02-20 18:12:34 PST
Size:
3.43 KB
patch
obsolete
>Subversion Revision: 241833 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 0c12b2787241867b076d2c3db835237b4c6d3521..a14bcdd284edfb72ea64c6e8b846a7932259aa89 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,24 @@ >+2019-02-20 Simon Fraser <simon.fraser@apple.com> >+ >+ REGRESSION (240698): Fixed position banners flicker and move when scrolling on iOS >+ https://bugs.webkit.org/show_bug.cgi?id=194889 >+ rdar://problem/47755552 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ After r240698 we could commit scrolling changes for a fixed node where the "viewportRectAtLastLayout" and the layer >+ position were mismatched; this happened when AsyncScrollingCoordinator::reconcileScrollingState() came back from the UI process >+ with an unstable update and set a new layoutViewport, then some other layout triggered a compositing tree update. During the tree >+ update, we'd update the fixed scrolling node with the new viewport, and an old layer position. >+ >+ Fix by ensuring that we only update the geometry info for a scrolling tree node when we update layer geometry for the corresponding >+ layer. >+ >+ Not currently testable. >+ >+ * rendering/RenderLayerCompositor.cpp: >+ (WebCore::RenderLayerCompositor::updateBackingAndHierarchy): >+ > 2019-02-20 Simon Fraser <simon.fraser@apple.com> > > REGRESSION (r241788>): ASSERTION FAILED: !m_normalFlowListDirty in TestWebKitAPI.WebKit.ResizeReversePaginatedWebView test >diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp >index 6dd8d1525a7ee2f43443c9fdf91e9544b7855812..5d079a1ab74ebdc695d3a6e7ee8b265f2b05837f 100644 >--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp >+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp >@@ -1169,8 +1169,11 @@ void RenderLayerCompositor::updateBackingAndHierarchy(RenderLayer& layer, Vector > layerBacking->updateDebugIndicators(m_showDebugBorders, m_showRepaintCounter); > } > >- if (layerNeedsUpdate || layer.needsCompositingGeometryUpdate() || layer.needsScrollingTreeUpdate()) >+ OptionSet<ScrollingNodeChangeFlags> scrollingNodeChanges = { ScrollingNodeChangeFlags::Layer }; >+ if (layerNeedsUpdate || layer.needsCompositingGeometryUpdate() || layer.needsScrollingTreeUpdate()) { > layerBacking->updateGeometry(); >+ scrollingNodeChanges.add(ScrollingNodeChangeFlags::LayerGeometry); >+ } > > if (auto* reflection = layer.reflectionLayer()) { > if (auto* reflectionBacking = reflection->backing()) { >@@ -1185,7 +1188,7 @@ void RenderLayerCompositor::updateBackingAndHierarchy(RenderLayer& layer, Vector > > // FIXME: do based on dirty flags. Need to do this for changes of geometry, configuration and hierarchy. > // Need to be careful to do the right thing when a scroll-coordinated layer loses a scroll-coordinated ancestor. >- stateForDescendants.parentNodeID = updateScrollCoordinationForLayer(layer, scrollingTreeState, layerBacking->coordinatedScrollingRoles(), { ScrollingNodeChangeFlags::Layer, ScrollingNodeChangeFlags::LayerGeometry }); >+ stateForDescendants.parentNodeID = updateScrollCoordinationForLayer(layer, scrollingTreeState, layerBacking->coordinatedScrollingRoles(), scrollingNodeChanges); > stateForDescendants.nextChildIndex = 0; > > #if !LOG_DISABLED
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194889
: 362580