Index: Source/core/html/track/TextTrackList.h |
diff --git a/Source/core/html/track/TextTrackList.h b/Source/core/html/track/TextTrackList.h |
index 09385902209c8f155395ec1c2f193cae9bc24f38..7c150b2c931935a69628810a8bbec9c031a7c833 100644 |
--- a/Source/core/html/track/TextTrackList.h |
+++ b/Source/core/html/track/TextTrackList.h |
@@ -36,6 +36,7 @@ |
namespace WebCore { |
+class GenericEventQueue; |
class HTMLMediaElement; |
class TextTrack; |
class TextTrackList; |
@@ -64,30 +65,31 @@ public: |
virtual ExecutionContext* executionContext() const OVERRIDE; |
DEFINE_ATTRIBUTE_EVENT_LISTENER(addtrack); |
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(change); |
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(removetrack); |
void clearOwner() { m_owner = 0; } |
Node* owner() const; |
- bool isFiringEventListeners() { return m_dispatchingEvents; } |
+ void scheduleChangeEvent(); |
private: |
explicit TextTrackList(HTMLMediaElement*); |
+ void scheduleTrackEvent(const AtomicString& eventName, PassRefPtr<TextTrack>); |
+ |
void scheduleAddTrackEvent(PassRefPtr<TextTrack>); |
- void asyncEventTimerFired(Timer<TextTrackList>*); |
+ void scheduleRemoveTrackEvent(PassRefPtr<TextTrack>); |
void invalidateTrackIndexesAfterTrack(TextTrack*); |
HTMLMediaElement* m_owner; |
- Vector<RefPtr<Event> > m_pendingEvents; |
- Timer<TextTrackList> m_pendingEventTimer; |
+ OwnPtr<GenericEventQueue> m_asyncEventQueue; |
Vector<RefPtr<TextTrack> > m_addTrackTracks; |
Vector<RefPtr<TextTrack> > m_elementTracks; |
Vector<RefPtr<TextTrack> > m_inbandTracks; |
- |
- int m_dispatchingEvents; |
}; |
} // namespace WebCore |