Fix getPropertyValue() and setProperty() behavior for 'all' [chromium/src : main]

0 views
Skip to first unread message

Suyeon Ji (Gerrit)

unread,
Feb 16, 2026, 12:23:14 PMFeb 16
to Rune Lillesveen, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Rune Lillesveen

Suyeon Ji added 1 comment

Patchset-level comments
File-level comment, Patchset 7 (Latest):
Suyeon Ji . resolved

Hi, Please take a look. Thank you.

Open in Gerrit

Related details

Attention is currently required from:
  • Rune Lillesveen
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
Gerrit-Change-Number: 7579493
Gerrit-PatchSet: 7
Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-Attention: Rune Lillesveen <fut...@chromium.org>
Gerrit-Comment-Date: Mon, 16 Feb 2026 17:22:40 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Rune Lillesveen (Gerrit)

unread,
Feb 23, 2026, 5:46:28 PMFeb 23
to Suyeon Ji, Rune Lillesveen, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Suyeon Ji

Rune Lillesveen added 1 comment

File third_party/blink/renderer/core/css/parser/css_parser.cc
Line 205, Patchset 7 (Latest): }
Rune Lillesveen . unresolved

Is this the only place where we should handle this?

Did you consider doing this in SetLonghandProperty()?

Open in Gerrit

Related details

