[webkit-changes] [WebKit/WebKit] daaddb: Reject empty path string when parsing offset-path ...

Darin Adler noreply at github.com
Fri Dec 8 21:16:22 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: daaddb2470406dd65ba77d155c03b0e6eb60c047
      https://github.com/WebKit/WebKit/commit/daaddb2470406dd65ba77d155c03b0e6eb60c047
  Author: Darin Adler <darin at apple.com>
  Date:   2023-12-08 (Fri, 08 Dec 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/clip-path-invalid-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-invalid-expected.txt
    M Source/WebCore/css/CSSProperties.json
    M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp
    M Source/WebCore/css/parser/CSSPropertyParserHelpers.h

  Log Message:
  -----------
  Reject empty path string when parsing offset-path and clip-path
https://bugs.webkit.org/show_bug.cgi?id=265666
rdar://119034794

Reviewed by Tim Nguyen.

Reject empty paths. Reject fill rules for offset-path.

This is what the WPT tests expect, although I can't find any specification that clearly
asks for either of these behaviors. It's expedient for now to match the tests and the
other browsers, although it would be better if the specification matched.

* LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/clip-path-invalid-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-invalid-expected.txt:
Expect more PASS.

* Source/WebCore/css/CSSProperties.json: Changed parameters for consumePathOperation
from ConsumeRay::Exclude/Include to RejectRay and RejectFillRule.

* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeBasicShapePath): Added support for
RejectFillRule. Reject empty paths.
(WebCore::CSSPropertyParserHelpers::consumeBasicShape): Added options passed
through to consumeBasicShapePath.
(WebCore::CSSPropertyParserHelpers::consumeBasicShapeRayOrBox): Take options
instead of the consumeRay argument. Pass the options through to consumeBasicShape,
and implement the RejectRay option.
(WebCore::CSSPropertyParserHelpers::consumePathOperation): Take options instead
of the consumeRay argument.
(WebCore::CSSPropertyParserHelpers::consumeShapeOutside): Pass options to consumeBasicShape.

* Source/WebCore/css/parser/CSSPropertyParserHelpers.h: Added PathParsingOption, removed
PathParsingOption. Made consumePathOperation take options instead of the consumeRay argument.

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




More information about the webkit-changes mailing list