New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 545318 link

Starred by 23 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Task


Sign in to add a comment

CSS Typed OM

Project Member Reported by meade@chromium.org, Oct 20 2015

Issue description

(See http://www.chromium.org/blink#launch-process for an overview)

Change description:
The new CSSOM provides typed style access for developers. This will  generally improve performance primarily by removing the need to do lots of string parsing. In addition to this, it will enable performant development of various new Houdini specifications (including custom properties, layout and paint).

Changes to API surface:
- New API

Links:
Public standards discussion: https://lists.w3.org/Archives/Public/public-houdini/2015Oct/0011.html

Support in other browsers:
Internet Explorer: not implemented
Firefox: not implemented
Safari: not implemented


Security and privacy reviews are not yet required as this is still in an experimental stage.
 
Showing comments 149 - 248 of 248 Older
Project Member

Comment 149 by bugdroid1@chromium.org, Jul 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/64aec75f118e7130022f47b58d03e961a0f89b6d

commit 64aec75f118e7130022f47b58d03e961a0f89b6d
Author: meade <meade@chromium.org>
Date: Wed Jul 05 10:01:36 2017

[CSS Typed OM] Re-implement ToCSSValue and AsMatrix for CSSRotation

I previously commented these out when I deleted obsolete number and
length types, but now I can put it back.

Added tests, and also removed a test that didn't seem useful.

BUG=545318

Review-Url: https://codereview.chromium.org/2957603002
Cr-Commit-Position: refs/heads/master@{#484232}

[delete] https://crrev.com/3fe2409358437193a07496c2d0a0b559ef399760/third_party/WebKit/LayoutTests/typedcssom/cssRotation-expected.txt
[modify] https://crrev.com/64aec75f118e7130022f47b58d03e961a0f89b6d/third_party/WebKit/LayoutTests/typedcssom/cssRotation.html
[delete] https://crrev.com/3fe2409358437193a07496c2d0a0b559ef399760/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/properties/transform-expected.txt
[delete] https://crrev.com/3fe2409358437193a07496c2d0a0b559ef399760/third_party/WebKit/LayoutTests/typedcssom/styleValue-stringifier-expected.txt
[delete] https://crrev.com/3fe2409358437193a07496c2d0a0b559ef399760/third_party/WebKit/LayoutTests/typedcssom/styleValue-stringifier.html
[modify] https://crrev.com/64aec75f118e7130022f47b58d03e961a0f89b6d/third_party/WebKit/Source/core/css/cssom/CSSRotation.cpp
[modify] https://crrev.com/64aec75f118e7130022f47b58d03e961a0f89b6d/third_party/WebKit/Source/core/css/cssom/CSSRotation.h

Project Member

Comment 151 by bugdroid1@chromium.org, Jul 11 2017

Project Member

Comment 153 by bugdroid1@chromium.org, Jul 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a64f0d67686f02eef31556a31c177f8565b3ccdc

commit a64f0d67686f02eef31556a31c177f8565b3ccdc
Author: Eddy Mead <meade@chromium.org>
Date: Mon Jul 17 13:07:58 2017

[CSS Typed OM] Correctly use const on the CSSStyleValue subclass typed members of CSSTransformComponents

- Members shouldn't be const (they need to be able to be modified after being returned to JS)
- Match the style guide for pointer getters:   
https://www.chromium.org/developers/coding-style/cpp-dos-and-donts#TOC-Use-const-correctly)
- The DOMMatrix function being changed was added for Typed OM in https://codereview.chromium.org/2907973002/

Bug: 545318
Change-Id: Id4399ceaf9290f4f52847696c57a37f8022894fb
Reviewed-on: https://chromium-review.googlesource.com/544576
Commit-Queue: meade_UTC10 <meade@chromium.org>
Reviewed-by: Alan Cutter <alancutter@chromium.org>
Reviewed-by: Bugs Nash <bugsnash@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487060}
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSMatrixComponent.cpp
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSMatrixComponent.h
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSPerspective.cpp
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSPerspective.h
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSRotation.cpp
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSRotation.h
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSScale.h
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSSkew.cpp
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSSkew.h
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSTransformComponent.h
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.cpp
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSTranslation.cpp
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/css/cssom/CSSTranslation.h
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/geometry/DOMMatrix.cpp
[modify] https://crrev.com/a64f0d67686f02eef31556a31c177f8565b3ccdc/third_party/WebKit/Source/core/geometry/DOMMatrix.h

Project Member

Comment 154 by bugdroid1@chromium.org, Jul 18 2017

Project Member

Comment 155 by bugdroid1@chromium.org, Jul 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/03e228d75abf51d33a1d2eed5a6e4caee4141e44

commit 03e228d75abf51d33a1d2eed5a6e4caee4141e44
Author: Eddy Mead <meade@chromium.org>
Date: Wed Jul 19 04:34:57 2017

[CSS Typed OM] Update CSSPositionValue to match changed spec

- x and y are now settable
- Add missing exception handling in the constructor

Spec: https://drafts.css-houdini.org/css-typed-om/#positionvalue-objects

Bug: 545318
Change-Id: I73fef9ed11eccb5ed156d6279f69c373fe1ad7a3
Reviewed-on: https://chromium-review.googlesource.com/554654
Commit-Queue: meade_UTC10 <meade@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487747}
[modify] https://crrev.com/03e228d75abf51d33a1d2eed5a6e4caee4141e44/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
[delete] https://crrev.com/ce03100db1bfaab181008022b581773910a97cbd/third_party/WebKit/LayoutTests/typedcssom/cssPositionValue-expected.txt
[modify] https://crrev.com/03e228d75abf51d33a1d2eed5a6e4caee4141e44/third_party/WebKit/LayoutTests/typedcssom/cssPositionValue.html
[modify] https://crrev.com/03e228d75abf51d33a1d2eed5a6e4caee4141e44/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/03e228d75abf51d33a1d2eed5a6e4caee4141e44/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/03e228d75abf51d33a1d2eed5a6e4caee4141e44/third_party/WebKit/Source/core/css/cssom/CSSPositionValue.cpp
[modify] https://crrev.com/03e228d75abf51d33a1d2eed5a6e4caee4141e44/third_party/WebKit/Source/core/css/cssom/CSSPositionValue.h
[modify] https://crrev.com/03e228d75abf51d33a1d2eed5a6e4caee4141e44/third_party/WebKit/Source/core/css/cssom/CSSPositionValue.idl

