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

Issue 805073 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome
Pri: 3
Type: Bug



Sign in to add a comment

Autoresize path with surface sync may result in too many notifications / surface allocations

Project Member Reported by ericrk@chromium.org, Jan 23 2018

Issue description

Chrome Version: refs/heads/master@{#530170}
OS: Linux

What steps will reproduce the problem?
(1) Open Chrome and select menu > cast
(2) Wait for the cast dialog to stabilize
(3) Click the arrow next to "cast to" to toggle between this and the "select source" view.
(4) Note that on each click, the RenderWidget sends a single ViewHostMsg_ResizeOrRepaint_ACK
(5) Note that for each ViewHostMsg_ResizeOrRepaint_ACK, the Browser performs two surface ID allocations and sends three ViewMsg_SetLocalSurfaceIdForAutoResize responses.

What is the expected result?
I would expect the renderer to receive one ViewMsg_SetLocalSurfaceIdForAutoResize for each ViewHostMsg_ResizeOrRepaint_ACK. I would also expect only one surface allocation.

For a bit more info, here are the stacks showing where we allocate new surfaces (note that this all stems from the same RenderWidgetHostImpl::DelayedAutoResized call triggered by the ViewHostMsg_ResizeOrRepaint_ACK:

----------- stack (A) -------------
#1 0x7ff0b81f9d43 aura::WindowPortLocal::OnDidChangeBounds()
#2 0x7ff0b824b6a2 aura::Window::OnLayerBoundsChanged()
#3 0x7ff0b816054d ui::Layer::SetBoundsFromAnimation()
#4 0x7ff0b82454e2 aura::Window::SetBounds()
#5 0x7ff0bad992de content::RenderWidgetHostViewAura::InternalSetBounds()
#6 0x7ff0bad99201 content::RenderWidgetHostViewAura::SetSize()
#7 0x7ff0bafb935e content::WebContentsViewAura::OnBoundsChanged()
#8 0x7ff0b824b70a aura::Window::OnLayerBoundsChanged()
#9 0x7ff0b816054d ui::Layer::SetBoundsFromAnimation()
#10 0x7ff0b82454e2 aura::Window::SetBounds()
#11 0x7ff0b71a8eaf views::NativeViewHostAura::ShowWidget()
#12 0x7ff0b71064d3 views::NativeViewHost::Layout()
#13 0x7ff0b716e5d7 views::View::BoundsChanged()
#14 0x7ff0b716d85e views::View::SetBoundsRect()
#15 0x7ff0b6b2c6ff views::WebView::OnBoundsChanged()
#16 0x7ff0b716e47d views::View::BoundsChanged()
#17 0x7ff0b716d85e views::View::SetBoundsRect()
#18 0x7ff0b716d6a7 views::View::SetBounds()
#19 0x7ff0b716e5d7 views::View::BoundsChanged()
#20 0x7ff0b716d85e views::View::SetBoundsRect()
#21 0x7ff0b719e23d views::NonClientView::Layout()
#22 0x7ff0b716e5d7 views::View::BoundsChanged()
#23 0x7ff0b716d85e views::View::SetBoundsRect()
#24 0x7ff0b7158756 views::FillLayout::Layout()
#25 0x7ff0b717121c views::View::Layout()
#26 0x7ff0b716e5d7 views::View::BoundsChanged()
#27 0x7ff0b716d85e views::View::SetBoundsRect()
#28 0x7ff0b716e75a views::View::SetSize()
#29 0x7ff0b718d696 views::Widget::OnNativeWidgetSizeChanged()
#30 0x7ff0b824b70a aura::Window::OnLayerBoundsChanged()
#31 0x7ff0b816054d ui::Layer::SetBoundsFromAnimation()
#32 0x7ff0b82454e2 aura::Window::SetBounds()
#33 0x7ff0b71bc874 views::DesktopScreenPositionClient::SetBounds()
#34 0x7ff0b71be48e views::NativeWidgetAura::SetBounds()
#35 0x55d9e6861d0f constrained_window::(anonymous namespace)::UpdateModalDialogPosition()
#36 0x55d9e6861a28 constrained_window::UpdateWebContentsModalDialogPosition()
#37 0x7ff0baf990a1 content::WebContentsImpl::ResizeDueToAutoResize()
#38 0x7ff0bad83d75 content::RenderWidgetHostImpl::DelayedAutoResized()

----------- stack (B) -------------
#1 0x7ff0b81fa6ea aura::WindowPortLocal::AllocateLocalSurfaceId()
#2 0x7ff0bada22a2 content::RenderWidgetHostViewAura::ResizeDueToAutoResize()
#3 0x7ff0baf990e1 content::WebContentsImpl::ResizeDueToAutoResize()
#4 0x7ff0bad83d75 content::RenderWidgetHostImpl::DelayedAutoResized()

Additionally, here are the three stacks showing where we send ViewMsg_SetLocalSurfaceIdForAutoResizes back to the renderer. These also all come from the same base RenderWidgetHostImpl::DelayedAutoResized call:

----------- stack (C) -------------
#1 0x7ff0bad8676f content::RenderWidgetHostImpl::DidAllocateLocalSurfaceIdForAutoResize()
#2 0x7ff0bad99201 content::RenderWidgetHostViewAura::SetSize()
#3 0x7ff0bad9e5e7 content::RenderWidgetHostViewAura::OnBoundsChanged()
#4 0x7ff0b824b70a aura::Window::OnLayerBoundsChanged()
#5 0x7ff0b816054d ui::Layer::SetBoundsFromAnimation()
#6 0x7ff0b82454e2 aura::Window::SetBounds()
#7 0x7ff0bad992de content::RenderWidgetHostViewAura::InternalSetBounds()
#8 0x7ff0bad99201 content::RenderWidgetHostViewAura::SetSize()
#9 0x7ff0bafb935e content::WebContentsViewAura::OnBoundsChanged()
#10 0x7ff0b824b70a aura::Window::OnLayerBoundsChanged()
#11 0x7ff0b816054d ui::Layer::SetBoundsFromAnimation()
#12 0x7ff0b82454e2 aura::Window::SetBounds()
#13 0x7ff0b71a8eaf views::NativeViewHostAura::ShowWidget()
#14 0x7ff0b71064d3 views::NativeViewHost::Layout()
#15 0x7ff0b716e5d7 views::View::BoundsChanged()
#16 0x7ff0b716d85e views::View::SetBoundsRect()
#17 0x7ff0b6b2c6ff views::WebView::OnBoundsChanged()
#18 0x7ff0b716e47d views::View::BoundsChanged()
#19 0x7ff0b716d85e views::View::SetBoundsRect()
#20 0x7ff0b716d6a7 views::View::SetBounds()
#21 0x7ff0b716e5d7 views::View::BoundsChanged()
#22 0x7ff0b716d85e views::View::SetBoundsRect()
#23 0x7ff0b719e23d views::NonClientView::Layout()
#24 0x7ff0b716e5d7 views::View::BoundsChanged()
#25 0x7ff0b716d85e views::View::SetBoundsRect()
#26 0x7ff0b7158756 views::FillLayout::Layout()
#27 0x7ff0b717121c views::View::Layout()
#28 0x7ff0b716e5d7 views::View::BoundsChanged()
#29 0x7ff0b716d85e views::View::SetBoundsRect()
#30 0x7ff0b716e75a views::View::SetSize()
#31 0x7ff0b718d696 views::Widget::OnNativeWidgetSizeChanged()
#32 0x7ff0b824b70a aura::Window::OnLayerBoundsChanged()
#33 0x7ff0b816054d ui::Layer::SetBoundsFromAnimation()
#34 0x7ff0b82454e2 aura::Window::SetBounds()
#35 0x7ff0b71bc874 views::DesktopScreenPositionClient::SetBounds()
#36 0x7ff0b71be48e views::NativeWidgetAura::SetBounds()
#37 0x55d9e6861d0f constrained_window::(anonymous namespace)::UpdateModalDialogPosition()
#38 0x55d9e6861a28 constrained_window::UpdateWebContentsModalDialogPosition()
#39 0x7ff0baf990a1 content::WebContentsImpl::ResizeDueToAutoResize()
#40 0x7ff0bad83d75 content::RenderWidgetHostImpl::DelayedAutoResized()

----------- stack (D) -------------
content::RenderWidgetHostImpl::DidAllocateLocalSurfaceIdForAutoResize()
#2 0x7ff0bad99201 content::RenderWidgetHostViewAura::SetSize()
#3 0x7ff0bafb935e content::WebContentsViewAura::OnBoundsChanged()
#4 0x7ff0b824b70a aura::Window::OnLayerBoundsChanged()
#5 0x7ff0b816054d ui::Layer::SetBoundsFromAnimation()
#6 0x7ff0b82454e2 aura::Window::SetBounds()
#7 0x7ff0b71a8eaf views::NativeViewHostAura::ShowWidget()
#8 0x7ff0b71064d3 views::NativeViewHost::Layout()
#9 0x7ff0b716e5d7 views::View::BoundsChanged()
#10 0x7ff0b716d85e views::View::SetBoundsRect()
#11 0x7ff0b6b2c6ff views::WebView::OnBoundsChanged()
#12 0x7ff0b716e47d views::View::BoundsChanged()
#13 0x7ff0b716d85e views::View::SetBoundsRect()
#14 0x7ff0b716d6a7 views::View::SetBounds()
#15 0x7ff0b716e5d7 views::View::BoundsChanged()
#16 0x7ff0b716d85e views::View::SetBoundsRect()
#17 0x7ff0b719e23d views::NonClientView::Layout()
#18 0x7ff0b716e5d7 views::View::BoundsChanged()
#19 0x7ff0b716d85e views::View::SetBoundsRect()
#20 0x7ff0b7158756 views::FillLayout::Layout()
#21 0x7ff0b717121c views::View::Layout()
#22 0x7ff0b716e5d7 views::View::BoundsChanged()
#23 0x7ff0b716d85e views::View::SetBoundsRect()
#24 0x7ff0b716e75a views::View::SetSize()
#25 0x7ff0b718d696 views::Widget::OnNativeWidgetSizeChanged()
#26 0x7ff0b824b70a aura::Window::OnLayerBoundsChanged()
#27 0x7ff0b816054d ui::Layer::SetBoundsFromAnimation()
#28 0x7ff0b82454e2 aura::Window::SetBounds()
#29 0x7ff0b71bc874 views::DesktopScreenPositionClient::SetBounds()
#30 0x7ff0b71be48e views::NativeWidgetAura::SetBounds()
#31 0x55d9e6861d0f constrained_window::(anonymous namespace)::UpdateModalDialogPosition()
#32 0x55d9e6861a28 constrained_window::UpdateWebContentsModalDialogPosition()
#33 0x7ff0baf990a1 content::WebContentsImpl::ResizeDueToAutoResize()
#34 0x7ff0bad83d75 content::RenderWidgetHostImpl::DelayedAutoResized()

----------- stack (E) -------------
#1 0x7ff0bad8676f content::RenderWidgetHostImpl::DidAllocateLocalSurfaceIdForAutoResize()
#2 0x7ff0baf990e1 content::WebContentsImpl::ResizeDueToAutoResize()
#3 0x7ff0bad83d75 content::RenderWidgetHostImpl::DelayedAutoResized()

Note that it looks like (in this situation at least) we can safely drop the alloc in stack (A) and the notifications in stack (C) and (D), as these will always be covered by the later alloc/noficiation in stacks (B) and (E).

 
Owner: ccameron@chromium.org
Status: Assigned (was: Available)
Can you please triage?
Labels: -Pri-2 Pri-3
->P3, probably best to go to fsamuel. Of note is that Mac does not currently support this path yet (patches in flight)

Comment 3 by ericrk@chromium.org, Feb 16 2018

Owner: cblume@chromium.org
cblume@ has a patch in flight that will address this.
Project Member

Comment 4 by bugdroid1@chromium.org, Mar 2 2018

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

commit 54fcb1d19faa80571613c47c03e70f313f03ccbd
Author: Chris Blume <cblume@chromium.org>
Date: Fri Mar 02 18:51:53 2018

Add ScopedSurfaceIdAllocator

Adds a ScopedSurfaceIdAllocator which can be used to suppress
allocation of LocalSurfaceId in the parent during its lifetime.
When it is destroyed, it runs its own allocation.

BUG= 789259 , 805073 

Change-Id: I56d4435922031b625cdbcddb012f89b309b36ba1
Reviewed-on: https://chromium-review.googlesource.com/918405
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Commit-Queue: Chris Blume <cblume@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540569}
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/components/viz/common/BUILD.gn
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/components/viz/common/surfaces/parent_local_surface_id_allocator.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/components/viz/common/surfaces/parent_local_surface_id_allocator.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/components/viz/common/surfaces/parent_local_surface_id_allocator_unittest.cc
[add] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/components/viz/common/surfaces/scoped_surface_id_allocator.cc
[add] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/components/viz/common/surfaces/scoped_surface_id_allocator.h
[add] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/components/viz/common/surfaces/scoped_surface_id_allocator_unittest.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/frame_host/render_widget_host_view_guest.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/frame_host/render_widget_host_view_guest.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/renderer_host/browser_compositor_view_mac.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/renderer_host/render_widget_host_view_mac.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/content/test/mock_render_widget_host_delegate.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/ui/aura/BUILD.gn
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/ui/aura/local/window_port_local.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/ui/aura/local/window_port_local.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/ui/aura/mus/window_port_mus.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/ui/aura/mus/window_port_mus.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/ui/aura/window.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/ui/aura/window.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/ui/aura/window_port.h
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/ui/aura/window_port_for_shutdown.cc
[modify] https://crrev.com/54fcb1d19faa80571613c47c03e70f313f03ccbd/ui/aura/window_port_for_shutdown.h

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 16 2018

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

commit f18f8124227f751f390b5aefe31c125a12194ed5
Author: Eric Karl <ericrk@chromium.org>
Date: Mon Apr 16 21:13:31 2018

Suppress surface ID allocations during autoresize for child frames

This change makes the ResizeDueToAutoResize messages for child frames
transactional, with a begin/end. It also ensures that during a
transaction we don't allocate new LocalSurfaceIds, instead waiting
for the transaction to complete.

Bug:  789259 , 805073 
Change-Id: I585ac6d14b9978280847f49205d03bf49b9bb4f8
Reviewed-on: https://chromium-review.googlesource.com/960981
Commit-Queue: Eric Karl <ericrk@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Chris Blume <cblume@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551114}
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/frame_host/cross_process_frame_connector.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/frame_host/cross_process_frame_connector.h
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/renderer_host/frame_connector_delegate.h
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/common/frame_messages.h
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/renderer/render_frame_impl_browsertest.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/renderer/render_frame_proxy.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/renderer/render_frame_proxy.h
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/test/content_browser_test_utils_internal.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/test/content_browser_test_utils_internal.h

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f18f8124227f751f390b5aefe31c125a12194ed5

