Bug 882664 - Part 1: TextTrack should hold a ref to its TrackElement, if any. r=rillian

This commit is contained in:
Rick Eyre 2014-02-27 14:07:39 -05:00
parent 6e210ea159
commit 50ef0f7c31
3 changed files with 19 additions and 2 deletions

View File

@ -154,6 +154,7 @@ HTMLTrackElement::CreateTextTrack()
}
mTrack = new TextTrack(OwnerDoc()->GetParentObject(), kind, label, srcLang);
mTrack->SetTrackElement(this);
if (mMediaParent) {
mMediaParent->AddTextTrack(mTrack);

View File

@ -16,12 +16,13 @@
namespace mozilla {
namespace dom {
NS_IMPL_CYCLE_COLLECTION_INHERITED_4(TextTrack,
NS_IMPL_CYCLE_COLLECTION_INHERITED_5(TextTrack,
nsDOMEventTargetHelper,
mParent,
mCueList,
mActiveCueList,
mTextTrackList)
mTextTrackList,
mTrackElement)
NS_IMPL_ADDREF_INHERITED(TextTrack, nsDOMEventTargetHelper)
NS_IMPL_RELEASE_INHERITED(TextTrack, nsDOMEventTargetHelper)
@ -211,5 +212,15 @@ TextTrack::SetTextTrackList(TextTrackList* aTextTrackList)
mTextTrackList = aTextTrackList;
}
HTMLTrackElement*
TextTrack::GetTrackElement() {
return mTrackElement;
}
void
TextTrack::SetTrackElement(HTMLTrackElement* aTrackElement) {
mTrackElement = aTrackElement;
}
} // namespace dom
} // namespace mozilla

View File

@ -20,6 +20,7 @@ class TextTrackList;
class TextTrackCue;
class TextTrackCueList;
class TextTrackRegion;
class HTMLTrackElement;
class TextTrack MOZ_FINAL : public nsDOMEventTargetHelper
{
@ -99,6 +100,9 @@ public:
IMPL_EVENT_HANDLER(cuechange)
HTMLTrackElement* GetTrackElement();
void SetTrackElement(HTMLTrackElement* aTrackElement);
private:
void UpdateActiveCueList();
@ -114,6 +118,7 @@ private:
nsRefPtr<TextTrackCueList> mCueList;
nsRefPtr<TextTrackCueList> mActiveCueList;
nsRefPtr<HTMLTrackElement> mTrackElement;
uint32_t mCuePos;
uint16_t mReadyState;