Project Member

Comment 156 by bugdroid1@chromium.org, Jul 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/009c66bb923f423b9efd96e8dc3f2175875bd170

commit 009c66bb923f423b9efd96e8dc3f2175875bd170
Author: Hwanseung Lee <hs1217.lee@samsung.com>
Date: Wed Jul 26 04:09:36 2017

[CSS Typed OM] throw typeError if relative units are used.

As the entries of such a matrix are defined relative to the px unit,
if any <length>s in func involved in generating the matrix are not
compatible units with px, throw a TypeError.

https://github.com/w3c/css-houdini-drafts/issues/421
https://drafts.css-houdini.org/css-typed-om-1/#dom-csstransformvalue-tomatrix

Bug: 545318
Change-Id: I6c8184981730f2d99f58cca4974820ce2598099f
Reviewed-on: https://chromium-review.googlesource.com/579627
Reviewed-by: meade_UTC10 <meade@chromium.org>
Commit-Queue: HwanSeung Lee <hs1217.lee@samsung.com>
Cr-Commit-Position: refs/heads/master@{#489549}
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/LayoutTests/typedcssom/cssPerspective.html
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/LayoutTests/typedcssom/cssTranslation.html
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSMatrixComponent.cpp
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSMatrixComponent.h
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSPerspective.cpp
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSPerspective.h
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSRotation.cpp
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSRotation.h
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSScale.h
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSSkew.cpp
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSSkew.h
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSTransformComponent.h
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.cpp
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.h
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.idl
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSTranslation.cpp
[modify] https://crrev.com/009c66bb923f423b9efd96e8dc3f2175875bd170/third_party/WebKit/Source/core/css/cssom/CSSTranslation.h

We're intending to re-start work on this in Q4.
Labels: migrated-launch-owp Type-Task
This issue has been automatically relabelled type=task because type=launch-owp issues are now officially deprecated. The deprecation is because they were creating confusion about how to get launch approvals, which should be instead done via type=launch issues.

We recommend this issue be used for implementation tracking (for public visibility), but if you already have an issue for that, you may mark this as duplicate.

For more details see here: https://docs.google.com/document/d/1JA6RohjtZQc26bTrGoIE_bSXGXUDQz8vc6G0n_sZJ2o/edit

For any questions, please contact owencm, sshruthi, larforge
Cc: meade@chromium.org
Owner: shend@chromium.org
Starting this work again
Blockedon: 774887
Blockedon: 774933
Blockedon: 775802
Blockedon: 775804
Blockedon: 775806
Blockedon: 776173
Blockedon: 777233
Blockedon: 777248
Project Member

Comment 168 by bugdroid1@chromium.org, Oct 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ae7e2718e65723830f2d013db4756dbd3ec6b06a

commit ae7e2718e65723830f2d013db4756dbd3ec6b06a
Author: Darren Shen <shend@chromium.org>
Date: Thu Oct 26 02:38:14 2017

[css-typed-om] Add tests for numeric factory functions.

Spec: https://drafts.css-houdini.org/css-typed-om-1/#numeric-factory

Currently failing:
- ic, lh, rlh, vi, vb, q units do not have corresponding functions.
- Hz and kHz currently get lowercased to hz and khz, although the spec
  doesn't say it should lowercase.

Bug: 545318
Change-Id: Ie6767ed72d0cb2137c3fd1d70f0f6a1e3e1408f5
Reviewed-on: https://chromium-review.googlesource.com/720584
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511708}
[add] https://crrev.com/ae7e2718e65723830f2d013db4756dbd3ec6b06a/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/numeric-objects/numeric-factory-expected.txt
[add] https://crrev.com/ae7e2718e65723830f2d013db4756dbd3ec6b06a/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/numeric-objects/numeric-factory.html

Blockedon: 778495
Blockedon: 779422
Blockedon: 779477
Blockedon: 779841
Blockedon: 780687
Project Member

Comment 174 by bugdroid1@chromium.org, Nov 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f7032933e8b67f8838cc83e1166f12aef3f6caa3

commit f7032933e8b67f8838cc83e1166f12aef3f6caa3
Author: Eric Willigers <ericwilligers@chromium.org>
Date: Sun Nov 05 00:24:30 2017

CSSOM: Support CSS.q() factory function

We add tests for a number of factory functions.

The case for q() Hz() kHz() follows the current spec.
https://github.com/w3c/css-houdini-drafts/issues/504

BUG= 421907 ,545318

Change-Id: I20e05a26738b8a8dd46d683e9f6d4730e5f4f607
Reviewed-on: https://chromium-review.googlesource.com/750403
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514061}
[add] https://crrev.com/f7032933e8b67f8838cc83e1166f12aef3f6caa3/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/factory-absolute-length.html
[add] https://crrev.com/f7032933e8b67f8838cc83e1166f12aef3f6caa3/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/factory-duration.html
[add] https://crrev.com/f7032933e8b67f8838cc83e1166f12aef3f6caa3/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/factory-frequency.html
[modify] https://crrev.com/f7032933e8b67f8838cc83e1166f12aef3f6caa3/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/numeric-objects/numeric-factory-expected.txt
[modify] https://crrev.com/f7032933e8b67f8838cc83e1166f12aef3f6caa3/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/f7032933e8b67f8838cc83e1166f12aef3f6caa3/third_party/WebKit/Source/core/css/cssom/CSSUnitValues.idl

