author | Rick Eyre <rick.eyre@hotmail.com> |
Thu, 27 Feb 2014 14:07:39 -0500 | |
changeset 173494 | 43585af186ecc38b52e3fbcd611a5db91226d1f5 |
parent 173449 | 5461dd604fcf44d0f3030e7fd7565afb779e1dec |
child 173495 | 824d1ef99ba2a6ff441fe5cd655201b93f24acaa |
push id | 26407 |
push user | cbook@mozilla.com |
push date | Fri, 14 Mar 2014 11:34:21 +0000 |
treeherder | mozilla-central@0a5ec8ab99a2 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | rillian |
bugs | 882664 |
milestone | 30.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/content/html/content/src/HTMLTrackElement.cpp +++ b/content/html/content/src/HTMLTrackElement.cpp @@ -149,16 +149,17 @@ HTMLTrackElement::CreateTextTrack() TextTrackKind kind; if (const nsAttrValue* value = GetParsedAttr(nsGkAtoms::kind)) { kind = static_cast<TextTrackKind>(value->GetEnumValue()); } else { kind = TextTrackKind::Subtitles; } mTrack = new TextTrack(OwnerDoc()->GetParentObject(), kind, label, srcLang); + mTrack->SetTrackElement(this); if (mMediaParent) { mMediaParent->AddTextTrack(mTrack); } } bool HTMLTrackElement::ParseAttribute(int32_t aNamespaceID,
--- a/content/media/TextTrack.cpp +++ b/content/media/TextTrack.cpp @@ -11,22 +11,23 @@ #include "mozilla/dom/TextTrackCueList.h" #include "mozilla/dom/TextTrackRegion.h" #include "mozilla/dom/HTMLMediaElement.h" #include "mozilla/dom/HTMLTrackElement.h" 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) NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(TextTrack) NS_INTERFACE_MAP_END_INHERITING(nsDOMEventTargetHelper) TextTrack::TextTrack(nsISupports* aParent) : mParent(aParent) @@ -206,10 +207,20 @@ TextTrack::GetTextTrackList() } void TextTrack::SetTextTrackList(TextTrackList* aTextTrackList) { mTextTrackList = aTextTrackList; } +HTMLTrackElement* +TextTrack::GetTrackElement() { + return mTrackElement; +} + +void +TextTrack::SetTrackElement(HTMLTrackElement* aTrackElement) { + mTrackElement = aTrackElement; +} + } // namespace dom } // namespace mozilla
--- a/content/media/TextTrack.h +++ b/content/media/TextTrack.h @@ -15,16 +15,17 @@ namespace mozilla { namespace dom { class TextTrackList; class TextTrackCue; class TextTrackCueList; class TextTrackRegion; +class HTMLTrackElement; class TextTrack MOZ_FINAL : public nsDOMEventTargetHelper { public: NS_DECL_ISUPPORTS_INHERITED NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(TextTrack, nsDOMEventTargetHelper) TextTrack(nsISupports* aParent); @@ -94,31 +95,35 @@ public: void CueChanged(TextTrackCue& aCue); void SetDirty() { mDirty = true; } TextTrackList* GetTextTrackList(); void SetTextTrackList(TextTrackList* aTextTrackList); IMPL_EVENT_HANDLER(cuechange) + HTMLTrackElement* GetTrackElement(); + void SetTrackElement(HTMLTrackElement* aTrackElement); + private: void UpdateActiveCueList(); nsCOMPtr<nsISupports> mParent; nsRefPtr<TextTrackList> mTextTrackList; TextTrackKind mKind; nsString mLabel; nsString mLanguage; nsString mType; nsString mId; TextTrackMode mMode; nsRefPtr<TextTrackCueList> mCueList; nsRefPtr<TextTrackCueList> mActiveCueList; + nsRefPtr<HTMLTrackElement> mTrackElement; uint32_t mCuePos; uint16_t mReadyState; bool mDirty; }; } // namespace dom } // namespace mozilla