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

Issue 732398 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 748545
issue 732402

Blocking:
issue 672311



Sign in to add a comment

viz HitTest component delegates sync to display compositor

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

Issue description

CompositorFrame instance arrive at viz with an accompanying HitTestData instance that specifies how events should be routed. Extend the display compositor with delegation facilities such that it can tell the hit-test component which surfaces were selected for the current display frame by the surface-sync/surface-aggregation code.


 
Labels: event-targeting
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a15e976b52b92c65ad791be142dbd5f11364ae07

commit a15e976b52b92c65ad791be142dbd5f11364ae07
Author: gklassen <gklassen@chromium.org>
Date: Thu Jun 15 22:22:54 2017

Add SurfaceWillDraw notification

Adds a SurfaceWillDraw notification to allow observers to monitor as
surfaces are added to the next display frame.

Viz will implement a hit-test component that will aggregate hit-test
information published along with compositor frames.  The aggregated
data will be made available for hit testing in a shared memory object.

In order to ensure that the hit-test information matches the current
information for the frame it needs to know which surfaces have been
added to the current DisplayFrame.

A method has been added to Surface observer so that observers will be
notified as surfaces are added to the Display frame.  The notification
is invoked during Surface Aggregation at the same place and following
the same convention as the existing RunWillDrawCallback - the key
difference being that this implementation allows one observer to
monitor all surfaces without creating observers for each surface
instance.

BUG=732398
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2938833002
Cr-Commit-Position: refs/heads/master@{#479865}

[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/cc/surfaces/display_scheduler.cc
[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/cc/surfaces/display_scheduler.h
[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/cc/surfaces/surface_aggregator.cc
[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/cc/surfaces/surface_aggregator_unittest.cc
[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/cc/surfaces/surface_manager.cc
[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/cc/surfaces/surface_manager.h
[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/cc/surfaces/surface_observer.h
[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/cc/test/fake_surface_observer.cc
[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/cc/test/fake_surface_observer.h
[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/components/viz/service/frame_sinks/mojo_frame_sink_manager.cc
[modify] https://crrev.com/a15e976b52b92c65ad791be142dbd5f11364ae07/components/viz/service/frame_sinks/mojo_frame_sink_manager.h

Blockedon: 732402
Blockedon: 748545
Labels: -Proj-Mustash Proj-Mash-MultiProcess
Labels: -Proj-Mustash-Mus-GPU
Cleaning up old Proj-Mustash labels.

Sign in to add a comment