[webkit-changes] [WebKit/WebKit] de28c5: [CSS] Tokenizer should distinguish newline from wh...
Zak Ridouh
noreply at github.com
Sat Aug 10 09:43:21 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: de28c5277420b12db5bfcc0483ec65950b7bc53d
https://github.com/WebKit/WebKit/commit/de28c5277420b12db5bfcc0483ec65950b7bc53d
Author: Zak Ridouh <zakr at apple.com>
Date: 2024-08-10 (Sat, 10 Aug 2024)
Changed paths:
A LayoutTests/fast/css/test-at-supports-newline-expected.txt
A LayoutTests/fast/css/test-at-supports-newline.html
M LayoutTests/imported/w3c/web-platform-tests/css/css-syntax/custom-property-rule-ambiguity-expected.txt
M Source/WebCore/Headers.cmake
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/css/CSSValue.h
M Source/WebCore/css/calc/CSSCalcExpressionNodeParser.cpp
M Source/WebCore/css/parser/CSSParserImpl.cpp
M Source/WebCore/css/parser/CSSParserToken.cpp
M Source/WebCore/css/parser/CSSParserToken.h
M Source/WebCore/css/parser/CSSParserTokenRange.cpp
M Source/WebCore/css/parser/CSSParserTokenRange.h
M Source/WebCore/css/parser/CSSSelectorParser.cpp
M Source/WebCore/css/parser/CSSSupportsParser.cpp
M Source/WebCore/css/parser/CSSTokenizer.cpp
M Source/WebCore/css/parser/CSSTokenizer.h
M Source/WebCore/css/parser/CSSTokenizerInputStream.cpp
M Source/WebCore/css/parser/CSSTokenizerInputStream.h
M Source/WebCore/css/parser/SizesCalcParser.cpp
M Source/WebCore/html/track/WebVTTTokenizer.cpp
M Source/WebCore/platform/graphics/Color.h
M Source/WebCore/platform/text/SegmentedString.h
M Tools/TestWebKitAPI/CMakeLists.txt
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
M Tools/TestWebKitAPI/Tests/WebCore/CSSParser.cpp
A Tools/TestWebKitAPI/Tests/WebCore/CSSTokenizerTests.cpp
Log Message:
-----------
[CSS] Tokenizer should distinguish newline from whitespace
https://bugs.webkit.org/show_bug.cgi?id=276431
rdar://131474098
Reviewed by Darin Adler.
Preserve newlines in Custom CSS Properties. Write unit tests to test the CSSTokenizer and the CSSParser.
* LayoutTests/fast/css/test-at-supports-newline-expected.txt: Added.
* LayoutTests/fast/css/test-at-supports-newline.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-syntax/custom-property-rule-ambiguity-expected.txt:
* Source/WebCore/Headers.cmake:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/css/CSSValue.h:
* Source/WebCore/css/calc/CSSCalcExpressionNodeParser.cpp:
(WebCore::CSSCalcExpressionNodeParser::parseCalcFunction):
(WebCore::CSSCalcExpressionNodeParser::parseValue):
(WebCore::CSSCalcExpressionNodeParser::parseCalcProduct):
(WebCore::CSSCalcExpressionNodeParser::parseCalcSum):
* Source/WebCore/css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeRuleList):
(WebCore::CSSParserImpl::consumeFontFeatureValuesRuleBlock):
(WebCore::CSSParserImpl::consumeBlockContent):
* Source/WebCore/css/parser/CSSParserToken.cpp:
(WebCore::CSSParserToken::CSSParserToken):
(WebCore::CSSParserToken::hasStringBacking const):
(WebCore::CSSParserToken::operator== const):
(WebCore::CSSParserToken::serialize const):
* Source/WebCore/css/parser/CSSParserToken.h:
* Source/WebCore/css/parser/CSSParserTokenRange.cpp:
(WebCore::CSSParserTokenRange::consumeBlockCheckingForEditability):
(WebCore::CSSParserTokenRange::trimTrailingWhitespace):
* Source/WebCore/css/parser/CSSParserTokenRange.h:
(WebCore::CSSParserTokenRange::consumeWhitespace):
* Source/WebCore/css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumeCombinator):
* Source/WebCore/css/parser/CSSSupportsParser.cpp:
(WebCore::CSSSupportsParser::consumeCondition):
(WebCore::CSSSupportsParser::consumeNegation):
* Source/WebCore/css/parser/CSSTokenizer.cpp:
(WebCore::CSSTokenizer::preprocessString):
(WebCore::CSSTokenizer::isWhitespace):
(WebCore::CSSTokenizer::isNewline):
(WebCore::CSSTokenizer::newline):
(WebCore::twoCharsAreValidEscape):
(WebCore::CSSTokenizer::whitespace):
(WebCore::CSSTokenizer::leftParenthesis):
(WebCore::CSSTokenizer::rightParenthesis):
(WebCore::CSSTokenizer::leftBracket):
(WebCore::CSSTokenizer::rightBracket):
(WebCore::CSSTokenizer::leftBrace):
(WebCore::CSSTokenizer::rightBrace):
(WebCore::CSSTokenizer::comma):
(WebCore::CSSTokenizer::colon):
(WebCore::CSSTokenizer::semiColon):
(WebCore::CSSTokenizer::endOfFile):
(WebCore::CSSTokenizer::consumeStringTokenUntil):
(WebCore::CSSTokenizer::consumeEscape):
(WebCore::isNewLine): Deleted.
(WebCore::CSSTokenizer::whiteSpace): Deleted.
* Source/WebCore/css/parser/CSSTokenizer.h:
* Source/WebCore/css/parser/CSSTokenizerInputStream.cpp:
(WebCore::CSSTokenizerInputStream::advanceUntilNonWhitespace):
(WebCore::CSSTokenizerInputStream::advanceUntilNewlineOrNonWhitespace):
* Source/WebCore/css/parser/CSSTokenizerInputStream.h:
* Source/WebCore/css/parser/SizesCalcParser.cpp:
(WebCore::SizesCalcParser::calcToReversePolishNotation):
* Source/WebCore/html/track/WebVTTTokenizer.cpp:
* Source/WebCore/platform/graphics/Color.h:
(WebCore::Color::Color):
* Source/WebCore/platform/text/SegmentedString.h:
* Tools/TestWebKitAPI/CMakeLists.txt:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebCore/CSSParser.cpp:
(TestWebKitAPI::TEST(CSSParser, ParseColorInput)):
(TestWebKitAPI::TEST(CSSParser, ParseColorWithNewlineAndWhitespacesInput)):
(TestWebKitAPI::TEST(CSSParser, ParseCustomPropertyWithNewlineInput)):
(TestWebKitAPI::TEST(CSSParser, ParseCustomPropertyWithNewlineAndWhitespacesInput)):
(TestWebKitAPI::TEST(CSSParser, ParseCustomPropertyWithNewlineBetweenIdentInput)):
(TestWebKitAPI::TEST(CSSParser, ParseColorPropertyWithNewlineBetweenIdentInput)):
(TestWebKitAPI::TEST(CSSParser, ParseTextTransformPropertyWithNewlineBetweenTwoIdentInput)):
(TestWebKitAPI::TEST(CSSPropertyParser, GridTrackLimits)):
(TestWebKitAPI::TEST(CSSPropertyParserTest, GridTrackLimits)): Deleted.
* Tools/TestWebKitAPI/Tests/WebCore/CSSTokenizerTests.cpp: Added.
(TestWebKitAPI::TEST(CSSTokenizerTest, TokenizeWhitespaceLikeInput)):
(TestWebKitAPI::TEST(CSSTokenizerTest, TokenizeIdentAndCommaInput)):
(TestWebKitAPI::TEST(CSSTokenizerTest, TokenizeMultipleWhitespaceInput)):
(TestWebKitAPI::TEST(CSSTokenizerTest, TokenizeNewlineTokenOnlyInput)):
(TestWebKitAPI::TEST(CSSTokenizerTest, TokenizeNewlineAndWhitespaceInput)):
(TestWebKitAPI::TEST(CSSTokenizerTest, TokenizeNewlineWhitespaceAndIdentInput)):
(TestWebKitAPI::TEST(CSSTokenizerTest, TokenizeURLWithProperInput)):
(TestWebKitAPI::TEST(CSSTokenizerTest, TokenizeURLWithNewlineWhitespaceInput)):
Canonical link: https://commits.webkit.org/282084@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list