Changeset 260529 in webkit
- Timestamp:
- Apr 22, 2020 12:38:00 PM (4 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r260528 r260529 1 2020-04-22 Eric Carlson <eric.carlson@apple.com> 2 3 fast/events/event-handler-detached-document-dispatchEvent.html is crashing 4 https://bugs.webkit.org/show_bug.cgi?id=210859 5 <rdar://problem/62072269> 6 7 Reviewed by Jer Noble. 8 9 A media session may not have a Page when it is created, so register with the MediaUsageManager 10 in inActiveDocumentChanged if necessary. 11 12 No new tests, fixes an existing test. 13 14 * html/MediaElementSession.cpp: 15 (WebCore::MediaElementSession::MediaElementSession): 16 (WebCore::MediaElementSession::~MediaElementSession): 17 (WebCore::MediaElementSession::addedMediaUsageManagerSessionIfNecessary): 18 (WebCore::MediaElementSession::inActiveDocumentChanged): 19 (WebCore::MediaElementSession::updateMediaUsageIfChanged): 20 * html/MediaElementSession.h: 21 1 22 2020-04-22 Antti Koivisto <antti@apple.com> 2 23 -
trunk/Source/WebCore/html/MediaElementSession.cpp
r260217 r260529 121 121 #endif 122 122 { 123 addedMediaUsageManagerSessionIfNecessary(); 124 } 125 126 MediaElementSession::~MediaElementSession() 127 { 123 128 #if ENABLE(MEDIA_USAGE) 124 if (auto page = m_element.document().page()) 125 page->chrome().client().addMediaUsageManagerSession(mediaSessionIdentifier(), m_element.sourceApplicationIdentifier(), m_element.document().url()); 126 #endif 127 } 128 129 MediaElementSession::~MediaElementSession() 129 auto page = m_element.document().page(); 130 if (page && m_haveAddedMediaUsageManagerSession) 131 page->chrome().client().removeMediaUsageManagerSession(mediaSessionIdentifier()); 132 #endif 133 } 134 135 void MediaElementSession::addedMediaUsageManagerSessionIfNecessary() 130 136 { 131 137 #if ENABLE(MEDIA_USAGE) 132 if (auto page = m_element.document().page()) 133 page->chrome().client().removeMediaUsageManagerSession(mediaSessionIdentifier()); 138 if (m_haveAddedMediaUsageManagerSession) 139 return; 140 141 auto page = m_element.document().page(); 142 if (!page) 143 return; 144 145 m_haveAddedMediaUsageManagerSession = true; 146 page->chrome().client().addMediaUsageManagerSession(mediaSessionIdentifier(), m_element.sourceApplicationIdentifier(), m_element.document().url()); 134 147 #endif 135 148 } … … 201 214 m_elementIsHiddenBecauseItWasRemovedFromDOM = !m_element.inActiveDocument(); 202 215 scheduleClientDataBufferingCheck(); 216 addedMediaUsageManagerSessionIfNecessary(); 203 217 } 204 218 … … 1069 1083 1070 1084 #if ENABLE(MEDIA_USAGE) 1085 ASSERT(m_haveAddedMediaUsageManagerSession); 1071 1086 page->chrome().client().updateMediaUsageManagerSessionState(mediaSessionIdentifier(), *m_mediaUsageInfo); 1072 1087 #endif -
trunk/Source/WebCore/html/MediaElementSession.h
r260182 r260529 190 190 void updateClientDataBuffering(); 191 191 192 void addedMediaUsageManagerSessionIfNecessary(); 193 192 194 HTMLMediaElement& m_element; 193 195 BehaviorRestrictions m_restrictions; … … 216 218 #if !RELEASE_LOG_DISABLED 217 219 const void* m_logIdentifier; 220 #endif 221 222 #if ENABLE(MEDIA_USAGE) 223 bool m_haveAddedMediaUsageManagerSession { false }; 218 224 #endif 219 225 };
Note: See TracChangeset
for help on using the changeset viewer.