Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3dde8827051a9b051f6614f5956ee9ca6e1cbc31
      
https://github.com/WebKit/WebKit/commit/3dde8827051a9b051f6614f5956ee9ca6e1cbc31
  Author: Darin Adler <[email protected]>
  Date:   2022-10-23 (Sun, 23 Oct 2022)

  Changed paths:
    M LayoutTests/fast/css/font-shorthand-mix-inherit-expected.txt
    M LayoutTests/fast/css/font-shorthand-mix-inherit.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/test_font_family_parsing-expected.txt
    R 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/target-text-007-expected.txt
    M Source/WebCore/css/FontSelectionValueInlines.h
    M Source/WebCore/css/parser/CSSPropertyParser.cpp
    M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp
    M Source/WebCore/css/parser/CSSPropertyParserHelpers.h

  Log Message:
  -----------
  font shorthand should not reject values that happen to have CSS-wide keywords 
as non-first identifiers in a font family name
https://bugs.webkit.org/show_bug.cgi?id=246570
rdar://problem/101459948

Reviewed by Tim Nguyen.

* LayoutTests/fast/css/font-shorthand-mix-inherit-expected.txt: Updated to 
match the new test below
including different expectations for some test cases.
* LayoutTests/fast/css/font-shorthand-mix-inherit.html: Changed to expect 
allowing CSS-wide keywords
in cases where they are supposed to be allowed. Refined the test to be simpler 
and so the test output
is easier to understand.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/test_font_family_parsing-expected.txt:

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/target-text-007-expected.txt:
 Removed.
This was an unnecessary ignored file since this is a reference test. Not 
related to the code change.

* Source/WebCore/css/FontSelectionValueInlines.h: Removed unused isCSS21Weight 
function.

* Source/WebCore/css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFontVariantCSS21): Deleted. Rolled this in to the one place it 
was used. This
helps make it clear that place was doing some unnecessary redundant work, and 
gets rid of the fairly
unclear name of this function.
(WebCore::CSSPropertyParser::consumeFont): Removed unnecessary and incorrect 
check for inherit and
initial keywords. The individual parsing steps already forbid those as 
appropriate, and allow them
in the case that was causing this bug. I have some doubts about whether this 
function correctly
returns true vs. false in all cases and what it consumes when it fails, but 
those don't seem to have
observable effects at this time, so I left that as is. Also tightened up the 
idiom in the loop that
parses the style, variant, weight, and stretch so it's easier to see an 
overview of it.

* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp: Fixed the "interger" 
typo throughout
this file.
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberRawAllowingSymbolTableIdent): 
Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentRaw): Made local to this 
file, and removed
the ValueRange argument.
(WebCore::CSSPropertyParserHelpers::consumePercentRawAllowingSymbolTableIdent): 
Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRaw): Made local to this file.
(WebCore::CSSPropertyParserHelpers::consumeAngleOrPercent): Removed the 
ValueRange, UnitlessQuirk,
UnitlessZeroQuirk, and CSSValuePool arguments.
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercentRaw): Made local to 
this file
and removed the ValueRange and UnitlessQuirk arguments.
(WebCore::CSSPropertyParserHelpers::consumeAngleOrNumberRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleOrNumberRawAllowingSymbolTableIdent):
 Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentRawAllowingSymbolTableIdent):
 Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberOrNoneRawAllowingSymbolTableIdent):
 Deleted.
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumberRaw): Made local to 
this file.
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeIdentRangeRaw): Made local to this 
file.
(WebCore::CSSPropertyParserHelpers::consumeFontVariantCSS21Raw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeFontWeightKeywordValueRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeFontWeightRaw): Moved the font 
weight keyword list
in here instead of a separate function.
(WebCore::CSSPropertyParserHelpers::consumeGenericFamilyRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeFontFamilyRaw): Made local to this 
file. Moved the
generic family range here instead of a separate function.
(WebCore::CSSPropertyParserHelpers::consumeFontSizeRaw): Made local to this 
file. Removed the
UnitlessQuirk argument.
(WebCore::CSSPropertyParserHelpers::consumeLineHeightRaw): Made local to this 
file.
(WebCore::CSSPropertyParserHelpers::consumeFontRaw): Removed unnecessary and 
incorrect check for
inherit and initial keywords. The individual parsing steps already forbid those 
as appropriate.
Also tightened up the idiom in the loop that parses the style, variant, weight, 
and stretch so
it's easier to see an overview of it.

* Source/WebCore/css/parser/CSSPropertyParserHelpers.h: Removed 
NumberOrPercentRaw,
NumberOrNoneRaw, PercentOrNoneRaw, NumberOrPercentOrNoneRaw, AngleOrNumberRaw,
AngleOrNumberOrNoneRaw, consumeFontWeightNumberRaw, consumeFontWeightNumber,
consumeLengthRaw, consumePercentRaw, consumeLengthOrPercentRaw, consumeAngleRaw,
consumeIdentRangeRaw, consumeFontVariantCSS21Raw, 
consumeFontWeightKeywordValueRaw,
consumeGenericFamilyRaw, consumeFontFamilyRaw, consumeFontSizeRaw, and 
consumeLineHeightRaw,
since none are used outside CSSPropertyParserHelpers.cpp.

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to