Skip to content

Commit

Permalink
Don't unnecessarily tear down top layer renderers in RenderTreeUpdater
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=246735
rdar://101324926

Reviewed by Antti Koivisto.

The element.isInTopLayer() check added by https://commits.webkit.org/246767@main is there is because
entering top layer forces `display: contents` style to `display: block`. This check is now redundant
with https://commits.webkit.org/255527@main, since it is fixing the same issue more globally.

Test: fast/css/top-layer-display-contents-crash.html

* Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):

Canonical link: https://commits.webkit.org/255733@main
  • Loading branch information
nt1m committed Oct 19, 2022
1 parent 3f0b2fe commit 394f41a
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion Source/WebCore/rendering/updating/RenderTreeUpdater.cpp
Expand Up @@ -311,7 +311,7 @@ void RenderTreeUpdater::updateElementRenderer(Element& element, const Style::Ele

auto elementUpdateStyle = RenderStyle::cloneIncludingPseudoElements(*elementUpdate.style);

bool shouldTearDownRenderers = elementUpdate.change == Style::Change::Renderer && (element.renderer() || element.hasDisplayContents() || element.isInTopLayer() || element.displayContentsChanged());
bool shouldTearDownRenderers = elementUpdate.change == Style::Change::Renderer && (element.renderer() || element.hasDisplayContents() || element.displayContentsChanged());
if (shouldTearDownRenderers) {
if (!element.renderer()) {
// We may be tearing down a descendant renderer cached in renderTreePosition.
Expand Down

0 comments on commit 394f41a

Please sign in to comment.