Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0b0286ed2a676c84ff1ef81d26ed2b37e0ce7f84
      
https://github.com/WebKit/WebKit/commit/0b0286ed2a676c84ff1ef81d26ed2b37e0ce7f84
  Author: Gerald Squelart <[email protected]>
  Date:   2025-12-23 (Tue, 23 Dec 2025)

  Changed paths:
    A 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-expected.html
    A 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-alone-expected.html
    A 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-alone.html
    A 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended-expected.html
    A 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended-left-expected.html
    A 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended-left.html
    A 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended-right-expected.html
    A 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended-right.html
    A 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended.html
    A LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075.html
    M LayoutTests/fast/attachment/resources/attachment-test-utils.js
    M Source/WebCore/html/HTMLAttachmentElement.cpp
    M Source/WebCore/html/HTMLAttachmentElement.h
    M Source/WebCore/html/shadow/attachmentElementShadow.css
    M Source/WebCore/rendering/RenderAttachment.cpp
    M Source/WebCore/rendering/RenderAttachment.h
    M Source/WebCore/testing/Internals.cpp
    M Source/WebCore/testing/Internals.h
    M Source/WebCore/testing/Internals.idl
    M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h

  Log Message:
  -----------
  Let RenderAttachment handle the rendering of the selected state
https://bugs.webkit.org/show_bug.cgi?id=304374
rdar://111200272

Reviewed by Cameron McCormack.

Instead of the default tinted transparent overlay (which modifies all
colors), attachments now handle the selected state by only modifying the
main brick background color, similar to how selected text only changes
its background-color.

When the renderer's selection state changes, CSS classes are added or
removed to control the eventual painting.

Bonus: The selection state also specifies if the selection ends at the
element or continues outside, so the border radius can be removed when
the selection continues outside of the element, otherwise gaps would be
visible at the corners.

This patch also adds a new type of reference tests, where the actual
attachment brick (with its shadow tree) is compared to a made-up pure
HTML DOM tree with the same styling, but where sub-elements can be
individually tweaked to match test expectations.

* 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-expected.html:
 Added.
* 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-alone-expected.html:
 Added.
* 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-alone.html:
 Added.
* 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended-expected.html:
 Added.
* 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended-left-expected.html:
 Added.
* 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended-left.html:
 Added.
* 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended-right-expected.html:
 Added.
* 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended-right.html:
 Added.
* 
LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075-selected-extended.html:
 Added.
* LayoutTests/fast/attachment/cocoa/wide-attachment-ref-progress-075.html: 
Added.
* LayoutTests/fast/attachment/resources/attachment-test-utils.js:
(assertInAttachmentTest): Actually surface script assertion failures
(takeScreenshot):
(takeScreenshotWhenAttachmentsSettled):
(AugmentDivWithAttachmentTree.addChild):
(AugmentDivWithAttachmentTree):
(AugmentAttachmentClassElementsWithAttachmentTree):
* Source/WebCore/html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::shadowUserAgentStyleSheetText):
(WebCore::HTMLAttachmentElement::ensureWideLayoutShadowTree):
(WebCore::attachmentClassHasSelection):
(WebCore::attachmentClassSelectionContinuesLeft):
(WebCore::attachmentClassSelectionContinuesRight):
(WebCore::HTMLAttachmentElement::addSelectionClasses):
* Source/WebCore/html/HTMLAttachmentElement.h:
* Source/WebCore/html/shadow/attachmentElementShadow.css:
(div#attachment-container.attachment-has-selection):
(div#attachment-container.attachment-selection-continues-left):
(div#attachment-container.attachment-selection-continues-right):
(div#attachment-background):
* Source/WebCore/rendering/RenderAttachment.cpp:
(WebCore::RenderAttachment::setSelectionState):
* Source/WebCore/rendering/RenderAttachment.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::attachmentElementShadowUserAgentStyleSheet const):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
(WTR::TestRunner::isVision const):

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



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

Reply via email to