New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 732399 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Aug 16
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug


Sign in to add a comment

HitTestData aggregation

Project Member Reported by rjkroege@chromium.org, Jun 12 2017

Issue description

Implement a HitTestData aggregation facility in viz and a transport mechanism to permit viz to efficiently deliver aggregated HitTestData to clients.

 
Labels: event-targeting
Project Member

Comment 2 by bugdroid1@chromium.org, Jul 14 2017

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

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 18 2017

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

Components: Internals>MUS
Labels: Proj-Mustash
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 27 2017

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

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 5 2017

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

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 11 2017

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

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 11 2017

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

Comment 9 by varkha@chromium.org, Aug 15 2017

Blockedon: 746392
Blockedon: 746389
Blockedon: 746385
Blockedon: 746382
Blockedon: 746396
Project Member

Comment 14 by bugdroid1@chromium.org, Aug 29 2017

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

Project Member

Comment 15 by bugdroid1@chromium.org, Aug 30 2017

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

Project Member

Comment 16 by bugdroid1@chromium.org, Aug 30 2017

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

Project Member

Comment 17 by bugdroid1@chromium.org, Sep 6 2017

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

Project Member

Comment 18 by bugdroid1@chromium.org, Oct 5 2017

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

Project Member

Comment 19 by bugdroid1@chromium.org, Oct 11 2017

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

Project Member

Comment 20 by bugdroid1@chromium.org, Oct 20 2017

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?
Blocking: 780279
Blocking: -780279
Blocking: 810128
Project Member

Comment 25 by bugdroid1@chromium.org, Feb 22 2018

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

Components: -Internals>MUS Internals>Services>WindowService
Blockedon: 824003
Labels: -Proj-Mustash
I'm removing mash from the set of labels as I don't think this is blocking mash work.
Labels: -Proj-Mustash-Mus-GPU
Cleaning up old Proj-Mustash labels.
Status: Fixed (was: Assigned)
This is long done.

Sign in to add a comment