[Webkit-unassigned] [Bug 116020] [GTK][WK2] Java applets remain visible even if you navigate to a different page

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue May 14 07:20:46 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=116020





--- Comment #4 from Zan Dobersek <zandobersek at gmail.com>  2013-05-14 07:19:12 PST ---
The HTMLPlugInElement not being detached is due to the page cache enabled when using the MiniBrowser. Specifically, the whole DOM document is not detached & destroyed  (initiaded at [1]) if the page cache is in use. As proof, with the page cache disabled, the Java applet renderer is properly destroyed when navigating away from the test page.

Still, even with the page cache enabled, the plugin renderer should be removed.
When the FrameView is being replaced in Frame::createView (which happens when navigating to another location), the current FrameView's parent is set to not visible[2]. The FrameView inherits from the ScrollView, meaning that ScrollView::setParentVisible[3] is called. That method calls the same method on every child widget, which, on the test page, is also the WebKit2 PluginView[4], the Widget-implementing object that controls the plugin. The PluginView doesn't doesn't implement the setParentVisible function, but when added, it does get called with the 'visible' argument being false. Still, that has no effect on hiding the widget when navigating away (which of course doesn't happen when it should).

[1] http://trac.webkit.org/browser/trunk/Source/WebCore/page/Frame.cpp#L262
[2] http://trac.webkit.org/browser/trunk/Source/WebCore/page/Frame.cpp#L772
[3] http://trac.webkit.org/browser/trunk/Source/WebCore/platform/ScrollView.cpp#L1249
[4] http://trac.webkit.org/browser/trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list