[go: nahoru, domu]

aura: Refactor occlusion info update

- Create a WindowOcclusionChangeBuilder interface for batch
  updating occlusion info;
- Move existing update logic in WindowOcclusionTracker into
  DefaultWindowOcclusionChangeBuilder;
- Change WindowOcclusionTracker to use WindowOcclusionChangeBuilder;

This is a pre-flight CL to group occlusion change in batches per
WindowTree. In the follow-up, WS will provide the factory to create
batches that dispatch occlusion change to each tree with a single
mojo call.

Bug: 910303
Change-Id: I45a83af3895291b04e899e4e15437fbd5aa84d60
Reviewed-on: https://chromium-review.googlesource.com/c/1379055
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Xiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617516}
diff --git a/ui/aura/BUILD.gn b/ui/aura/BUILD.gn
index ed193c1..131a694 100644
--- a/ui/aura/BUILD.gn
+++ b/ui/aura/BUILD.gn
@@ -79,6 +79,7 @@
     "window_event_dispatcher.h",
     "window_event_dispatcher_observer.h",
     "window_observer.h",
+    "window_occlusion_change_builder.h",
     "window_occlusion_tracker.h",
     "window_port.h",
     "window_targeter.h",
@@ -146,6 +147,7 @@
     "window_delegate.cc",
     "window_event_dispatcher.cc",
     "window_observer.cc",
+    "window_occlusion_change_builder.cc",
     "window_occlusion_tracker.cc",
     "window_port.cc",
     "window_port_for_shutdown.cc",
@@ -394,6 +396,7 @@
     "test/aura_test_suite.h",
     "test/run_all_unittests.cc",
     "window_event_dispatcher_unittest.cc",
+    "window_occlusion_change_builder_unittest.cc",
     "window_occlusion_tracker_unittest.cc",
     "window_targeter_unittest.cc",
     "window_tree_host_unittest.cc",