Commit 96956be1 authored by kylechar's avatar kylechar Committed by Commit Bot

Change FrameSinkManagerImpl destruction order.

Things stored in the various FrameSinkManagerImpl maps have pointers back to
SurfaceManager and HitTestManager. Ensure the maps are destroyed first.

Bug: 850198
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: Iadb554ff7079ec91a8220c211790af0671c36335
Reviewed-on: https://chromium-review.googlesource.com/1101545Reviewed-by: default avatarFady Samuel <fsamuel@chromium.org>
Commit-Queue: kylechar <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567612}
parent 20f0bf54
...@@ -246,6 +246,14 @@ class VIZ_SERVICE_EXPORT FrameSinkManagerImpl ...@@ -246,6 +246,14 @@ class VIZ_SERVICE_EXPORT FrameSinkManagerImpl
// Provides a Display for CreateRootCompositorFrameSink(). // Provides a Display for CreateRootCompositorFrameSink().
DisplayProvider* const display_provider_; DisplayProvider* const display_provider_;
PrimaryBeginFrameSource primary_source_;
// Must be created after and destroyed before |primary_source_|.
SurfaceManager surface_manager_;
// Must be created after and destroyed before |surface_manager_|.
HitTestManager hit_test_manager_;
// Contains registered frame sink ids, debug labels and synchronization // Contains registered frame sink ids, debug labels and synchronization
// labels. Map entries will be created when frame sink is registered and // labels. Map entries will be created when frame sink is registered and
// destroyed when frame sink is invalidated. // destroyed when frame sink is invalidated.
...@@ -267,14 +275,6 @@ class VIZ_SERVICE_EXPORT FrameSinkManagerImpl ...@@ -267,14 +275,6 @@ class VIZ_SERVICE_EXPORT FrameSinkManagerImpl
base::flat_map<FrameSinkId, std::unique_ptr<mojom::CompositorFrameSink>> base::flat_map<FrameSinkId, std::unique_ptr<mojom::CompositorFrameSink>>
sink_map_; sink_map_;
PrimaryBeginFrameSource primary_source_;
// |surface_manager_| should be placed under |primary_source_| so that all
// surfaces are destroyed before |primary_source_|.
SurfaceManager surface_manager_;
HitTestManager hit_test_manager_;
base::flat_set<std::unique_ptr<FrameSinkVideoCapturerImpl>, base::flat_set<std::unique_ptr<FrameSinkVideoCapturerImpl>,
base::UniquePtrComparator> base::UniquePtrComparator>
video_capturers_; video_capturers_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment