Embedded PDFs broken inside OOPIFs |
|||
Issue descriptionRepro: Run with isolate-extensions or site-per-process, try to load a PDF inside an out-of-process iframe. Renderer gets killed here: https://cs.chromium.org/chromium/src/components/guest_view/browser/guest_view_manager.cc?rcl=1474629705&l=466 (I tried returning true there, and it's not enough to fix the problem, so there's more stuff broken, likely similar assumptions should be elsewhere).
,
Nov 14 2016
Just FYI, while working on another issue, I came across an extension, Paperpile (https://chrome.google.com/webstore/detail/paperpile-extension/bomfdkbfpdhijjbeoicnfhjbdhncfhig), where the main functionality is broken due to this bug. The extension organizes research paper PDFs, and when loading a PDF from its library, it gets rendered from https://paperpile.com/ main frame, which embeds a chrome-extension:// subframe, which has an <embed> for the chrome-extension:// (filesystem) URL for the PDF. The extension has about 26K users, so I think we should fix this before launching --isolate-extensions. Ehsan, I know you have a CL in progress for this - were you planning on finishing it and landing before branch point?
,
Nov 14 2016
Thanks Alex. The CL (https://codereview.chromium.org/2417693002/) is almost ready. I guess it should land before the branch cut. This version will fix the PDF but there will be two bugs: 1) Context menu will be misplaced for <embed>ed PDF in OOPIF. 2) Post messaging will be one-way for now.
,
Nov 17 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/51ca2097b0b7c1a6097c63690b5ca982b65924e4 commit 51ca2097b0b7c1a6097c63690b5ca982b65924e4 Author: ekaramad <ekaramad@chromium.org> Date: Thu Nov 17 06:05:58 2016 Allow MimeHandlerViewGuest be embedded inside OOPIFs. Event routing for BrowserPlugin-based guests, along with some other IPCs, is through the embedder's RenderWidgetHost. Normally the embedder is the owner WebContents. However, when loading a PDF inside an out of process <iframe>, considering the WebContents as the embedder is incorrect as the actual BrowserPlugin lives in the <iframe> process. This CL will use the RWH corresponding to the embedder frame for event routing. BUG= 649856 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2417693002 Cr-Commit-Position: refs/heads/master@{#432779} [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/chrome/browser/chrome_site_per_process_browsertest.cc [add] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/chrome/test/data/page_with_embedded_pdf.html [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/components/guest_view/browser/guest_view_base.cc [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/components/guest_view/browser/guest_view_base.h [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/components/guest_view/browser/guest_view_manager.cc [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/content/browser/browser_plugin/browser_plugin_guest.cc [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/content/browser/browser_plugin/browser_plugin_guest.h [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/content/browser/frame_host/render_widget_host_view_guest.cc [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/content/browser/frame_host/render_widget_host_view_guest.h [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/content/browser/renderer_host/DEPS [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/content/browser/renderer_host/render_widget_host_input_event_router.cc [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/content/public/browser/browser_plugin_guest_delegate.cc [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/content/public/browser/browser_plugin_guest_delegate.h [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/extensions/browser/guest_view/extensions_guest_view_message_filter.cc [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc [modify] https://crrev.com/51ca2097b0b7c1a6097c63690b5ca982b65924e4/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
,
Nov 21 2016
Tested this on: 57.0.2926.0 (Official Build) canary (64-bit) Mac and, 57.0.2926.1 (Official Build) canary SyzyASan (32-bit) and both show PDF correctly inside OOPIF. Marking the bug as fixed. |
|||
►
Sign in to add a comment |
|||
Comment 1 by lfg@chromium.org
, Sep 23 2016