Removing a plug-in element from a page opened in a background tab in Safari crashes In Safari background-tab opened plug-ins aren't initialized until the tab is brought to the foreground. When such a page removes a plug-in element, we crash: #0 0x0000000101a1587c in WTF::RefPtr<CoreIPC::Connection>::get at /Volumes/SSD-Data/ZinUser/build/Debug/usr/local/include/wtf/RefPtr.h:58 #1 0x0000000101b18f4c in WebKit::PluginProcessConnection::connection at /Volumes/SSD-Data/git/OpenSource/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h:54 #2 0x0000000101b2ccdd in WebKit::PluginProxy::destroy at /Volumes/SSD-Data/git/OpenSource/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp:202 #3 0x0000000101b012aa in WebKit::Plugin::destroyPlugin() () #4 0x0000000101b37c24 in WebKit::PluginView::~PluginView() () In this case the PluginProxy has a null m_connection. A simple null check should suffice. In radar as <rdar://problem/12057991>
Created attachment 158157 [details] Patch v1 - Fix + regression test
Hmmmm I see there's a GTK failure already... ./.libs/libWebCoreInternals.a(./.libs/../Source/WebCore/testing/.libs/libWebCoreInternals_la-InternalSettings.o):InternalSettings.cpp:function WebCore::InternalSettings::Backup::restoreTo(WebCore::Page*, WebCore::Settings*): error: undefined reference to 'WebCore::Page::setCanStartMedia(bool)' ./.libs/libWebCoreInternals.a(./.libs/../Source/WebCore/testing/.libs/libWebCoreInternals_la-InternalSettings.o):InternalSettings.cpp:function WebCore::InternalSettings::setCanStartMedia(bool, int&): error: undefined reference to 'WebCore::Page::setCanStartMedia(bool)' collect2: error: ld returned 1 exit status As far as I can tell Page::setCanStartMedia() is defined in all ports. Dunno what this is about yet.
Comment on attachment 158157 [details] Patch v1 - Fix + regression test Attachment 158157 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/13486729
(In reply to comment #2) > As far as I can tell Page::setCanStartMedia() is defined in all ports. Dunno what this is about yet. The Windows error makes me wonder if it's not something to do with exports or something?
(In reply to comment #4) > (In reply to comment #2) > > As far as I can tell Page::setCanStartMedia() is defined in all ports. Dunno what this is about yet. > > The Windows error makes me wonder if it's not something to do with exports or something? Indeed the win and gtk failures are uncannily the same error... I was under the (perhaps quite mistaken) impression that Mac was the only platform with explicit symbol exporting (WebCore.exp.in). Grumble!
Created attachment 158578 [details] Patch v2 - Shot at fixing GTK
Comment on attachment 158578 [details] Patch v2 - Shot at fixing GTK Attachment 158578 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/13516028
(In reply to comment #7) > (From update of attachment 158578 [details]) > Attachment 158578 [details] did not pass win-ews (win): > Output: http://queues.webkit.org/results/13516028 I think I have a response to the Win failure (WebKit2.def for exports) but will let the gtk ews play out on patch v2 first.
Created attachment 158593 [details] Patch v3 - All the right exports in all the right places
Will land after win ews confirms it builds.
http://trac.webkit.org/changeset/125695