Blockedon: 782103
Blockedon: 783031
Blockedon: 784217
Blockedon: 784218
Project Member

Comment 179 by bugdroid1@chromium.org, Nov 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8311fa7a25eca95f2153d6929a1a4e6c20ef08f6

commit 8311fa7a25eca95f2153d6929a1a4e6c20ef08f6
Author: Hwanseung Lee <hs1217.lee@samsung.com>
Date: Sun Nov 12 23:49:22 2017

[css-typed-om] merge constructor using optional keyword

merge constructor using optional keyword in CSSTransformValue
and CSSTranslation

Bug: 545318
Change-Id: I67fe1f7b8db1dd59689d6aa8c49938f48152c5f8
Reviewed-on: https://chromium-review.googlesource.com/763149
Reviewed-by: Darren Shen <shend@chromium.org>
Commit-Queue: Hwanseung Lee <hs1217.lee@samsung.com>
Cr-Commit-Position: refs/heads/master@{#515872}
[modify] https://crrev.com/8311fa7a25eca95f2153d6929a1a4e6c20ef08f6/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.idl
[modify] https://crrev.com/8311fa7a25eca95f2153d6929a1a4e6c20ef08f6/third_party/WebKit/Source/core/css/cssom/CSSTranslation.idl

Blockedon: 785132
Project Member

Comment 181 by bugdroid1@chromium.org, Nov 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c626e8b79666372a33a440269f414803e8f8ffe

commit 3c626e8b79666372a33a440269f414803e8f8ffe
Author: Darren Shen <shend@chromium.org>
Date: Tue Nov 21 23:32:20 2017

[css-typed-om] Allow StylePropertyMaps to take string arguments.

Currently StylePropertyMaps don't support strings e.g.

  styleMap.set('width', CSS.px(1)) works, but
  styleMap.set('width', '1px') doesn't.

This patch adds string support by moving parsing code to
StyleValueFactory so that both CSSStyleValue.parse and
StylePropertyMaps can share the parsing logic.

We also do some refactoring to make handling both CSSStyleValue
and strings easier.

There are still some code paths that we're not sure is correct,
pending clarification on GitHub:
https://github.com/w3c/css-houdini-drafts/issues/512

Spec: https://drafts.css-houdini.org/css-typed-om-1/#the-stylepropertymap

Bug: 545318
Change-Id: Iaef3cfad69789fc115b7e98a296eec5cb4480cd8
Reviewed-on: https://chromium-review.googlesource.com/769797
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518443}
[delete] https://crrev.com/97e1b3311477de1bb4084f3267ff1afde6d61fe2/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/properties/animation-direction-expected.txt
[modify] https://crrev.com/3c626e8b79666372a33a440269f414803e8f8ffe/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/properties/property-suite.js
[delete] https://crrev.com/97e1b3311477de1bb4084f3267ff1afde6d61fe2/third_party/WebKit/LayoutTests/typedcssom/the-stylepropertymap/append-expected.txt
[modify] https://crrev.com/3c626e8b79666372a33a440269f414803e8f8ffe/third_party/WebKit/LayoutTests/typedcssom/the-stylepropertymap/set-expected.txt
[modify] https://crrev.com/3c626e8b79666372a33a440269f414803e8f8ffe/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/3c626e8b79666372a33a440269f414803e8f8ffe/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.cpp
[modify] https://crrev.com/3c626e8b79666372a33a440269f414803e8f8ffe/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.cpp
[modify] https://crrev.com/3c626e8b79666372a33a440269f414803e8f8ffe/third_party/WebKit/Source/core/css/cssom/StyleValueFactory.cpp
[modify] https://crrev.com/3c626e8b79666372a33a440269f414803e8f8ffe/third_party/WebKit/Source/core/css/cssom/StyleValueFactory.h

Blockedon: 788570
Blockedon: 789370
Project Member

Comment 184 by bugdroid1@chromium.org, Nov 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f73ec88555628e8683541d090687bf137594ac47

commit f73ec88555628e8683541d090687bf137594ac47
Author: Darren Shen <shend@chromium.org>
Date: Thu Nov 30 00:21:45 2017

[css-typed-om] Fix testhelper assert behaviour.

assert_* functions don't actually return a value, so in cases where
we are chaining together asserts with && (e.g. assert_equals(..) &&
assert_equals(..), we weren't actually checking the second assert.

Bug: 545318
Change-Id: Id3437d811ecb33e3301967760ada3901301d539c
Reviewed-on: https://chromium-review.googlesource.com/798090
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520328}
[modify] https://crrev.com/f73ec88555628e8683541d090687bf137594ac47/third_party/WebKit/LayoutTests/typedcssom/resources/testhelper.js

Blockedon: 791434
Project Member

Comment 186 by bugdroid1@chromium.org, Dec 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a83f42cefce287b994282a019a4ac4286f3e3aea

commit a83f42cefce287b994282a019a4ac4286f3e3aea
Author: Darren Shen <shend@chromium.org>
Date: Wed Dec 06 01:19:03 2017

[css-typed-om] Update CSSVariableReferenceValue.

The new spec made attributes of CSSVariableReferenceValue mutable.
This also allows us to simplify the test helper to create
CSSVariableReferenceValues.

Spec: https://drafts.css-houdini.org/css-typed-om-1/#cssvariablereferencevalue

