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

Issue 627945 link

Starred by 11 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature

Blocked on:
issue 594639
issue 719857

Blocking:
issue 567358
issue 710837



Sign in to add a comment

Switch PaintWorklet (main thread worklet) to module script loading

Project Member Reported by ikilpatrick@chromium.org, Jul 13 2016

Issue description

Currently the worklets load their script as a "classic" script, and only fetch from "same-origin". Before we expose this worklets we want to switch to a "module" loaded script.

The work to be done here is:
 - Make blink::WorkerOrWorkletScriptController be able to evaluate script source as a module instead of a regular v8::Script.
 - Switch blink::Worklet to use this new evaluation, + change the fetching of the script source to "cors" instead of "same-origin".

This work is blocked by v8 support of modules, see tracking bug here:
https://bugs.chromium.org/p/v8/issues/detail?id=1569

Once v8 supports this we'll be able to switch over. :)
(We might be able to switch once v8 can support eval'ing modules, and not the full "import" support, but will need to coordinate w/ adamk@).

kinuko@ cc'ing you as FYI.

 

Comment 1 by kinuko@chromium.org, Jul 14 2016

Cc: yhirano@chromium.org nhiroki@chromium.org
Components: Blink>Workers
Cc: kouhei@chromium.org
Labels: -Pri-3 Pri-2
Owner: nhiroki@chromium.org
Status: Assigned (was: Available)
I'll start this after kouhei@'s ES6 modules patch is landed:
https://codereview.chromium.org/2555653002/

I plan to focus on main-thread worklet (ie, PaintWorklet) first.
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 27 2017

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

commit f1e393e2cab401597d52fe9b7ed90946c5d426d3
Author: nhiroki <nhiroki@chromium.org>
Date: Fri Jan 27 06:22:43 2017

Worklet: Straighten layering of worklet script loading

This is a preparation to switch Worklet to module script loading.

Before this CL, WorkletScriptLoader is entangled with Worklet. Worklet fetches a
script and passes it to WorkletScriptLoader with a promise resolver. Then,
WorkletScriptLoader loads it and settles the resolver.

After this CL, WorkletScriptLoader dedicates to script fetching and loading.
WorkletScriptLoader provides Client interface so that a loader client can
receive notifications from the loader. Worklet no longer takes care of script
fetching. Worklet implements the Client interface to wait for completion of
resource loading, evaluates a script and settles a resolver.

BUG= 627945 

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

[modify] https://crrev.com/f1e393e2cab401597d52fe9b7ed90946c5d426d3/third_party/WebKit/LayoutTests/http/tests/worklet/resources/import-tests.js
[modify] https://crrev.com/f1e393e2cab401597d52fe9b7ed90946c5d426d3/third_party/WebKit/Source/core/workers/Worklet.cpp
[modify] https://crrev.com/f1e393e2cab401597d52fe9b7ed90946c5d426d3/third_party/WebKit/Source/core/workers/Worklet.h
[modify] https://crrev.com/f1e393e2cab401597d52fe9b7ed90946c5d426d3/third_party/WebKit/Source/core/workers/WorkletScriptLoader.cpp
[modify] https://crrev.com/f1e393e2cab401597d52fe9b7ed90946c5d426d3/third_party/WebKit/Source/core/workers/WorkletScriptLoader.h

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 27 2017

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

commit 14ab9f9226faafb2c153f1d63b8bf8060d91260e
Author: nhiroki <nhiroki@chromium.org>
Date: Fri Jan 27 21:43:43 2017

Worklet: Move WorkletScriptLoader from core/workers to core/loader

This CL moves WorkletScriptLoader from core/workers to core/loader because
clients of Resource classes should be placed under core/loader in terms of
modularity. This is a simple moving patch and should not change behavior.

BUG= 627945 

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

[modify] https://crrev.com/14ab9f9226faafb2c153f1d63b8bf8060d91260e/third_party/WebKit/Source/core/loader/BUILD.gn
[rename] https://crrev.com/14ab9f9226faafb2c153f1d63b8bf8060d91260e/third_party/WebKit/Source/core/loader/WorkletScriptLoader.cpp
[rename] https://crrev.com/14ab9f9226faafb2c153f1d63b8bf8060d91260e/third_party/WebKit/Source/core/loader/WorkletScriptLoader.h
[modify] https://crrev.com/14ab9f9226faafb2c153f1d63b8bf8060d91260e/third_party/WebKit/Source/core/workers/BUILD.gn
[modify] https://crrev.com/14ab9f9226faafb2c153f1d63b8bf8060d91260e/third_party/WebKit/Source/core/workers/Worklet.h

Status: Started (was: Assigned)
Blockedon: 594639
Summary: Switch main thread worklets to module script loading (was: Switch worklets to module script loading)
Initial ES6 modules implementation was almost landed, so I restarted this work.

Our initial target is the main thread worklets (ie., PaintWorklet) as c#3.
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 18 2017

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

commit 0a5f98358dc00a9959a0b98a88b7e941a6c1f739
Author: nhiroki <nhiroki@chromium.org>
Date: Tue Apr 18 06:15:59 2017

Worklet: Separate Worklet into MainThreadWorklet and ThreadedWorklet

This is a preparation patch for introducing module script loading for main
thread worklets. This should not change behavior.

In the current implementation, classic script loading code is tied with Worklet
class that is the common class of main thread worklets and threaded worklets.
This is an obstacle to introduce module script loading only in main thread
worklets.

This CL separates the Worklet class into MainThreadWorklet and ThreadedWorklet
as a stopgap. MainThreadWorklet will implement module script loading in
following patches and ThreadedWorklet will keep classic script loading until
module script loading becomes available for ThreadedWorklets.

BUG= 627945 

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

[modify] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/core/workers/BUILD.gn
[add] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp
[add] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/core/workers/MainThreadWorklet.h
[add] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/core/workers/ThreadedWorklet.cpp
[add] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/core/workers/ThreadedWorklet.h
[modify] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/core/workers/Worklet.cpp
[modify] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/core/workers/Worklet.h
[modify] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/modules/compositorworker/AnimationWorklet.cpp
[modify] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/modules/compositorworker/AnimationWorklet.h
[modify] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/modules/csspaint/PaintWorklet.cpp
[modify] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/modules/csspaint/PaintWorklet.h
[modify] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/modules/webaudio/AudioWorklet.cpp
[modify] https://crrev.com/0a5f98358dc00a9959a0b98a88b7e941a6c1f739/third_party/WebKit/Source/modules/webaudio/AudioWorklet.h

Blocking: 710837
Project Member

Comment 10 by bugdroid1@chromium.org, Apr 22 2017

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

commit bd57430f53d31aa3ca7c4c28f7189667feb04908
Author: nhiroki <nhiroki@chromium.org>
Date: Sat Apr 22 19:15:55 2017

Worklet: Move WorkletScriptLoader from MainThreadWorklet to MainThreadWorkletGlobalScope

This is a preparation CL for introducing module loading for MainThreadWorklet
(i.e., PaintWorklet). ThreadedWorklet is out of the scope for now.

According to the "fetch and invoke a worklet script" algorithm defined in the
Worklet spec[1], worklet script fetch is supposed to be conducted in the worklet
global scope execution environment (i.e., WorkletGlobalScope). However, in the
current implementation, the algorithm is partially implemented on Worklet class
that exists in document execution environment. This doesn't match the spec.

To fix it, this CL moves WorkletScriptLoader from MainThreadWorklet to
MainThreadWorkletGlobalScope. This should not change the behavior.

[1] https://drafts.css-houdini.org/worklets/#fetch-and-invoke-a-worklet-script

BUG= 627945 

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

[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/core/loader/WorkletScriptLoader.h
[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/core/workers/BUILD.gn
[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp
[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/core/workers/MainThreadWorklet.h
[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.cpp
[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.h
[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/core/workers/MainThreadWorkletTest.cpp
[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/core/workers/WorkletGlobalScopeProxy.h
[add] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/core/workers/WorkletObjectProxy.h
[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/modules/csspaint/PaintWorklet.cpp
[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
[modify] https://crrev.com/bd57430f53d31aa3ca7c4c28f7189667feb04908/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.h

Project Member

Comment 11 by bugdroid1@chromium.org, Apr 26 2017

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

commit f2c7bd6ebff851528ab06aa8ff14a964e3437df0
Author: nhiroki <nhiroki@chromium.org>
Date: Wed Apr 26 11:52:00 2017

Worklet: Move Worklet::Initialize() into ThreadedWorklet for cleanup

This is split from https://codereview.chromium.org/2840523002/

Worklet::Initialize() is called when addModule() is called for the first time,
and expected to initialize a messaging proxy and a worklet thread. This is
used only for threaded worklets, and not necessary for main thread worklets.
Therefore, this CL moved it from Worklet to ThreadedWorklet.

Motivation of this change: MainThreadWorklet will have a separate initialization
logic after the above CL and the similar initialization function will be an
obstacle.

BUG= 627945 

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

[modify] https://crrev.com/f2c7bd6ebff851528ab06aa8ff14a964e3437df0/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp
[modify] https://crrev.com/f2c7bd6ebff851528ab06aa8ff14a964e3437df0/third_party/WebKit/Source/core/workers/ThreadedWorklet.cpp
[modify] https://crrev.com/f2c7bd6ebff851528ab06aa8ff14a964e3437df0/third_party/WebKit/Source/core/workers/ThreadedWorklet.h
[modify] https://crrev.com/f2c7bd6ebff851528ab06aa8ff14a964e3437df0/third_party/WebKit/Source/core/workers/Worklet.cpp
[modify] https://crrev.com/f2c7bd6ebff851528ab06aa8ff14a964e3437df0/third_party/WebKit/Source/core/workers/Worklet.h

Project Member

Comment 12 by bugdroid1@chromium.org, Apr 28 2017

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

commit 322942d036996ccb422964135650d4416081474c
Author: nhiroki <nhiroki@chromium.org>
Date: Fri Apr 28 05:46:39 2017

Worklet: Introduce "pending tasks struct" concept defined in the Worklet spec

This is split from https://codereview.chromium.org/2840523002/

This CL introduces "pending tasks struct" concept defined in the Worklet spec:
https://drafts.css-houdini.org/worklets/#pending-tasks-struct

The pending tasks struct is used as a kind of barrier closure: when
Worklet::addModule() is called, multiple WorkletGlobalScopes associated with the
Worklet may start module loading. The struct waits until they all are completed
and then resolves a promise. If one of them is failed, the struct immediately
rejects a promise and ignores following completions.

This CL also removes WorkletObjectProxy and the request id mechanism in
MainThreadWorklet using the pending tasks struct.

BUG= 627945 

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

[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/loader/WorkletScriptLoader.h
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/BUILD.gn
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/MainThreadWorklet.h
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.cpp
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.h
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/MainThreadWorkletTest.cpp
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/ThreadedWorklet.h
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/Worklet.h
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/WorkletGlobalScopeProxy.h
[delete] https://crrev.com/fca892fe54b316243806c3b1cfc6cad5e23ae098/third_party/WebKit/Source/core/workers/WorkletObjectProxy.h
[add] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/WorkletPendingTasks.cpp
[add] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/core/workers/WorkletPendingTasks.h
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/modules/csspaint/PaintWorklet.cpp
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
[modify] https://crrev.com/322942d036996ccb422964135650d4416081474c/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.h

Project Member

Comment 13 by bugdroid1@chromium.org, Apr 28 2017

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

commit 5aea160185999ed1bee581bf5d1a6b5757a5eb8d
Author: nhiroki <nhiroki@chromium.org>
Date: Fri Apr 28 15:11:04 2017

Worklet: Add step comments in MainThreadWorklet::addModule()

Spec: https://drafts.css-houdini.org/worklets/#dom-worklet-addmodule

BUG= 627945 

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

[modify] https://crrev.com/5aea160185999ed1bee581bf5d1a6b5757a5eb8d/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp

Project Member

Comment 14 by bugdroid1@chromium.org, May 2 2017

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

commit 70506ba46cddc70df56252e365866361e7712466
Author: nhiroki <nhiroki@chromium.org>
Date: Tue May 02 06:18:09 2017

Worklet: Introduce PaintWorkletGlobalScopeProxy

This is split from https://codereview.chromium.org/2840523002/

Before this CL, PaintWorklet is tightly coupled with PaintWorkletGlobalScope,
and that is an obstacle to unifying MainThreadWorklet and ThreadedWorklet.

This CL introduces PaintWorkletGlobalScopeProxy to separate
PaintWorkletGlobalScope from PaintWorklet and makes it easier to abstract
communication between Worklet and WorkletGlobalScope in future CLs.

BUG= 627945 

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

[modify] https://crrev.com/70506ba46cddc70df56252e365866361e7712466/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.cpp
[modify] https://crrev.com/70506ba46cddc70df56252e365866361e7712466/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.h
[modify] https://crrev.com/70506ba46cddc70df56252e365866361e7712466/third_party/WebKit/Source/core/workers/MainThreadWorkletTest.cpp
[modify] https://crrev.com/70506ba46cddc70df56252e365866361e7712466/third_party/WebKit/Source/core/workers/WorkletGlobalScopeProxy.h
[modify] https://crrev.com/70506ba46cddc70df56252e365866361e7712466/third_party/WebKit/Source/modules/csspaint/BUILD.gn
[modify] https://crrev.com/70506ba46cddc70df56252e365866361e7712466/third_party/WebKit/Source/modules/csspaint/PaintWorklet.cpp
[modify] https://crrev.com/70506ba46cddc70df56252e365866361e7712466/third_party/WebKit/Source/modules/csspaint/PaintWorklet.h
[add] https://crrev.com/70506ba46cddc70df56252e365866361e7712466/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScopeProxy.cpp
[add] https://crrev.com/70506ba46cddc70df56252e365866361e7712466/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScopeProxy.h
[modify] https://crrev.com/70506ba46cddc70df56252e365866361e7712466/third_party/WebKit/Source/modules/csspaint/PaintWorkletTest.cpp

Components: Blink>Paint
Summary: Switch PaintWorklet (main thread worklet) to module script loading (was: Switch main thread worklets to module script loading)
According to modules/csspaint/OWNERS, "Blink>CSS" would be the right component.
Components: -Blink>Paint Blink>CSS
Project Member

Comment 18 by bugdroid1@chromium.org, May 8 2017

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

commit 9ed576b84a66830d0caf72c4e4823c9b821f6b3f
Author: nhiroki <nhiroki@chromium.org>
Date: Mon May 08 07:12:48 2017

Worklet: Specify JavaScript MIME type for Worklets created from Blob URL

This is a preparation CL to switch Worklet from classic script loading to
module loading.

Worklet script (module script) must be served with one of the valid JavaScript
MIME types[1]. This is required by the HTML spec[2]. This CL changes tests for
PaintWorklet in order to obey the spec.

[1] https://html.spec.whatwg.org/multipage/scripting.html#javascript-mime-type
[2] https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-single-module-script (step 7)

BUG= 627945 

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

[modify] https://crrev.com/9ed576b84a66830d0caf72c4e4823c9b821f6b3f/third_party/WebKit/LayoutTests/csspaint/resources/test-runner-invalidation-logging.js
[modify] https://crrev.com/9ed576b84a66830d0caf72c4e4823c9b821f6b3f/third_party/WebKit/LayoutTests/csspaint/resources/test-runner-paint-worklet.js
[modify] https://crrev.com/9ed576b84a66830d0caf72c4e4823c9b821f6b3f/third_party/WebKit/LayoutTests/csspaint/valid-image-after-load.html
[modify] https://crrev.com/9ed576b84a66830d0caf72c4e4823c9b821f6b3f/third_party/WebKit/LayoutTests/csspaint/valid-image-before-load.html

Project Member

Comment 21 by bugdroid1@chromium.org, May 9 2017

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

commit 08ce463ab55e4d777f21f394a78cefaaa5a777f1
Author: nhiroki <nhiroki@chromium.org>
Date: Tue May 09 04:28:14 2017

Worklet: Move common code among Worker/WorkletGlobalScope to WorkerOrWorkletGlobalScope

For cleanup, this CL factors out WorkerOrWorkletScriptController from
WorkerGlobalScope and WorkletGlobalScope to WorkerOrWorkletGlobalScope.

This cleanup is useful for implementing ExecutionContext::CanExecuteScripts on
WorkerOrWorkletGlobalScope that's necessary for module loading.

BUG= 627945 

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

[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/bindings/core/v8/ScheduledAction.cpp
[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/bindings/core/v8/V8AbstractEventListener.cpp
[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/core/dom/ExecutionContext.cpp
[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/core/probe/CoreProbes.cpp
[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/core/workers/WorkerGlobalScope.cpp
[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/core/workers/WorkerGlobalScope.h
[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/core/workers/WorkerOrWorkletGlobalScope.cpp
[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/core/workers/WorkerOrWorkletGlobalScope.h
[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/core/workers/WorkletGlobalScope.cpp
[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/core/workers/WorkletGlobalScope.h
[modify] https://crrev.com/08ce463ab55e4d777f21f394a78cefaaa5a777f1/third_party/WebKit/Source/modules/compositorworker/CompositorWorkerGlobalScope.cpp

Blockedon: 719857

Comment 23 by shend@chromium.org, May 10 2017

Labels: Update-Monthly
Project Member

Comment 24 by bugdroid1@chromium.org, May 11 2017

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

commit 905a5fd6040cc73a6adaff129faa5bf0b1edfc2a
Author: nhiroki <nhiroki@chromium.org>
Date: Thu May 11 06:51:45 2017

Worklet: Enable TaskRunnerHelper to handle MainThreadWorkletGlobalScope

MainThreadWorklet runs on the main thread and tasks on that should be managed by
the per-frame task runners. This CL associates them in TaskRunnerHelper::Get().

This is necessary for implementing module loading on main thread worklets.
(see https://codereview.chromium.org/2826313003/)

BUG= 627945 

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

[modify] https://crrev.com/905a5fd6040cc73a6adaff129faa5bf0b1edfc2a/third_party/WebKit/Source/core/dom/TaskRunnerHelper.cpp

Project Member

Comment 25 by bugdroid1@chromium.org, May 12 2017

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

commit 76e63b012333e8446d17e7866f77fb49fc2fc5c3
Author: nhiroki <nhiroki@chromium.org>
Date: Fri May 12 09:57:43 2017

Worklet: Move common code of addModule from Main/ThreadedWorklet to Worklet

This is a preparation for merging Main/ThreadedWorklet into Worklet once both
worklets support module loading.

BUG= 627945 

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

[modify] https://crrev.com/76e63b012333e8446d17e7866f77fb49fc2fc5c3/third_party/WebKit/Source/core/loader/WorkletScriptLoader.cpp
[modify] https://crrev.com/76e63b012333e8446d17e7866f77fb49fc2fc5c3/third_party/WebKit/Source/core/loader/WorkletScriptLoader.h
[modify] https://crrev.com/76e63b012333e8446d17e7866f77fb49fc2fc5c3/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp
[modify] https://crrev.com/76e63b012333e8446d17e7866f77fb49fc2fc5c3/third_party/WebKit/Source/core/workers/MainThreadWorklet.h
[modify] https://crrev.com/76e63b012333e8446d17e7866f77fb49fc2fc5c3/third_party/WebKit/Source/core/workers/ThreadedWorklet.cpp
[modify] https://crrev.com/76e63b012333e8446d17e7866f77fb49fc2fc5c3/third_party/WebKit/Source/core/workers/ThreadedWorklet.h
[modify] https://crrev.com/76e63b012333e8446d17e7866f77fb49fc2fc5c3/third_party/WebKit/Source/core/workers/Worklet.cpp
[modify] https://crrev.com/76e63b012333e8446d17e7866f77fb49fc2fc5c3/third_party/WebKit/Source/core/workers/Worklet.h

Project Member

Comment 26 by bugdroid1@chromium.org, May 25 2017

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

commit 2cab1a07df84484b5088546837ad1c5b1310c00f
Author: nhiroki <nhiroki@chromium.org>
Date: Thu May 25 03:24:23 2017

Worklet: Enable module script loading for main thread worklets

This CL enables module script loading for main thread worklets (i.e.,
PaintWorklet). This is not fully compatible with the spec yet. For example,
"module response map" concept[1] is not implemented yet and module fetch happens
every time addModule() is called. It'll be implemented by following CLs.

Spec: https://drafts.css-houdini.org/worklets/#fetch-a-worklet-script
DesignDoc: https://docs.google.com/document/d/1cgLcrua7H_7x_o5GlzYrAi2qt-TqTzgtOeixFAugR6g/edit?usp=sharing

[1] https://drafts.css-houdini.org/worklets/#module-responses-map

BUG= 627945 

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

[modify] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/LayoutTests/http/tests/csspaint/registerPaint-expected.txt
[modify] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
[modify] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/resources/global-interface-listing-worklet.js
[modify] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/Source/core/dom/Modulator.cpp
[modify] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/Source/core/workers/BUILD.gn
[modify] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.cpp
[modify] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/Source/core/workers/MainThreadWorkletGlobalScope.h
[modify] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/Source/core/workers/WorkerOrWorkletGlobalScope.cpp
[modify] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/Source/core/workers/WorkerOrWorkletGlobalScope.h
[add] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/Source/core/workers/WorkletModuleTreeClient.cpp
[add] https://crrev.com/2cab1a07df84484b5088546837ad1c5b1310c00f/third_party/WebKit/Source/core/workers/WorkletModuleTreeClient.h

Labels: M-60
Status: Fixed (was: Started)
Basic parts of the module loading for PaintWorklet were landed. I'm now making separate issues for remaining works, for example,  issue 726576 
Project Member

Comment 29 by bugdroid1@chromium.org, May 29 2017

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

commit cb9819bdbebd43f5f2a9219dcb127a5368965dcb
Author: nhiroki <nhiroki@chromium.org>
Date: Mon May 29 11:51:31 2017

Worklet: Lazily create PaintWorkletGlobalScopes

Before this CL, PaintWorkletGlobalScope is created on the ctor of PaintWorklet.
This behavior is not compatible with the Worklet spec. PaintWorkletGlobalScopes
should be lazily created when addModule() is called.

To fix it, this CL changes a timing to create PaintWorkletGlobalScopes and
introduces PaintWorkletPendingGeneratorRegistry to keep pending generators until
the first global scope is created.

In addition, this CL enables PaintWorklet have multiple
PaintWorkletGlobalScopes. This is also required by the spec.

Spec: https://drafts.css-houdini.org/worklets/#dom-worklet-addmodule
DesignDoc: https://docs.google.com/document/d/1cgLcrua7H_7x_o5GlzYrAi2qt-TqTzgtOeixFAugR6g/edit?usp=sharing

BUG= 627945 

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

[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/core/workers/MainThreadWorklet.cpp
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/core/workers/MainThreadWorklet.h
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/core/workers/ThreadedWorklet.h
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/core/workers/Worklet.h
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/modules/csspaint/BUILD.gn
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/modules/csspaint/PaintWorklet.cpp
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/modules/csspaint/PaintWorklet.h
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.h
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScopeProxy.cpp
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScopeProxy.h
[add] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/modules/csspaint/PaintWorkletPendingGeneratorRegistry.cpp
[add] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/modules/csspaint/PaintWorkletPendingGeneratorRegistry.h
[modify] https://crrev.com/cb9819bdbebd43f5f2a9219dcb127a5368965dcb/third_party/WebKit/Source/modules/csspaint/PaintWorkletTest.cpp

Sign in to add a comment