commit f18f8124227f751f390b5aefe31c125a12194ed5
Author: Eric Karl <ericrk@chromium.org>
Date: Mon Apr 16 21:13:31 2018

Suppress surface ID allocations during autoresize for child frames

This change makes the ResizeDueToAutoResize messages for child frames
transactional, with a begin/end. It also ensures that during a
transaction we don't allocate new LocalSurfaceIds, instead waiting
for the transaction to complete.

Bug:  789259 , 805073 
Change-Id: I585ac6d14b9978280847f49205d03bf49b9bb4f8
Reviewed-on: https://chromium-review.googlesource.com/960981
Commit-Queue: Eric Karl <ericrk@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Chris Blume <cblume@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551114}
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/frame_host/cross_process_frame_connector.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/frame_host/cross_process_frame_connector.h
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/renderer_host/frame_connector_delegate.h
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/common/frame_messages.h
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/renderer/render_frame_impl_browsertest.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/renderer/render_frame_proxy.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/renderer/render_frame_proxy.h
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/test/content_browser_test_utils_internal.cc
[modify] https://crrev.com/f18f8124227f751f390b5aefe31c125a12194ed5/content/test/content_browser_test_utils_internal.h

Project Member

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

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

commit ba177d2ea70e292a846ee0a04117d82f27d674b2
Author: Chris Blume <cblume@chromium.org>
Date: Thu Apr 19 22:57:05 2018