Bug: 545318
Change-Id: I9f7571e7b50b646423e4a6dc44cfb6c95c3fc5dd
Reviewed-on: https://chromium-review.googlesource.com/802664
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: Renée Wright <rjwright@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521936}
[modify] https://crrev.com/a83f42cefce287b994282a019a4ac4286f3e3aea/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
[modify] https://crrev.com/a83f42cefce287b994282a019a4ac4286f3e3aea/third_party/WebKit/LayoutTests/typedcssom/resources/testhelper.js
[add] https://crrev.com/a83f42cefce287b994282a019a4ac4286f3e3aea/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/cssVariableReferenceValue-expected.txt
[add] https://crrev.com/a83f42cefce287b994282a019a4ac4286f3e3aea/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/cssVariableReferenceValue.html
[modify] https://crrev.com/a83f42cefce287b994282a019a4ac4286f3e3aea/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/a83f42cefce287b994282a019a4ac4286f3e3aea/third_party/WebKit/Source/core/css/cssom/CSSStyleVariableReferenceValue.h
[modify] https://crrev.com/a83f42cefce287b994282a019a4ac4286f3e3aea/third_party/WebKit/Source/core/css/cssom/CSSVariableReferenceValue.idl

Blockedon: 792328
Labels: -Update-Monthly
Project Member

Comment 189 by bugdroid1@chromium.org, Dec 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6ed59b8debde3af8af88a97b9162221dce523230

commit 6ed59b8debde3af8af88a97b9162221dce523230
Author: Darren Shen <shend@chromium.org>
Date: Thu Dec 14 02:39:35 2017

[css-typed-om] Add constructor for CSSVariableReferenceValue.

As per [1], CSSVariableReferenceValue now has a constructor. We can
get rid of our hacky helper to create CSSVariableReferenceValues.

[1] https://github.com/w3c/css-houdini-drafts/issues/514

Bug: 545318
Change-Id: I1f540514e9a75fb315dc7db16bc99e70ffe911ef
Reviewed-on: https://chromium-review.googlesource.com/822318
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523989}
[modify] https://crrev.com/6ed59b8debde3af8af88a97b9162221dce523230/third_party/WebKit/LayoutTests/typedcssom/resources/testhelper.js
[modify] https://crrev.com/6ed59b8debde3af8af88a97b9162221dce523230/third_party/WebKit/LayoutTests/typedcssom/stylevalue-normalization/normalize-tokens.html
[modify] https://crrev.com/6ed59b8debde3af8af88a97b9162221dce523230/third_party/WebKit/LayoutTests/typedcssom/stylevalue-serialization/cssUnparsedValue.html
[modify] https://crrev.com/6ed59b8debde3af8af88a97b9162221dce523230/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/cssUnparsedValue.html
[modify] https://crrev.com/6ed59b8debde3af8af88a97b9162221dce523230/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/cssVariableReferenceValue-expected.txt
[modify] https://crrev.com/6ed59b8debde3af8af88a97b9162221dce523230/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/cssVariableReferenceValue.html
[modify] https://crrev.com/6ed59b8debde3af8af88a97b9162221dce523230/third_party/WebKit/Source/core/css/cssom/CSSStyleVariableReferenceValue.h
[modify] https://crrev.com/6ed59b8debde3af8af88a97b9162221dce523230/third_party/WebKit/Source/core/css/cssom/CSSVariableReferenceValue.idl

Project Member

Comment 190 by bugdroid1@chromium.org, Dec 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d5bddb75d10e2a0f0c9e7c6919464f796be263bb

commit d5bddb75d10e2a0f0c9e7c6919464f796be263bb
Author: Darren Shen <shend@chromium.org>
Date: Fri Dec 15 01:21:53 2017

[css-typed-om] Rename validation functions to not clash.

This patch renames some validation functions in anon namespaces to
include the class name so that they won't clash in Jumbo builds.

Bug: 545318
Change-Id: I291bef0abccedb7c937a98b6a931a3f77d959536
Reviewed-on: https://chromium-review.googlesource.com/827960
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524280}
[modify] https://crrev.com/d5bddb75d10e2a0f0c9e7c6919464f796be263bb/third_party/WebKit/Source/core/css/cssom/CSSRotation.cpp
[modify] https://crrev.com/d5bddb75d10e2a0f0c9e7c6919464f796be263bb/third_party/WebKit/Source/core/css/cssom/CSSScale.cpp
[modify] https://crrev.com/d5bddb75d10e2a0f0c9e7c6919464f796be263bb/third_party/WebKit/Source/core/css/cssom/CSSScale.h
[modify] https://crrev.com/d5bddb75d10e2a0f0c9e7c6919464f796be263bb/third_party/WebKit/Source/core/css/cssom/CSSTranslation.cpp

Project Member

Comment 191 by bugdroid1@chromium.org, Dec 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9bb8a3685fabd0ead1a4d50d1a565ac6c0aab709

commit 9bb8a3685fabd0ead1a4d50d1a565ac6c0aab709
Author: Darren Shen <shend@chromium.org>
Date: Mon Dec 18 03:14:15 2017

[css-typed-om] Update tests for CSSMatrixComponent.

This patch updates tests for CSSMatrixComponent. We also update the
implementation: If a component options is passed in, the component.is2D
attribute uses the options, regardless of whether the matrix is 2D.

Spec: https://drafts.css-houdini.org/css-typed-om-1/#cssmatrixcomponent

Bug: 545318
Change-Id: I880c6eb17282e5d2dd3946da5458aa9db7417be1
Reviewed-on: https://chromium-review.googlesource.com/823802
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: meade_UTC10 <meade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524644}
[modify] https://crrev.com/9bb8a3685fabd0ead1a4d50d1a565ac6c0aab709/third_party/WebKit/LayoutTests/typedcssom/cssMatrixComponent.html
[add] https://crrev.com/9bb8a3685fabd0ead1a4d50d1a565ac6c0aab709/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/cssMatrixComponent.html

Project Member

Comment 192 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f34212c7732678b2d07691c149181987ff98a038

commit f34212c7732678b2d07691c149181987ff98a038
Author: Darren Shen <shend@chromium.org>
Date: Wed Dec 20 22:58:54 2017

[css-typed-om] Update tests for CSSTransformValue.

Update tests to reflect new spec. We have to update behaviour
to throw error when there's no components.

