Implement a HitTestData aggregation facility in viz and a transport mechanism to permit viz to efficiently deliver aggregated HitTestData to clients.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/57cb4a50cf2c5e3a2c7015a4d335aa894c982338 commit 57cb4a50cf2c5e3a2c7015a4d335aa894c982338 Author: gklassen <gklassen@chromium.org> Date: Fri Jul 14 19:42:33 2017 Implement HitTestAggregator Implements a HitTestAggregator component to facilitate cross process hit testing with minimal process hops. The HitTestAggregator maintains a list of HitTestData objects that will be created and sent with each CompositorFrame. These are aggregated into a single DisplayHitTest data structure that can be made available in shared memory to facilitate hit testing with minimal process hops for any Display. HitTestAggregator listens as surfaces are added to the current CompositorFrame to ensure that the list only includes information that matches what has been rendered in the current frame. Aggregation occurs on the BeginFrame notification. This change includes the implementaiton of the HitTestAggregator and unit test cases to verify the intended behaviour. Next steps will include completion of the creation and transport of HitTestData objects, implementation of shared memory and using this component to target incoming events. BUG= 732399 Review-Url: https://codereview.chromium.org/2938953002 Cr-Commit-Position: refs/heads/master@{#486852} [modify] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/components/viz/common/BUILD.gn [add] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/components/viz/common/hit_test/DEPS [add] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/components/viz/common/hit_test/aggregated_hit_test_region.h [modify] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/components/viz/service/BUILD.gn [add] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/components/viz/service/hit_test/DEPS [add] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/components/viz/service/hit_test/OWNERS [add] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/components/viz/service/hit_test/hit_test_aggregator.cc [add] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/components/viz/service/hit_test/hit_test_aggregator.h [add] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/components/viz/service/hit_test/hit_test_aggregator_unittest.cc [add] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/services/viz/hit_test/public/interfaces/BUILD.gn [add] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/services/viz/hit_test/public/interfaces/OWNERS [add] https://crrev.com/57cb4a50cf2c5e3a2c7015a4d335aa894c982338/services/viz/hit_test/public/interfaces/hit_test_region_list.mojom
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4a4a734896cc777dd9fb69675e21dbd7c2886f30 commit 4a4a734896cc777dd9fb69675e21dbd7c2886f30 Author: gklassen <gklassen@chromium.org> Date: Tue Jul 18 16:25:05 2017 Use HitTestAggregator in GpuRootCompositorFrameSink GpuRootCompositorFrameSink creates an instance of HitTestAggregator and provides the notifications required when surfaces are added to the next CompositorFrame, destroyed and when the next frame begins. BUG= 732399 Review-Url: https://codereview.chromium.org/2937233002 Cr-Commit-Position: refs/heads/master@{#487495} [modify] https://crrev.com/4a4a734896cc777dd9fb69675e21dbd7c2886f30/components/viz/service/frame_sinks/gpu_root_compositor_frame_sink.cc [modify] https://crrev.com/4a4a734896cc777dd9fb69675e21dbd7c2886f30/components/viz/service/frame_sinks/gpu_root_compositor_frame_sink.h [modify] https://crrev.com/4a4a734896cc777dd9fb69675e21dbd7c2886f30/components/viz/service/hit_test/hit_test_aggregator.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4d0f023e63c4d0894faa140a83421bbd7c25335b commit 4d0f023e63c4d0894faa140a83421bbd7c25335b Author: Gary Klassen <gklassen@chromium.org> Date: Thu Jul 27 23:23:12 2017 Move CompositorFrameSink and FrameSinkManager mojom from cc to viz Before we can make use of the HitTestAggregator in viz we need a way to provide HitTestRegionList data each time CompositorFrameSink.SubmitCompositorFrame is called. Adding a HitTestRegionList argument to this method currently creates a cyclic dependency: cc/ipc/compositor_frame_sink.mojom depends on services/viz/hit_test/public/interfaces which depends on cc/ipc (surface_id.mojom). This change moves CompositorFrameSink to services/viz/public/interfaces/compositing and FrameSyncManager to services/viz/compositing/privileged/interfaces which resolves the cyclic dependency: services/viz/public/interfaces/hit_test and services/viz/public/interfaces/compositing now both depend on cc/ipc/surface_id.mojom. This change is inline with plans already in progress to move CompositorFrameSink code from cc to viz. Bug: 732399 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_site_isolation;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I057bcd8e2d2f1c57055b0fd40aa3588101271194 Reviewed-on: https://chromium-review.googlesource.com/581792 Commit-Queue: Gary Klassen <gklassen@chromium.org> Reviewed-by: Justin Novosad <junov@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Fady Samuel <fsamuel@chromium.org> Cr-Commit-Position: refs/heads/master@{#490090} [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/cc/ipc/BUILD.gn [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/client/BUILD.gn [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/client/DEPS [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/client/client_layer_tree_frame_sink.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/client/client_layer_tree_frame_sink.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/host/BUILD.gn [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/host/DEPS [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/host/host_frame_sink_manager.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/host/host_frame_sink_manager.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/host/host_frame_sink_manager_unittests.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/service/BUILD.gn [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/service/DEPS [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/service/frame_sinks/DEPS [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/service/frame_sinks/frame_sink_manager_impl.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/service/frame_sinks/frame_sink_manager_impl.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/service/frame_sinks/gpu_compositor_frame_sink.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/service/frame_sinks/gpu_compositor_frame_sink.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/service/frame_sinks/gpu_root_compositor_frame_sink.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/components/viz/service/frame_sinks/gpu_root_compositor_frame_sink.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/compositor/surface_utils.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/frame_host/render_widget_host_view_child_frame.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/frame_host/render_widget_host_view_child_frame.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/frame_host/render_widget_host_view_guest.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/frame_host/render_widget_host_view_guest.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/frame_host/render_widget_host_view_guest_unittest.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/browser_compositor_view_mac.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/browser_compositor_view_mac.mm [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/delegated_frame_host.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/delegated_frame_host.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/frame_sink_provider_impl.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/frame_sink_provider_impl.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/offscreen_canvas_provider_impl.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/offscreen_canvas_provider_impl.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/offscreen_canvas_provider_impl_unittest.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/offscreen_canvas_surface_impl.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/offscreen_canvas_surface_impl.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_impl.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_impl.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_unittest.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_view_android.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_view_android.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_view_aura.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_view_aura.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_view_base.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_view_mac.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/browser/renderer_host/render_widget_host_view_mac.mm [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/common/BUILD.gn [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/common/DEPS [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/common/frame_sink_provider.mojom [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/gpu/gpu_child_thread.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/gpu/gpu_child_thread.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/renderer/mus/renderer_window_tree_client.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/renderer/render_thread_impl.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/test/BUILD.gn [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/test/DEPS [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/test/fake_renderer_compositor_frame_sink.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/test/fake_renderer_compositor_frame_sink.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/test/test_render_view_host.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/content/test/test_render_view_host.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/gpu/gpu_main.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/gpu/gpu_main.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/gpu/interfaces/BUILD.gn [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/gpu/interfaces/gpu_main.mojom [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/public/interfaces/BUILD.gn [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/public/interfaces/window_tree.mojom [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/BUILD.gn [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/DEPS [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/compositor_frame_sink_client_binding.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/compositor_frame_sink_client_binding.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/focus_controller_unittest.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/frame_generator.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/frame_generator.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/frame_generator_unittest.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/frame_sink_manager_client_binding.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/frame_sink_manager_client_binding.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/gpu_host.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/gpu_host.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/platform_display_default.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/server_window.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/server_window.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/server_window_compositor_frame_sink_manager.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/server_window_compositor_frame_sink_manager.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/server_window_delegate.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/test_server_window_delegate.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/test_server_window_delegate.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/window_server.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/window_server.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/window_tree.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/window_tree.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/ui/ws/window_tree_client_unittest.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/viz/compositing/privileged/interfaces/BUILD.gn [rename] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/viz/compositing/privileged/interfaces/frame_sink_manager.mojom [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/viz/public/interfaces/compositing/BUILD.gn [rename] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/services/viz/public/interfaces/compositing/compositor_frame_sink.mojom [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/third_party/WebKit/Source/platform/graphics/DEPS [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/third_party/WebKit/public/BUILD.gn [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/third_party/WebKit/public/platform/modules/offscreencanvas/offscreen_canvas_surface.mojom [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/ui/aura/mus/window_port_mus.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/ui/aura/mus/window_tree_client.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/ui/aura/mus/window_tree_client.h [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/ui/aura/test/mus/test_window_tree.cc [modify] https://crrev.com/4d0f023e63c4d0894faa140a83421bbd7c25335b/ui/aura/test/mus/test_window_tree.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d9e90afec475d912cca91cd0b42e7b3a564fff59 commit d9e90afec475d912cca91cd0b42e7b3a564fff59 Author: Gary Klassen <gklassen@chromium.org> Date: Sat Aug 05 16:03:16 2017 Add HitTestRegionList to SubmitCompositorFrame We need a way to send HitTestRegionList data to the HitTestAggregator with each call to SubmitCompositorFrame. This change adds HitTestRegionList as an optional argument to SubmitCompositorFrame. The HitTestRegionList data is currently optional and empty - this will be added in future CLs. Bug: 732399 Change-Id: I291bf67b36a3e3addf59a28fb64b58f2dc5527ce Reviewed-on: https://chromium-review.googlesource.com/585294 Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Justin Novosad <junov@chromium.org> Commit-Queue: Gary Klassen <gklassen@chromium.org> Cr-Commit-Position: refs/heads/master@{#492242} [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/components/viz/client/client_layer_tree_frame_sink.cc [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/components/viz/service/frame_sinks/gpu_compositor_frame_sink.cc [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/components/viz/service/frame_sinks/gpu_compositor_frame_sink.h [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/components/viz/service/frame_sinks/gpu_root_compositor_frame_sink.cc [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/components/viz/service/frame_sinks/gpu_root_compositor_frame_sink.h [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/content/browser/renderer_host/offscreen_canvas_provider_impl_unittest.cc [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/content/browser/renderer_host/render_widget_host_impl.cc [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/content/browser/renderer_host/render_widget_host_impl.h [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/content/browser/renderer_host/render_widget_host_unittest.cc [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/services/ui/ws/compositor_frame_sink_client_binding.cc [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/services/ui/ws/compositor_frame_sink_client_binding.h [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/services/ui/ws/frame_generator.cc [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/services/ui/ws/frame_generator_unittest.cc [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/services/ui/ws/window_tree_client_unittest.cc [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/services/viz/public/interfaces/compositing/BUILD.gn [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/services/viz/public/interfaces/compositing/compositor_frame_sink.mojom [modify] https://crrev.com/d9e90afec475d912cca91cd0b42e7b3a564fff59/third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ac8fc2fa77db1f94d28231891947a63d50de9b37 commit ac8fc2fa77db1f94d28231891947a63d50de9b37 Author: Gary Klassen <gklassen@chromium.org> Date: Fri Aug 11 15:16:14 2017 Add HitTestRegionList to saved frames A HitTestRegionList can be sent in any call to SubmitCompositorFrame. This change saves the HitTestRegionList whenever a CompositorFrame is saved and restored when it is restored. Bug: 732399 Change-Id: Ibad9c35356d47710f171006c3f9d3b936c297ede Reviewed-on: https://chromium-review.googlesource.com/596074 Commit-Queue: Gary Klassen <gklassen@chromium.org> Reviewed-by: Fady Samuel <fsamuel@chromium.org> Reviewed-by: Saman Sami <samans@chromium.org> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Commit-Position: refs/heads/master@{#493747} [modify] https://crrev.com/ac8fc2fa77db1f94d28231891947a63d50de9b37/content/browser/renderer_host/render_widget_host_impl.cc [modify] https://crrev.com/ac8fc2fa77db1f94d28231891947a63d50de9b37/content/browser/renderer_host/render_widget_host_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5f4d7323f7ccb300356d4001674a26dd34ec2164 commit 5f4d7323f7ccb300356d4001674a26dd34ec2164 Author: Gary Klassen <gklassen@chromium.org> Date: Fri Aug 11 22:13:55 2017 Move surface_id out of HitTestRegionList struct The callsites that create and send HitTestRegionList data don't know their FrameSinkId or SurfaceId so they can't set it in the HitTestRegionList struct. The FrameSink that receives HitTestRegionList does. This change moves the specification of the SurfaceId out of the HitTestRegionList struct and into the call paramters when the HitTestRegionList is sent to the HitTestAggregator. Bug: 732399 Change-Id: Ic47d672199c6ba342c7d0624fec20d0f97c219d9 Reviewed-on: https://chromium-review.googlesource.com/611082 Commit-Queue: Gary Klassen <gklassen@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Reviewed-by: Ria Jiang <riajiang@chromium.org> Cr-Commit-Position: refs/heads/master@{#493866} [modify] https://crrev.com/5f4d7323f7ccb300356d4001674a26dd34ec2164/components/viz/service/hit_test/hit_test_aggregator.cc [modify] https://crrev.com/5f4d7323f7ccb300356d4001674a26dd34ec2164/components/viz/service/hit_test/hit_test_aggregator.h [modify] https://crrev.com/5f4d7323f7ccb300356d4001674a26dd34ec2164/components/viz/service/hit_test/hit_test_aggregator_unittest.cc [modify] https://crrev.com/5f4d7323f7ccb300356d4001674a26dd34ec2164/services/viz/public/interfaces/hit_test/hit_test_region_list.mojom
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/89200318ea992274cafe78423c2095299b461d08 commit 89200318ea992274cafe78423c2095299b461d08 Author: Gary Klassen <gklassen@chromium.org> Date: Tue Aug 29 23:27:32 2017 Modify HitTestRegion to accept FrameSinkId or SurfaceId HitTestRegion structs may refer to windows without a SurfaceId and these use FrameSinkId as the identifier for routing messages. This change modifies the HitTestRegion definition so that either FrameSinkId or SurfaceId can be specified by making the FrameSinkId a required member and the LocalSurfaceId an optional member. Bug: 732399 Change-Id: Ib45ab92a91a0d38a8699f0e32da1ed8b9c7f70d8 Reviewed-on: https://chromium-review.googlesource.com/635613 Commit-Queue: Gary Klassen <gklassen@chromium.org> Reviewed-by: Valery Arkhangorodsky <varkha@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Reviewed-by: Ria Jiang <riajiang@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Cr-Commit-Position: refs/heads/master@{#498283} [modify] https://crrev.com/89200318ea992274cafe78423c2095299b461d08/components/viz/service/hit_test/hit_test_aggregator.cc [modify] https://crrev.com/89200318ea992274cafe78423c2095299b461d08/components/viz/service/hit_test/hit_test_aggregator_unittest.cc [modify] https://crrev.com/89200318ea992274cafe78423c2095299b461d08/services/viz/public/interfaces/hit_test/hit_test_region_list.mojom [modify] https://crrev.com/89200318ea992274cafe78423c2095299b461d08/ui/aura/mus/hit_test_data_provider_aura.cc [modify] https://crrev.com/89200318ea992274cafe78423c2095299b461d08/ui/aura/mus/hit_test_data_provider_aura_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ce2342c178587f387b848d44bb8afb9623068203 commit ce2342c178587f387b848d44bb8afb9623068203 Author: Gary Klassen <gklassen@chromium.org> Date: Wed Aug 30 14:12:05 2017 Populate HitTestRegionList in ClientLayerTreeFrameSink Populates HitTestRegionList data when calling SubmitCompositorFrame. Bug: 732399 Change-Id: I37817dda673df0ae94e348bbcaf25b654236c4ca Reviewed-on: https://chromium-review.googlesource.com/635608 Commit-Queue: Gary Klassen <gklassen@chromium.org> Reviewed-by: Ria Jiang <riajiang@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Cr-Commit-Position: refs/heads/master@{#498452} [modify] https://crrev.com/ce2342c178587f387b848d44bb8afb9623068203/components/viz/client/client_layer_tree_frame_sink.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/22aedee9691203eb2254f49afce2862a6343a66d commit 22aedee9691203eb2254f49afce2862a6343a66d Author: Gary Klassen <gklassen@chromium.org> Date: Wed Aug 30 20:13:13 2017 Create HitTestRegionList in FrameGenerator HitTestRegionList data is generated using the SurfaceId and bounds information readily available. The HitTestRegionList contains a single child region for the area of the frame. Bug: 732399 Change-Id: If85840977d2870fba57017116b9b1ab7e8087a33 Reviewed-on: https://chromium-review.googlesource.com/594667 Commit-Queue: Gary Klassen <gklassen@chromium.org> Reviewed-by: Valery Arkhangorodsky <varkha@chromium.org> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Reviewed-by: Ria Jiang <riajiang@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Reviewed-by: Fady Samuel <fsamuel@chromium.org> Reviewed-by: kylechar <kylechar@chromium.org> Cr-Commit-Position: refs/heads/master@{#498585} [modify] https://crrev.com/22aedee9691203eb2254f49afce2862a6343a66d/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc [modify] https://crrev.com/22aedee9691203eb2254f49afce2862a6343a66d/services/ui/ws/frame_generator.cc [modify] https://crrev.com/22aedee9691203eb2254f49afce2862a6343a66d/services/ui/ws/frame_generator.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7e755c211e20dde36c459374872e3bb585912e1f commit 7e755c211e20dde36c459374872e3bb585912e1f Author: Gary Klassen <gklassen@chromium.org> Date: Wed Sep 06 15:40:48 2017 Route HitTestRegionList to FrameSinkManager This change routes HitTestRegionList data received in calls to SubmitCompositorFrame to the FrameSinkManager. FrameSinkManager will route the HitTestRegionList data to the appropriate HitTestAggregator in a future CL. Bug: 732399 Change-Id: Ic05df1f6db85a88a9d2cdabda6360e10cd3051c0 Reviewed-on: https://chromium-review.googlesource.com/643151 Commit-Queue: Gary Klassen <gklassen@chromium.org> Reviewed-by: Ria Jiang <riajiang@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Fady Samuel <fsamuel@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Cr-Commit-Position: refs/heads/master@{#499972} [modify] https://crrev.com/7e755c211e20dde36c459374872e3bb585912e1f/android_webview/BUILD.gn [modify] https://crrev.com/7e755c211e20dde36c459374872e3bb585912e1f/components/viz/service/frame_sinks/compositor_frame_sink_impl.cc [modify] https://crrev.com/7e755c211e20dde36c459374872e3bb585912e1f/components/viz/service/frame_sinks/compositor_frame_sink_support.cc [modify] https://crrev.com/7e755c211e20dde36c459374872e3bb585912e1f/components/viz/service/frame_sinks/compositor_frame_sink_support.h [modify] https://crrev.com/7e755c211e20dde36c459374872e3bb585912e1f/components/viz/service/frame_sinks/frame_sink_manager_impl.cc [modify] https://crrev.com/7e755c211e20dde36c459374872e3bb585912e1f/components/viz/service/frame_sinks/frame_sink_manager_impl.h [modify] https://crrev.com/7e755c211e20dde36c459374872e3bb585912e1f/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc [modify] https://crrev.com/7e755c211e20dde36c459374872e3bb585912e1f/content/browser/renderer_host/delegated_frame_host.cc [modify] https://crrev.com/7e755c211e20dde36c459374872e3bb585912e1f/content/browser/renderer_host/render_widget_host_view_child_frame.cc [modify] https://crrev.com/7e755c211e20dde36c459374872e3bb585912e1f/ui/android/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9dc831026e6993b339391ef82f6d192491f6de31 commit 9dc831026e6993b339391ef82f6d192491f6de31 Author: Gary Klassen <gklassen@chromium.org> Date: Thu Oct 05 17:32:38 2017 Route HitTestRegionList through FrameSinkManager This change routes HitTestRegionList objects received by CompositorFrameSinkSupport to the HitTestManager. The HitTestAggregator will query the HitTestManager for the active HitTestRegionLists when aggregating the data. HitTestManager also manages the lifetime of HitTestRegionList objects by deleting old objects when surfaces are discarded and deleting objects that correspond to older frames when a new surface is activated. This change also modifies HitTestAggregator memory management so that new memory is allocated as needed while aggregating HitTestRegionList data. Bug: 732399 Change-Id: Iaedec31a34f04446a539acd10d77c6fe18034d44 Reviewed-on: https://chromium-review.googlesource.com/650220 Commit-Queue: Gary Klassen <gklassen@chromium.org> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Reviewed-by: Ria Jiang <riajiang@chromium.org> Reviewed-by: Fady Samuel <fsamuel@chromium.org> Cr-Commit-Position: refs/heads/master@{#506780} [modify] https://crrev.com/9dc831026e6993b339391ef82f6d192491f6de31/components/viz/service/BUILD.gn [modify] https://crrev.com/9dc831026e6993b339391ef82f6d192491f6de31/components/viz/service/frame_sinks/compositor_frame_sink_support.cc [modify] https://crrev.com/9dc831026e6993b339391ef82f6d192491f6de31/components/viz/service/frame_sinks/frame_sink_manager_impl.cc [modify] https://crrev.com/9dc831026e6993b339391ef82f6d192491f6de31/components/viz/service/frame_sinks/frame_sink_manager_impl.h [modify] https://crrev.com/9dc831026e6993b339391ef82f6d192491f6de31/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc [modify] https://crrev.com/9dc831026e6993b339391ef82f6d192491f6de31/components/viz/service/hit_test/hit_test_aggregator.cc [modify] https://crrev.com/9dc831026e6993b339391ef82f6d192491f6de31/components/viz/service/hit_test/hit_test_aggregator.h [modify] https://crrev.com/9dc831026e6993b339391ef82f6d192491f6de31/components/viz/service/hit_test/hit_test_aggregator_unittest.cc [add] https://crrev.com/9dc831026e6993b339391ef82f6d192491f6de31/components/viz/service/hit_test/hit_test_manager.cc [add] https://crrev.com/9dc831026e6993b339391ef82f6d192491f6de31/components/viz/service/hit_test/hit_test_manager.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4a7d884be5a9e4268cefc56ec2747979254f7b29 commit 4a7d884be5a9e4268cefc56ec2747979254f7b29 Author: Gary Klassen <gklassen@chromium.org> Date: Wed Oct 11 15:09:59 2017 Call Aggregation directly instead of using a PostTask Remove the use of a PostTask when invoking HitTestAggregator::Aggregate. It is unnecessary because the work is being done on the same thread. Bug: 732399 Change-Id: If918bbec416ad748cc85691e4d4f9913f5fb837d Reviewed-on: https://chromium-review.googlesource.com/699701 Reviewed-by: Ria Jiang <riajiang@chromium.org> Reviewed-by: Fady Samuel <fsamuel@chromium.org> Commit-Queue: Gary Klassen <gklassen@chromium.org> Cr-Commit-Position: refs/heads/master@{#507984} [modify] https://crrev.com/4a7d884be5a9e4268cefc56ec2747979254f7b29/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc [modify] https://crrev.com/4a7d884be5a9e4268cefc56ec2747979254f7b29/components/viz/service/hit_test/hit_test_aggregator.cc [modify] https://crrev.com/4a7d884be5a9e4268cefc56ec2747979254f7b29/components/viz/service/hit_test/hit_test_aggregator.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3cf7a1f367bf62c0a7198d9280ae98d39e6d9330 commit 3cf7a1f367bf62c0a7198d9280ae98d39e6d9330 Author: Ria Jiang <riajiang@chromium.org> Date: Fri Oct 20 17:03:00 2017 Child surface should receive events when it has no children regions. When a hit-test region is a child surface but it doesn't submit any hit-test data for its children or the data didn't arrive at HitTestManager on time, the child surface region shouldn't be dropped and should receive events instead. For example, when RenderWidgetHostViewAura doesn't have hit-test data for its children, itself should still be able to get events. Bug: 732399 Test: covered by tests Change-Id: I20df147402fbb926df41e16eced6f3320cb485ee Reviewed-on: https://chromium-review.googlesource.com/731031 Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Commit-Queue: Ria Jiang <riajiang@chromium.org> Cr-Commit-Position: refs/heads/master@{#510470} [modify] https://crrev.com/3cf7a1f367bf62c0a7198d9280ae98d39e6d9330/components/viz/service/hit_test/hit_test_aggregator.cc [modify] https://crrev.com/3cf7a1f367bf62c0a7198d9280ae98d39e6d9330/components/viz/service/hit_test/hit_test_aggregator_unittest.cc
gklassen@ isn't this done now?
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/74b826ad345cd847ee5d214212528a4855fddfef commit 74b826ad345cd847ee5d214212528a4855fddfef Author: Ria Jiang <riajiang@chromium.org> Date: Thu Feb 22 02:40:03 2018 Pass along hit-test data in RenderWidgetHostViewMac. On mac, we drop hit-test data when we SubmitCompositorFrame(). This CL adds the missing plumbing. Bug: 732399 Test: https://chromium-review.googlesource.com/c/chromium/src/+/919260 Change-Id: I0efcabf422eafa9423bd850ac5ed707f17ce84e1 Reviewed-on: https://chromium-review.googlesource.com/929354 Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Commit-Queue: Ria Jiang <riajiang@chromium.org> Cr-Commit-Position: refs/heads/master@{#538324} [modify] https://crrev.com/74b826ad345cd847ee5d214212528a4855fddfef/content/browser/renderer_host/render_widget_host_view_mac.mm
I'm removing mash from the set of labels as I don't think this is blocking mash work.
Cleaning up old Proj-Mustash labels.
This is long done.
Comment 1 by rjkroege@chromium.org
, Jun 12 2017