Suppress select IPCs during LSI allocation on Mac

When a child LSI allocation is being processed by the parent, the parent
should not send extra IPCs which it will later overwrite. This
suppression currently happens on Aura platforms but not Mac.

This patch adds it to Mac.

BUG= 805073 

Change-Id: I3bda7dbdb97afb982e031ac354f06ce1c385e07d
Reviewed-on: https://chromium-review.googlesource.com/1011556
Commit-Queue: Chris Blume <cblume@chromium.org>
Reviewed-by: ccameron <ccameron@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552195}
[modify] https://crrev.com/ba177d2ea70e292a846ee0a04117d82f27d674b2/content/browser/renderer_host/browser_compositor_view_mac.h
[modify] https://crrev.com/ba177d2ea70e292a846ee0a04117d82f27d674b2/content/browser/renderer_host/browser_compositor_view_mac.mm
[modify] https://crrev.com/ba177d2ea70e292a846ee0a04117d82f27d674b2/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/ba177d2ea70e292a846ee0a04117d82f27d674b2/content/browser/renderer_host/render_widget_host_view_mac.h
[modify] https://crrev.com/ba177d2ea70e292a846ee0a04117d82f27d674b2/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/ba177d2ea70e292a846ee0a04117d82f27d674b2/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 22 2018

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