Spec:
https://github.com/w3c/css-houdini-drafts/issues/534

Bug: 545318
Change-Id: Ifba7a1e6142bf19ff304d09eb4e45317d9dbc669
Reviewed-on: https://chromium-review.googlesource.com/826825
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525503}
[modify] https://crrev.com/f34212c7732678b2d07691c149181987ff98a038/third_party/WebKit/LayoutTests/typedcssom/cssPerspective.html
[modify] https://crrev.com/f34212c7732678b2d07691c149181987ff98a038/third_party/WebKit/LayoutTests/typedcssom/cssRotation.html
[modify] https://crrev.com/f34212c7732678b2d07691c149181987ff98a038/third_party/WebKit/LayoutTests/typedcssom/cssScale.html
[modify] https://crrev.com/f34212c7732678b2d07691c149181987ff98a038/third_party/WebKit/LayoutTests/typedcssom/cssSkew.html
[delete] https://crrev.com/d189e5dfd36549e7078ce0223bec0076bed9a470/third_party/WebKit/LayoutTests/typedcssom/cssTransformValue.html
[modify] https://crrev.com/f34212c7732678b2d07691c149181987ff98a038/third_party/WebKit/LayoutTests/typedcssom/cssTranslation.html
[add] https://crrev.com/f34212c7732678b2d07691c149181987ff98a038/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/cssTransformValue.html
[modify] https://crrev.com/f34212c7732678b2d07691c149181987ff98a038/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.cpp
[modify] https://crrev.com/f34212c7732678b2d07691c149181987ff98a038/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.h
[modify] https://crrev.com/f34212c7732678b2d07691c149181987ff98a038/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.idl

Project Member

Comment 193 by bugdroid1@chromium.org, Jan 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/41e9a50e2920b6614ac5019b25fd829cdbd41e43

commit 41e9a50e2920b6614ac5019b25fd829cdbd41e43
Author: Darren Shen <shend@chromium.org>
Date: Wed Jan 03 06:20:20 2018

[css-typed-om] Remove secure context from toCSSValue.

Currently we need a secure context mode to call toCSSValue. toCSSValue
is used for converting CSSStyleValues to CSSValues. However, there's no
reason why we need a secure context mode, since we don't do any parsing.

This patch removes secure context mode from toCSSValue. We had to make
two changes:

- CSSUnsupportedValue takes a CSSValue instead of string. Previously,
  we would parse a string into a CSSValue, then convert it back into a
  string to give to CSSUnsupportedValue, which would then parse it again
  when needed. We can just store the CSSValue instead and parse once.

- CSSUnparsedValue::toCSSValue creates a CSSVariableReferenceValue,
  which requires a CSSParserContext. This makes sense if we need to
  parse the tokens (e.g. for variable resolution). However,
  CSSUnparsedValue doesn't parse the tokens (hence its name), so it
  doesn't make sense to create a CSSParserContext. We added a new
  constructor to CSSVariableReferenceValue that doesn't take a
  CSSParserContext.

Bug: 545318
Change-Id: I03bf66ab3061e00169ddff99b2a128ae3191f793
Reviewed-on: https://chromium-review.googlesource.com/845253
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526634}
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/CSSVariableReferenceValue.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSKeywordValue.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSKeywordValue.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSMathValue.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSMathValue.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSMatrixComponent.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSMatrixComponent.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSPerspective.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSPerspective.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSPositionValue.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSPositionValue.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSResourceValueTest.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSRotation.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSRotation.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSScale.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSScale.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSSkew.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSSkew.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSStyleImageValueTest.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.idl
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSTransformComponent.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSTransformComponent.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSTransformComponent.idl
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSTranslation.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSTranslation.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSURLImageValue.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSUnitValue.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSUnitValue.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSUnparsedValue.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSUnparsedValue.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSUnsupportedStyleValue.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/CSSUnsupportedStyleValue.h
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.cpp
[modify] https://crrev.com/41e9a50e2920b6614ac5019b25fd829cdbd41e43/third_party/WebKit/Source/core/css/cssom/StyleValueFactory.cpp

Blockedon: 798937
Blockedon: 800095
Blockedon: 800927
Blockedon: 801069
Blockedon: 801935
Project Member

Comment 199 by bugdroid1@chromium.org, Jan 15 2018

Project Member

Comment 200 by bugdroid1@chromium.org, Jan 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e527494d5a4cedbba17847106560c71204176dce

commit e527494d5a4cedbba17847106560c71204176dce
Author: Darren Shen <shend@chromium.org>
Date: Tue Jan 16 01:53:46 2018

[css-typed-om] Implement arithmetic simplification correctly.

To match behaviour specified in [1], we fix the "shortcut" logic
for mul, div and invert. Normally, when we mul/div/invert, we
would return a new CSSMathProduct/Product/Invert, respectively.
However, if all the arguments are CSSUnitValues then we might
be able to return a CSSUnitValue (e.g. 1.mul(2) is just 2 and
not CSSMathProduct(1, 2)). Whether we shortcut or not depends
on the units of the arguments:

- mul: Only shortcut if there's at most one non-number value.
- div: Only shortcut if the arguments are all number values
  (note we get this for free since div is just multiplying
   the inverses).
- invert: Only shortcut if its a number value.

These rules ensure that the result can be stored as a
CSSUnitValue (e.g. 2px.invert cannot be represented as a
CSSUnitValue as its unit is px^-1).

[1] https://github.com/w3c/css-houdini-drafts/issues/503

Bug: 545318
Change-Id: I0c037c0a9026119097e85409efb0919a68e676f8
Reviewed-on: https://chromium-review.googlesource.com/866525
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529354}
[modify] https://crrev.com/e527494d5a4cedbba17847106560c71204176dce/third_party/WebKit/LayoutTests/typedcssom/stylevalue-subclasses/numeric-objects/arithmetic.html
[modify] https://crrev.com/e527494d5a4cedbba17847106560c71204176dce/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.cpp
[modify] https://crrev.com/e527494d5a4cedbba17847106560c71204176dce/third_party/WebKit/Source/core/css/cssom/CSSUnitValue.cpp
[modify] https://crrev.com/e527494d5a4cedbba17847106560c71204176dce/third_party/WebKit/Source/core/css/cssom/CSSUnitValue.h

Blockedon: 803674
Blockedon: 803676
Blockedon: 803680
Blockedon: 803684
Blockedon: 803687
Blockedon: 803688
Blockedon: 803690
Blockedon: 803739
Blockedon: 807006
Blockedon: 807008
Blockedon: 806736
Blockedon: 807169
Blockedon: 807525
Project Member

Comment 215 by bugdroid1@chromium.org, Jan 31 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/13efd5834b02a618dac8d52f107e823f53c0cb9b

commit 13efd5834b02a618dac8d52f107e823f53c0cb9b
Author: Darren Shen <shend@chromium.org>
Date: Wed Jan 31 08:03:09 2018

[css-typed-om] Fix CSSVariableReferenceValue validation.

We change CSSVariableReferenceValue to reject invalid custom property
names as per spec. We also remove .tentative extension from related
tests.

We also remove some unit tests that are replaced by WPTs.

Spec: https://drafts.css-houdini.org/css-typed-om-1/#cssvariablereferencevalue

Bug: 545318
Change-Id: I95cfe1c167a60c94083a1474b384fd584d05cca9
Reviewed-on: https://chromium-review.googlesource.com/895124
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533228}
[add] https://crrev.com/13efd5834b02a618dac8d52f107e823f53c0cb9b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-interface.html
[add] https://crrev.com/13efd5834b02a618dac8d52f107e823f53c0cb9b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue-invalid.html
[add] https://crrev.com/13efd5834b02a618dac8d52f107e823f53c0cb9b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.html
[delete] https://crrev.com/50b55405f3fa149ebc977874be0adf008bad06b2/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.tentative-expected.txt
[delete] https://crrev.com/50b55405f3fa149ebc977874be0adf008bad06b2/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-subclasses/cssVariableReferenceValue.tentative.html
[modify] https://crrev.com/13efd5834b02a618dac8d52f107e823f53c0cb9b/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/13efd5834b02a618dac8d52f107e823f53c0cb9b/third_party/WebKit/Source/core/css/BUILD.gn
[add] https://crrev.com/13efd5834b02a618dac8d52f107e823f53c0cb9b/third_party/WebKit/Source/core/css/cssom/CSSStyleVariableReferenceValue.cpp
[modify] https://crrev.com/13efd5834b02a618dac8d52f107e823f53c0cb9b/third_party/WebKit/Source/core/css/cssom/CSSStyleVariableReferenceValue.h
[modify] https://crrev.com/13efd5834b02a618dac8d52f107e823f53c0cb9b/third_party/WebKit/Source/core/css/cssom/CSSVariableReferenceValue.idl
[delete] https://crrev.com/50b55405f3fa149ebc977874be0adf008bad06b2/third_party/WebKit/Source/core/css/cssom/CSSVariableReferenceValueTest.cpp

Blockedon: 807875
Blockedon: 807877
Blockedon: 808321
Blockedon: 808933
Blockedon: 812912
Blockedon: 812913
Blockedon: 812914
Blockedon: 812915
Blockedon: 812916
Blockedon: 812919
Project Member

Comment 226 by bugdroid1@chromium.org, Feb 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/89de27e2df236a2caf81d8c225a224e6f7535f40

commit 89de27e2df236a2caf81d8c225a224e6f7535f40
Author: Darren Shen <shend@chromium.org>
Date: Fri Feb 16 05:10:36 2018

[css-typed-om] Make StylePropertyMap.set work with calcs.

Currently StylePropertyMap.set doesn't actually work with calcs.
The current way to check if something is, say, a <length> is to
check its CSSStyleValue::Type. However, this doesn't return
the right value for CSSMathValues, whose types may be quite
complicated.

The correct way is to use the CSSNumericValue matching algorthms:
CSSNumericValue::MatchesLength, which also takes into account
CSSMathValues and percent hints.

This patch changes the following to make this work:

- Removed base types from CSSStyleValue::StyleValueType. A base type
  like "length" is not really a CSSStyleValue type.
- Removed unused StyleValueTypeToString.
- Changed "Percent" to "Percentage" in CSSProperties.json5 as that's
  the correct term.
- Changed make_cssom_types to use the matching algorithms from
  CSSNumericValue.

Bug: 545318
Change-Id: I16aa71a4873e9992749f0f52ba641671d109170e
Reviewed-on: https://chromium-review.googlesource.com/901002
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537206}
[modify] https://crrev.com/89de27e2df236a2caf81d8c225a224e6f7535f40/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
[modify] https://crrev.com/89de27e2df236a2caf81d8c225a224e6f7535f40/third_party/WebKit/Source/build/scripts/core/css/make_cssom_types.py
[modify] https://crrev.com/89de27e2df236a2caf81d8c225a224e6f7535f40/third_party/WebKit/Source/build/scripts/core/css/templates/CSSOMTypes.cpp.tmpl
[modify] https://crrev.com/89de27e2df236a2caf81d8c225a224e6f7535f40/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/89de27e2df236a2caf81d8c225a224e6f7535f40/third_party/WebKit/Source/core/css/cssom/CSSMathValue.h
[modify] https://crrev.com/89de27e2df236a2caf81d8c225a224e6f7535f40/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.cpp
[modify] https://crrev.com/89de27e2df236a2caf81d8c225a224e6f7535f40/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.h
[modify] https://crrev.com/89de27e2df236a2caf81d8c225a224e6f7535f40/third_party/WebKit/Source/core/css/cssom/CSSUnitValue.cpp
[modify] https://crrev.com/89de27e2df236a2caf81d8c225a224e6f7535f40/third_party/WebKit/Source/core/css/cssom/CSSUnitValue.h

Blockedon: 813653
Project Member

Comment 228 by bugdroid1@chromium.org, Feb 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/33801db5ba5de9ece3d07a7df09774f895b3ec49

commit 33801db5ba5de9ece3d07a7df09774f895b3ec49
Author: Darren Shen <shend@chromium.org>
Date: Mon Feb 19 22:01:48 2018

[css-typed-om] Handle out-of-range values correctly.

Currently, when we set width to something like -1, we would get an
invalid value for width. According to the spec [1], we should be
wrapping the invalid value in a calc.

This patch wraps invalid values in calc, and changes the test harness
to allow us to test this.

Bug: 545318
Change-Id: I71769e1bc69164c9b7dcf0d2c54ca06b623b5d9e
Reviewed-on: https://chromium-review.googlesource.com/923603
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537685}
[modify] https://crrev.com/33801db5ba5de9ece3d07a7df09774f895b3ec49/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/border-width.html
[modify] https://crrev.com/33801db5ba5de9ece3d07a7df09774f895b3ec49/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/height.html
[modify] https://crrev.com/33801db5ba5de9ece3d07a7df09774f895b3ec49/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/padding.html
[modify] https://crrev.com/33801db5ba5de9ece3d07a7df09774f895b3ec49/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
[modify] https://crrev.com/33801db5ba5de9ece3d07a7df09774f895b3ec49/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/width.html
[modify] https://crrev.com/33801db5ba5de9ece3d07a7df09774f895b3ec49/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.h
[modify] https://crrev.com/33801db5ba5de9ece3d07a7df09774f895b3ec49/third_party/WebKit/Source/core/css/cssom/CSSUnitValue.cpp
[modify] https://crrev.com/33801db5ba5de9ece3d07a7df09774f895b3ec49/third_party/WebKit/Source/core/css/cssom/CSSUnitValue.h

Project Member

Comment 230 by bugdroid1@chromium.org, Feb 21 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0dcc66086f58b9e7fcce2de02d01160e237c7e74

commit 0dcc66086f58b9e7fcce2de02d01160e237c7e74
Author: Darren Shen <shend@chromium.org>
Date: Wed Feb 21 06:02:37 2018

[css-typed-om] Remove StylePropertyMap.getProperties().

This patch removes StylePropertyMap.getProperties() as it
is the same as StylePropertyMap.keys().

Bug: 545318
Change-Id: Ib31c70478306f415c4c184e1b2148f35759f58c4
Reviewed-on: https://chromium-review.googlesource.com/925883
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538033}
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/LayoutTests/external/wpt/css/css-paint-api/registered-properties-in-custom-paint.https.html
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/LayoutTests/external/wpt/css/css-paint-api/style-background-image.https.html
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/LayoutTests/external/wpt/css/css-paint-api/style-before-pseudo.https.html
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/LayoutTests/external/wpt/css/css-paint-api/style-first-letter-pseudo.https.html
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html
[delete] https://crrev.com/14f92bee690d0b1884864db08f3e7f03abc85c00/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/getProperties.tentative.html
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html
[delete] https://crrev.com/14f92bee690d0b1884864db08f3e7f03abc85c00/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/getProperties.tentative.html
[delete] https://crrev.com/14f92bee690d0b1884864db08f3e7f03abc85c00/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/getProperties.tentative.html
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
[delete] https://crrev.com/14f92bee690d0b1884864db08f3e7f03abc85c00/third_party/WebKit/LayoutTests/typedcssom/computedstyle/computedStylePropertyMap.html
[delete] https://crrev.com/14f92bee690d0b1884864db08f3e7f03abc85c00/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/inlineStylePropertyMap_getProperties.html
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/LayoutTests/typedcssom/the-stylepropertymap/declared/delete-rule-crash.html
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/Source/core/css/cssom/FilteredComputedStylePropertyMapTest.cpp
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.cpp
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.h
[modify] https://crrev.com/0dcc66086f58b9e7fcce2de02d01160e237c7e74/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.idl

Blockedon: 814487
Project Member

Comment 232 by bugdroid1@chromium.org, Feb 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0671c2170d3f864081a59082d5d7154d2a6e6033

commit 0671c2170d3f864081a59082d5d7154d2a6e6033
Author: Darren Shen <shend@chromium.org>
Date: Thu Feb 22 00:09:46 2018

[css-typed-om] Add per-property test for 'opacity'.

This patch adds tests for opacity, which only takes a <number> and whose
computed value is clamped to [0, 1]. This is the <number> property so
we had to add to the test harness.

Bug: 545318
Change-Id: I5689843188811c8c14c062a60deb0a8c580de3d9
Reviewed-on: https://chromium-review.googlesource.com/927745
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538269}
[add] https://crrev.com/0671c2170d3f864081a59082d5d7154d2a6e6033/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/opacity.html
[modify] https://crrev.com/0671c2170d3f864081a59082d5d7154d2a6e6033/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
[modify] https://crrev.com/0671c2170d3f864081a59082d5d7154d2a6e6033/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/transform-expected.txt
[modify] https://crrev.com/0671c2170d3f864081a59082d5d7154d2a6e6033/third_party/WebKit/Source/build/scripts/core/css/templates/CSSOMTypes.cpp.tmpl
[modify] https://crrev.com/0671c2170d3f864081a59082d5d7154d2a6e6033/third_party/WebKit/Source/core/css/CSSProperties.json5

Blockedon: 814606
Blockedon: 815040
Project Member

Comment 235 by bugdroid1@chromium.org, Feb 23 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/73f5acd546731fe27621544ba06ff4a56aeb7f26

commit 73f5acd546731fe27621544ba06ff4a56aeb7f26
Author: Darren Shen <shend@chromium.org>
Date: Fri Feb 23 08:54:12 2018

