Changeset 233982 in webkit
- Timestamp:
- Jul 19, 2018 6:38:16 AM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r233981 r233982 1 2018-07-19 Antoine Quint <graouts@apple.com> 2 3 Hitting RELEASE_ASSERT(!m_activeDOMObjectAdditionForbidden) under HTMLMediaElement::resume() 4 https://bugs.webkit.org/show_bug.cgi?id=187793 5 <rdar://problem/42308469> 6 7 Reviewed by Chris Dumez. 8 9 Ensure we do not call JS under resume(), which would happen as a result of calling configureMediaControls() in prepareForLoad(). 10 11 * html/HTMLMediaElement.cpp: 12 (WebCore::HTMLMediaElement::~HTMLMediaElement): 13 (WebCore::HTMLMediaElement::contextDestroyed): 14 (WebCore::HTMLMediaElement::stop): 15 (WebCore::HTMLMediaElement::suspend): 16 (WebCore::HTMLMediaElement::resume): 17 * html/HTMLMediaElement.h: 18 1 19 2018-07-19 Philippe Normand <pnormand@igalia.com> 2 20 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r233926 r233982 679 679 680 680 m_seekTaskQueue.close(); 681 m_resumeTaskQueue.close(); 681 682 m_promiseTaskQueue.close(); 682 683 m_pauseAfterDetachedTaskQueue.close(); … … 5584 5585 { 5585 5586 m_seekTaskQueue.close(); 5587 m_resumeTaskQueue.close(); 5586 5588 m_shadowDOMTaskQueue.close(); 5587 5589 m_promiseTaskQueue.close(); … … 5606 5608 m_promiseTaskQueue.close(); 5607 5609 m_resourceSelectionTaskQueue.close(); 5610 m_resumeTaskQueue.cancelAllTasks(); 5608 5611 5609 5612 // Once an active DOM object has been stopped it can not be restarted, so we can deallocate … … 5620 5623 INFO_LOG(LOGIDENTIFIER); 5621 5624 Ref<HTMLMediaElement> protectedThis(*this); 5625 5626 m_resumeTaskQueue.cancelAllTasks(); 5622 5627 5623 5628 switch (reason) { … … 5663 5668 m_mediaSession->removeBehaviorRestriction(MediaElementSession::RequirePageConsentToResumeMedia); 5664 5669 5665 if (m_error && m_error->code() == MediaError::MEDIA_ERR_ABORTED ) {5670 if (m_error && m_error->code() == MediaError::MEDIA_ERR_ABORTED && !m_resumeTaskQueue.hasPendingTasks()) { 5666 5671 // Restart the load if it was aborted in the middle by moving the document to the page cache. 5667 5672 // m_error is only left at MEDIA_ERR_ABORTED when the document becomes inactive (it is set to … … 5669 5674 // This behavior is not specified but it seems like a sensible thing to do. 5670 5675 // As it is not safe to immedately start loading now, let's schedule a load. 5671 prepareForLoad();5676 m_resumeTaskQueue.enqueueTask(std::bind(&HTMLMediaElement::prepareForLoad, this)); 5672 5677 } 5673 5678 -
trunk/Source/WebCore/html/HTMLMediaElement.h
r233596 r233982 930 930 Timer m_playbackControlsManagerBehaviorRestrictionsTimer; 931 931 Timer m_seekToPlaybackPositionEndedTimer; 932 GenericTaskQueue<Timer> m_resumeTaskQueue; 932 933 GenericTaskQueue<Timer> m_seekTaskQueue; 933 934 GenericTaskQueue<Timer> m_shadowDOMTaskQueue;
Note: See TracChangeset
for help on using the changeset viewer.