commit 12a2646d7f7df9ffcfff2b44dbb49ff58289d11e
Author: Chris Blume <cblume@chromium.org>
Date: Sun Apr 22 02:00:12 2018

Pass child allocated LSIs to Guests/ChildFrames

This change passes child allocated surface IDs from the browser to
ChildFrames / Guests. Additionally, it updates the existing ChildFrame
tests and adds Guest tests to ensure that:
- The ID we pass is correctly received.
- The Guest/ChildFrame does not have extra allocations.

Bug:  789259 , 805073 , 811944 
Change-Id: I82e0677d46801bfe721e30674493ffe0406d87e9
Reviewed-on: https://chromium-review.googlesource.com/996920
Commit-Queue: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552597}
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/chrome/browser/apps/guest_view/web_view_browsertest.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/browser_plugin/browser_plugin_guest.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/browser_plugin/browser_plugin_guest.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/browser_plugin/browser_plugin_message_filter.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/browser_plugin/browser_plugin_message_filter.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/frame_host/cross_process_frame_connector.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/frame_host/cross_process_frame_connector.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/frame_host/render_widget_host_view_guest.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/renderer_host/frame_connector_delegate.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/renderer_host/render_process_host_impl.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/common/browser_plugin/browser_plugin_messages.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/common/frame_messages.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/public/test/browser_test_utils.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/public/test/browser_test_utils.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/renderer/browser_plugin/browser_plugin.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/renderer/browser_plugin/browser_plugin.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/renderer/render_frame_impl_browsertest.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/renderer/render_frame_proxy.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/renderer/render_frame_proxy.h
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/test/content_browser_test_utils_internal.cc
[modify] https://crrev.com/12a2646d7f7df9ffcfff2b44dbb49ff58289d11e/content/test/content_browser_test_utils_internal.h

