Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c63ae7fbbf2143360f49a4c955d422a7e619dfed
      
https://github.com/WebKit/WebKit/commit/c63ae7fbbf2143360f49a4c955d422a7e619dfed
  Author: Alan Baradlay <za...@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@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
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to