Chromium Code Reviews| Index: Source/core/html/HTMLMediaElement.h |
| diff --git a/Source/core/html/HTMLMediaElement.h b/Source/core/html/HTMLMediaElement.h |
| index 1e26615e8796c22ba961631ab64714a8686e4e4b..9e0f91d81385cdc2be8a689a3becabc39b8039e5 100644 |
| --- a/Source/core/html/HTMLMediaElement.h |
| +++ b/Source/core/html/HTMLMediaElement.h |
| @@ -163,9 +163,9 @@ public: |
| bool togglePlayStateWillPlay() const; |
| void togglePlayState(); |
| - PassRefPtr<TextTrack> addTextTrack(const AtomicString& kind, const AtomicString& label, const AtomicString& language, ExceptionState&); |
| - PassRefPtr<TextTrack> addTextTrack(const AtomicString& kind, const AtomicString& label, ExceptionState& exceptionState) { return addTextTrack(kind, label, emptyAtom, exceptionState); } |
| - PassRefPtr<TextTrack> addTextTrack(const AtomicString& kind, ExceptionState& exceptionState) { return addTextTrack(kind, emptyAtom, emptyAtom, exceptionState); } |
| + PassRefPtrWillBeRawPtr<TextTrack> addTextTrack(const AtomicString& kind, const AtomicString& label, const AtomicString& language, ExceptionState&); |
| + PassRefPtrWillBeRawPtr<TextTrack> addTextTrack(const AtomicString& kind, const AtomicString& label, ExceptionState& exceptionState) { return addTextTrack(kind, label, emptyAtom, exceptionState); } |
| + PassRefPtrWillBeRawPtr<TextTrack> addTextTrack(const AtomicString& kind, ExceptionState& exceptionState) { return addTextTrack(kind, emptyAtom, emptyAtom, exceptionState); } |
| TextTrackList* textTracks(); |
| CueList currentlyActiveCues() const { return m_currentlyActiveCues; } |
| @@ -186,10 +186,12 @@ public: |
| // FIXME: Remove this when WebMediaPlayerClientImpl::loadInternal does not depend on it. |
| virtual KURL mediaPlayerPosterURL() OVERRIDE { return KURL(); } |
| - struct TrackGroup { |
| + class TrackGroup { |
| + STACK_ALLOCATED(); |
| + public: |
| enum GroupKind { CaptionsAndSubtitles, Description, Chapter, Metadata, Other }; |
| - TrackGroup(GroupKind kind) |
| + explicit TrackGroup(GroupKind kind) |
| : visibleTrack(nullptr) |
| , defaultTrack(nullptr) |
| , kind(kind) |
| @@ -197,9 +199,9 @@ public: |
| { |
| } |
| - Vector<RefPtr<TextTrack> > tracks; |
| - RefPtr<TextTrack> visibleTrack; |
| - RefPtr<TextTrack> defaultTrack; |
| + WillBeHeapVector<RefPtrWillBeMember<TextTrack> > tracks; |
| + RefPtrWillBeMember<TextTrack> visibleTrack; |
| + RefPtrWillBeMember<TextTrack> defaultTrack; |
| GroupKind kind; |
| bool hasSrcLang; |
| }; |
| @@ -221,8 +223,8 @@ public: |
| void textTrackModeChanged(TextTrack*); |
| void textTrackAddCues(TextTrack*, const TextTrackCueList*); |
| void textTrackRemoveCues(TextTrack*, const TextTrackCueList*); |
| - void textTrackAddCue(TextTrack*, PassRefPtr<TextTrackCue>); |
| - void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>); |
| + void textTrackAddCue(TextTrack*, PassRefPtrWillBeRawPtr<TextTrackCue>); |
| + void textTrackRemoveCue(TextTrack*, PassRefPtrWillBeRawPtr<TextTrackCue>); |
| // EventTarget function. |
| // Both Node (via HTMLElement) and ActiveDOMObject define this method, which |
| @@ -502,8 +504,8 @@ private: |
| bool m_processingPreferenceChange : 1; |
| double m_lastTextTrackUpdateTime; |
| - RefPtr<TextTrackList> m_textTracks; |
| - Vector<RefPtr<TextTrack> > m_textTracksWhenResourceSelectionBegan; |
| + RefPtrWillBePersistent<TextTrackList> m_textTracks; |
|
Mads Ager (chromium)
2014/04/22 10:33:25
HTMLMediaElement is in the Oilpan heap and there i
haraken
2014/04/22 10:40:03
Good point. I forgot that the Node hierarchy is al
sof
2014/04/22 12:44:01
Already in place; switched to Persistent + removed
|
| + WillBePersistentHeapVector<RefPtrWillBeMember<TextTrack> > m_textTracksWhenResourceSelectionBegan; |
|
Mads Ager (chromium)
2014/04/22 10:33:25
Remove the Persistent here as well and just make i
sof
2014/04/22 12:44:01
I've gone through the destructors, and apart from
|
| CueIntervalTree m_cueTree; |