OOPIFs not visible when loaded in an inactive tab |
|||
Issue descriptionWhat steps will reproduce the problem? (1) Start Chrome with --site-per-process (2) Open a tab so you have two tabs. Type http://csreis.github.io/tests/cross-site-iframe-simple.html into the omnibox in the first tab. (3) Right after pressing enter, switch to the second tab. (4) Wait a bit for the first tab to finish loading. (6) Switch back to the first tab. At this point, the OOPIF is not visible. The subframe process does show up in process manager, and clicking on the second tab and then back to the first tab again makes the OOPIF show up. So this seems to be some sort of visibility issue. Note that document.visibilityState shows "visible" for the OOPIF when it's not showing. I reproed this on 54.0.2795.0 Mac Canary and 53.0.2785.8 Linux dev. Even simpler repro: insert <a href="http://csreis.github.io/tests/cross-site-iframe-simple.html">link</a> and ctrl-click it. After waiting for the tab to load, switch to it. It seems that basically any OOPIF that finishes loading while in an inactive tab won't initially show up. This affects --isolate-extensions as well. I've tried right-clicking the "Beautify FB" extension's Options link and "Open link in new tab". After waiting for the new tab to load and switching to it, the Facebook subframe doesn't show up. This seems pretty bad, so I'm adding the blocking label.
,
Jul 14 2016
,
Jul 14 2016
Here's a summary of the problem: when the load completes, the parent's renderer sends and IPC from RemoteFrame::visibilityChanged, which overrides the browser's visibility. This causes WebContents and RenderWidgetHost (for the child frame) visibility's to go out of sync. We probably need something in CrossProcessFrameConnector to only update the visibility on the child process if the WebContents itself is visible. I'll start working on that tomorrow.
,
Jul 18 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9462cefe4c909d9be204df0fe005a5c2517741d7 commit 9462cefe4c909d9be204df0fe005a5c2517741d7 Author: lfg <lfg@chromium.org> Date: Mon Jul 18 23:51:06 2016 Ignore show messages from RemoteFrames when the WebContents is hidden. BUG= 628325 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2154833002 Cr-Commit-Position: refs/heads/master@{#406153} [modify] https://crrev.com/9462cefe4c909d9be204df0fe005a5c2517741d7/content/browser/frame_host/cross_process_frame_connector.cc [modify] https://crrev.com/9462cefe4c909d9be204df0fe005a5c2517741d7/content/browser/renderer_host/render_widget_host_delegate.cc [modify] https://crrev.com/9462cefe4c909d9be204df0fe005a5c2517741d7/content/browser/renderer_host/render_widget_host_delegate.h [modify] https://crrev.com/9462cefe4c909d9be204df0fe005a5c2517741d7/content/browser/web_contents/web_contents_impl.cc
,
Jul 19 2016
|
|||
►
Sign in to add a comment |
|||
Comment 1 by lfg@chromium.org
, Jul 14 2016Owner: lfg@chromium.org