Changeset 204073 in webkit
- Timestamp:
- Aug 2, 2016, 11:16:15 PM (10 years ago)
- Location:
- branches/safari-602-branch
- Files:
-
- 2 added
- 8 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/media/range-extract-contents-crash-expected.txt (added)
-
LayoutTests/media/range-extract-contents-crash.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/html/HTMLMediaElement.cpp (modified) (1 diff)
-
Source/WebCore/html/track/AudioTrack.cpp (modified) (1 diff)
-
Source/WebCore/html/track/TextTrackList.cpp (modified) (1 diff)
-
Source/WebCore/html/track/TextTrackList.h (modified) (1 diff)
-
Source/WebCore/html/track/TrackListBase.cpp (modified) (1 diff)
-
Source/WebCore/html/track/TrackListBase.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-602-branch/LayoutTests/ChangeLog
r204072 r204073 1 2016-08-02 Babak Shafiei <bshafiei@apple.com> 2 3 Merge r204050. rdar://problem/27313234 4 5 2016-08-02 Eric Carlson <eric.carlson@apple.com> 6 7 Cleanup HTMLMediaElement track lists. 8 https://bugs.webkit.org/show_bug.cgi?id=160470 9 10 Reviewed by David Kilzer. 11 12 * media/range-extract-contents-crash-expected.txt: Added. 13 * media/range-extract-contents-crash.html: Added. 14 1 15 2016-08-02 Babak Shafiei <bshafiei@apple.com> 2 16 -
branches/safari-602-branch/Source/WebCore/ChangeLog
r204072 r204073 1 2016-08-02 Babak Shafiei <bshafiei@apple.com> 2 3 Merge r204050. rdar://problem/27313234 4 5 2016-08-02 Eric Carlson <eric.carlson@apple.com> 6 7 Cleanup HTMLMediaElement track lists. 8 https://bugs.webkit.org/show_bug.cgi?id=160470 9 10 Reviewed by David Kilzer. 11 12 Test: media/range-extract-contents-crash.html 13 14 * html/HTMLMediaElement.cpp: 15 (WebCore::HTMLMediaElement::~HTMLMediaElement): 16 17 * html/track/AudioTrack.cpp: 18 (WebCore::AudioTrack::willRemove): ASSERT if media element is NULL. 19 20 * html/track/TextTrackList.cpp: 21 (TextTrackList::clearElement): Clear track media element pointers and client. 22 * html/track/TextTrackList.h: 23 24 * html/track/TrackListBase.cpp: 25 (TrackListBase::~TrackListBase): Call clearElement. 26 (TrackListBase::clearElement): Clear track media element pointers and client. 27 * html/track/TrackListBase.h: 28 1 29 2016-08-02 Babak Shafiei <bshafiei@apple.com> 2 30 -
branches/safari-602-branch/Source/WebCore/html/HTMLMediaElement.cpp
r204069 r204073 510 510 511 511 #if ENABLE(VIDEO_TRACK) 512 if (m_audioTracks) {512 if (m_audioTracks) 513 513 m_audioTracks->clearElement(); 514 for (unsigned i = 0; i < m_audioTracks->length(); ++i)515 m_audioTracks->item(i)->clearClient();516 }517 514 if (m_textTracks) 518 515 m_textTracks->clearElement(); 519 if (m_textTracks) { 520 for (unsigned i = 0; i < m_textTracks->length(); ++i) 521 m_textTracks->item(i)->clearClient(); 522 } 523 if (m_videoTracks) { 516 if (m_videoTracks) 524 517 m_videoTracks->clearElement(); 525 for (unsigned i = 0; i < m_videoTracks->length(); ++i)526 m_videoTracks->item(i)->clearClient();527 }528 518 #endif 529 519 -
branches/safari-602-branch/Source/WebCore/html/track/AudioTrack.cpp
r200943 r204073 168 168 { 169 169 ASSERT_UNUSED(trackPrivate, trackPrivate == m_private); 170 mediaElement()->removeAudioTrack(*this); 170 ASSERT(mediaElement()); 171 if (mediaElement()) 172 mediaElement()->removeAudioTrack(*this); 171 173 } 172 174 -
branches/safari-602-branch/Source/WebCore/html/track/TextTrackList.cpp
r201385 r204073 47 47 } 48 48 49 void TextTrackList::clearElement() 50 { 51 TrackListBase::clearElement(); 52 for (auto& track : m_elementTracks) { 53 track->setMediaElement(nullptr); 54 track->clearClient(); 55 } 56 for (auto& track : m_addTrackTracks) { 57 track->setMediaElement(nullptr); 58 track->clearClient(); 59 } 60 } 61 49 62 unsigned TextTrackList::length() const 50 63 { -
branches/safari-602-branch/Source/WebCore/html/track/TextTrackList.h
r200943 r204073 43 43 virtual ~TextTrackList(); 44 44 45 void clearElement() override; 46 45 47 unsigned length() const override; 46 48 int getTrackIndex(TextTrack&); -
branches/safari-602-branch/Source/WebCore/html/track/TrackListBase.cpp
r200943 r204073 47 47 TrackListBase::~TrackListBase() 48 48 { 49 clearElement(); 50 } 51 52 void TrackListBase::clearElement() 53 { 54 m_element = nullptr; 55 for (auto& track : m_inbandTracks) { 56 track->setMediaElement(nullptr); 57 track->clearClient(); 58 } 49 59 } 50 60 -
branches/safari-602-branch/Source/WebCore/html/track/TrackListBase.h
r200943 r204073 57 57 ScriptExecutionContext* scriptExecutionContext() const final { return m_context; } 58 58 59 v oid clearElement() { m_element = 0; }59 virtual void clearElement(); 60 60 Element* element() const; 61 61 HTMLMediaElement* mediaElement() const { return m_element; }
Note:
See TracChangeset
for help on using the changeset viewer.