Changeset 233571 in webkit
- Timestamp:
- Jul 6, 2018 12:37:50 AM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r233563 r233571 1 2018-07-05 Ryosuke Niwa <rniwa@webkit.org> 2 3 REGRESSION(r233496): macOS Sierra hits debug assertions in TrackListBase::suspend 4 https://bugs.webkit.org/show_bug.cgi?id=187378 5 <rdar://problem/41878885> 6 7 Reviewed by Eric Carlson. 8 9 These assertions were wrong since inline debugger, alert, etc... can suspend active DOM objects without 10 calling canSuspendForDocumentSuspension. Fixed the bug by removing the assertion and instead suspending 11 and resuming the generic event queue. 12 13 * Modules/mediasource/MediaSource.cpp: 14 (WebCore::MediaSource::suspend): 15 (WebCore::MediaSource::resume): 16 * Modules/mediasource/SourceBuffer.cpp: 17 (WebCore::SourceBuffer::suspend): 18 (WebCore::SourceBuffer::resume): 19 * Modules/mediasource/SourceBufferList.cpp: 20 (WebCore::SourceBufferList::suspend): 21 (WebCore::SourceBufferList::resume): 22 * html/track/TrackListBase.cpp: 23 (WebCore::TrackListBase::suspend): 24 (WebCore::TrackListBase::resume): 25 1 26 2018-07-05 Youenn Fablet <youenn@apple.com> 2 27 -
trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp
r233496 r233571 936 936 } 937 937 938 void MediaSource::suspend(ReasonForSuspension) 939 { 940 ASSERT(!m_asyncEventQueue.hasPendingEvents()); 938 void MediaSource::suspend(ReasonForSuspension reason) 939 { 940 switch (reason) { 941 case ReasonForSuspension::PageCache: 942 case ReasonForSuspension::PageWillBeSuspended: 943 m_asyncEventQueue.suspend(); 944 break; 945 case ReasonForSuspension::JavaScriptDebuggerPaused: 946 case ReasonForSuspension::WillDeferLoading: 947 // Do nothing, we don't pause media playback in these cases. 948 break; 949 } 941 950 } 942 951 943 952 void MediaSource::resume() 944 953 { 945 ASSERT(!m_asyncEventQueue.hasPendingEvents());954 m_asyncEventQueue.resume(); 946 955 } 947 956 -
trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp
r233496 r233571 459 459 } 460 460 461 void SourceBuffer::suspend(ReasonForSuspension) 462 { 463 ASSERT(!hasPendingActivity()); 461 void SourceBuffer::suspend(ReasonForSuspension reason) 462 { 463 switch (reason) { 464 case ReasonForSuspension::PageCache: 465 case ReasonForSuspension::PageWillBeSuspended: 466 m_asyncEventQueue.suspend(); 467 break; 468 case ReasonForSuspension::JavaScriptDebuggerPaused: 469 case ReasonForSuspension::WillDeferLoading: 470 // Do nothing, we don't pause media playback in these cases. 471 break; 472 } 464 473 } 465 474 466 475 void SourceBuffer::resume() 467 476 { 468 ASSERT(!hasPendingActivity());477 m_asyncEventQueue.resume(); 469 478 } 470 479 -
trunk/Source/WebCore/Modules/mediasource/SourceBufferList.cpp
r233496 r233571 104 104 } 105 105 106 void SourceBufferList::suspend(ReasonForSuspension )106 void SourceBufferList::suspend(ReasonForSuspension reason) 107 107 { 108 ASSERT(!m_asyncEventQueue.hasPendingEvents()); 108 switch (reason) { 109 case ReasonForSuspension::PageCache: 110 case ReasonForSuspension::PageWillBeSuspended: 111 m_asyncEventQueue.suspend(); 112 break; 113 case ReasonForSuspension::JavaScriptDebuggerPaused: 114 case ReasonForSuspension::WillDeferLoading: 115 // Do nothing, we don't pause media playback in these cases. 116 break; 117 } 109 118 } 110 119 111 120 void SourceBufferList::resume() 112 121 { 113 ASSERT(!m_asyncEventQueue.hasPendingEvents());122 m_asyncEventQueue.resume(); 114 123 } 115 124 -
trunk/Source/WebCore/html/track/TrackListBase.cpp
r233496 r233571 181 181 } 182 182 183 void TrackListBase::suspend(ReasonForSuspension) 184 { 185 ASSERT(!m_asyncEventQueue.hasPendingEvents()); 183 void TrackListBase::suspend(ReasonForSuspension reason) 184 { 185 switch (reason) { 186 case ReasonForSuspension::PageCache: 187 case ReasonForSuspension::PageWillBeSuspended: 188 m_asyncEventQueue.suspend(); 189 break; 190 case ReasonForSuspension::JavaScriptDebuggerPaused: 191 case ReasonForSuspension::WillDeferLoading: 192 // Do nothing, we don't pause media playback in these cases. 193 break; 194 } 186 195 } 187 196 188 197 void TrackListBase::resume() 189 198 { 190 ASSERT(!m_asyncEventQueue.hasPendingEvents());199 m_asyncEventQueue.resume(); 191 200 } 192 201
Note: See TracChangeset
for help on using the changeset viewer.