Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9adcbe8f12b9c117447569ca9d6e1cc28d934ae8
https://github.com/WebKit/WebKit/commit/9adcbe8f12b9c117447569ca9d6e1cc28d934ae8
Author: Darin Adler <[email protected]>
Date: 2022-11-16 (Wed, 16 Nov 2022)
Changed paths:
M Source/WebCore/css/CSSSelector.cpp
M Source/WebCore/css/CSSSelector.h
M Source/WebCore/inspector/InspectorStyleSheet.cpp
Log Message:
-----------
Refactor the code that handles selector specificity for simplicity and remove
unused functions
https://bugs.webkit.org/show_bug.cgi?id=247851
rdar://problem/102281644
Reviewed by Sam Weinig.
* Source/WebCore/css/CSSSelector.cpp:
(WebCore::CSSSelector::CSSSelector): Removed the m_ prefixes from struct
members.
(WebCore::CSSSelector::createRareData): Get rid of the local AtomString here.
Clearer without.
(WebCore::SelectorSpecificity): Added a struct to wrap a selector specificity
value, so we can
convert from the enum without a static_cast and use the + and += operators for
saturating
addition of each channel in parallel.
(WebCore::SelectorSpecificity::operator+=): Implemented. Replaces
addSpecificities.
(WebCore::operator+): Implemented by calling +=.
(WebCore::selectorSpecificity): Use SelectorSpecificity.
(WebCore::maxSpecificity): Ditto. Also changed to take a pointer and check for
null since that
simplifies the code below.
(WebCore::simpleSelectorSpecificity): Renamed from
simpleSelectorSpecificityInternal and changed
the return value to SelectorSpecificity. Removed now-unneeded static_cast and
use + instead of
CSSSelector::addSpecificities.
(WebCore::CSSSelector::simpleSelectorSpecificity const): Deleted.
(WebCore::CSSSelector::computeSpecificity const): Updated for
SelectorSpecificity.
(WebCore::CSSSelector::computeSpecificityTuple const): Added. This is for the
inspector code
that wants the three different components of specifity as separate integers.
(WebCore::CSSSelector::addSpecificities): Deleted.
(WebCore::appendPseudoClassFunctionTail): Removed the m_ prefixes from struct
members.
(WebCore::CSSSelector::setAttribute): Ditto.
(WebCore::CSSSelector::setArgument): Ditto.
(WebCore::CSSSelector::setArgumentList): Ditto.
(WebCore::CSSSelector::setSelectorList): Ditto.
(WebCore::CSSSelector::setNth): Ditto.
(WebCore::CSSSelector::matchNth const): Ditto.
(WebCore::CSSSelector::nthA const): Ditto.
(WebCore::CSSSelector::nthB const): Ditto.
(WebCore::CSSSelector::RareData::RareData): Use WTFMove to eliminate a bit of
reference count
churn. Moved more initialization to the class definition.
(WebCore::CSSSelector::RareData::create): Moved here from the header, since
this is only called
from inside this file. Changed argument type to just AtomString, which is still
compatible with
moving new values in and more straightforward.
(WebCore::CSSSelector::RareData::matchNth): Removed the m_ prefixes from struct
members.
* Source/WebCore/css/CSSSelector.h: Removed idMask, classMask,
simpleSelectorSpecificity, and
addSpecificities, none of which are needed outside the class. Added
computeSpecificityTuple
for use by the inspector. Changed struct members to not use the m_ syntax; we
do that for
private class members, not struct members. Updated the RareData::create
function and initialized
a, and b in RareData.
* Source/WebCore/inspector/InspectorStyleSheet.cpp:
(WebCore::buildObjectForSelectorHelper): Use computeSpecificityTuple.
Canonical link: https://commits.webkit.org/256769@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes