New issue
Advanced search Search tips
Starred by 24 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 6
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Task
Launch-Privacy: NotReviewed
Launch-Security: NotReviewed

Blocked on:
issue 602445
issue 621657
issue 683789
issue 788219



Sign in to add a comment

Implement CSS Paint API

Project Member Reported by ikilpatrick@chromium.org, Jan 15 2016

Issue description

Change description:
CSS Paint API defines a new callback which is designed to allow developers to write code which produces a CSS <image> during the paint phase of the rendering engine.

Changes to API surface:
New interfaces:
 - RenderWorkletGlobalScope
    - {,un}registerPaint
    - PaintRenderingContext2D
    - Geometry

Links: https://drafts.css-houdini.org/css-paint-api/
Public standards discussion: https://github.com/w3c/css-houdini-drafts/labels/CSS%20Paint

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

 
Project Member

Comment 2 by bugdroid1@chromium.org, Feb 24 2016

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

commit 5f9ff30aae3b19c25c14480ff0fbe291bf71a27d
Author: engedy <engedy@chromium.org>
Date: Wed Feb 24 19:42:56 2016

Revert of Pull up a subset of CanvasRenderingContext2D into BaseRenderingContext2D. (patchset #6 id:100001 of https://codereview.chromium.org/1710633002/ )

Reason for revert:
Speculative revert to fix WebKit Win non-Oilpan (dbg) breakage.

Original issue's description:
> Pull up a subset of CanvasRenderingContext2D into BaseRenderingContext2D.
>
> This will allow an additional sub-class of BaseRC2D called PaintRC2D.
> BaseRC2D contains the subset of APIs needed for PaintRC2D.
>
> See: https://drafts.css-houdini.org/css-paint-api/#paintrenderingcontext2d
>
> BUG= 578252 
>
> Committed: https://crrev.com/4333ef80f90f702a0571c030f15f0e317931ee7d
> Cr-Commit-Position: refs/heads/master@{#377082}

TBR=junov@chromium.org,sigbjornf@opera.com,ikilpatrick@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
BUG= 578252 

Review URL: https://codereview.chromium.org/1732923002

Cr-Commit-Position: refs/heads/master@{#377348}

[delete] https://crrev.com/697012a60bfbfe856247552df45219413d5b1fd3/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.cpp
[delete] https://crrev.com/697012a60bfbfe856247552df45219413d5b1fd3/third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.h
[modify] https://crrev.com/5f9ff30aae3b19c25c14480ff0fbe291bf71a27d/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
[modify] https://crrev.com/5f9ff30aae3b19c25c14480ff0fbe291bf71a27d/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.h
[modify] https://crrev.com/5f9ff30aae3b19c25c14480ff0fbe291bf71a27d/third_party/WebKit/Source/modules/modules.gypi

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 14 2016

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

commit 7cc9d3b1f854d212f0f5f2f2a4c3cf73c1c5ad4b
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Mon Mar 14 20:56:16 2016

Add paint() function as valid CSS <image> type.

Enabled behind CSSPaintAPI feature flag.

BUG= 578252 

Review URL: https://codereview.chromium.org/1782833008

Cr-Commit-Position: refs/heads/master@{#381068}

[modify] https://crrev.com/7cc9d3b1f854d212f0f5f2f2a4c3cf73c1c5ad4b/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/7cc9d3b1f854d212f0f5f2f2a4c3cf73c1c5ad4b/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp
[add] https://crrev.com/7cc9d3b1f854d212f0f5f2f2a4c3cf73c1c5ad4b/third_party/WebKit/Source/core/css/CSSPaintValue.cpp
[add] https://crrev.com/7cc9d3b1f854d212f0f5f2f2a4c3cf73c1c5ad4b/third_party/WebKit/Source/core/css/CSSPaintValue.h
[modify] https://crrev.com/7cc9d3b1f854d212f0f5f2f2a4c3cf73c1c5ad4b/third_party/WebKit/Source/core/css/CSSValue.cpp
[modify] https://crrev.com/7cc9d3b1f854d212f0f5f2f2a4c3cf73c1c5ad4b/third_party/WebKit/Source/core/css/CSSValue.h
[modify] https://crrev.com/7cc9d3b1f854d212f0f5f2f2a4c3cf73c1c5ad4b/third_party/WebKit/Source/core/css/CSSValueKeywords.in
[modify] https://crrev.com/7cc9d3b1f854d212f0f5f2f2a4c3cf73c1c5ad4b/third_party/WebKit/Source/core/css/parser/CSSPropertyParser.cpp
[modify] https://crrev.com/7cc9d3b1f854d212f0f5f2f2a4c3cf73c1c5ad4b/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in

Project Member

Comment 5 by bugdroid1@chromium.org, Mar 23 2016

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

commit fc7ba0faafadec3816f944d186854b9491dd3098
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Mar 23 00:17:19 2016

Introduce PaintWorkletGlobalScope, rename renderWorklet attribute to paintWorklet.

Was decided at Sydney F2F to split everything out into it's own worklet at the moment.
This may get revisited at some point in time.
https://drafts.css-houdini.org/css-paint-api/#dom-window-paintworklet

Introduces PaintWorkletGlobalScope with stub function for implementing registerPaint().
https://drafts.css-houdini.org/css-paint-api/#paintworkletglobalscope

BUG= 578252 

Review URL: https://codereview.chromium.org/1818223002

Cr-Commit-Position: refs/heads/master@{#382744}

[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/LayoutTests/http/tests/worklet/import.html
[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/bindings/scripts/v8_utilities.py
[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/core/dom/ExecutionContext.h
[add] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/csspaint/DEPS
[add] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/csspaint/OWNERS
[add] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/csspaint/PaintWorklet.cpp
[add] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/csspaint/PaintWorklet.h
[add] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
[add] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.h
[add] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.idl
[add] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/csspaint/WindowPaintWorklet.cpp
[add] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/csspaint/WindowPaintWorklet.h
[add] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/csspaint/WindowPaintWorklet.idl
[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/modules.gypi
[delete] https://crrev.com/a2e42791f5f91fef4ad2b4b27eb9648be9fb1b19/third_party/WebKit/Source/modules/worklet/DOMWindowWorklet.cpp
[delete] https://crrev.com/a2e42791f5f91fef4ad2b4b27eb9648be9fb1b19/third_party/WebKit/Source/modules/worklet/DOMWindowWorklet.h
[delete] https://crrev.com/a2e42791f5f91fef4ad2b4b27eb9648be9fb1b19/third_party/WebKit/Source/modules/worklet/WindowWorklet.idl
[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/worklet/Worklet.cpp
[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/worklet/Worklet.h
[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/worklet/WorkletGlobalScope.cpp
[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/worklet/WorkletGlobalScope.h
[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/modules/worklet/WorkletGlobalScope.idl
[modify] https://crrev.com/fc7ba0faafadec3816f944d186854b9491dd3098/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in

Project Member

Comment 6 by bugdroid1@chromium.org, Mar 23 2016

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 1 2016

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

commit ada96b395009c5594c398c6d1d0174fc96a8d78f
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Apr 01 20:08:54 2016

Implement PaintWorkletGlobalScope#registerPaint() for the CSS Paint API

The spec needs to be updated on this to more closely match how WebComponents works, which I'll do later this week.
https://drafts.css-houdini.org/css-paint-api/#dom-paintworkletglobalscope-registerpaint
(different ordering in spec + doesn't store the paint method in a "definition").

registerPaint stores the result in a CSSPaintDefinition class. This class will be used to invoke the paint() function to produce the image, which will be in a (large) subsequent patch.

BUG= 578252 

Review URL: https://codereview.chromium.org/1839913002

Cr-Commit-Position: refs/heads/master@{#384672}

[add] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/LayoutTests/csspaint/registerPaint-expected.txt
[add] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/LayoutTests/csspaint/registerPaint.html
[add] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp
[add] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.h
[modify] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
[modify] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.h
[modify] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.idl
[add] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/csspaint/PaintWorkletTest.cpp
[modify] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/csspaint/WindowPaintWorklet.cpp
[modify] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/csspaint/WindowPaintWorklet.h
[modify] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/modules.gypi
[modify] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/worklet/Worklet.cpp
[modify] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/worklet/WorkletGlobalScope.cpp
[modify] https://crrev.com/ada96b395009c5594c398c6d1d0174fc96a8d78f/third_party/WebKit/Source/modules/worklet/WorkletGlobalScope.h

Components: Blink>Paint
Blockedon: 602445
Project Member

Comment 10 by bugdroid1@chromium.org, Apr 18 2016

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

commit 13754fa546f6c83d4ded6b2a7d9fb37f09da48de
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Mon Apr 18 21:14:42 2016

Allow fallbackFactory to be null in RecordingImageBufferSurface.

This will mean that as long as the user doesn't call any "bad" methods
(writePixels etc) and is only used for one frame calling getPicture will
always result in a non-null SkPicture.

BUG= 578252 

Review URL: https://codereview.chromium.org/1879133004

Cr-Commit-Position: refs/heads/master@{#388026}

[modify] https://crrev.com/13754fa546f6c83d4ded6b2a7d9fb37f09da48de/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp
[modify] https://crrev.com/13754fa546f6c83d4ded6b2a7d9fb37f09da48de/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h

Comment 11 Deleted

This is pending a few patches but you should be able to use it behind a flag couple of weeks.
chrome://flags/#enable-experimental-web-platform-features

Keep watching this bug for more of the implementation to land.

The specification has examples of this feature.
https://drafts.css-houdini.org/css-paint-api/#example-1

Comment 13 Deleted

Comment 14 by acte...@gmail.com, Apr 20 2016

<script>
    window.paintWorklet.import("worklet.js");
</script>

Not working. I tried to enable flags. 
Project Member

Comment 15 by bugdroid1@chromium.org, Apr 26 2016

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

commit 065941e38a7ec787b7c1e13e50128816e1d422eb
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue Apr 26 19:10:55 2016

Hook up CSSPaintValue::image to CSS Paint API callback.

This introduces the plumbing required for custom paint.

PaintGeneratedImage - Holds onto a SkPicture for painting. This is
produced as the result of custom paint.

CSSPaintImageGeneratorImpl - Generates a PaintGeneratedImage based on a
LayoutObject and size. Invokes the custom paint callback inside
CSSPaintDefinition.

BUG= 578252 

Review URL: https://codereview.chromium.org/1866623002

Cr-Commit-Position: refs/heads/master@{#389838}

[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/background-image-multiple-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/background-image-multiple.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/background-image-tiled-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/background-image-tiled.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/geometry-background-image-expected.txt
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/geometry-background-image-tiled-expected.txt
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/geometry-background-image-tiled.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/geometry-background-image.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/geometry-border-image-expected.txt
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/geometry-border-image.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/invalid-image-constructor-error-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/invalid-image-constructor-error.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/invalid-image-paint-error-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/invalid-image-paint-error.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/invalid-image-pending-script-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/invalid-image-pending-script.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/overdraw-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/overdraw.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-composite-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-composite.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-gradient-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-gradient.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-paths-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-paths.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-rects-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-rects.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-shadows-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-shadows.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-transform-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/paint2d-transform.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/resources/paint-logging-green.js
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/resources/test-runner-geometry-logging.js
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/resources/test-runner-paint-worklet.js
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/valid-image-after-load-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/valid-image-after-load.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/valid-image-before-load-expected.html
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/csspaint/valid-image-before-load.html
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/bindings/core/v8/V8ObjectConstructor.h
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/core/core.gypi
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/core/css/CSSPaintImageGenerator.cpp
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/core/css/CSSPaintImageGenerator.h
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/core/css/CSSPaintValue.cpp
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/core/css/CSSPaintValue.h
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/ModulesInitializer.cpp
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/canvas2d/Path2D.idl
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.h
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.cpp
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.h
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/Geometry.h
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/Geometry.idl
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/PaintWorklet.cpp
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/PaintWorklet.h
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.h
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/csspaint/README.md
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/modules.gypi
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/modules/worklet/Worklet.h
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/platform/blink_platform.gypi
[modify] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/platform/graphics/ImageBuffer.h
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/platform/graphics/PaintGeneratedImage.cpp
[add] https://crrev.com/065941e38a7ec787b7c1e13e50128816e1d422eb/third_party/WebKit/Source/platform/graphics/PaintGeneratedImage.h

Blockedon: 608082
Project Member

Comment 18 by bugdroid1@chromium.org, May 17 2016

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

commit 0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue May 17 20:57:08 2016

Hook up style invalidation for CSS Paint API.

This introduces the plumbing required invalidating a custom paint
function.

This breaks the style invalidation into two distinct sets.
 - If the property is a valid native property the registerPaint function
   will convert it to a CSSPropertyID.
 - If it is a CSS variable (custom property) it will convert to an
   AtomicString.

The invalidation check occurs in ComputedStyle::diffNeedsPaintInvalidationObject

This relies on the incomplete behaviour of CSSPropertyEquality which
needs to be auto-generated (more).

BUG= 578252 

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

[add] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/LayoutTests/csspaint/invalidation-background-image-expected.txt
[add] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/LayoutTests/csspaint/invalidation-background-image.html
[add] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/LayoutTests/csspaint/invalidation-border-image-expected.txt
[add] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/LayoutTests/csspaint/invalidation-border-image.html
[add] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/LayoutTests/csspaint/invalidation-content-image-expected.txt
[add] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/LayoutTests/csspaint/invalidation-content-image.html
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/LayoutTests/csspaint/registerPaint-expected.txt
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/LayoutTests/csspaint/registerPaint.html
[add] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/LayoutTests/csspaint/resources/test-runner-invalidation-logging.js
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/build/scripts/make_css_property_names.py
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/animation/KeyframeEffectModel.cpp
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/css/CSSPaintImageGenerator.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/css/CSSPaintValue.h
[rename] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/css/CSSPropertyEquality.cpp
[rename] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/css/CSSPropertyEquality.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/css/parser/CSSVariableParser.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/css/resolver/ElementStyleResources.cpp
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/css/resolver/ElementStyleResources.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/style/StyleImage.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/style/StylePendingImage.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.cpp
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.h
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
[modify] https://crrev.com/0ab7ac1ec67da157bc4ef5cbcb1b10530bf997ad/third_party/WebKit/Source/modules/csspaint/README.md

How can I test CSS Paint API?
I tried to run chrome as follows:
$ chrome --enable-experimental-web-platform-features --enable-blink-features=CSSPaintAPI

I see the message "You are using unsupported command-line flag: --enable-blink-features"
The message "You are using unsupported command-line flag: --enable-blink-features" is expected at the moment. Once we move it to experimental you should only need "--enable-experimental-web-platform-features"

Currently we are just missing style information in order to flip this ^-^.

Ian
Project Member

Comment 21 by bugdroid1@chromium.org, Jun 9 2016

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

commit 4382d59bb2da192a3ee29f9ae454afe348c4056e
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jun 09 20:13:03 2016

[Typed OM] Implement FilteredComputedStylePropertyMap

This is needed for the CSS Paint API, as inside the paint callback only
properties listed as inputProperties should exist in the style map.

FilteredComputedStylePropertyMap takes a list of both the native and
custom properties and accessors will throw if the property isn't in this
list.

BUG= 578252 

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

[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/CSSComputedStyleDeclaration.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/CSSComputedStyleDeclaration.h
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/CSSStyleDeclaration.h
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/PropertySetCSSStyleDeclaration.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/PropertySetCSSStyleDeclaration.h
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/ComputedStylePropertyMap.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/ComputedStylePropertyMap.h
[add] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/FilteredComputedStylePropertyMap.cpp
[add] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/FilteredComputedStylePropertyMap.h
[add] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/FilteredComputedStylePropertyMapTest.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.h
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.h

Project Member

Comment 22 by bugdroid1@chromium.org, Jun 15 2016

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

commit 4382d59bb2da192a3ee29f9ae454afe348c4056e
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jun 09 20:13:03 2016

[Typed OM] Implement FilteredComputedStylePropertyMap

This is needed for the CSS Paint API, as inside the paint callback only
properties listed as inputProperties should exist in the style map.

FilteredComputedStylePropertyMap takes a list of both the native and
custom properties and accessors will throw if the property isn't in this
list.

BUG= 578252 

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

[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/CSSComputedStyleDeclaration.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/CSSComputedStyleDeclaration.h
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/CSSStyleDeclaration.h
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/PropertySetCSSStyleDeclaration.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/PropertySetCSSStyleDeclaration.h
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/ComputedStylePropertyMap.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/ComputedStylePropertyMap.h
[add] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/FilteredComputedStylePropertyMap.cpp
[add] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/FilteredComputedStylePropertyMap.h
[add] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/FilteredComputedStylePropertyMapTest.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.h
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.cpp
[modify] https://crrev.com/4382d59bb2da192a3ee29f9ae454afe348c4056e/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.h

Project Member

Comment 23 by bugdroid1@chromium.org, Jun 16 2016

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

commit 6323a0d40b5b1be1b81057666d64698e7a877af9
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jun 16 07:43:10 2016

Expose CSSTypedOM objects on the PaintWorkletGlobalScope.

This will allow authors to use the cssom inside the paintWorklet.

BUG= 578252 

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

[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSAngleValue.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSCalcLength.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSKeywordValue.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSLengthValue.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSMatrix.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSNumberValue.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSPerspective.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSPositionValue.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSRotation.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSScale.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSSimpleLength.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSSkew.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/CSSTranslation.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/TransformComponent.idl
[modify] https://crrev.com/6323a0d40b5b1be1b81057666d64698e7a877af9/third_party/WebKit/Source/core/css/cssom/TransformValue.idl

Project Member

Comment 24 by bugdroid1@chromium.org, Jun 16 2016

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

commit 9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jun 16 09:05:29 2016

[CSS Paint API] Add StylePropertyMap as an argument to the paint function.

This adds the FilteredComputedStylePropertyMap as an argument to the
CSS paint API function with only the listed inputProperties.

BUG= 578252 

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

[add] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/LayoutTests/csspaint/resources/generate-paint-style-logging.js
[add] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/LayoutTests/csspaint/style-background-image-expected.txt
[add] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/LayoutTests/csspaint/style-background-image.html
[add] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/LayoutTests/csspaint/style-before-pseudo-expected.txt
[add] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/LayoutTests/csspaint/style-before-pseudo.html
[add] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/LayoutTests/csspaint/style-first-letter-pseudo-expected.txt
[add] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/LayoutTests/csspaint/style-first-letter-pseudo.html
[modify] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/Source/core/css/CSSPaintImageGenerator.h
[modify] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/Source/core/css/CSSPaintValue.cpp
[modify] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp
[modify] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.h
[modify] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.cpp
[modify] https://crrev.com/9dd1fcf2ba902f87e64379a1d2e5a4d6562502dc/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.h

Blockedon: 621657
Project Member

Comment 27 by bugdroid1@chromium.org, Jun 22 2016

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

commit 3475c955bd2f2de70d84c166f1282010b690bfe7
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Jun 22 12:56:11 2016

Move CSSPaintAPI and Worklet to experimental

The CSSPaintAPI is now actually usable, lets get people experimenting!

BUG= 578252 

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

[modify] https://crrev.com/3475c955bd2f2de70d84c166f1282010b690bfe7/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in

Hi, tried to run Circles from houdini-samples but the circle is black.  "properties.get('--circle-color').cssString;" returns undefined.

Tried ripples sample and every property is undefined

I'm running this verson: 53.0.2782.0 canary (64-bit)

Thanks in advance, nice work
Thanks for looking! We've recently (yesterday) changed the TypedOM cssString attribute to cssText.

I've created a PR for the houdini-samples repo to make this work again.
See: https://github.com/GoogleChrome/houdini-samples/pull/7

If you clone:
https://github.com/bfgeek/houdini-samples 

And serve locally, the demos should work again.

Thanks, Ian
Thank you Ian. It works. Really cool!

Comment 31 by yio...@gmail.com, Jun 30 2016

What time to support document.registerProperty?
Project Member

Comment 32 by bugdroid1@chromium.org, Jul 6 2016

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

commit 7f4335afc67aec5a50d7eb1285f12c04ec41f8cb
Author: glebl <glebl@chromium.org>
Date: Wed Jul 06 23:13:53 2016

This change adds "alpha" option to PaintWorklet.

Usage example:
registerPaint('foo', class {
  static get alpha() { return true; }

  paint() { }
});

If true (default) the backdrop of the rendering context is transparent, if false the backdrop is opaque.

css-houdini-drafts github issue: https://github.com/w3c/css-houdini-drafts/issues/220

BUG= 578252 

TEST=third_party/WebKit/LayoutTests/csspaint/background-image-alpha.html

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

[add] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/LayoutTests/csspaint/background-image-alpha-expected.html
[add] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/LayoutTests/csspaint/background-image-alpha.html
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/LayoutTests/csspaint/registerPaint-expected.txt
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/LayoutTests/csspaint/registerPaint.html
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/core/css/CSSPaintImageGenerator.h
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/core/css/CSSPaintValue.cpp
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/core/css/CSSPaintValue.h
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.h
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.cpp
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.h
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.cpp
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.h
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2DTest.cpp
[modify] https://crrev.com/7f4335afc67aec5a50d7eb1285f12c04ec41f8cb/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp

Project Member

Comment 33 by bugdroid1@chromium.org, Jul 13 2016

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

commit 6b2b9c70636afcc1127e6b199d482a5ffee3fd84
Author: glebl <glebl@chromium.org>
Date: Wed Jul 13 02:09:51 2016

Fix zoom in CSS paint worklets.

This patch does next things:

1) Propagate the zoom factor to CSSPaintDefinition, so we can calculate CSS size

2) Report correct CSS size in 'geom' parameter of CSS paint worklet.

3) Let PaintGeneratedImage report its intrinsic size, instead of improperly conforming to the size of its container.

BUG= 578252 
TEST=third_party/WebKit/LayoutTests/csspaint/paint2d-zoom.html

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

[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/LayoutTests/csspaint/paint2d-zoom-expected.txt
[add] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/LayoutTests/csspaint/paint2d-zoom.html
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.h
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/core/css/CSSPaintImageGenerator.h
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/core/css/CSSPaintValue.cpp
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/core/css/CSSPaintValue.h
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.h
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.cpp
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.h
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.cpp
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.h
[modify] https://crrev.com/6b2b9c70636afcc1127e6b199d482a5ffee3fd84/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2DTest.cpp

Blockedon: 671849
Blockedon: 683789
Project Member

Comment 38 by bugdroid1@chromium.org, Aug 22 2017

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

commit e14800dd10b71634dfec3bc38a15bd45ba6b2b16
Author: Xida Chen <xidachen@chromium.org>
Date: Tue Aug 22 03:08:15 2017

Reduce exposure of PaintWorklet CSSPaintAPI

There are quite a few interfaces that are exposed under both
Window CSSTypedOM and PaintWorklet CSSPaintAPI. This CL limits the
exposure of CSSPaintAPI to CSSStyleValue and StylePropertyMapReadonly.

TBR=junov@chromium.org

Bug:  578252 
Change-Id: Ia617df1ad17138a59fc9aeb214a376c9b8a5391b
Reviewed-on: https://chromium-review.googlesource.com/617307
Commit-Queue: Xida Chen <xidachen@chromium.org>
Reviewed-by: Xida Chen <xidachen@chromium.org>
Reviewed-by: meade_UTC10 <meade@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496194}
[modify] https://crrev.com/e14800dd10b71634dfec3bc38a15bd45ba6b2b16/third_party/WebKit/Source/core/css/cssom/CSSKeywordValue.idl
[modify] https://crrev.com/e14800dd10b71634dfec3bc38a15bd45ba6b2b16/third_party/WebKit/Source/core/css/cssom/CSSNumericValue.idl
[modify] https://crrev.com/e14800dd10b71634dfec3bc38a15bd45ba6b2b16/third_party/WebKit/Source/core/css/cssom/CSSPositionValue.idl
[modify] https://crrev.com/e14800dd10b71634dfec3bc38a15bd45ba6b2b16/third_party/WebKit/Source/core/css/cssom/CSSResourceValue.idl
[modify] https://crrev.com/e14800dd10b71634dfec3bc38a15bd45ba6b2b16/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.idl
[modify] https://crrev.com/e14800dd10b71634dfec3bc38a15bd45ba6b2b16/third_party/WebKit/Source/core/css/cssom/CSSUnparsedValue.idl

Cc: flackr@chromium.org ikilpatrick@chromium.org
Labels: Launch-Privacy-NotReviewed Launch-Security-NotReviewed
Owner: xidac...@chromium.org
Project Member

Comment 40 by bugdroid1@chromium.org, Sep 11 2017

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

commit 430e00a2f98704ad25c70c9621d1d65af26538a9
Author: Xida Chen <xidachen@chromium.org>
Date: Mon Sep 11 01:39:32 2017

Replace alpha with PaintRenderingContext2DSettings in CSS Paint API

It has been resolved here:
https://github.com/w3c/css-houdini-drafts/issues/435
That we should replace the alpha flag with a
PaintRenderingContext2DSettings object.

This CL creates a dictionary item named "PaintRenderingContext2DSettings",
currently this dictionary has only a boolean flag "alpha". This CL
also replaces all the places that uses the boolean with the
context_settings.

This CL also does a tiny refactor in PaintWorkletGlobalScope, where
the part of the code that parses "inputArguments", "inputProperties" etc,
are moved to functions in an anonymous namespace.

This CL should not cause any behavior change. We also added some more
layout tests to make sure that the settings are parsed correctly.

Bug:  578252 
Change-Id: I1e01f10250a839cc91632841ee12ecbfa8509faa
Reviewed-on: https://chromium-review.googlesource.com/621746
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Xida Chen <xidachen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500822}
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/LayoutTests/external/wpt/css-paint-api/background-image-alpha.html
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/LayoutTests/external/wpt/css-paint-api/paint-arguments.html
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/LayoutTests/external/wpt/css-paint-api/paint-function-arguments.html
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/LayoutTests/external/wpt/css-paint-api/parse-input-arguments-016.html
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/LayoutTests/external/wpt/css-paint-api/parse-input-arguments-017.html
[add] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/LayoutTests/external/wpt/css-paint-api/parse-input-arguments-019.html
[add] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/LayoutTests/external/wpt/css-paint-api/parse-input-arguments-020.html
[add] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/LayoutTests/external/wpt/css-paint-api/parse-input-arguments-021.html
[add] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/LayoutTests/external/wpt/css-paint-api/parse-input-arguments-022.html
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.cpp
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.h
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/csspaint/CSSPaintImageGeneratorImpl.cpp
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/csspaint/DocumentPaintDefinition.cpp
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/csspaint/DocumentPaintDefinition.h
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.cpp
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.h
[add] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2DSettings.idl
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2DTest.cpp
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
[modify] https://crrev.com/430e00a2f98704ad25c70c9621d1d65af26538a9/third_party/WebKit/Source/modules/modules_idl_files.gni

Labels: -M-56
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
Project Member

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

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

commit 98b46470f307a68c8183d628237d7b361af96244
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Nov 21 01:22:24 2017

Add secure_context_mode_ to CSSParserContext.

This is in order to allow the CSS Parser to treat the paint() function as
invalid on insecure contexts.

This doesn't add that functionality, just the flag to the context.
I added a new enum for this to ensure type-safety, as this bool ends up next to
a few other bools like "important".

This shouldn't have any change in behaviour.

Bug:  578252 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I42c05c9a204e84a021a331f74032a73499645a51
Reviewed-on: https://chromium-review.googlesource.com/759112
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: meade_UTC10 <meade@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518016}
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/bindings/core/v8/custom/V8CSSStyleDeclarationCustom.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/animation/AnimationSimTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/animation/CompositorAnimationsTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/animation/EffectInput.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/animation/EffectStackTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/animation/KeyframeEffectModelTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/animation/StringKeyframe.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/animation/StringKeyframe.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/ActiveStyleSheetsTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSS.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSCalculationValueTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSComputedStyleDeclaration.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSComputedStyleDeclaration.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSDefaultStyleSheets.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSGradientValueTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSGroupingRule.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSGroupingRule.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSGroupingRule.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSKeyframesRule.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSKeyframesRule.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSKeyframesRule.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSPageRule.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSPageRule.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSPageRule.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSPageRuleTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSPaintValue.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSPaintValue.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSPropertyValueSet.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSPropertyValueSet.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSRule.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSRule.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSSelectorWatch.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSStyleDeclaration.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSStyleDeclaration.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSStyleRule.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSStyleRule.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSStyleRule.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSTestHelper.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSVariableData.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/CSSVariableData.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/DOMWindowCSS.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/DOMWindowCSS.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/FontFaceSetDocument.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/FontFaceSetWorker.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/PropertySetCSSStyleDeclaration.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/PropertySetCSSStyleDeclaration.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/StyleEngineTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/StyleRuleImport.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/StyleSheetContentsFuzzer.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/StyleSheetContentsTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSKeywordValue.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSKeywordValue.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSMathValue.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSMatrixComponent.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSMatrixComponent.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSPerspective.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSPerspective.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSPositionValue.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSPositionValue.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSResourceValueTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSRotation.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSRotation.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSScale.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSScale.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSSkew.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSSkew.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSStyleImageValueTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSStyleValue.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSTransformComponent.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSTransformComponent.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSTransformComponent.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSTransformValue.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSTranslation.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSTranslation.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSURLImageValue.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSUnitValue.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSUnitValue.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSUnparsedValue.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSUnparsedValue.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSUnsupportedStyleValue.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/CSSUnsupportedStyleValue.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/InlineStylePropertyMap.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/parser/CSS.proto
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/parser/CSSLazyParsingTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/parser/CSSParser.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/parser/CSSParser.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/parser/CSSParserContext.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/parser/CSSParserContext.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/parser/CSSParserProtoFuzzer.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/parser/CSSPropertyParserTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/parser/CSSSelectorParserTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/parser/SizesCalcParserTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/resolver/FontStyleResolverTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/threaded/CSSParserThreadedTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/threaded/FilterOperationResolverThreadedTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/css/threaded/FontObjectThreadedTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/dom/ExecutionContext.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/editing/EditingStyle.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/editing/EditingStyle.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/editing/EditingStyleUtilities.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/editing/Editor.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/editing/VisiblePositionTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/editing/commands/ApplyStyleCommand.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/editing/commands/ApplyStyleCommandTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/editing/commands/RemoveCSSPropertyCommand.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/editing/serializers/StyledMarkupSerializer.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/exported/WebSelector.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/exported/WebViewTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/geometry/DOMMatrix.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/geometry/DOMMatrix.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/geometry/DOMMatrix.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/geometry/DOMMatrixReadOnly.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/geometry/DOMMatrixReadOnly.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/html/HTMLFontElement.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/html/HTMLMarqueeElement.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/html/canvas/CanvasFontCache.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/inspector/InspectorCSSAgent.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/inspector/InspectorStyleSheet.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/layout/LayoutBlockTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/loader/resource/CSSStyleSheetResourceTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/svg/SVGAnimateElement.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/core/svg/SVGLength.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/modules/canvas/canvas2d/BaseRenderingContext2D.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/modules/canvas/canvas2d/BaseRenderingContext2D.h
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2D.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/modules/canvas/offscreencanvas2d/OffscreenCanvasRenderingContext2D.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/modules/canvas/offscreencanvas2d/OffscreenCanvasRenderingContext2D.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/modules/csspaint/PaintRenderingContext2D.idl
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/modules/media_controls/MediaControlsImpl.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/modules/media_controls/MediaControlsRotateToFullscreenDelegateTest.cpp
[modify] https://crrev.com/98b46470f307a68c8183d628237d7b361af96244/third_party/WebKit/Source/modules/media_controls/elements/MediaControlLoadingPanelElement.cpp

Project Member

Comment 44 by bugdroid1@chromium.org, Nov 22 2017

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

commit 9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Nov 22 01:37:23 2017

[css-paint-api] Restrict paint() function to only parse in secure contexts.

This is a direct followup to:
https://chromium-review.googlesource.com/c/chromium/src/+/759112

As per the blink-dev decision:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/Jex3idOld48

Bug:  578252 
Change-Id: I865d25b15581adb688e94788d05f78e0974858c8
Reviewed-on: https://chromium-review.googlesource.com/780961
Reviewed-by: nainar <nainar@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518491}
[add] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/LayoutTests/http/tests/csspaint/at-supports-rule-insecure-context.html
[add] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/LayoutTests/http/tests/csspaint/at-supports-rule-secure-context.html
[add] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/LayoutTests/http/tests/csspaint/dynamic-parse-insecure-context.html
[add] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/LayoutTests/http/tests/csspaint/dynamic-parse-secure-context.html
[add] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/LayoutTests/http/tests/csspaint/parse-insecure-context.html
[add] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/LayoutTests/http/tests/csspaint/parse-secure-context.html
[add] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/LayoutTests/http/tests/csspaint/supports-insecure-context.html
[add] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/LayoutTests/http/tests/csspaint/supports-secure-context.html
[modify] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/Source/core/css/parser/CSSParserContext.cpp
[modify] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/Source/core/css/parser/CSSParserContext.h
[modify] https://crrev.com/9a0cfb428cf07e2ccdd2aeb4968c3c323fb3e40e/third_party/WebKit/Source/core/css/parser/CSSPropertyParserHelpers.cpp

Blockedon: 788219

Comment 46 by osubl...@gmail.com, Dec 13 2017

Has Path2D been implemented? I can create a Path2D object, but adding anything to it causes the page crashes.

// OK
var path = new Path2D()

// crash
path.rect(10, 10, 100,100)

Running Version 63.0.3239.84 (Official Build) (64-bit)
Blockedon: -608082
Blockedon: -671849
Project Member

Comment 49 by bugdroid1@chromium.org, Jan 17

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

commit 9df518ea41271fef3a3b4b9b85164b632092c5db
Author: Xida Chen <xidachen@chromium.org>
Date: Wed Jan 17 03:51:49 2018

Ship CSS Paint API

We already have 3 LGTMs from the API owners:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/Jex3idOld48

This CL removes the experimental flag for this feature.

Bug:  578252 
Change-Id: Id745a0d3bc2f7c8a77ba9f7a49b1a67c8456676e
Reviewed-on: https://chromium-review.googlesource.com/862188
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Xida Chen <xidachen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529585}
[modify] https://crrev.com/9df518ea41271fef3a3b4b9b85164b632092c5db/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/9df518ea41271fef3a3b4b9b85164b632092c5db/third_party/WebKit/Source/platform/runtime_enabled_features.json5

Congrats for shipping the API!! :D
PaintWorklet on the main thread is now feature complete, moving it off-thread will be captured in a new bug.
Status: Fixed (was: Assigned)
Project Member

Comment 53 by bugdroid1@chromium.org, Mar 8

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

commit b18148a55bfe0e2d8eba83d5cd58ba8105bbf9d7
Author: Eric Willigers <ericwilligers@chromium.org>
Date: Thu Mar 08 14:42:12 2018

CSS Paint API: Use counters for interface members

We use count
- CSS.paintWorklet
- PaintWorkletGlobalScope.devicePixelRatio
- PaintWorkletGlobalScope.registerPaint

BUG= 578252 

Change-Id: I188c980816c3c1f205de0209dd2226e39a7e7475
Reviewed-on: https://chromium-review.googlesource.com/892941
Commit-Queue: Eric Willigers <ericwilligers@chromium.org>
Reviewed-by: Xida Chen <xidachen@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541794}
[modify] https://crrev.com/b18148a55bfe0e2d8eba83d5cd58ba8105bbf9d7/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.idl
[modify] https://crrev.com/b18148a55bfe0e2d8eba83d5cd58ba8105bbf9d7/third_party/WebKit/public/platform/web_feature.mojom
[modify] https://crrev.com/b18148a55bfe0e2d8eba83d5cd58ba8105bbf9d7/tools/metrics/histograms/enums.xml

Sign in to add a comment