Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6c9ee442b2409e4ae8e831adb539b5b0edb9a125
      
https://github.com/WebKit/WebKit/commit/6c9ee442b2409e4ae8e831adb539b5b0edb9a125
  Author: Said Abou-Hallawa <[email protected]>
  Date:   2026-10-11 (Sun, 11 Oct 2026)

  Changed paths:
    A 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-nested-drawable-expected.html
    A 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-nested-drawable.html
    A 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-rotated-text-expected.html
    A 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-rotated-text.html
    A 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-transparent-rect-expected.html
    A 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-transparent-rect.html
    A LayoutTests/fast/canvas/draw-element-image/resources/wolf.jpg
    M LayoutTests/platform/win/TestExpectations
    M Source/WebCore/rendering/RenderHTMLCanvas.cpp
    M Source/WebCore/rendering/RenderHTMLCanvas.h
    M Source/WebCore/rendering/RenderReplaced.cpp
    M Source/WebCore/rendering/RenderReplaced.h

  Log Message:
  -----------
  [HTML-in-Canvas] Recoding a canvas drawable element should happen only once
https://bugs.webkit.org/show_bug.cgi?id=327085
rdar://189703292

Reviewed by Taher Ali.

Currently, painting accumulates into a single DisplayList::RecorderImpl until 
the
next layout. But a repaint can be requested between two layouts, so the recorder
ends up holding the same painting more than once. The recorder's lifetime should
be tied to the implicit paint event request instead.

For now, so that layout tests can be added, the recorder is cleared on every 
paint.
323295@main made painting of the canvas drawable element atomic, so the request
for an empty recorder during a paint should happen only once.

Tests: fast/canvas/draw-element-image/2d-drawElementImage-nested-drawable.html
       fast/canvas/draw-element-image/2d-drawElementImage-rotated-text.html
       fast/canvas/draw-element-image/2d-drawElementImage-transparent-rect.html

* 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-nested-drawable-expected.html:
 Added.
* 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-nested-drawable.html:
 Added.
* 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-rotated-text-expected.html:
 Added.
* 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-rotated-text.html:
 Added.
* 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-transparent-rect-expected.html:
 Added.
* 
LayoutTests/fast/canvas/draw-element-image/2d-drawElementImage-transparent-rect.html:
 Added.
* LayoutTests/fast/canvas/draw-element-image/resources/wolf.jpg: Added.
* LayoutTests/platform/win/TestExpectations:
* Source/WebCore/rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::canvasDrawableRecorder const):
* Source/WebCore/rendering/RenderHTMLCanvas.h:
* Source/WebCore/rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldPaint):
* Source/WebCore/rendering/RenderReplaced.h:
(WebCore::RenderReplaced::hasDrawableContent const):

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



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

Reply via email to