Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c63ae7fbbf2143360f49a4c955d422a7e619dfed
https://github.com/WebKit/WebKit/commit/c63ae7fbbf2143360f49a4c955d422a7e619dfed
Author: Alan Baradlay <[email protected]>
Date: 2023-06-22 (Thu, 22 Jun 2023)
Changed paths:
A
LayoutTests/fast/inline/inline-with-out-of-flow-box-and-new-sibling-expected.html
A LayoutTests/fast/inline/inline-with-out-of-flow-box-and-new-sibling.html
M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
Log Message:
-----------
Back button fails to render in region selecting pane
https://bugs.webkit.org/show_bug.cgi?id=258376
<rdar://109448172>
Reviewed by Antti Koivisto.
262470@main starts eagerly setting out-of-flow renderers' final position with
the static position delta to fix bugs caused by failed invalidation
where we do not manage to mark the ancestor chain dirty and layout never
reaches the containing block to compute final position.
(In short; we check how much the static position changes through inline layout
and use that to compute/set the position of the
renderer which in normal cases will be overwritten when layout reaches the
containing block. see commit message for details)
However in case of non-statically positioned boxes (e.g. left: 0px),
1. the change in the static position does not really affect the final position
2, and moving the renderer by the static position delta may misplace it as the
logic is based on the renderer's current position which
may or may not be the previous static position (e.g. it's a non-static value
(e.g. 0px).
Normally such misplaced renderers get "fixed" when the containing block
computes the final position, however
when the containing block is not dirty (there are valid cases for that) we
never recover from this incorrect position.
*
LayoutTests/fast/block/positioning/static_out_of_flow_inside_layout_boundary.html:
*
LayoutTests/fast/inline/inline-with-out-of-flow-box-and-new-sibling-expected.html:
Added.
* LayoutTests/fast/inline/inline-with-out-of-flow-box-and-new-sibling.html:
Added.
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateRenderTreePositions):
Canonical link: https://commits.webkit.org/265404@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes