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

Issue 811944 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 1
Type: Feature

Blocked on:
issue 789259

Blocking:
issue 801350
issue 810213



Sign in to add a comment

Handle Autoresize with Child-Allocated Surface ID

Project Member Reported by ericrk@chromium.org, Feb 13 2018

Issue description

We should allow the Renderer, when in autoresize mode, to allocate a new surface ID and send that to the browser along with its new size. The browser can then embed this Surface ID directly, avoiding any round-trip response to the renderer.

Eventually we will want to move this autoresize message to the impl thread ( issue 810213 ), but the current positioning in the main thread makes this a good first step.
 
Project Member

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

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

commit 2f3162c8b53841e0b15990d555021be62b7a24a0
Author: Eric Karl <ericrk@chromium.org>
Date: Sun Apr 22 00:42:47 2018

Ensure auto-resize LSI allocation on first auto-resize

There was a bug in existing code where the first auto-resize of an empty
RenderWidget caused LSI allocation to be skipped. We would instead send
the unchanged ID from the parent. This generally worked, as the parent
ID was typically not yet used (due to zero size), but could lead to
problematic edge cases.

This change causes us to allocate an LSI for every AutoResize message
and updates the unit tests to confirm this.

Bug:  811944 
Change-Id: I822380c748461be5429e6d5b2afbecb8c60076a3
Reviewed-on: https://chromium-review.googlesource.com/1022477
Commit-Queue: Eric Karl <ericrk@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552596}
[modify] https://crrev.com/2f3162c8b53841e0b15990d555021be62b7a24a0/content/renderer/render_widget.cc
[modify] https://crrev.com/2f3162c8b53841e0b15990d555021be62b7a24a0/content/renderer/render_widget_unittest.cc

Project Member

Comment 2 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 3 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 4 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

Project Member

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

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

commit 7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b
Author: Eric Karl <ericrk@chromium.org>
Date: Tue Apr 24 21:21:30 2018

BrowserPlugin/RenderFrameProxy cleanup + remove AutoResize Seq Numbers

This change cleans up some logic in BrowserPlugin and
RenderFrameProxy, now that we fully support child-allocated local
surface IDs. Additionally, it removes AutoResize sequence numbers
from the code, as these were no longer used.

Bug:  811944 
Change-Id: Ic15d6fbdbb2851282b9604dadfb7be47e315d506
Reviewed-on: https://chromium-review.googlesource.com/1024490
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Commit-Queue: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553282}
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/browser_plugin/browser_plugin_guest.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/browser_plugin/browser_plugin_guest.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/frame_host/cross_process_frame_connector.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/frame_host/cross_process_frame_connector.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/frame_host/render_widget_host_view_guest.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/frame_host/render_widget_host_view_guest.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/frame_connector_delegate.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_delegate.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_impl.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_child_frame_unittest.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_mac.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_mac.mm
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/browser/web_contents/web_contents_impl.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/common/browser_plugin/browser_plugin_messages.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/common/frame_messages.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/common/frame_resize_params.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/common/view_messages.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/public/test/browser_test_utils.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/renderer/browser_plugin/browser_plugin.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/renderer/browser_plugin/browser_plugin.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/renderer/render_frame_proxy.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/renderer/render_frame_proxy.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/renderer/render_view_browsertest.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/renderer/render_widget.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/renderer/render_widget.h
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/renderer/render_widget_unittest.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/test/mock_render_widget_host_delegate.cc
[modify] https://crrev.com/7fdf2af46c31c6a2a0346e29b09f0f75eef06f4b/content/test/mock_render_widget_host_delegate.h

Comment 6 by cblume@chromium.org, May 13 2018

Status: Fixed (was: Assigned)

Sign in to add a comment