Attention is currently required from:
  • Suyeon Ji
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
    Gerrit-Change-Number: 7579493
    Gerrit-PatchSet: 7
    Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
    Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
    Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
    Gerrit-CC: Menard, Alexis <alexis...@intel.com>
    Gerrit-Attention: Suyeon Ji <zees...@gmail.com>
    Gerrit-Comment-Date: Mon, 23 Feb 2026 22:46:12 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Suyeon Ji (Gerrit)

    unread,
    Feb 25, 2026, 1:28:08 AMFeb 25
    to Rune Lillesveen, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
    Attention needed from Rune Lillesveen

    Suyeon Ji added 1 comment

    File third_party/blink/renderer/core/css/parser/css_parser.cc
    Line 205, Patchset 7: }
    Rune Lillesveen . resolved

    Is this the only place where we should handle this?

    Did you consider doing this in SetLonghandProperty()?

    Suyeon Ji

    I did consider putting this in SetLonghandProperty(). However, this function is called from both the declarative path (cssText) and the imperative path (setProperty).
    If it were placed in SetLonghandProperty(), RemovePropertiesAffectedByAll() would run during the declarative path as well (like in patchset 8), which breaks the InlineAll test in CascadeExpansionTest. In the declarative path, all three entries in "left:1px; all:unset; right:1px" need to be preserved for cascade expansion to work correctly.
    That's why patchset 7 called RemovePropertiesAffectedByAll() in CSSParser::ParseValue (imperative-only path) to remove existing longhands when setting all.

    But after thinking about your comment more, I think rather than deleting longhands with RemovePropertiesAffectedByAll() when setProperty() is called, it would be better to move the all entry to the end of the property vector and determine priority between all and longhands at read time. This way both declarative and imperative paths maintain consistent behavior. StylePropertySerializer[1] already has a similar pattern, so I think I can leverage that.

    I'll try this approach and ping you again. Thanks!

    [1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/css/style_property_serializer.cc;l=131;drc=0bd06bf896dd685d16fa790986344929e12ed5a6;bpv=0;bpt=1

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Rune Lillesveen
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
      Gerrit-Change-Number: 7579493
      Gerrit-PatchSet: 9
      Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
      Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
      Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-Attention: Rune Lillesveen <fut...@chromium.org>
      Gerrit-Comment-Date: Wed, 25 Feb 2026 06:27:41 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Rune Lillesveen <fut...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Suyeon Ji (Gerrit)

      unread,
      Mar 1, 2026, 12:46:11 AMMar 1
      to Rune Lillesveen, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Rune Lillesveen and Suyeon Ji

      Message from Suyeon Ji

      Set Ready For Review

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Rune Lillesveen
      • Suyeon Ji
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
      Gerrit-Change-Number: 7579493
      Gerrit-PatchSet: 10
      Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
      Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
      Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-Attention: Suyeon Ji <zees...@gmail.com>
      Gerrit-Attention: Rune Lillesveen <fut...@chromium.org>
      Gerrit-Comment-Date: Sun, 01 Mar 2026 05:45:31 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Suyeon Ji (Gerrit)

      unread,
      Mar 1, 2026, 12:50:57 AMMar 1
      to Rune Lillesveen, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Rune Lillesveen

      Suyeon Ji added 1 comment

      Patchset-level comments
      File-level comment, Patchset 10 (Latest):
      Suyeon Ji . resolved

      Hi, I've uploaded a new patchset.
      Now, when SetLonghandProperty() is called, instead of removing properties, it moves the target property to the end of the set. This applies whether we are setting all itself or a longhand affected by all. Similar to StylePropertySerializer, this allows us to satisfy the spec by comparing indices. Could you take another look?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Rune Lillesveen
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
      Gerrit-Change-Number: 7579493
      Gerrit-PatchSet: 10
      Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
      Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
      Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-Attention: Rune Lillesveen <fut...@chromium.org>
      Gerrit-Comment-Date: Sun, 01 Mar 2026 05:50:21 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rune Lillesveen (Gerrit)

      unread,
      Mar 3, 2026, 10:29:38 AMMar 3
      to Suyeon Ji, Rune Lillesveen, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Suyeon Ji

      Rune Lillesveen voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Suyeon Ji
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
      Gerrit-Change-Number: 7579493
      Gerrit-PatchSet: 10
      Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
      Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
      Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-Attention: Suyeon Ji <zees...@gmail.com>
      Gerrit-Comment-Date: Tue, 03 Mar 2026 15:29:22 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Jinho Bang (Gerrit)

      unread,
      Mar 3, 2026, 6:08:44 PMMar 3
      to Suyeon Ji, Rune Lillesveen, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Suyeon Ji

      Jinho Bang voted

      Code-Review+1
      Commit-Queue+2
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Suyeon Ji
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
        Gerrit-Change-Number: 7579493
        Gerrit-PatchSet: 10
        Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
        Gerrit-Reviewer: Jinho Bang <zi...@chromium.org>
        Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
        Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
        Gerrit-CC: Menard, Alexis <alexis...@intel.com>
        Gerrit-Attention: Suyeon Ji <zees...@gmail.com>
        Gerrit-Comment-Date: Tue, 03 Mar 2026 23:08:08 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Chromium LUCI CQ (Gerrit)

        unread,
        Mar 3, 2026, 7:30:57 PMMar 3
        to Suyeon Ji, Jinho Bang, Rune Lillesveen, AyeAye, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

        Chromium LUCI CQ submitted the change

        Change information

        Commit message:
        Fix getPropertyValue() and setProperty() behavior for 'all'

        According to the CSS spec[1], the 'all' property is a shorthand.
        Shorthands, especially 'all', can reset all CSS properties (except 'direction', 'unicode-bidi', custom properties) to a given value.

        However, Chromium currently does not follow the spec.
        First, setProperty('all') does not reset all properties. So when
        querying properties affected by 'all', the correct value is not
        returned.
        Second, for a shorthand, getPropertyValue()[2] should return the
        serialized value of its longhands, but currently 'all' does not
        do this.

        This patch fixes the behavior to match the specification.

        [1]: https://drafts.csswg.org/css-cascade/#all-shorthand
        [2]: https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-getpropertyvalue
        Bug: 388039764, 387828392
        Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
        Reviewed-by: Rune Lillesveen <fut...@chromium.org>
        Reviewed-by: Jinho Bang <zi...@chromium.org>
        Commit-Queue: Jinho Bang <zi...@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#1593609}
        Files:
        • M third_party/blink/renderer/core/css/css_property_value_set.cc
        • D third_party/blink/web_tests/external/wpt/css/cssom/cssstyledeclaration-all-shorthand-expected.txt
        Change size: M
        Delta: 2 files changed, 44 insertions(+), 7 deletions(-)
        Branch: refs/heads/main
        Submit Requirements:
        • requirement satisfiedCode-Review: +1 by Rune Lillesveen, +1 by Jinho Bang
        Open in Gerrit
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: merged
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
        Gerrit-Change-Number: 7579493
        Gerrit-PatchSet: 11
        Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: Jinho Bang <zi...@chromium.org>
        Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
        Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
        open
        diffy
        satisfied_requirement

        Jinho Bang (Gerrit)

        unread,
        Mar 4, 2026, 7:37:56 AMMar 4
        to Suyeon Ji, Chromium LUCI CQ, Rune Lillesveen, AyeAye, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

        Jinho Bang has created a revert of this change

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: revert
        satisfied_requirement
        open
        diffy

        Jinho Bang (Gerrit)

        unread,
        Mar 4, 2026, 8:05:17 AMMar 4
        to Suyeon Ji, Chromium LUCI CQ, Rune Lillesveen, AyeAye, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
        Attention needed from Suyeon Ji

        Jinho Bang added 1 comment

        File third_party/blink/renderer/core/css/css_property_value_set.cc
        Line 276, Patchset 11 (Latest): if (CSSProperty::Get(property).IsAffectedByAll()) {
        Jinho Bang . unresolved

        I didn't realize this, but IsAffectedByAll() will return true in most cases. The intended behavior is probably to only consider this when the `all` property actually exists in the property set, but as it stands, this logic will run in most cases. I'm not sure but I think we need something like a bit flag to ensure this only applies when the `all` property is present.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Suyeon Ji
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
        Gerrit-Change-Number: 7579493
        Gerrit-PatchSet: 11
        Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: Jinho Bang <zi...@chromium.org>
        Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
        Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
        Gerrit-CC: Menard, Alexis <alexis...@intel.com>
        Gerrit-Attention: Suyeon Ji <zees...@gmail.com>
        Gerrit-Comment-Date: Wed, 04 Mar 2026 13:04:45 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        open
        diffy

        chromeperf@appspot.gserviceaccount.com (Gerrit)

        unread,
        Mar 7, 2026, 2:34:20 AMMar 7
        to Suyeon Ji, Chromium LUCI CQ, Jinho Bang, Rune Lillesveen, AyeAye, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
        Attention needed from Suyeon Ji

        Message from chrom...@appspot.gserviceaccount.com

        😿 Job linux-r350-perf/blink_perf.css failed.

        See results at: https://pinpoint-dot-chromeperf.appspot.com/job/10fd0768090000

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Suyeon Ji
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Iaf1c7d6ca403dc57863ed72c5c79a5be4fc293c5
        Gerrit-Change-Number: 7579493
        Gerrit-PatchSet: 11
        Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: Jinho Bang <zi...@chromium.org>
        Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
        Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
        Gerrit-CC: Menard, Alexis <alexis...@intel.com>
        Gerrit-Attention: Suyeon Ji <zees...@gmail.com>
        Gerrit-Comment-Date: Sat, 07 Mar 2026 07:34:10 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: No
        satisfied_requirement
        open
        diffy

        Suyeon Ji (Gerrit)

        unread,
        Mar 13, 2026, 7:24:48 PMMar 13
        to Chromium LUCI CQ, AyeAye, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

        Suyeon Ji added 2 comments

        File third_party/blink/renderer/core/css/css_property_value_set.cc
        Line 245, Patchset 2 (Latest): for (unsigned i = all_index + 1; i < property_set.PropertyCount(); ++i) {
        Suyeon Ji . resolved

        There is still an issue with the Get operation, as it requires iteration.

        Given `left: 10px; all: revert; right: 20px`
        vector: [all: revert, right: 20px]
        the expected value for getPropertyValue("all") should be an empty string.

        To satisfy this, we need to determine if any properties affected by all were set after it during serialization. While comparing the index of all with the vector's size() might seem simple, it’s difficult to filter out properties not affected by all. Therefore, iterating through the loop is necessary.

        Line 289, Patchset 2 (Latest): if constexpr (std::is_same_v<T, CSSPropertyID>) {
        Suyeon Ji . resolved

        Since all is a shorthand that resets almost all properties, calling setProperty("all", all_value) means that any subsequent getPropertyValue(property) for an affected property should return that all_value. Consequently,this logic must include a process to check the stored value of all.

        Open in Gerrit

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Ie3e7d669ddb5dc3f47649b25e53b57daef844f60
        Gerrit-Change-Number: 7665779
        Gerrit-PatchSet: 2
        Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
        Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
        Gerrit-CC: Menard, Alexis <alexis...@intel.com>
        Gerrit-Comment-Date: Fri, 13 Mar 2026 23:24:11 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Suyeon Ji (Gerrit)

        unread,
        Mar 13, 2026, 7:29:13 PMMar 13
        to Chromium LUCI CQ, AyeAye, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

        Suyeon Ji added 1 comment

        File third_party/blink/renderer/core/css/resolver/cascade_expansion_test.cc
        Line 371, Patchset 2 (Latest): ASSERT_EQ(all.size() + 1, e.size());
        Suyeon Ji . resolved

        I initially thought this was a regression, but after further review, I found that duplicates are already being handled during cascade expansion. Since it's safe for them to be removed beforehand, I’ve updated the test accordingly.

        Open in Gerrit

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Ie3e7d669ddb5dc3f47649b25e53b57daef844f60
        Gerrit-Change-Number: 7665779
        Gerrit-PatchSet: 2
        Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
        Gerrit-Reviewer: Suyeon Ji <zees...@gmail.com>
        Gerrit-CC: Menard, Alexis <alexis...@intel.com>
        Gerrit-Comment-Date: Fri, 13 Mar 2026 23:28:36 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Suyeon Ji (Gerrit)

        unread,
        Mar 13, 2026, 8:04:01 PMMar 13
        to AyeAye, Chromium LUCI CQ, chromium...@chromium.org, Menard, Alexis, blink-re...@chromium.org, apavlo...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org

        Suyeon Ji has uploaded the change for review

        Suyeon Ji removed AyeAye, Chromium LUCI CQ, chromium...@chromium.org, Menard, Alexis, blink-re...@chromium.org, apavlo...@chromium.org, blink-...@chromium.org and blink-revie...@chromium.org from reviewers of this change.

        Commit message

        [For review] Fix getPropertyValue() and setProperty() behavior for 'all'


        According to the CSS spec[1], the 'all' property is a shorthand.
        Shorthands, especially 'all', can reset all CSS properties (except 'direction', 'unicode-bidi', custom properties) to a given value.

        However, Chromium currently does not follow the spec.
        First, setProperty('all') does not reset all properties. So when
        querying properties affected by 'all', the correct value is not
        returned.
        Second, for a shorthand, getPropertyValue()[2] should return the
        serialized value of its longhands, but currently 'all' does not
        do this.

        This patch fixes the behavior to match the specification.

        [1]: https://drafts.csswg.org/css-cascade/#all-shorthand
        [2]: https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-getpropertyvalue
        Bug: 388039764, 387828392
        Change-Id: Ie3e7d669ddb5dc3f47649b25e53b57daef844f60

        Change diff


        Change information

        Files:
        • M third_party/blink/renderer/core/css/css_property_value_set.cc
        • M third_party/blink/renderer/core/css/resolver/cascade_expansion_test.cc
        • D third_party/blink/web_tests/external/wpt/css/cssom/cssstyledeclaration-all-shorthand-expected.txt
        Change size: S
        Delta: 3 files changed, 38 insertions(+), 11 deletions(-)
        Open in Gerrit

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: newchange
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Suyeon Ji (Gerrit)

        unread,
        Mar 13, 2026, 8:25:49 PMMar 13
        to Menard, Alexis, AyeAye, apavlo...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, blink-re...@chromium.org

        Suyeon Ji added 1 comment

        File third_party/blink/renderer/core/css/css_property_value_set.cc
        Line 245, Patchset 2 (Latest): for (unsigned i = all_index + 1; i < property_set.PropertyCount(); ++i) {
        Suyeon Ji . resolved

        There is still an issue with the Get operation, as it requires iteration.

        Given left: 10px; all: revert; right: 20px
        vector: [all: revert, right: 20px]
        the expected value for getPropertyValue("all") should be an empty string.

        To satisfy this, we need to determine if any properties affected by all were set after it during serialization. While comparing the index of all with the vector's size() might seem simple, it’s difficult to filter out properties not affected by all. Therefore, iterating through the loop is necessary.

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I320b8fe2e4ecdb73970f3eb9c3b30f6fea3cb1e6
        Gerrit-Change-Number: 7665023
        Gerrit-PatchSet: 2
        Gerrit-Owner: Suyeon Ji <zees...@gmail.com>
        Gerrit-CC: Menard, Alexis <alexis...@intel.com>
        Gerrit-Comment-Date: Sat, 14 Mar 2026 00:25:24 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy
        Reply all
        Reply to author
        Forward
        0 new messages