[webkit-changes] [WebKit/WebKit] dc51e7: Add <input type=checkbox switch> internal pseudo-e...

Anne van Kesteren noreply at github.com
Tue Oct 31 17:05:51 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dc51e7fcb906549a53e52f7c08dbb399f134334e
      https://github.com/WebKit/WebKit/commit/dc51e7fcb906549a53e52f7c08dbb399f134334e
  Author: Anne van Kesteren <annevk at annevk.nl>
  Date:   2023-10-31 (Tue, 31 Oct 2023)

  Changed paths:
    M Source/WebCore/css/CSSSelector.cpp
    M Source/WebCore/css/CSSSelector.h
    M Source/WebCore/css/SelectorPseudoElementTypeMap.in
    M Source/WebCore/css/htmlSwitchControl.css
    M Source/WebCore/css/parser/CSSParserSelector.cpp
    M Source/WebCore/css/parser/CSSParserSelector.h
    M Source/WebCore/css/parser/CSSSelectorParser.cpp
    M Source/WebCore/html/shadow/ShadowPseudoIds.cpp
    M Source/WebCore/html/shadow/ShadowPseudoIds.h
    M Source/WebCore/html/shadow/SwitchThumbElement.cpp
    M Source/WebCore/html/shadow/SwitchThumbElement.h
    M Source/WebCore/html/shadow/SwitchTrackElement.cpp
    M Source/WebCore/html/shadow/SwitchTrackElement.h
    M Source/WebCore/rendering/RenderTheme.cpp

  Log Message:
  -----------
  Add <input type=checkbox switch> internal pseudo-elements
https://bugs.webkit.org/show_bug.cgi?id=263928
rdar://117708673

Reviewed by Aditya Keerthi and Antti Koivisto.

Changing the internal appearance of internal shadow tree elements in
resolveCustomStyle() does not work completely as this is too late for
Adjuster::adjust() to consider it having an appearance for the purposes
of theming. In particular it does not allow us to set intrinsic sizes
for these elements.

As such, internal shadow tree elements need to have appearance:inherit
declared upon them upfront in a user agent style sheet.

As we are planning on eventually supporting pseudo-elements for the
track and thumb of switches, add those now, but only expose them
internally until we are sure they match the eventual standard. These
pseudo-elements can then be used to set appearance:inherit in the user
agent style sheet on the internal shadow tree elements.

This appearance value (when it computes to auto) means that
autoAppearanceForElement() is invoked at which point we can then map
them to the appropriate internal values for the track and thumb.

* Source/WebCore/css/CSSSelector.cpp:
(WebCore::CSSSelector::parsePseudoElementType):
* Source/WebCore/css/CSSSelector.h:
* Source/WebCore/css/SelectorPseudoElementTypeMap.in:
* Source/WebCore/css/htmlSwitchControl.css:
(input[type="checkbox"][switch]::thumb, input[type="checkbox"][switch]::track):
* Source/WebCore/css/parser/CSSParserSelector.cpp:
(WebCore::CSSParserSelector::parsePseudoElementSelector):
* Source/WebCore/css/parser/CSSParserSelector.h:
* Source/WebCore/css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumePseudo):
* Source/WebCore/html/shadow/ShadowPseudoIds.cpp:
(WebCore::ShadowPseudoIds::thumb):
(WebCore::ShadowPseudoIds::track):
* Source/WebCore/html/shadow/ShadowPseudoIds.h:
* Source/WebCore/html/shadow/SwitchThumbElement.cpp:
(WebCore::SwitchThumbElement::create):
(WebCore::SwitchThumbElement::resolveCustomStyle): Deleted.
* Source/WebCore/html/shadow/SwitchThumbElement.h:
* Source/WebCore/html/shadow/SwitchTrackElement.cpp:
(WebCore::SwitchTrackElement::create):
(WebCore::SwitchTrackElement::resolveCustomStyle): Deleted.
* Source/WebCore/html/shadow/SwitchTrackElement.h:
* Source/WebCore/rendering/RenderTheme.cpp:
(WebCore::RenderTheme::autoAppearanceForElement const):

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




More information about the webkit-changes mailing list