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

Issue 649856 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug



Sign in to add a comment

Embedded PDFs broken inside OOPIFs

Project Member Reported by lfg@chromium.org, Sep 23 2016

Issue description

Repro: 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).

 

Comment 1 by lfg@chromium.org, Sep 23 2016

Cc: lazyboy@chromium.org
+lazyboy who could more context/ideas.

Cc: -ekaramad@chromium.org alex...@chromium.org
Labels: -Pri-2 Pri-1
Owner: ekaramad@chromium.org
Status: Started (was: Available)
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?

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.
Project Member

Comment 4 by bugdroid1@chromium.org, 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

Status: Fixed (was: Started)
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