New issue
Advanced search Search tips

Issue 666001 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 430155



Sign in to add a comment

AnimationWorklet - plumb mutation signal and state to animators

Project Member Reported by majidvp@chromium.org, Nov 16 2016

Issue description

Add appropriate plumbing to allow mutation signal and state to flow from
CompositorMutator to all registered animators. 

This will be similar in function to CompositorProxyClientImpl.
 
Status: Started (was: Assigned)
Summary: AnimationWoklet - plumb mutation signal and state to animators (was: Animation Woklet - plumb mutation signal and state to animators)
Summary: AnimationWorklet - plumb mutation signal and state to animators (was: AnimationWoklet - plumb mutation signal and state to animators)

Comment 4 by flackr@chromium.org, Jan 24 2017

Labels: -Hotlist-Threaded-Rendering Hotlist-ThreadedRendering
Project Member

Comment 5 by bugdroid1@chromium.org, Feb 10 2017

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

commit 4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8
Author: majidvp <majidvp@chromium.org>
Date: Fri Feb 10 14:48:52 2017

Introduce AnimationWorkletProxyClient and necessary plumbing to get it in worklet messaging proxy.

The following refactoring were made to allow this:
- CompositoraMutatorImpl now uses CompositorAnimator interface and no longer
  depends on CPCI directly.
- Divide CompositorProxyClient interface into two unit separating functionality
  related to CompositorProxy from functionality related to Worker. This allows
  AnimationWorkletProxyClient to also be a CompositorProxyClient.
- WebView now can create two different types of CompositorProxyClient
  for compositor worker and animation worklet.

BUG= 666001 

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

[add] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/core/dom/BUILD.gn
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/core/dom/CompositorProxy.cpp
[delete] https://crrev.com/28ec0e0c2425d480693e8d40510b8093cef1f89f/third_party/WebKit/Source/core/dom/CompositorProxyClient.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/core/dom/CompositorProxyClient.h
[add] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/core/dom/CompositorWorkerProxyClient.cpp
[add] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/core/dom/CompositorWorkerProxyClient.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/core/loader/EmptyClients.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/core/page/ChromeClient.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/modules/compositorworker/AnimationWorklet.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThread.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/modules/compositorworker/CompositorWorker.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/modules/compositorworker/CompositorWorkerGlobalScope.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/modules/compositorworker/CompositorWorkerGlobalScope.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/modules/compositorworker/CompositorWorkerThreadTest.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/platform/graphics/CompositorMutator.h
[add] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/AnimationWorkletProxyClientImpl.cpp
[add] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/AnimationWorkletProxyClientImpl.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/BUILD.gn
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/ChromeClientImpl.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/ChromeClientImpl.h
[add] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/CompositorAnimator.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/CompositorMutatorImpl.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/CompositorMutatorImpl.h
[delete] https://crrev.com/28ec0e0c2425d480693e8d40510b8093cef1f89f/third_party/WebKit/Source/web/CompositorProxyClientImpl.h
[rename] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/CompositorWorkerProxyClientImpl.cpp
[add] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/CompositorWorkerProxyClientImpl.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/WebFrameWidgetBase.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/WebFrameWidgetImpl.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/WebFrameWidgetImpl.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/WebViewFrameWidget.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/WebViewFrameWidget.h
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/WebViewImpl.cpp
[modify] https://crrev.com/4f443d0a5d9fb3dfd0f8bbbd91b9511fef7c54f8/third_party/WebKit/Source/web/WebViewImpl.h

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 7 2017

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

commit 6b41b1ee575bdf3bf738be8ac5db57f2e41476ff
Author: Majid Valipour <majidvp@chromium.org>
Date: Wed Jun 07 18:27:11 2017

[animation-worklet] invoke animate callbacks on mutation signal

The patch plumbs the mutation signal from compositor to animation
worklet scope and invokes animator |animate| JS functions as a result.
The patch does the following:

- Register AnimationWorkletProxyClient (AWPC) with mutator so its 
  |Mutate| function is called.
- Plumb AWPC to AnimationWorkletGlobalScope via existing worker clients
  mechanism.
- Ensure AWPC calls |Mutate| on worklet global scope which in turns 
  animate its animators.
- Implement |Animator::Animate| which invokes the underlying Javascript
  function.

Bug:  666001 
Change-Id: I2423ac9e133fa48c2186d848d55afa8f4fd49025
Reviewed-on: https://chromium-review.googlesource.com/513724
Commit-Queue: Majid Valipour <majidvp@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477710}
[add] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-animate-expected.txt
[add] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-animate.html
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/animation-worklet-animator-registration.html
[add] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/LayoutTests/virtual/threaded/fast/compositorworker/resources/animation-worklet-tests.js
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/bindings/core/v8/WorkerOrWorkletScriptController.h
[add] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.h
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/core/dom/BUILD.gn
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/core/workers/ThreadedWorkletMessagingProxy.h
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/BUILD.gn
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimationWorklet.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScope.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScope.h
[add] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletGlobalScopeTest.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletMessagingProxy.h
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletProxyClientImpl.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletProxyClientImpl.h
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThread.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimationWorkletThreadTest.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/Animator.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/Animator.h
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimatorDefinition.cpp
[modify] https://crrev.com/6b41b1ee575bdf3bf738be8ac5db57f2e41476ff/third_party/WebKit/Source/modules/compositorworker/AnimatorDefinition.h

Status: Fixed (was: Started)

Sign in to add a comment