[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