To reproduce: 1. Visit mail.yahoo.com and log in. 2. Click the 'New' button to compose a new email message. 3. If the BrowserPlus! plug-in is installed, a white rectangle will appear in the upper left of the window. If the plug-in isn't installed, click 'Attach' and you will be prompted to install it. Repeat steps 1-3. A large white rectangle is displayed in the top left of the screen, blocking important UI elements.
<rdar://problem/9152400>
I think the problem is that visibility:hidden doesn't hide plugins in WebKit2 on Windows.
Reduction: data:text/html,<embed style="visibility:hidden" src="http://www.flashexample.com/system/files/sites/flashexample.com/files/upload/clock.swf" type="application/x-shockwave-flash" width=300 height=300>
This bug occurs on both Mac and Windows.
Well, the symptom as described in the Title and Description only occur on Windows. But the reduction is buggy on both Mac and Windows.
Looks like the reduction is buggy in Mac WK1, as well.
I split out Mac into bug 60289.
I think we can probably port WebKit1's code to WebKit2 to fix this.
Created attachment 92598 [details] Show/hide windowed plugins according to the plugin element's visibility CSS property
Created attachment 92602 [details] Show/hide windowed plugins according to the plugin element's visibility CSS property
Comment on attachment 92602 [details] Show/hide windowed plugins according to the plugin element's visibility CSS property View in context: https://bugs.webkit.org/attachment.cgi?id=92602&action=review > Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:297 > +void NetscapePlugin::platformVisibilityDidChange() > +{ > + // FIXME: Implement this. <http://webkit.org/b/44368>. > + notImplemented(); > +} Do we really need this on Mac since there's no such thing as windowed plug-ins there? > Source/WebKit2/WebProcess/Plugins/PluginController.h:49 > + virtual bool isPluginVisible() = 0; This needs to be implemented in PluginControllerProxy or the ENABLE_PLUGIN_PROCESS build will break.
Comment on attachment 92602 [details] Show/hide windowed plugins according to the plugin element's visibility CSS property View in context: https://bugs.webkit.org/attachment.cgi?id=92602&action=review >> Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:297 >> +} > > Do we really need this on Mac since there's no such thing as windowed plug-ins there? Well, we need to fix bug 44368 somehow. I assumed this was the way to fix it. Maybe you can explain! >> Source/WebKit2/WebProcess/Plugins/PluginController.h:49 >> + virtual bool isPluginVisible() = 0; > > This needs to be implemented in PluginControllerProxy or the ENABLE_PLUGIN_PROCESS build will break. Will do!
(In reply to comment #12) > (From update of attachment 92602 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=92602&action=review > > >> Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:297 > >> +} > > > > Do we really need this on Mac since there's no such thing as windowed plug-ins there? > > Well, we need to fix bug 44368 somehow. I assumed this was the way to fix it. Maybe you can explain! > I think this may not be a problem with WebKit2 since we don't have NSViews backing plug-in views. Should be easy to test with your test case! > >> Source/WebKit2/WebProcess/Plugins/PluginController.h:49 > >> + virtual bool isPluginVisible() = 0; > > > > This needs to be implemented in PluginControllerProxy or the ENABLE_PLUGIN_PROCESS build will break. > > Will do! Thanks!
Comment on attachment 92602 [details] Show/hide windowed plugins according to the plugin element's visibility CSS property View in context: https://bugs.webkit.org/attachment.cgi?id=92602&action=review >>>> Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:297 >>>> +} >>> >>> Do we really need this on Mac since there's no such thing as windowed plug-ins there? >> >> Well, we need to fix bug 44368 somehow. I assumed this was the way to fix it. Maybe you can explain! > > I think this may not be a problem with WebKit2 since we don't have NSViews backing plug-in views. Should be easy to test with your test case! I did test in WebKit2, and the test fails. I guess I'll let you sort it out!
Comment on attachment 92602 [details] Show/hide windowed plugins according to the plugin element's visibility CSS property Attachment 92602 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/8615037
Committed r85961: <http://trac.webkit.org/changeset/85961>