Issue metadata
Sign in to add a comment
|
Remove ui::Layer::OnDelegatedFrameDamage |
||||||||||||||||||||||||
Issue descriptionui::Layer::OnDelegatedFrameDamage is called with the damage_rect of renderer's frame at the end of DelegatedFrameHost::SubmitCompositorFrame. This is bad because renderer's frames won't be sent to the browser in the future. This method is only used in unit tests and ash::VideoDetector. Perhaps the renderer can tell the browser when it's playing a video instead of the browser having to guess using some questionable method that depends on damage rect of the renderer's frame.
,
May 1 2017
Does may_contain_video reflect whether the video is actually playing or not? Maybe the long-term solution is going through the display compositor, but I believe in the short-term the renderer can tell the browser process whether it's playing a video or not. We can even run the same detection code in the renderer in order to preserve the current behaviour.
,
May 1 2017
> Does may_contain_video reflect whether the video is actually playing or not? The bit is turned on if a layer that may contain video is drawn (and not occluded, etc.) [1]. > Maybe the long-term solution is going through the display compositor, .. Can you explain why it can't be a short-term solution too? Naively, it would involve plumbing the data from cc::Display through viz::MojoFrameSinkManager to ui::WindowServer (which is-a mojom::FrameSinkManagerClient). But I guess there are some complication here that makes it not suitable as a short-term solution? [1] https://cs.chromium.org/chromium/src/cc/trees/layer_tree_host_impl.cc?sq=package:chromium&dr=CSs&l=914
,
May 1 2017
This also needs to work with non-mus Chrome, so we can't assume there is a ui::WindowServer.
,
May 1 2017
For browser, it would be FrameSinkManagerHost (which is-a mojom::FrameSinkManagerClient too), and then onto ash.
,
May 1 2017
> The bit is turned on if a layer that may contain video is drawn (and not occluded, etc.) [1]. But what about the case that the video layer is drawn but the video is not actually playing? Imagine we have paused the video for example.
,
May 1 2017
+apacible@. Maybe we want a better signal?
,
May 3 2017
Also keep in mind that the VideoDetector triggers today on more than just <video> tags: Flash (I know, I know), canvas/webgl animations, even CSS ones (poster circle). Given that the VideoDetector signal is debounced, it could be meaningful to implement a DamageObserver API to DisplayCompositor and wire that back to the wm then ash? Not sure who would be responsible for the general "keep the screen on when a video/animation is playing" feature in the mus world.
,
May 3 2017
,
May 23 2017
,
Jun 13 2017
,
Sep 28 2017
I'll start looking into this to see how well may_contain_video works and hopefully start using it.
,
Oct 24 2017
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by sadrul@chromium.org
, May 1 2017