Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1222)

Side by Side Diff: Source/core/html/track/TextTrackRegion.h

Issue 25798003: Enable WebVTT regions for runtime testing, updated tests and minor fixes (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/html/track/TextTrackCue.idl ('k') | Source/core/html/track/TextTrackRegion.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 13 matching lines...) Expand all
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef TextTrackRegion_h 31 #ifndef TextTrackRegion_h
32 #define TextTrackRegion_h 32 #define TextTrackRegion_h
33 33
34 #if ENABLE(WEBVTT_REGIONS)
35
36 #include "core/dom/ContextLifecycleObserver.h" 34 #include "core/dom/ContextLifecycleObserver.h"
37 #include "core/dom/Document.h" 35 #include "core/dom/Document.h"
38 #include "core/html/track/TextTrack.h" 36 #include "core/html/track/TextTrack.h"
39 #include "platform/geometry/FloatPoint.h" 37 #include "platform/geometry/FloatPoint.h"
40 #include "wtf/PassOwnPtr.h" 38 #include "wtf/PassOwnPtr.h"
41 #include "wtf/RefCounted.h" 39 #include "wtf/RefCounted.h"
42 40
43 namespace WebCore { 41 namespace WebCore {
44 42
45 class ExceptionState; 43 class ExceptionState;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 bool isScrollingRegion() { return m_scroll; } 88 bool isScrollingRegion() { return m_scroll; }
91 89
92 PassRefPtr<HTMLDivElement> getDisplayTree(); 90 PassRefPtr<HTMLDivElement> getDisplayTree();
93 91
94 void appendTextTrackCueBox(PassRefPtr<TextTrackCueBox>); 92 void appendTextTrackCueBox(PassRefPtr<TextTrackCueBox>);
95 void displayLastTextTrackCueBox(); 93 void displayLastTextTrackCueBox();
96 void willRemoveTextTrackCueBox(TextTrackCueBox*); 94 void willRemoveTextTrackCueBox(TextTrackCueBox*);
97 95
98 private: 96 private:
99 TextTrackRegion(ExecutionContext*); 97 TextTrackRegion(ExecutionContext*);
100 Document* ownerDocument() { return toDocument(m_executionContext); } 98 Document* ownerDocument() { return toDocument(executionContext()); }
101 99
102 void prepareRegionDisplayTree(); 100 void prepareRegionDisplayTree();
103 101
104 // The timer is needed to continue processing when cue scrolling ended. 102 // The timer is needed to continue processing when cue scrolling ended.
105 void startTimer(); 103 void startTimer();
106 void stopTimer(); 104 void stopTimer();
107 void scrollTimerFired(Timer<TextTrackRegion>*); 105 void scrollTimerFired(Timer<TextTrackRegion>*);
108 106
109 enum RegionSetting { 107 enum RegionSetting {
110 None, 108 None,
111 Id, 109 Id,
112 Width, 110 Width,
113 Height, 111 Height,
114 RegionAnchor, 112 RegionAnchor,
115 ViewportAnchor, 113 ViewportAnchor,
116 Scroll 114 Scroll
117 }; 115 };
118
119 RegionSetting getSettingFromString(const String&); 116 RegionSetting getSettingFromString(const String&);
120
121 void parseSettingValue(RegionSetting, const String&); 117 void parseSettingValue(RegionSetting, const String&);
122 void parseSetting(const String&, unsigned*); 118 void parseSetting(const String&, unsigned*);
123 119
124 static const AtomicString& textTrackCueContainerShadowPseudoId(); 120 static const AtomicString& textTrackCueContainerShadowPseudoId();
125 static const AtomicString& textTrackCueContainerScrollingClass(); 121 static const AtomicString& textTrackCueContainerScrollingClass();
126 static const AtomicString& textTrackRegionShadowPseudoId(); 122 static const AtomicString& textTrackRegionShadowPseudoId();
127 123
128 String m_id; 124 String m_id;
129 String m_settings; 125 String m_settings;
130
131 double m_width; 126 double m_width;
132 unsigned m_heightInLines; 127 unsigned m_heightInLines;
133
134 FloatPoint m_regionAnchor; 128 FloatPoint m_regionAnchor;
135 FloatPoint m_viewportAnchor; 129 FloatPoint m_viewportAnchor;
136
137 bool m_scroll; 130 bool m_scroll;
138 131
139 RefPtr<HTMLDivElement> m_regionDisplayTree;
140
141 // The cue container is the container that is scrolled up to obtain the 132 // The cue container is the container that is scrolled up to obtain the
142 // effect of scrolling cues when this is enabled for the regions. 133 // effect of scrolling cues when this is enabled for the regions.
143 RefPtr<HTMLDivElement> m_cueContainer; 134 RefPtr<HTMLDivElement> m_cueContainer;
135 RefPtr<HTMLDivElement> m_regionDisplayTree;
144 136
145 // The member variable track can be a raw pointer as it will never 137 // The member variable track can be a raw pointer as it will never
146 // reference a destroyed TextTrack, as this member variable 138 // reference a destroyed TextTrack, as this member variable
147 // is cleared in the TextTrack destructor and it is generally 139 // is cleared in the TextTrack destructor and it is generally
148 // set/reset within the addRegion and removeRegion methods. 140 // set/reset within the addRegion and removeRegion methods.
149 TextTrack* m_track; 141 TextTrack* m_track;
150 142
151 // Keep track of the current numeric value of the css "top" property. 143 // Keep track of the current numeric value of the css "top" property.
152 double m_currentTop; 144 double m_currentTop;
153 145
154 // The timer is used to display the next cue line after the current one has 146 // The timer is used to display the next cue line after the current one has
155 // been displayed. It's main use is for scrolling regions and it triggers as 147 // been displayed. It's main use is for scrolling regions and it triggers as
156 // soon as the animation for rolling out one line has finished, but 148 // soon as the animation for rolling out one line has finished, but
157 // currently it is used also for non-scrolling regions to use a single 149 // currently it is used also for non-scrolling regions to use a single
158 // code path. 150 // code path.
159 Timer<TextTrackRegion> m_scrollTimer; 151 Timer<TextTrackRegion> m_scrollTimer;
160 }; 152 };
161 153
162 } // namespace WebCore 154 } // namespace WebCore
163
164 #endif 155 #endif
165 #endif
OLDNEW
« no previous file with comments | « Source/core/html/track/TextTrackCue.idl ('k') | Source/core/html/track/TextTrackRegion.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698