Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e3a88b1900f583b00b1d59552702dc771e06a0af
https://github.com/WebKit/WebKit/commit/e3a88b1900f583b00b1d59552702dc771e06a0af
Author: Taher Ali <[email protected]>
Date: 2026-10-13 (Tue, 13 Oct 2026)
Changed paths:
A
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-composited-descendant-expected.html
A
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-composited-descendant.html
M Source/WebCore/dom/Element.cpp
M Source/WebCore/dom/Element.h
M Source/WebCore/rendering/RenderElement.h
M Source/WebCore/rendering/RenderElementStyleInlines.h
M Source/WebCore/rendering/RenderLayer.cpp
M Source/WebCore/rendering/RenderLayer.h
M Source/WebCore/rendering/RenderLayerCompositor.cpp
Log Message:
-----------
[HTML-in-Canvas] Don't composite anything inside a canvas with drawable
content
https://bugs.webkit.org/show_bug.cgi?id=327306
rdar://189848375
Reviewed by Said Abou-Hallawa.
Inside a canvas with drawable content, only layers of drawable elements
were kept from being composited. A composited layer nested elsewhere inside
the canvas was left out of the snapshot but still rendered directly on the
page, so parts of the canvas contents were missing from drawElementImage.
This PR marks layers inside a canvas with drawable content when they're
inserted and prevents them from being composited.
Test:
fast/canvas/draw-element-image/2d-drawElementImage-composited-descendant.html
*
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-composited-descendant-expected.html:
Added.
*
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-composited-descendant.html:
Added.
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::isInsideDrawableCanvas const):
(WebCore::Element::isCanvasDrawable const):
* Source/WebCore/dom/Element.h:
* Source/WebCore/rendering/RenderElement.h:
* Source/WebCore/rendering/RenderElementStyleInlines.h:
(WebCore::RenderElement::isInsideDrawableCanvas const):
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateAncestorDependentState):
* Source/WebCore/rendering/RenderLayer.h:
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::canBeComposited const):
Canonical link: https://commits.webkit.org/323625@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications