Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dc7aed5d4dc6e98d4f0832ceb97c02a085c93379
      
https://github.com/WebKit/WebKit/commit/dc7aed5d4dc6e98d4f0832ceb97c02a085c93379
  Author: Oriol Brufau <obru...@igalia.com>
  Date:   2022-11-16 (Wed, 16 Nov 2022)

  Changed paths:
    A 
LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-getPropertyValue-common-checks-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-getPropertyValue-common-checks.html
    M Source/WebCore/css/StyleProperties.cpp
    M Source/WebCore/css/StyleProperties.h

  Log Message:
  -----------
  [cssom] Don't serialize shorthand if longhands have different importance
https://bugs.webkit.org/show_bug.cgi?id=247771

Reviewed by Darin Adler.

When some longhand is !important and another isn't, then the shorthand
should serialize as empty string. But most shorthands weren't checking.

This change brings consistency and matches Gecko, Blink and the spec:
https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-getpropertyvalue

Test: 
imported/w3c/web-platform-tests/css/cssom/cssom-getPropertyValue-common-checks.html

The test still has several failures, but the check for longhands with
different importance is now passing.

* 
LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-getPropertyValue-common-checks-expected.txt:
 Added.
Test expectation.

* 
LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-getPropertyValue-common-checks.html:
 Added.
New test.

* Source/WebCore/css/StyleProperties.cpp:
(WebCore::StyleProperties::commonShorthandChecks const):
This method replaces shorthandHasVariableReference. It has a different
name since it now it also checks for importance, and in the future it
should check for even more things so that the test fully passes.

(WebCore::StyleProperties::getPropertyValue const):
Use commonShorthandChecks instead of the old shorthandHasVariableReference.
Assert that all shorthands have serialization logic.

(WebCore::StyleProperties::get2Values const):
Important flags are now checked in commonShorthandChecks().

(WebCore::StyleProperties::get4Values const):
Important flags are now checked in commonShorthandChecks().

(WebCore::StyleProperties::getCommonValue const):
Important flags are now checked in commonShorthandChecks().

(WebCore::StyleProperties::borderImagePropertyValue const):
Important flags are now checked in commonShorthandChecks().

(WebCore::StyleProperties::shorthandHasVariableReference const): Deleted.
Renamed to commonShorthandChecks.

* Source/WebCore/css/StyleProperties.h:
Rename shorthandHasVariableReference to commonShorthandChecks.

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to