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

Issue 775030 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 5
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature


Sign in to add a comment

[meta] Eliminate browser's sniffing of renderers' CompositorFrames

Project Member Reported by samans@chromium.org, Oct 16 2017

Issue description

In order to make it possible for renderers to submit CompositorFrames directly to Viz without regressing the existing behaviour, it is necessary to rethink all features that depend on sniffing renderers' CompositorFrames in the browser. 

When this task is over, the following methods must be gone:

1) RenderWidgetHostImpl::SubmitCompositorFrame
2) RenderWidgetHostViewAura::SubmitCompositorFrame
3) DelegatedFrameHost::SubmitCompositorFrame

Renderers' frames should be received directly by viz::CompositorFrameSinkImpl.

This is a metabug containing all other tasks that need to be done to achieve this goal.
 

Comment 1 by samans@chromium.org, Oct 16 2017

Blockedon: 775035
Blocking: 763452
Cc: jonr...@chromium.org
I'm marking this as blocking  issue 763452  as there are test utils that wait/sniff compositor frames. Which will no longer be available.

It would be good to know how we can replace these apis. With some api to be notified that they are now in a state which can handle input.

Comment 3 by samans@chromium.org, Oct 16 2017

Blockedon: 775103

Comment 4 by samans@chromium.org, Oct 16 2017

Blockedon: 672962
Blocked on surface synchronization because the resize lock stuff in DelegatedFrameHost has to be removed for this task.

Comment 5 by samans@chromium.org, Oct 16 2017

Blockedon: 775111

Comment 6 by samans@chromium.org, Oct 16 2017

Cc: fsam...@chromium.org yiyix@chromium.org thanhph@chromium.org

Comment 7 by samans@chromium.org, Oct 16 2017

Blockedon: 771331

Comment 8 by fsamuel@google.com, Oct 16 2017

Blockedon: 771336

Comment 9 by fsamuel@google.com, Oct 16 2017

Blockedon: 771354

Comment 10 by fsamuel@google.com, Oct 16 2017

Blockedon: 771360

Comment 11 by fsamuel@google.com, Oct 16 2017

Blockedon: 771357

Comment 12 by fsamuel@google.com, Oct 16 2017

Blocking: -763452

Comment 13 by fsamuel@google.com, Oct 16 2017

Blockedon: 763452

Comment 14 by fsamuel@google.com, Oct 16 2017

Labels: -Type-Bug -Pri-3 Pri-2 Type-Feature

Comment 15 by fsamuel@google.com, Oct 16 2017

Cc: danakj@chromium.org piman@chromium.org

Comment 16 by fsamuel@google.com, Oct 16 2017

Summary: [meta] Eliminate browser's sniffing of renderers' CompositorFrames (was: Eliminate browser's sniffing of renderers' CompositorFrames)

Comment 17 by fsamuel@google.com, Oct 24 2017

Blockedon: 730660
Blockedon: 777881
Blockedon: 777882

Comment 20 by fsamuel@google.com, Oct 24 2017

Blockedon: 777883

Comment 21 by fsamuel@google.com, Oct 25 2017

Cc: sky@chromium.org
Blockedon: 755303
Blockedon: -777883
Blocking: 787097
Blockedon: -730660
Blockedon: 791024
Project Member

Comment 27 by bugdroid1@chromium.org, Jan 19 2018

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

commit ac97cd080598d6c960ac42322e1ef24a05094b10
Author: Saman Sami <samans@chromium.org>
Date: Fri Jan 19 19:04:10 2018

Fix race in WaitForResizeComplete

WaitForResizeComplete is racy. Every time RenderWidgetHostImpl receives
a resize ack, it checks whether we're holding pointer moves or not, and
if not reports that resize is completed. However, if releasing pointer
moves happens after the last resize ack, it blocks forever. This race
doesn't seem to happen right now but I have another CL that exposes it.
This CL fixes this issue by adding a callback to WindowEventDispatcher
that would be called when held events are dispatched, which allows
WaitForResizeComplete to block on releasing pointer moves as well.

Bug:  695579 , 775030 , 777881 
Change-Id: I841899af2a9bf3cae8b58dd21ea236e652b33790
Reviewed-on: https://chromium-review.googlesource.com/872453
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Commit-Queue: Saman Sami <samans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530580}
[modify] https://crrev.com/ac97cd080598d6c960ac42322e1ef24a05094b10/content/public/test/browser_test_utils.cc
[modify] https://crrev.com/ac97cd080598d6c960ac42322e1ef24a05094b10/ui/aura/test/window_event_dispatcher_test_api.cc
[modify] https://crrev.com/ac97cd080598d6c960ac42322e1ef24a05094b10/ui/aura/test/window_event_dispatcher_test_api.h
[modify] https://crrev.com/ac97cd080598d6c960ac42322e1ef24a05094b10/ui/aura/window_event_dispatcher.cc
[modify] https://crrev.com/ac97cd080598d6c960ac42322e1ef24a05094b10/ui/aura/window_event_dispatcher.h

