OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013, Opera Software ASA. All rights reserved. | 2 * Copyright (c) 2013, Opera Software ASA. 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 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 } | 321 } |
322 | 322 |
323 void VTTCue::line(DoubleOrAutoKeyword& result) const | 323 void VTTCue::line(DoubleOrAutoKeyword& result) const |
324 { | 324 { |
325 if (lineIsAuto()) | 325 if (lineIsAuto()) |
326 result.setAutoKeyword(autoKeyword()); | 326 result.setAutoKeyword(autoKeyword()); |
327 else | 327 else |
328 result.setDouble(m_linePosition); | 328 result.setDouble(m_linePosition); |
329 } | 329 } |
330 | 330 |
331 void VTTCue::setLine(const DoubleOrAutoKeyword& position, ExceptionState& except
ionState) | 331 void VTTCue::setLine(const DoubleOrAutoKeyword& position) |
332 { | 332 { |
333 // FIXME: Expecting bindings code to handle this case: https://crbug.com/450
252. | |
334 if (position.isDouble() && !std::isfinite(position.getAsDouble())) { | |
335 exceptionState.throwTypeError("The provided double value is non-finite."
); | |
336 return; | |
337 } | |
338 | |
339 // http://dev.w3.org/html5/webvtt/#dfn-vttcue-line | 333 // http://dev.w3.org/html5/webvtt/#dfn-vttcue-line |
340 // On setting, the text track cue line position must be set to the new | 334 // On setting, the text track cue line position must be set to the new |
341 // value; if the new value is the string "auto", then it must be | 335 // value; if the new value is the string "auto", then it must be |
342 // interpreted as the special value auto. | 336 // interpreted as the special value auto. |
343 // ("auto" is translated to NaN.) | 337 // ("auto" is translated to NaN.) |
344 float floatPosition; | 338 float floatPosition; |
345 if (position.isAutoKeyword()) { | 339 if (position.isAutoKeyword()) { |
346 if (lineIsAuto()) | 340 if (lineIsAuto()) |
347 return; | 341 return; |
348 floatPosition = std::numeric_limits<float>::quiet_NaN(); | 342 floatPosition = std::numeric_limits<float>::quiet_NaN(); |
(...skipping 18 matching lines...) Expand all Loading... |
367 void VTTCue::position(DoubleOrAutoKeyword& result) const | 361 void VTTCue::position(DoubleOrAutoKeyword& result) const |
368 { | 362 { |
369 if (textPositionIsAuto()) | 363 if (textPositionIsAuto()) |
370 result.setAutoKeyword(autoKeyword()); | 364 result.setAutoKeyword(autoKeyword()); |
371 else | 365 else |
372 result.setDouble(m_textPosition); | 366 result.setDouble(m_textPosition); |
373 } | 367 } |
374 | 368 |
375 void VTTCue::setPosition(const DoubleOrAutoKeyword& position, ExceptionState& ex
ceptionState) | 369 void VTTCue::setPosition(const DoubleOrAutoKeyword& position, ExceptionState& ex
ceptionState) |
376 { | 370 { |
377 // FIXME: Expecting bindings code to handle this case: https://crbug.com/450
252. | |
378 if (position.isDouble() && !std::isfinite(position.getAsDouble())) { | |
379 exceptionState.throwTypeError("The provided double value is non-finite."
); | |
380 return; | |
381 } | |
382 | |
383 // http://dev.w3.org/html5/webvtt/#dfn-vttcue-position | 371 // http://dev.w3.org/html5/webvtt/#dfn-vttcue-position |
384 // On setting, if the new value is negative or greater than 100, then an | 372 // On setting, if the new value is negative or greater than 100, then an |
385 // IndexSizeError exception must be thrown. Otherwise, the text track cue | 373 // IndexSizeError exception must be thrown. Otherwise, the text track cue |
386 // text position must be set to the new value; if the new value is the | 374 // text position must be set to the new value; if the new value is the |
387 // string "auto", then it must be interpreted as the special value auto. | 375 // string "auto", then it must be interpreted as the special value auto. |
388 float floatPosition; | 376 float floatPosition; |
389 if (position.isAutoKeyword()) { | 377 if (position.isAutoKeyword()) { |
390 if (textPositionIsAuto()) | 378 if (textPositionIsAuto()) |
391 return; | 379 return; |
392 floatPosition = std::numeric_limits<float>::quiet_NaN(); | 380 floatPosition = std::numeric_limits<float>::quiet_NaN(); |
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1189 | 1177 |
1190 void VTTCue::trace(Visitor* visitor) | 1178 void VTTCue::trace(Visitor* visitor) |
1191 { | 1179 { |
1192 visitor->trace(m_vttNodeTree); | 1180 visitor->trace(m_vttNodeTree); |
1193 visitor->trace(m_cueBackgroundBox); | 1181 visitor->trace(m_cueBackgroundBox); |
1194 visitor->trace(m_displayTree); | 1182 visitor->trace(m_displayTree); |
1195 TextTrackCue::trace(visitor); | 1183 TextTrackCue::trace(visitor); |
1196 } | 1184 } |
1197 | 1185 |
1198 } // namespace blink | 1186 } // namespace blink |
OLD | NEW |