Project Member

Comment 9 by bugdroid1@chromium.org, Apr 23 2018

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

commit 7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b
Author: Chris Blume <cblume@chromium.org>
Date: Mon Apr 23 21:30:48 2018

Short circuit LocalSurfaceId allocation

When a child allocates a LocalSurfaceId, it informs the parent of that
new allocation. The child doesn't begin using it until the parent
acknowledges that it was accepted.

We can short circuit this case and assume it will be accepted.

In the case where the parent does not accept, it will continue to inform
the child that there is a new LocalSurfaceId to use.

BUG= 805073 , 811944 

Change-Id: Ica8e1e2b6e98ef4392fec4cfc3cc4c9f806c88ac
Reviewed-on: https://chromium-review.googlesource.com/1020533
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Commit-Queue: Chris Blume <cblume@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552838}
[modify] https://crrev.com/7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b/content/browser/browser_plugin/browser_plugin_guest.cc
[modify] https://crrev.com/7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b/content/browser/renderer_host/frame_connector_delegate.cc
[modify] https://crrev.com/7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/7c21abdbea95e1cba6141dd0e1de7e4a558a0e5b/content/browser/renderer_host/render_widget_host_view_mac.mm

Project Member

Comment 10 by bugdroid1@chromium.org, Apr 24 2018

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

commit 8be47737dac4c9971c977ba4081db6e15db8e3fa
Author: Chris Blume <cblume@chromium.org>
Date: Tue Apr 24 21:06:56 2018

Remove early call to DidResizeOrRepaintAck()

Previously, we would defer commit when the child didn't yet have a
LocalSurfaceId. This meant we needed a special case to call
DidResizeOrRepaintAck() early when commit would be deferred.

But now the child has the ability to allocate its own
LocalSurfaceId. As a result, we no longer need to defer commit. And
thus, no longer need to call DidResizeOrRepaintAck() early.

BUG= 805073 , 811944 , 836009 

Change-Id: I4e85e926f217cf0fd2d4b5ed3854f09e7145e5a8
Reviewed-on: https://chromium-review.googlesource.com/1024739
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Commit-Queue: Fady Samuel <fsamuel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553276}
[modify] https://crrev.com/8be47737dac4c9971c977ba4081db6e15db8e3fa/content/renderer/render_view_impl.cc
[modify] https://crrev.com/8be47737dac4c9971c977ba4081db6e15db8e3fa/content/renderer/render_widget.cc
[modify] https://crrev.com/8be47737dac4c9971c977ba4081db6e15db8e3fa/content/renderer/render_widget.h
[modify] https://crrev.com/8be47737dac4c9971c977ba4081db6e15db8e3fa/content/renderer/render_widget_unittest.cc

Status: Fixed (was: Assigned)

Sign in to add a comment