1. Launch Chrome with --site-per-process (I used Linux dev 52.0.2729.3)
2. Go to http://csreis.github.io/tests/cross-site-iframe-simple.html
3. Inspect the subframe.
4. Evaluate navigator.mimeTypes and navigator.plugins.
Both come out as null.
Without --site-per-process, or when doing this in the main frame, both evaluate to meaningful non-zero arrays with pdf, swf, etc.
The problem is in this check in Page::pluginData:
if (!mainFrame()->isLocalFrame()
|| !deprecatedLocalMainFrame()->loader().allowPlugins(NotAboutToInstantiatePlugin))
return nullptr;
which just aborts early when the main frame is not local. Looks like we'll need to fix up allowPlugins to work with OOPIFs. There's no problem actually getting this data from an OOPIF -- if we skip the allowPlugins check, things just work.
Comment 1 by creis@chromium.org
, May 16 2016Labels: -Pri-3 Proj-IsolateExtensions-BlockingLaunch Pri-2