OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 11 matching lines...) Expand all Loading... |
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 */ | 24 */ |
25 | 25 |
26 #ifndef HTMLTrackElement_h | 26 #ifndef HTMLTrackElement_h |
27 #define HTMLTrackElement_h | 27 #define HTMLTrackElement_h |
28 | 28 |
29 #include "core/html/HTMLElement.h" | 29 #include "core/html/HTMLElement.h" |
30 #include "core/html/track/LoadableTextTrack.h" | 30 #include "core/html/track/LoadableTextTrack.h" |
31 #include "core/html/track/TextTrack.h" | 31 #include "core/html/track/TextTrack.h" |
| 32 #include "platform/heap/Handle.h" |
32 | 33 |
33 namespace WebCore { | 34 namespace WebCore { |
34 | 35 |
35 class HTMLMediaElement; | 36 class HTMLMediaElement; |
36 | 37 |
37 class HTMLTrackElement FINAL : public HTMLElement { | 38 class HTMLTrackElement FINAL : public HTMLElement { |
38 public: | 39 public: |
39 static PassRefPtr<HTMLTrackElement> create(Document&); | 40 static PassRefPtr<HTMLTrackElement> create(Document&); |
40 | 41 |
41 const AtomicString& kind(); | 42 const AtomicString& kind(); |
42 void setKind(const AtomicString&); | 43 void setKind(const AtomicString&); |
43 | 44 |
44 enum ReadyState { NONE = 0, LOADING = 1, LOADED = 2, TRACK_ERROR = 3 }; | 45 enum ReadyState { NONE = 0, LOADING = 1, LOADED = 2, TRACK_ERROR = 3 }; |
45 ReadyState readyState(); | 46 ReadyState readyState(); |
46 void setReadyState(ReadyState); | 47 void setReadyState(ReadyState); |
47 | 48 |
48 TextTrack* track(); | 49 TextTrack* track(); |
49 | 50 |
50 void scheduleLoad(); | 51 void scheduleLoad(); |
51 | 52 |
52 enum LoadStatus { Failure, Success }; | 53 enum LoadStatus { Failure, Success }; |
53 void didCompleteLoad(LoadStatus); | 54 void didCompleteLoad(LoadStatus); |
54 | 55 |
55 const AtomicString& mediaElementCrossOriginAttribute() const; | 56 const AtomicString& mediaElementCrossOriginAttribute() const; |
56 | 57 |
| 58 virtual void trace(Visitor*) OVERRIDE; |
| 59 |
57 private: | 60 private: |
58 explicit HTMLTrackElement(Document&); | 61 explicit HTMLTrackElement(Document&); |
59 virtual ~HTMLTrackElement(); | 62 virtual ~HTMLTrackElement(); |
60 | 63 |
61 virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERR
IDE; | 64 virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERR
IDE; |
62 | 65 |
63 virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; | 66 virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; |
64 | 67 |
65 virtual void removedFrom(ContainerNode*) OVERRIDE; | 68 virtual void removedFrom(ContainerNode*) OVERRIDE; |
66 virtual bool isURLAttribute(const Attribute&) const OVERRIDE; | 69 virtual bool isURLAttribute(const Attribute&) const OVERRIDE; |
67 | 70 |
68 void loadTimerFired(Timer<HTMLTrackElement>*); | 71 void loadTimerFired(Timer<HTMLTrackElement>*); |
69 | 72 |
70 HTMLMediaElement* mediaElement() const; | 73 HTMLMediaElement* mediaElement() const; |
71 | 74 |
72 LoadableTextTrack* ensureTrack(); | 75 LoadableTextTrack* ensureTrack(); |
73 bool canLoadUrl(const KURL&); | 76 bool canLoadUrl(const KURL&); |
74 | 77 |
75 RefPtr<LoadableTextTrack> m_track; | 78 RefPtrWillBeMember<LoadableTextTrack> m_track; |
76 Timer<HTMLTrackElement> m_loadTimer; | 79 Timer<HTMLTrackElement> m_loadTimer; |
77 }; | 80 }; |
78 | 81 |
79 } | 82 } |
80 | 83 |
81 #endif | 84 #endif |
OLD | NEW |