Project Member

Comment 28 by bugdroid1@chromium.org, Jan 24 2018

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

commit f7731345b34fd9f87ce5792f5f952f8e5cdfaac8
Author: Saman Sami <samans@chromium.org>
Date: Wed Jan 24 22:18:44 2018

Surface synchronization: Allocate new LocalSurfaceId on navigation

In order to be able to tell the difference between the graphical output
of the renderer before and after navigation, we should allocate a new
LocalSurfaceId. Currently we rely on content_source_id to achieve this,
but that is not compatible with Viz. When navigation happens, browser
allocates a new id for the child and immediately embeds it. After 4
seconds it drops the fallback SurfaceId if it was generated before
navigation.

TBR=lazyboy@chromium.org

Bug:  695579 , 775030 , 777881 
Change-Id: I8ae11dd3de2e8d6cc889ad31f94bdb0bb5f6a5d4
Reviewed-on: https://chromium-review.googlesource.com/855256
Commit-Queue: Saman Sami <samans@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Saman Sami <samans@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531713}
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/chrome/browser/extensions/extension_context_menu_model_unittest.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/browser_compositor_view_mac.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/browser_compositor_view_mac.mm
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/delegated_frame_host.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/delegated_frame_host_client_aura.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/delegated_frame_host_client_aura.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_unittest.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_view_mac.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/browser/screen_orientation/screen_orientation_browsertest.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/common/resize_params.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/common/resize_params.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/common/view_messages.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/public/test/render_view_test.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/renderer/render_frame_impl_browsertest.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/renderer/render_view_browsertest.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/renderer/render_view_impl.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/renderer/render_view_impl.h
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/renderer/render_widget.cc
[modify] https://crrev.com/f7731345b34fd9f87ce5792f5f952f8e5cdfaac8/content/renderer/render_widget.h

Blockedon: 809989
Blockedon: 771367
Blockedon: 771337
Blockedon: 716911
Blockedon: -777881
Blockedon: 810919
Blockedon: -771331
Project Member

Comment 36 by bugdroid1@chromium.org, Apr 19 2018

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

commit 478e85a9d6185aaa1f9d059ed889986be6a0a532
Author: Saman Sami <samans@chromium.org>
Date: Thu Apr 19 23:51:23 2018

Remove RenderWidgetHostLatencyTracker::OnSwapCompositorFrame

This method adds the right component id to snapshot-related latency
info, We can just send the right component id to the renderer so that
a correction browser-side is not necessary.

Test: Lots of pixel tests take screenshots. Also tested
Page.captureScreenshot manually.

Bug:  810037 ,  775030 
Change-Id: I61242ad63c5af8975331cb405fc629ce19ef92f8
Reviewed-on: https://chromium-review.googlesource.com/1019389
Commit-Queue: Saman Sami <samans@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552204}
[modify] https://crrev.com/478e85a9d6185aaa1f9d059ed889986be6a0a532/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc
[modify] https://crrev.com/478e85a9d6185aaa1f9d059ed889986be6a0a532/content/browser/renderer_host/input/render_widget_host_latency_tracker.h
[modify] https://crrev.com/478e85a9d6185aaa1f9d059ed889986be6a0a532/content/browser/renderer_host/render_widget_host_impl.cc

Project Member

Comment 37 by bugdroid1@chromium.org, Apr 30 2018

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

commit 6965b10cdb3fc8f9e0bf698783c68d065048b12d
Author: Saman Sami <samans@chromium.org>
Date: Mon Apr 30 18:50:27 2018

Add is_mobile_optimized to RenderFrameMetadata

Add is_mobile_optimized to RenderFrameMetadata to make it
work with viz.

Bug:  775030 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I6e26067e1cfeb1a0ca6821dfb35a41b83da6c9ca
Reviewed-on: https://chromium-review.googlesource.com/1033919
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Commit-Queue: Saman Sami <samans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554826}
[modify] https://crrev.com/6965b10cdb3fc8f9e0bf698783c68d065048b12d/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/6965b10cdb3fc8f9e0bf698783c68d065048b12d/cc/trees/render_frame_metadata.cc
[modify] https://crrev.com/6965b10cdb3fc8f9e0bf698783c68d065048b12d/cc/trees/render_frame_metadata.h
[modify] https://crrev.com/6965b10cdb3fc8f9e0bf698783c68d065048b12d/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/6965b10cdb3fc8f9e0bf698783c68d065048b12d/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/6965b10cdb3fc8f9e0bf698783c68d065048b12d/content/common/render_frame_metadata.mojom
[modify] https://crrev.com/6965b10cdb3fc8f9e0bf698783c68d065048b12d/content/common/render_frame_metadata_struct_traits.cc
[modify] https://crrev.com/6965b10cdb3fc8f9e0bf698783c68d065048b12d/content/common/render_frame_metadata_struct_traits.h

Blocking: -787097 730193
Status: Fixed (was: Assigned)

Sign in to add a comment