New issue
Advanced search Search tips

Issue 804046 link

Starred by 2 users

Issue metadata

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

Blocked on:
issue 801091



Sign in to add a comment

Description of an item on ebay sites has a wrong layout with enabled "Strict site isolation"

Reported by peter.vo...@gmail.com, Jan 20 2018

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/63.0.3239.84 Chrome/63.0.3239.84 Safari/537.36

Example URL:
https://www.ebay.de/itm/Playstation-2-Konsole/173105574307

Steps to reproduce the problem:
1. Enable Strict site isolation at chrome://flags/#enable-site-per-process
2. Open any item on ebay with a simple item description (no custom html)
3. The layout of the item description part is wrong - too narrow

----

Workaround - disable strict site isolation - no more layout issue.

What is the expected behavior?
Same layout as with disable strict site isolation

What went wrong?
See attached two screenshots - the firts one with enabled site isolation has a wrong layout.
The second screenshot with disable site isolation shows the proper layout of the item description.

Is this a browser or ebay site development problem?

Does it occur on multiple sites: N/A

Is it a problem with a plugin? No 

Did this work before? N/A 

Does this work in other browsers? Yes

Chrome version: 63.0.3239.84  Channel: stable
OS Version: ubuntu 16.04
Flash Version: n.a.
 
Screenshot from 2018-01-20 00-48-07.png
274 KB View Download
Screenshot from 2018-01-20 00-49-34.png
276 KB View Download
Cc: kenrb@chromium.org creis@chromium.org alex...@chromium.org
Components: Internals>Sandbox>SiteIsolation
Labels: -Pri-2 Pri-1
Owner: lfg@chromium.org
Status: Assigned (was: Unconfirmed)
Thanks for the report!  Confirmed on Linux ToT (synced to r530596), though doesn't seem to happen on Mac canary 66.0.3329.1 or stable 63.0.3239.132.

Lucas, could this be the same cause as the sizing bug you're investigating in issue 801091?  The parent page seems to dynamically set the width attribute of the ebaydesc.com iframe element - it starts out as width="99%" (from view-source) and then rewrites it to 180 with --site-per-process, and a larger width closer to tab width when without --site-per-process.

Comment 2 by lfg@chromium.org, Jan 24 2018

Labels: OS-Chrome OS-Mac OS-Windows
Yes, I'm pretty sure this is the same issue. I can repro on canary, but I can repro with my WIP CL (https://chromium-review.googlesource.com/c/chromium/src/+/882021).

I'll leave this assigned to my for now and re-test when my patch is finalized.

Comment 3 by lfg@chromium.org, Jan 24 2018

That should've been I *can't* repro with my WIP CL.

Comment 4 by creis@chromium.org, Jan 24 2018

Blockedon: 801091
Status: Started (was: Assigned)
Thanks.  I'll mark this as blocked on issue 801091, and we can dupe it if you confirm that when the CL is finished.

Comment 5 by lfg@chromium.org, Jan 25 2018

Just to confirm that this is indeed the same as issue 801091, the OOPIF reads document.body.scrollWidth and then postMessage's the value to the parent frame, which then resizes the iframe. Since the iframe doesn't have its initial size, the layout is done with the widget's size being (0,0), and the scrollWidth isn't computed properly when site isolation is enabled.

Project Member

Comment 6 by bugdroid1@chromium.org, Feb 13 2018

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

commit 6ccadf770766e89c3683ae8ce12235e06a953906
Author: Lucas Furukawa Gadani <lfg@chromium.org>
Date: Tue Feb 13 10:29:10 2018

Prevent browser from sending empty ScreenInfo to the renderer.

Bug: 801091,  804046 
Change-Id: Ic7d3aab009421db239e979f0b6d64c701a044f46
Reviewed-on: https://chromium-review.googlesource.com/911598
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Commit-Queue: Nasko Oskov <nasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536324}
[modify] https://crrev.com/6ccadf770766e89c3683ae8ce12235e06a953906/content/browser/frame_host/cross_process_frame_connector.cc
[modify] https://crrev.com/6ccadf770766e89c3683ae8ce12235e06a953906/content/browser/frame_host/render_widget_host_view_guest.cc
[modify] https://crrev.com/6ccadf770766e89c3683ae8ce12235e06a953906/content/browser/frame_host/render_widget_host_view_guest.h
[modify] https://crrev.com/6ccadf770766e89c3683ae8ce12235e06a953906/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/6ccadf770766e89c3683ae8ce12235e06a953906/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/6ccadf770766e89c3683ae8ce12235e06a953906/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/6ccadf770766e89c3683ae8ce12235e06a953906/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/6ccadf770766e89c3683ae8ce12235e06a953906/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/6ccadf770766e89c3683ae8ce12235e06a953906/content/public/browser/render_widget_host_view.h
[modify] https://crrev.com/6ccadf770766e89c3683ae8ce12235e06a953906/content/renderer/render_widget.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Feb 13 2018

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

commit e5d27a36230aea4b3664f8b5345b09bb0690a3ff
Author: Lucas Furukawa Gadani <lfg@chromium.org>
Date: Tue Feb 13 14:26:02 2018

Ensure that an OOPIF renderer knows its size before layout.

This patch blocks an OOPIF HTML parser until the corresponding
RenderWidget has received its size from the browser.

This patch also implements replication of the frame's size to the
browser process. This allows the optimization of remote to remote
transfers, where the browser knows the frame's size before commiting
the navigation on the new renderer. It also optimizes some cases where
the parent renderer is able to perform layout before the child renderer
has time to spin up (which happens usually when spawning new
renderers).

Finally, this change also prevents the browser from sending the wrong
size information to the renderer, making sure that the resize IPC is
not sent before the size has arrived from the parent renderer.

Bug: 801091, 804046 

Change-Id: I5448a0953d582b37922f2a0d979d106f56dd1cc2
Reviewed-on: https://chromium-review.googlesource.com/882021
Commit-Queue: Lucas Gadani <lfg@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536351}
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/frame_host/cross_process_frame_connector.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/frame_host/render_frame_host_manager.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/frame_host/render_frame_proxy_host.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/frame_host/render_frame_proxy_host.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/frame_host/render_widget_host_view_guest.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/frame_host/render_widget_host_view_guest.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/renderer_host/frame_connector_delegate.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/renderer_host/frame_connector_delegate.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/renderer_host/render_widget_host_view_base.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/renderer_host/render_widget_host_view_base.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/common/frame.mojom
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/renderer/render_frame_impl.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/content/test/test_render_frame.cc
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/exported/LocalFrameClientImpl.cpp
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/exported/LocalFrameClientImpl.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/frame/FrameTestHelpers.cpp
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/frame/LocalFrameClient.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/frame/LocalFrameView.cpp
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/frame/WebFrameWidgetBase.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/frame/WebFrameWidgetImpl.cpp
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/frame/WebFrameWidgetImpl.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/Source/core/loader/DocumentLoader.h
[modify] https://crrev.com/e5d27a36230aea4b3664f8b5345b09bb0690a3ff/third_party/WebKit/public/web/WebFrameClient.h

Comment 8 by lfg@chromium.org, Mar 2 2018

Status: Fixed (was: Started)

Sign in to add a comment