WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
245221
[GTK] Lots of MPRIS D-Bus errors when running under flatpak
https://bugs.webkit.org/show_bug.cgi?id=245221
Summary
[GTK] Lots of MPRIS D-Bus errors when running under flatpak
Michael Catanzaro
Reported
2022-09-15 07:29:53 PDT
When closing Epiphany Tech Preview, I see a big number of errors: (WebKitWebProcess:2): GLib-GIO-WARNING **: 09:27:47.666: Error releasing name org.mpris.MediaPlayer2.org.gnome.Epiphany.Devel.instance-36: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown (WebKitWebProcess:2): GLib-GIO-WARNING **: 09:27:47.669: Error releasing name org.mpris.MediaPlayer2.org.gnome.Epiphany.Devel.instance-37: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown (WebKitWebProcess:2): GLib-GIO-WARNING **: 09:27:47.672: Error releasing name org.mpris.MediaPlayer2.org.gnome.Epiphany.Devel.instance-35: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown (WebKitWebProcess:2): GLib-GIO-WARNING **: 09:27:47.674: Error releasing name org.mpris.MediaPlayer2.org.gnome.Epiphany.Devel.instance-39: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown (WebKitWebProcess:2): GLib-GIO-WARNING **: 09:27:47.677: Error releasing name org.mpris.MediaPlayer2.org.gnome.Epiphany.Devel.instance-38: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown Is it possible that we've depended on some functionality that is not yet released?
Attachments
Add attachment
proposed patch, testcase, etc.
Philippe Normand
Comment 1
2022-09-24 02:50:08 PDT
(gdb) bt #0 0x00007f3f4879f30c in g_logv () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #1 0x00007f3f4879f5b3 in g_log () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f3f48a137f6 in g_bus_unown_name () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 #3 0x00007f3f4e976195 in WebCore::MediaSessionGLib::~MediaSessionGLib() () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #4 0x00007f3f4e97a606 in WTF::HashTable<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> > >::remove(WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >*) () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #5 0x00007f3f4e97801b in WebCore::MediaSessionManagerGLib::removeSession(WebCore::PlatformMediaSession&) () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #6 0x00007f3f4e4a12f6 in WebCore::HTMLMediaElement::stop() () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #7 0x00007f3f4e2cfd91 in WTF::Detail::CallableWrapper<WebCore::ScriptExecutionContext::stopActiveDOMObjects()::{lambda(auto:1&)#1}, WebCore::ScriptExecutionContext::ShouldContinue, WebCore::ActiveDOMObject&>::call(WebCore::ActiveDOMObject&) () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #8 0x00007f3f4e2d13c9 in WebCore::ScriptExecutionContext::forEachActiveDOMObject(WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)> const&) const () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #9 0x00007f3f4e2d15c2 in WebCore::ScriptExecutionContext::stopActiveDOMObjects() () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #10 0x00007f3f4e247d7c in WebCore::Document::commonTeardown() () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #11 0x00007f3f4e2486ba in WebCore::Document::willBeRemovedFromFrame() () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #12 0x00007f3f4e8222d0 in WebCore::Frame::setView(WTF::RefPtr<WebCore::FrameView, WTF::RawPtrTraits<WebCore::FrameView>, WTF::DefaultRefDerefTraits<WebCore::FrameView> >&&) () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #13 0x00007f3f4e7142e4 in WebCore::FrameLoader::detachFromParent() () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #14 0x00007f3f4d24223e in WebKit::WebPage::close() () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #15 0x00007f3f4d27befd in WebKit::WebProcess::stopRunLoop() () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #16 0x00007f3f4ce1d1ee in WTF::Detail::CallableWrapper<IPC::Connection::connectionDidClose()::{lambda()#1}, void>::call() () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #17 0x00007f3f4b9b90e5 in WTF::RunLoop::performWork() () at /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.1.so.0 #18 0x00007f3f4ba1938d in WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) () at /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.1.so.0 #19 0x00007f3f4ba19d4d in WTF::RunLoop::{lambda(_GSource*, int (*)(void*), void*)#1}::_FUN(_GSource*, int (*)(void*), void*) () at /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.1.so.0 #20 0x00007f3f487975f1 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #21 0x00007f3f48797b48 in g_main_context_iterate.constprop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #22 0x00007f3f48797e2f in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #23 0x00007f3f4ba19eb0 in WTF::RunLoop::run() () at /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.1.so.0 #24 0x00007f3f4d27e30f in int WebKit::AuxiliaryProcessMain<WebKit::WebProcessMainGtk>(int, char**) () at /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so.0 #25 0x00007f3f4c02954a in __libc_start_call_main () at /usr/lib/x86_64-linux-gnu/libc.so.6 #26 0x00007f3f4c02960b in __libc_start_main () at /usr/lib/x86_64-linux-gnu/libc.so.6 #27 0x0000558f74a7b095 in _start ()
Philippe Normand
Comment 2
2022-09-24 03:26:36 PDT
I can't reproduce this with MiniBrowser, with or without sandbox enabled. If I set `WEBKIT_FORCE_SANDBOX=0` in ephy I can't reproduce the issue either. So it seems something related with the sandbox?
Philippe Normand
Comment 3
2022-09-24 03:51:49 PDT
With debug symbols, (gdb) bt #0 g_logv (log_domain=0x7fac06603d17 "GLib-GIO", log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1424 #1 0x00007fac063515b3 in g_log (log_domain=log_domain@entry=0x7fac06603d17 "GLib-GIO", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0x7fac0663071e "Error releasing name %s: %s") at ../glib/gmessages.c:1462 #2 0x00007fac065c57f6 in g_bus_unown_name (owner_id=2) at ../gio/gdbusnameowning.c:958 #3 0x00007fac0c576195 in WebCore::MediaSessionGLib::~MediaSessionGLib() (this=0x7fa95e2d0300, __in_chrg=<optimized out>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebCore/platform/audio/glib/MediaSessionGLib.cpp:214 #4 0x00007fac0c57a606 in std::default_delete<WebCore::MediaSessionGLib>::operator()(WebCore::MediaSessionGLib*) const (this=<optimized out>, __ptr=0x7fa95e2d0300) at /usr/include/c++/12.1.0/bits/unique_ptr.h:95 #5 std::default_delete<WebCore::MediaSessionGLib>::operator()(WebCore::MediaSessionGLib*) const (__ptr=0x7fa95e2d0300, this=<optimized out>) at /usr/include/c++/12.1.0/bits/unique_ptr.h:89 #6 std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >::~unique_ptr() (this=<optimized out>, __in_chrg=<optimized out>) at /usr/include/c++/12.1.0/bits/unique_ptr.h:396 #7 WTF::KeyValuePairHashTraits<WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >::customDeleteBucket(WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >&) (value=<optimized out>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/HashTraits.h:396 #8 WTF::hashTraitsDeleteBucket<WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >(WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >&) (value=<optimized out>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/HashTraits.h:314 #9 WTF::HashTable<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> > >::deleteBucket(WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >&) (bucket=<optimized out>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/HashTable.h:571 #10 WTF::HashTable<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> > >::remove(WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >*) (this=this@entry=0x7fabfa8af2e0, pos=<optimized out>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/HashTable.h:1081 #11 0x00007fac0c57801b in WTF::HashTable<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> > >::removeAndInvalidateWithoutEntryConsistencyCheck(WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >*) (pos=<optimized out>, this=0x7fabfa8af2e0) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/HashTable.h:1057 #12 WTF::HashTable<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> > >::removeWithoutEntryConsistencyCheck(WTF::HashTableIterator<WTF::HashTable<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> > >, WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> > >) (it=..., this=<optimized out>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/HashTable.h:1106 #13 WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::remove(WTF::HashTableIteratorAdapter<WTF::HashTable<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> > >, WTF::KeyValuePair<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > > >) (it=..., this=0x7fabfa8af2e0) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/HashMap.h:476 #14 WTF::HashMap<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType>, std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> >, WTF::DefaultHash<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> >, WTF::HashTraits<std::unique_ptr<WebCore::MediaSessionGLib, std::default_delete<WebCore::MediaSessionGLib> > >, WTF::HashTableTraits>::remove(WTF::ObjectIdentifier<WebCore::MediaSessionIdentifierType> const&) (key=..., this=0x7fabfa8af2e0) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/HashMap.h:490 #15 WebCore::MediaSessionManagerGLib::removeSession(WebCore::PlatformMediaSession&) (this=0x7fabfa8af240, session=<optimized out>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebCore/platform/audio/glib/MediaSessionManagerGLib.cpp:187 #16 0x00007fac0c0a12f6 in WebCore::HTMLMediaElement::stop() (this=0x7fa99e066a50) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebCore/html/HTMLMediaElement.cpp:6012 #17 0x00007fac0becfd91 in operator()<WebCore::ActiveDOMObject> (activeDOMObject=<optimized out>, __closure=<optimized out>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebCore/dom/ScriptExecutionContext.cpp:341 #18 WTF::Detail::CallableWrapper<WebCore::ScriptExecutionContext::stopActiveDOMObjects()::<lambda(auto:119&)>, WebCore::ScriptExecutionContext::ShouldContinue, WebCore::ActiveDOMObject&>::call(WebCore::ActiveDOMObject &) (this=<optimized out>, in#0=<optimized out>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/Function.h:53 #19 0x00007fac0bed13c9 in WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)>::operator()(WebCore::ActiveDOMObject&) const (in#0=<optimized out>, this=0x7ffe26e230a0) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/Function.h:82 #20 WebCore::ScriptExecutionContext::forEachActiveDOMObject(WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)> const&) const (this=0x7fabaa100cb0, apply=...) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebCore/dom/ScriptExecutionContext.cpp:275 #21 0x00007fac0bed15c2 in WebCore::ScriptExecutionContext::stopActiveDOMObjects() (this=0x7fabaa100cb0) at /usr/include/c++/12.1.0/bits/unique_ptr.h:189 #22 WebCore::ScriptExecutionContext::stopActiveDOMObjects() (this=0x7fabaa100cb0) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebCore/dom/ScriptExecutionContext.cpp:332 #23 0x00007fac0be47d7c in WebCore::Document::commonTeardown() (this=0x7fabaa100c00) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebCore/dom/Document.cpp:812 #24 0x00007fac0be486ba in WebCore::Document::willBeRemovedFromFrame() (this=0x7fabaa100c00) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebCore/dom/Document.cpp:2700 #25 0x00007fac0c4222d0 in WebCore::Frame::setView(WTF::RefPtr<WebCore::FrameView, WTF::RawPtrTraits<WebCore::FrameView>, WTF::DefaultRefDerefTraits<WebCore::FrameView> >&&) (this=0x7fabfa0a9000, view=...) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebCore/page/Frame.cpp:259 #26 0x00007fac0c3142e4 in WebCore::FrameLoader::detachFromParent() (this=0x7fabfa0f41a0) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/WTF/Headers/wtf/RefPtr.h:61 #27 0x00007fac0ae4223e in WebKit::WebPage::close() (this=0x7fabfa0f00c0) at /usr/include/c++/12.1.0/bits/unique_ptr.h:445 #28 0x00007fac0a87eaab in IPC::callMemberFunction<WebKit::WebPage, void (WebKit::WebPage::*)(), std::tuple<>, std::integer_sequence<unsigned long> >(std::tuple<>&&, WebKit::WebPage*, void (WebKit::WebPage::*)()) (function=<optimized out>, object=0x7fabfa0f00c0, args=<synthetic pointer>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebKit/Platform/IPC/HandleMessage.h:137 #29 IPC::handleMessage<Messages::WebPage::Close, WebKit::WebPage, void (WebKit::WebPage::*)()>(IPC::Connection&, IPC::Decoder&, WebKit::WebPage*, void (WebKit::WebPage::*)()) (function=<optimized out>, object=0x7fabfa0f00c0, decoder=..., connection=<optimized out>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebKit/Platform/IPC/HandleMessage.h:259 #30 WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&, IPC::Decoder&) (this=0x7fabfa0f00c0, connection=<optimized out>, decoder=...) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/_builddir/DerivedSources/WebKit/WebPageMessageReceiver.cpp:3009 #31 0x00007fac0aa26379 in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) (this=this@entry=0x7fabfa030248, connection=..., decoder=...) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp:129 #32 0x00007fac0acb60b3 in WebKit::WebProcess::didReceiveMessage(IPC::Connection&, IPC::Decoder&) (this=0x7fabfa030220, connection=..., decoder=...) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebKit/WebProcess/WebProcess.cpp:912 #33 0x00007fac0aa1f115 in IPC::Connection::dispatchMessage(std::unique_ptr<IPC::Decoder, std::default_delete<IPC::Decoder> >) (this=0x7fabfa0501a0, message=std::unique_ptr<IPC::Decoder> = {...}) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebKit/Platform/IPC/Connection.cpp:1150 #34 0x00007fac0aa209da in IPC::Connection::dispatchOneIncomingMessage() (this=0x7fabfa0501a0) at /usr/include/c++/12.1.0/bits/unique_ptr.h:189 #35 0x00007fac095b90e5 in WTF::Function<void ()>::operator()() const (this=<synthetic pointer>) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WTF/wtf/Function.h:79 #36 WTF::RunLoop::performWork() (this=0x7fabfa0100e0) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WTF/wtf/RunLoop.cpp:133 #37 0x00007fac0961938d in operator() (userData=<optimized out>, __closure=0x0) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:80 #38 _FUN(gpointer) () at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:82 #39 0x00007fac09619d4d in operator() (__closure=0x0, userData=0x7fabfa0100e0, callback=0x7fac09619380 <_FUN(gpointer)>, source=0x558a178663b0) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:53 #40 _FUN(GSource*, GSourceFunc, gpointer) () at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:56 #41 0x00007fac063495f1 in g_main_dispatch (context=<optimized out>) at ../glib/gmain.c:3444 #42 g_main_context_dispatch (context=<optimized out>) at ../glib/gmain.c:4162 #43 0x00007fac06349b48 in g_main_context_iterate (context=0x558a17741dd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4238 #44 0x00007fac06349e2f in g_main_loop_run (loop=0x558a177de1d0) at ../glib/gmain.c:4438 #45 0x00007fac09619eb0 in WTF::RunLoop::run() () at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:108 #46 0x00007fac0ae7e30f in WebKit::AuxiliaryProcessMainBase<WebKit::WebProcess, true>::run(int, char**) (argc=3, argv=0x7ffe26e23ac8, this=0x7ffe26e23930) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebKit/Shared/AuxiliaryProcessMain.h:71 #47 WebKit::AuxiliaryProcessMainBase<WebKit::WebProcess, true>::run(int, char**) (argv=0x7ffe26e23ac8, argc=3, this=0x7ffe26e23930) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebKit/Shared/AuxiliaryProcessMain.h:58 #48 WebKit::AuxiliaryProcessMain<WebKit::WebProcessMainGtk>(int, char**) (argc=3, argv=0x7ffe26e23ac8) at /usr/lib/debug/source/sdk/webkit2gtk-4.1.bst/Source/WebKit/Shared/AuxiliaryProcessMain.h:97 #49 0x00007fac09c2954a in __libc_start_call_main (main=main@entry=0x558a167b7060 <main>, argc=argc@entry=3, argv=argv@entry=0x7ffe26e23ac8) at ../sysdeps/nptl/libc_start_call_main.h:58 #50 0x00007fac09c2960b in __libc_start_main_impl (main=0x558a167b7060 <main>, argc=3, argv=0x7ffe26e23ac8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=<optimized out>) at ../csu/libc-start.c:389 #51 0x0000558a167b7095 in _start ()
Michael Catanzaro
Comment 4
2022-11-09 07:26:13 PST
Related:
https://gitlab.gnome.org/GNOME/epiphany/-/issues/1902
Michael Catanzaro
Comment 5
2022-11-09 07:41:15 PST
So looking at
https://github.com/flatpak/flatpak/commit/6540f85511739028c0f8eb496ae64dcc73d40a28
, the bus name that WebKit must use is `org.mpris.MediaPlayer2.org.gnome.Epiphany.Devel.Sandboxed.*` but the bus names here follow the pattern is `org.mpris.MediaPlayer2.org.gnome.Epiphany.Devel.instance-n`, with `n` increasing. The problem is the `.Sandboxed` is missing from the address used by MediaSessionGLib. That's a WebKit bug: MediaSessionGLib doesn't know about .Sandboxed. It's a little unfortunate that we have to use a different bus address depending on whether the sandbox is enabled or not, but oh well. History: looks like Patrick almost fixed MPRIS in
bug #241807
, but then sabotaged himself by introducing the requirement to use .Sandboxed in the flatpak patch that was supposed to fix the flatpak side of then, then forgetting to update WebKit side for that. Alas. :D
Michael Catanzaro
Comment 6
2022-11-09 08:39:54 PST
So to decide whether or not to use the .Sandboxed name, there's not a lot that we can look at other than /.flatpak-info, but that will be created even within the bubblewrap sandbox, not just for real flatpak. Hi Patrick, is it OK to use the .Sandboxed address even within the bubblewrap sandbox? It's not specific to flatpak alone?
Patrick Griffis
Comment 7
2022-11-09 12:36:56 PST
(In reply to Michael Catanzaro from
comment #6
)
> So to decide whether or not to use the .Sandboxed name, there's not a lot > that we can look at other than /.flatpak-info, but that will be created even > within the bubblewrap sandbox, not just for real flatpak. Hi Patrick, is it > OK to use the .Sandboxed address even within the bubblewrap sandbox? It's > not specific to flatpak alone?
Yes we should just always use the `.Sandboxed` name. I just forgot to get around to a patch for it.
Michael Catanzaro
Comment 8
2022-11-09 14:05:46 PST
Wait, is it OK to use the .Sandboxed name even when we are not sandboxed? Probably not, right?
Patrick Griffis
Comment 9
2022-11-13 15:08:00 PST
Pull request:
https://github.com/WebKit/WebKit/pull/6449
Patrick Griffis
Comment 10
2022-11-13 15:09:48 PST
(In reply to Michael Catanzaro from
comment #8
)
> Wait, is it OK to use the .Sandboxed name even when we are not sandboxed? > Probably not, right?
The purpose of the subname is that sandboxed process cannot impersonate host services. I don't think there is risk in a host process using the name.
EWS
Comment 11
2022-11-14 08:26:59 PST
Committed
256654@main
(c319637f7e9c): <
https://commits.webkit.org/256654@main
> Reviewed commits have been landed. Closing PR #6449 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug