CompositorWorkerProxyClientImpl is owned by the main thread. CompositorProxy can be owned by both main and compositor worker threads, but the ones rferenced by CompositorWorkerProxyClientImpl are always owned by compositor worker thread.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0af77d69187ee8a529072cb3995bd111aaed5864 commit 0af77d69187ee8a529072cb3995bd111aaed5864 Author: keishi <keishi@chromium.org> Date: Wed Apr 05 03:42:42 2017 CompositorWorkerProxyClientImpl to CompositorProxy cross thread reference is using WeakMember Because of a bug in Oilpan causing DCHECK to be skipped, we failed to detect that CompositorWorkerProxyClientImpl to CompositorProxy reference isn't using CrossThreadWeakPersistent. The DCHECK bug will be fixed in https://codereview.chromium.org/2773013002/ . This CL splits out the CompositorProxy registration to a new class so we don't need to put CrossThreadWeakPersistents in a HashMap. BUG= 705872 Review-Url: https://codereview.chromium.org/2774223002 Cr-Commit-Position: refs/heads/master@{#461972} [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/core/dom/AnimationWorkletProxyClient.h [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/core/dom/CompositorProxy.cpp [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/core/dom/CompositorProxy.h [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/core/dom/CompositorProxyClient.h [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/core/dom/CompositorWorkerProxyClient.h [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/modules/compositorworker/CompositorWorkerMessagingProxy.cpp [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/modules/compositorworker/CompositorWorkerThreadTest.cpp [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/web/AnimationWorkletProxyClientImpl.cpp [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/web/AnimationWorkletProxyClientImpl.h [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/web/BUILD.gn [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/web/CompositorMutatorImpl.cpp [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/web/CompositorMutatorImpl.h [add] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/web/CompositorProxyClientImpl.cpp [add] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/web/CompositorProxyClientImpl.h [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/web/CompositorWorkerProxyClientImpl.cpp [modify] https://crrev.com/0af77d69187ee8a529072cb3995bd111aaed5864/third_party/WebKit/Source/web/CompositorWorkerProxyClientImpl.h
Comment 1 by keishi@chromium.org
, Mar 28 2017