Chromium Code Reviews| Index: Source/core/html/HTMLMediaElement.cpp |
| diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp |
| index e3552279e73c85d31676bb58f87f3071accbc726..52d1b0f73827fa54e5c890b007e1a74e14c0e5a5 100644 |
| --- a/Source/core/html/HTMLMediaElement.cpp |
| +++ b/Source/core/html/HTMLMediaElement.cpp |
| @@ -307,7 +307,7 @@ HTMLMediaElement::~HTMLMediaElement() |
| setShouldDelayLoadEvent(false); |
| if (m_textTracks) |
|
Mads Ager (chromium)
2014/04/22 10:33:25
m_textTracks is another garbage collected object.
|
| - m_textTracks->clearOwner(); |
| + m_textTracks->dispose(); |
| if (m_mediaController) { |
| m_mediaController->removeMediaElement(this); |
| @@ -1261,7 +1261,7 @@ void HTMLMediaElement::textTrackRemoveCues(TextTrack*, const TextTrackCueList* c |
| textTrackRemoveCue(cues->item(i)->track(), cues->item(i)); |
| } |
| -void HTMLMediaElement::textTrackAddCue(TextTrack* track, PassRefPtr<TextTrackCue> cue) |
| +void HTMLMediaElement::textTrackAddCue(TextTrack* track, PassRefPtrWillBeRawPtr<TextTrackCue> cue) |
| { |
| if (track->mode() == TextTrack::disabledKeyword()) |
| return; |
| @@ -1276,7 +1276,7 @@ void HTMLMediaElement::textTrackAddCue(TextTrack* track, PassRefPtr<TextTrackCue |
| updateActiveTextTrackCues(currentTime()); |
| } |
| -void HTMLMediaElement::textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue> cue) |
| +void HTMLMediaElement::textTrackRemoveCue(TextTrack*, PassRefPtrWillBeRawPtr<TextTrackCue> cue) |
| { |
| // Negative duration cues need to be treated in the interval tree as |
| // zero-length cues. |
| @@ -2296,7 +2296,7 @@ void HTMLMediaElement::forgetResourceSpecificTracks() |
| } |
| } |
| -PassRefPtr<TextTrack> HTMLMediaElement::addTextTrack(const AtomicString& kind, const AtomicString& label, const AtomicString& language, ExceptionState& exceptionState) |
| +PassRefPtrWillBeRawPtr<TextTrack> HTMLMediaElement::addTextTrack(const AtomicString& kind, const AtomicString& label, const AtomicString& language, ExceptionState& exceptionState) |
| { |
| // 4.8.10.12.4 Text track API |
| // The addTextTrack(kind, label, language) method of media elements, when invoked, must run the following steps: |
| @@ -2313,7 +2313,7 @@ PassRefPtr<TextTrack> HTMLMediaElement::addTextTrack(const AtomicString& kind, c |
| // 5. Create a new text track corresponding to the new object, and set its text track kind to kind, its text |
| // track label to label, its text track language to language... |
| - RefPtr<TextTrack> textTrack = TextTrack::create(document(), kind, label, language); |
| + RefPtrWillBeRawPtr<TextTrack> textTrack = TextTrack::create(document(), kind, label, language); |
| // Note, due to side effects when changing track parameters, we have to |
| // first append the track to the text track list. |
| @@ -2344,7 +2344,7 @@ void HTMLMediaElement::didAddTrackElement(HTMLTrackElement* trackElement) |
| // When a track element's parent element changes and the new parent is a media element, |
| // then the user agent must add the track element's corresponding text track to the |
| // media element's list of text tracks ... [continues in TextTrackList::append] |
| - RefPtr<TextTrack> textTrack = trackElement->track(); |
| + RefPtrWillBeRawPtr<TextTrack> textTrack = trackElement->track(); |
| if (!textTrack) |
| return; |
| @@ -2366,7 +2366,7 @@ void HTMLMediaElement::didRemoveTrackElement(HTMLTrackElement* trackElement) |
| WTF_LOG(Media, "HTMLMediaElement::didRemoveTrackElement - 'src' is %s", urlForLoggingMedia(url).utf8().data()); |
| #endif |
| - RefPtr<TextTrack> textTrack = trackElement->track(); |
| + RefPtrWillBeRawPtr<TextTrack> textTrack = trackElement->track(); |
| if (!textTrack) |
| return; |
| @@ -2428,13 +2428,13 @@ void HTMLMediaElement::configureTextTrackGroup(const TrackGroup& group) |
| Settings* settings = document().settings(); |
| // First, find the track in the group that should be enabled (if any). |
| - Vector<RefPtr<TextTrack> > currentlyEnabledTracks; |
| - RefPtr<TextTrack> trackToEnable; |
| - RefPtr<TextTrack> defaultTrack; |
| - RefPtr<TextTrack> fallbackTrack; |
| + WillBeHeapVector<RefPtrWillBeMember<TextTrack> > currentlyEnabledTracks; |
| + RefPtrWillBeRawPtr<TextTrack> trackToEnable = nullptr; |
| + RefPtrWillBeRawPtr<TextTrack> defaultTrack = nullptr; |
| + RefPtrWillBeRawPtr<TextTrack> fallbackTrack = nullptr; |
| int highestTrackScore = 0; |
| for (size_t i = 0; i < group.tracks.size(); ++i) { |
| - RefPtr<TextTrack> textTrack = group.tracks[i]; |
| + RefPtrWillBeRawPtr<TextTrack> textTrack = group.tracks[i]; |
| if (m_processingPreferenceChange && textTrack->mode() == TextTrack::showingKeyword()) |
| currentlyEnabledTracks.append(textTrack); |
| @@ -2480,7 +2480,7 @@ void HTMLMediaElement::configureTextTrackGroup(const TrackGroup& group) |
| if (currentlyEnabledTracks.size()) { |
| for (size_t i = 0; i < currentlyEnabledTracks.size(); ++i) { |
| - RefPtr<TextTrack> textTrack = currentlyEnabledTracks[i]; |
| + RefPtrWillBeRawPtr<TextTrack> textTrack = currentlyEnabledTracks[i]; |
| if (textTrack != trackToEnable) |
| textTrack->setMode(TextTrack::disabledKeyword()); |
| } |
| @@ -2502,7 +2502,7 @@ void HTMLMediaElement::configureTextTracks() |
| return; |
| for (size_t i = 0; i < m_textTracks->length(); ++i) { |
| - RefPtr<TextTrack> textTrack = m_textTracks->item(i); |
| + RefPtrWillBeRawPtr<TextTrack> textTrack = m_textTracks->item(i); |
| if (!textTrack) |
| continue; |
| @@ -3391,7 +3391,7 @@ void HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured() |
| // captions and non-default tracks should be displayed based on language |
| // preferences if the user has turned captions on). |
| for (unsigned i = 0; i < m_textTracks->length(); ++i) { |
| - RefPtr<TextTrack> textTrack = m_textTracks->item(i); |
| + RefPtrWillBeRawPtr<TextTrack> textTrack = m_textTracks->item(i); |
| String kind = textTrack->kind(); |
| if (kind == TextTrack::subtitlesKeyword() || kind == TextTrack::captionsKeyword()) |