Changeset 285802 in webkit
- Timestamp:
- Nov 15, 2021, 4:57:16 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/platform/gtk/TestExpectations (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/platform/audio/glib/MediaSessionGLib.cpp (modified) (1 diff)
-
Source/WebCore/platform/audio/glib/MediaSessionGLib.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r285801 r285802 1 2021-11-15 Enrique Ocaña González <eocanha@igalia.com> 2 3 [GTK] webaudio/silent-audio-interrupted-in-background.html is a flaky timeout 4 https://bugs.webkit.org/show_bug.cgi?id=229964 5 6 Reviewed by Carlos Garcia Campos. 7 8 Removed failing test from TestExpectations. 9 10 * platform/gtk/TestExpectations: 11 1 12 2021-11-15 Antti Koivisto <antti@apple.com> 2 13 -
trunk/LayoutTests/platform/gtk/TestExpectations
r285708 r285802 1248 1248 webkit.org/b/229268 media/media-fragments/TC0009.html [ Failure Pass ] 1249 1249 webkit.org/b/229268 media/media-fragments/TC0014.html [ Failure Pass ] 1250 1251 webkit.org/b/229964 webaudio/silent-audio-interrupted-in-background.html [ Pass Timeout ]1252 1250 1253 1251 # Flaky on skip-failing-test bot (EWS) -
trunk/Source/WebCore/ChangeLog
r285801 r285802 1 2021-11-15 Enrique Ocaña González <eocanha@igalia.com> 2 3 [GTK] webaudio/silent-audio-interrupted-in-background.html is a flaky timeout 4 https://bugs.webkit.org/show_bug.cgi?id=229964 5 6 Reviewed by Carlos Garcia Campos. 7 8 I can't reproduce the timeout locally anymore, but I'm getting a crash sometimes. This fix is for the crash. 9 Unregister dbus objects on MediaSessionGLib destruction to prevent the dbus connection to keep processing requests. 10 11 * platform/audio/glib/MediaSessionGLib.cpp: 12 (WebCore::MediaSessionGLib::MediaSessionGLib()): Don't register a GBusNameLostCallback, as unregistration is now going to be handled in the destructor. 13 (WebCore::MediaSessionGLib::~MediaSessionGLib()): Unregister dbus objects. 14 (WebCore::MediaSessionGLib::nameLost()): Refactored into the destructor. 15 * platform/audio/glib/MediaSessionGLib.h: 16 (WebCore::MediaSessionGLib::nameLost()): Deleted. 17 1 18 2021-11-15 Antti Koivisto <antti@apple.com> 2 19 -
trunk/Source/WebCore/platform/audio/glib/MediaSessionGLib.cpp
r283437 r285802 219 219 m_instanceId = applicationID.isEmpty() ? makeString("org.mpris.MediaPlayer2.webkit.instance", getpid(), "-", identifier.toUInt64()) : makeString("org.mpris.MediaPlayer2.", applicationID.ascii().data(), "-", identifier.toUInt64()); 220 220 221 m_ownerId = g_bus_own_name_on_connection(m_connection.get(), m_instanceId.ascii().data(), G_BUS_NAME_OWNER_FLAGS_NONE, nullptr, 222 reinterpret_cast<GBusNameLostCallback>(+[](GDBusConnection* connection, const char*, gpointer userData) { 223 auto& session = *reinterpret_cast<MediaSessionGLib*>(userData); 224 session.nameLost(connection); 225 }), this, nullptr); 221 m_ownerId = g_bus_own_name_on_connection(m_connection.get(), m_instanceId.ascii().data(), G_BUS_NAME_OWNER_FLAGS_NONE, nullptr, nullptr, this, nullptr); 226 222 } 227 223 228 224 MediaSessionGLib::~MediaSessionGLib() 229 225 { 226 if (m_connection) { 227 if (m_rootRegistrationId && !g_dbus_connection_unregister_object(m_connection.get(), m_rootRegistrationId)) 228 g_warning("Unable to unregister MPRIS D-Bus object."); 229 if (m_playerRegistrationId && !g_dbus_connection_unregister_object(m_connection.get(), m_playerRegistrationId)) 230 g_warning("Unable to unregister MPRIS D-Bus player object."); 231 } 230 232 if (m_ownerId) 231 233 g_bus_unown_name(m_ownerId); 232 }233 234 void MediaSessionGLib::nameLost(GDBusConnection* connection)235 {236 if (UNLIKELY(!m_connection)) {237 g_warning("Unable to acquire MPRIS D-Bus session ownership for name %s", m_instanceId.ascii().data());238 return;239 }240 241 m_connection = nullptr;242 if (!m_rootRegistrationId)243 return;244 245 if (g_dbus_connection_unregister_object(connection, m_rootRegistrationId))246 m_rootRegistrationId = 0;247 else248 g_warning("Unable to unregister MPRIS D-Bus object.");249 250 if (!m_playerRegistrationId)251 return;252 253 if (g_dbus_connection_unregister_object(connection, m_playerRegistrationId))254 m_playerRegistrationId = 0;255 else256 g_warning("Unable to unregister MPRIS D-Bus player object.");257 234 } 258 235 -
trunk/Source/WebCore/platform/audio/glib/MediaSessionGLib.h
r283437 r285802 45 45 GVariant* canSeekAsGVariant(); 46 46 47 void nameLost(GDBusConnection*);48 47 void emitPositionChanged(double time); 49 48 void updateNowPlaying(NowPlayingInfo&);
Note:
See TracChangeset
for help on using the changeset viewer.