CATransactionGPUCoordinator: Re-enable and make lifetime explicit
Disalbing the CATransactionGPUCoordinator caused memory corruption bugs
to go away.
Fix two potential bugs:
1.  Don't post tasks (and potentially change the reference count) inside
    CATransactionGPUCoordinator's constructor. Do this in a separate
    explicit Init function.
1a. Move this initialization to the end of GpuProcessHost:Init (instead
    of being at the beginning of the constructor).
2.  Make CATransactionCoordinator explicitly retain PostCommitObserver
    (which includes CATransactionGPUCoordinator). This fixes a bug
    whereby at shutdown, destroying not-yet-executed posted tasks caused
    the CATransactionGPUCoordinator to be destroyed while the
    CATransactionCoordinator still had a raw pointer to it.
Bug: 871430
Change-Id: Ie144071cce9ce48e0187cdaf1fcf32df7b62ed75
Reviewed-on: https://chromium-review.googlesource.com/1171657
Commit-Queue: ccameron <ccameron@chromium.org>
Reviewed-by:  Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582378}
Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582378}
Showing
Please register or sign in to comment