mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-30 13:45:27 +00:00
75a54dece9
We were incorrectly using the wrapper cache cycle collection macros when that functionality was already implemented by the base classes. Therefore, we should instead use the inherited version of the cycle collection macros.
68 lines
1.8 KiB
C++
68 lines
1.8 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim:set ts=2 sw=2 et tw=78: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef mozilla_dom_TextTrackList_h
|
|
#define mozilla_dom_TextTrackList_h
|
|
|
|
#include "mozilla/dom/TextTrack.h"
|
|
#include "nsCycleCollectionParticipant.h"
|
|
#include "nsDOMEventTargetHelper.h"
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
class TextTrack;
|
|
|
|
class TextTrackList MOZ_FINAL : public nsDOMEventTargetHelper
|
|
{
|
|
public:
|
|
NS_DECL_ISUPPORTS_INHERITED
|
|
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(TextTrackList, nsDOMEventTargetHelper)
|
|
|
|
TextTrackList(nsISupports* aGlobal);
|
|
|
|
virtual JSObject* WrapObject(JSContext* aCx,
|
|
JS::Handle<JSObject*> aScope) MOZ_OVERRIDE;
|
|
|
|
nsISupports* GetParentObject() const
|
|
{
|
|
return mGlobal;
|
|
}
|
|
|
|
uint32_t Length() const
|
|
{
|
|
return mTextTracks.Length();
|
|
}
|
|
|
|
// Time is in seconds.
|
|
void Update(double aTime);
|
|
|
|
TextTrack* IndexedGetter(uint32_t aIndex, bool& aFound);
|
|
|
|
already_AddRefed<TextTrack> AddTextTrack(TextTrackKind aKind,
|
|
const nsAString& aLabel,
|
|
const nsAString& aLanguage);
|
|
TextTrack* GetTrackById(const nsAString& aId);
|
|
|
|
void AddTextTrack(TextTrack* aTextTrack) {
|
|
mTextTracks.AppendElement(aTextTrack);
|
|
}
|
|
|
|
void RemoveTextTrack(const TextTrack& aTrack);
|
|
|
|
IMPL_EVENT_HANDLER(addtrack)
|
|
IMPL_EVENT_HANDLER(removetrack)
|
|
|
|
private:
|
|
nsCOMPtr<nsISupports> mGlobal;
|
|
nsTArray< nsRefPtr<TextTrack> > mTextTracks;
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_dom_TextTrackList_h
|