[webkit-changes] [WebKit/WebKit] c63ae7: Back button fails to render in region selecting pane
Alan Baradlay
noreply at github.com
Thu Jun 22 08:37:55 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c63ae7fbbf2143360f49a4c955d422a7e619dfed
https://github.com/WebKit/WebKit/commit/c63ae7fbbf2143360f49a4c955d422a7e619dfed
Author: Alan Baradlay <zalan at apple.com>
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 at 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
More information about the webkit-changes
mailing list