• Majid Valipour's avatar
    [animation-worket] Ensure each worklet receives only its own input · c035b5fc
    Majid Valipour authored
    Previously we would allow worklet to access and act on all of worklet inputs.
    This is bad since it can leak information between different animation
    worklet global scopes.
    
    Summary of the fix:
    - Introduce WorkletAnimationId which can uniquely identify both the worklet and animation.
    - Give each worklet animation its own Id generated using its underlying worklet's scope.
    - Plumb this new Id to cc.
    - AnimationHost produces input state which is bucketed per scope.
    - CompositorMutatorImpl only passes to each compositor animator the input.
      bucket that matches that compositor animator's scope Id.
    - For additional safety added DCHECK to verify that each scope is receiving only its
      own input.
    
    TEST: compositor_mutator_impl_test.cc
    Bug: 857479
    
    Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
    Change-Id: Ib4b8f610ef661bdbf09c4c0252a2b9c4ba04db16
    Reviewed-on: https://chromium-review.googlesource.com/1120436Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
    Reviewed-by: default avatarRobert Flack <flackr@chromium.org>
    Commit-Queue: Majid Valipour <majidvp@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#572572}
    c035b5fc
animation_host.cc 23.4 KB