[webkit-changes] [WebKit/WebKit] e444be: REGRESSION (279348 at main): Flickr photos flash at w...

Alan Baradlay noreply at github.com
Mon Jun 3 11:06:03 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e444be2003c0ebc730f38521a29fe7e0356525fb
      https://github.com/WebKit/WebKit/commit/e444be2003c0ebc730f38521a29fe7e0356525fb
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2024-06-03 (Mon, 03 Jun 2024)

  Changed paths:
    A LayoutTests/fast/dynamic/out-of-flow-with-inflow-sibling-insert-expected.html
    A LayoutTests/fast/dynamic/out-of-flow-with-inflow-sibling-insert.html
    M Source/WebCore/rendering/RenderBlock.cpp
    M Source/WebCore/rendering/RenderElement.cpp
    M Source/WebCore/rendering/RenderElement.h
    M Source/WebCore/rendering/RenderObject.cpp
    M Source/WebCore/rendering/RenderObject.h
    M Source/WebCore/rendering/updating/RenderTreeBuilder.cpp

  Log Message:
  -----------
  REGRESSION (279348 at main): Flickr photos flash at wrong offset when paging through album
https://bugs.webkit.org/show_bug.cgi?id=274981
<rdar://129005765>

Reviewed by Antti Koivisto.

Introduce a new bit that says "this container has an out-of-flow child which needs its static position computed".
Normally "normal child needs layout" would be sufficient but due to a (super useful) optimization in RenderObject::markContainingBlocksForLayout
we can't just set that bit on a parent only* (at least not _outside_ of layout).
This bit triggers normal layout on the parent which in turn sets the static position on this newly added out-of-flow box.

*
Setting this bit on parent only prevents any subsequent markings from being able to mark ancestor chain "normal child needs layout" all the way up.

* LayoutTests/fast/dynamic/out-of-flow-with-inflow-sibling-insert-expected.html: Added.
* LayoutTests/fast/dynamic/out-of-flow-with-inflow-sibling-insert.html: Added.
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::canPerformSimplifiedLayout const):
* Source/WebCore/rendering/RenderElement.cpp:
(WebCore::RenderElement::clearChildNeedsLayout):
(WebCore::RenderElement::setOutOfFlowChildNeedsStaticPositionLayout):
* Source/WebCore/rendering/RenderElement.h:
* Source/WebCore/rendering/RenderObject.cpp:
(WebCore::RenderObject::clearNeedsLayout):
(WebCore::RenderObject::outputRenderObject const):
* Source/WebCore/rendering/RenderObject.h:
(WebCore::RenderObject::outOfFlowChildNeedsStaticPositionLayout const):
(WebCore::RenderObject::setOutOfFlowChildNeedsStaticPositionLayoutBit):
* Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):

Canonical link: https://commits.webkit.org/279667@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list