[css-typed-om] Rejig CSSResourceValue hierarchy.

We implement the new CSSImageValue, which is an opaque object with no
constructor. We also had to change the testsuite.js a bit to test it.

Bug: 545318
Change-Id: I0ae719c5380e01ff9423e0ff0684afe547de1bb0
Reviewed-on: https://chromium-review.googlesource.com/934001
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538730}
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/interfaces-expected.txt
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/resources/testhelper.js
[add] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-normalization/normalize-image-expected.txt
[add] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-normalization/normalize-image.html
[delete] https://crrev.com/d8188d1770ece5d6f022bd42785f408cefca4d7e/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative-expected.txt
[delete] https://crrev.com/d8188d1770ece5d6f022bd42785f408cefca4d7e/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-normalization/normalize-resource.tentative.html
[add] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-serialization/cssImageValue.html
[delete] https://crrev.com/d8188d1770ece5d6f022bd42785f408cefca4d7e/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-serialization/cssUrlImageValue.tentative.html
[delete] https://crrev.com/d8188d1770ece5d6f022bd42785f408cefca4d7e/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-interface.html
[delete] https://crrev.com/d8188d1770ece5d6f022bd42785f408cefca4d7e/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue-invalid.html
[delete] https://crrev.com/d8188d1770ece5d6f022bd42785f408cefca4d7e/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/stylevalue-subclasses/cssUrlImageValue.html
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/text-emphasis-color-expected.txt
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/transform-expected.txt
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/external/wpt/interfaces/css-typed-om.idl
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/typedcssom/computedstyle/background-image.html
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/typedcssom/computedstyle/custom-properties-expected.txt
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/typedcssom/computedstyle/custom-properties.html
[delete] https://crrev.com/d8188d1770ece5d6f022bd42785f408cefca4d7e/third_party/WebKit/LayoutTests/typedcssom/cssURLImageValue.html
[delete] https://crrev.com/d8188d1770ece5d6f022bd42785f408cefca4d7e/third_party/WebKit/LayoutTests/typedcssom/stylevalue-objects/parse-relative-url.html
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/Source/core/core_idl_files.gni
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/Source/core/css/cssom/CSSImageValue.idl
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/Source/core/css/cssom/CSSResourceValue.h
[delete] https://crrev.com/d8188d1770ece5d6f022bd42785f408cefca4d7e/third_party/WebKit/Source/core/css/cssom/CSSResourceValue.idl
[modify] https://crrev.com/73f5acd546731fe27621544ba06ff4a56aeb7f26/third_party/WebKit/Source/core/css/cssom/CSSURLImageValue.h
[delete] https://crrev.com/d8188d1770ece5d6f022bd42785f408cefca4d7e/third_party/WebKit/Source/core/css/cssom/CSSURLImageValue.idl

Blockedon: 816402
Blockedon: 816722
Blockedon: 816761
Blockedon: 816803
Blockedon: 817565
Project Member

Comment 242 by bugdroid1@chromium.org, Mar 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62

commit 8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62
Author: Darren Shen <shend@chromium.org>
Date: Thu Mar 01 05:46:37 2018

[css-typed-om] Implement correct ordering for StylePropertyMaps.

The correct ordering of properties depends on the type of style map:

- Computed: css properties first, then vendor prefixed ones, then
  custom properties. Within each category, sort by code point.
- Inline: same order as the CSSStyleDeclaration.
- Declared: same order as the CSSRule.

Spec: https://drafts.css-houdini.org/css-typed-om-1/#stylepropertymapreadonly

Bug: 545318
Change-Id: I34fe8f0741bdcc2188926b37635672a4dda32625
Reviewed-on: https://chromium-review.googlesource.com/940381
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540066}
[modify] https://crrev.com/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/computed.tentative.html
[modify] https://crrev.com/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/iterable.tentative.html
[modify] https://crrev.com/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/declared.tentative.html
[modify] https://crrev.com/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/iterable.tentative.html
[modify] https://crrev.com/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/iterable.tentative.html
[modify] https://crrev.com/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/inlineStylePropertyMap_iterationWithModification.html
[modify] https://crrev.com/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62/third_party/WebKit/Source/core/css/cssom/ComputedStylePropertyMap.cpp
[modify] https://crrev.com/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62/third_party/WebKit/Source/core/css/cssom/ComputedStylePropertyMap.h
[modify] https://crrev.com/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62/third_party/WebKit/Source/core/css/cssom/PrepopulatedComputedStylePropertyMap.cpp
[modify] https://crrev.com/8b62b6dd4772f3fb0bd3fde6e3d6936d3742cb62/third_party/WebKit/Source/core/css/cssom/StylePropertyMapReadOnly.cpp

Project Member

Comment 243 by bugdroid1@chromium.org, Mar 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ae32a5b004e565744d0272c2b9f3d81f63fb2162

commit ae32a5b004e565744d0272c2b9f3d81f63fb2162
Author: Darren Shen <shend@chromium.org>
Date: Fri Mar 02 03:30:47 2018

[css-typed-om] Add basic README containing supported properties.

We list the properties that are supported by Blink in the first pass
in a README.

Bug: 545318
Change-Id: I356eaa9aeb0e92977dac6651c05b3c81cfbd061a
Reviewed-on: https://chromium-review.googlesource.com/945182
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: nainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540436}
[add] https://crrev.com/ae32a5b004e565744d0272c2b9f3d81f63fb2162/third_party/WebKit/Source/core/css/cssom/README.md

Blockedon: 819098
Blockedon: 820299
Blockedon: 834165
Blockedon: 834164
Cc: shend@chromium.org
Owner: ----
Status: Available (was: Started)
No longer working on this anymore, but still happy to do code reviews.
Showing comments 149 - 248 of 248 Older

Sign in to add a comment