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.
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
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
Comment 1 by majidvp@chromium.org
, Nov 16 2016