[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