| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple 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 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 677 | 677 |
| 678 // 4.9 - Set the timeline offset to Not-a-Number (NaN). | 678 // 4.9 - Set the timeline offset to Not-a-Number (NaN). |
| 679 // 4.10 - Update the duration attribute to Not-a-Number (NaN). | 679 // 4.10 - Update the duration attribute to Not-a-Number (NaN). |
| 680 | 680 |
| 681 | 681 |
| 682 updateMediaController(); | 682 updateMediaController(); |
| 683 updateActiveTextTrackCues(0); | 683 updateActiveTextTrackCues(0); |
| 684 } | 684 } |
| 685 | 685 |
| 686 // 5 - Set the playbackRate attribute to the value of the defaultPlaybackRat
e attribute. | 686 // 5 - Set the playbackRate attribute to the value of the defaultPlaybackRat
e attribute. |
| 687 setPlaybackRate(defaultPlaybackRate(), IGNORE_EXCEPTION); | 687 setPlaybackRate(defaultPlaybackRate()); |
| 688 | 688 |
| 689 // 6 - Set the error attribute to null and the autoplaying flag to true. | 689 // 6 - Set the error attribute to null and the autoplaying flag to true. |
| 690 m_error = nullptr; | 690 m_error = nullptr; |
| 691 m_autoplaying = true; | 691 m_autoplaying = true; |
| 692 | 692 |
| 693 // 7 - Invoke the media element's resource selection algorithm. | 693 // 7 - Invoke the media element's resource selection algorithm. |
| 694 | 694 |
| 695 // 8 - Note: Playback of any previously playing media resource for this elem
ent stops. | 695 // 8 - Note: Playback of any previously playing media resource for this elem
ent stops. |
| 696 | 696 |
| 697 // The resource selection algorithm | 697 // The resource selection algorithm |
| (...skipping 1181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1879 return m_cachedTime; | 1879 return m_cachedTime; |
| 1880 } | 1880 } |
| 1881 | 1881 |
| 1882 refreshCachedTime(); | 1882 refreshCachedTime(); |
| 1883 | 1883 |
| 1884 return m_cachedTime; | 1884 return m_cachedTime; |
| 1885 } | 1885 } |
| 1886 | 1886 |
| 1887 void HTMLMediaElement::setCurrentTime(double time, ExceptionState& exceptionStat
e) | 1887 void HTMLMediaElement::setCurrentTime(double time, ExceptionState& exceptionStat
e) |
| 1888 { | 1888 { |
| 1889 // FIXME: generated bindings should check isfinite: http://crbug.com/354298 | |
| 1890 if (!std::isfinite(time)) { | |
| 1891 exceptionState.throwTypeError(ExceptionMessages::notAFiniteNumber(time))
; | |
| 1892 return; | |
| 1893 } | |
| 1894 if (m_mediaController) { | 1889 if (m_mediaController) { |
| 1895 exceptionState.throwDOMException(InvalidStateError, "The element is slav
ed to a MediaController."); | 1890 exceptionState.throwDOMException(InvalidStateError, "The element is slav
ed to a MediaController."); |
| 1896 return; | 1891 return; |
| 1897 } | 1892 } |
| 1898 seek(time, exceptionState); | 1893 seek(time, exceptionState); |
| 1899 } | 1894 } |
| 1900 | 1895 |
| 1901 double HTMLMediaElement::duration() const | 1896 double HTMLMediaElement::duration() const |
| 1902 { | 1897 { |
| 1903 if (!m_player || m_readyState < HAVE_METADATA) | 1898 if (!m_player || m_readyState < HAVE_METADATA) |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1922 bool HTMLMediaElement::paused() const | 1917 bool HTMLMediaElement::paused() const |
| 1923 { | 1918 { |
| 1924 return m_paused; | 1919 return m_paused; |
| 1925 } | 1920 } |
| 1926 | 1921 |
| 1927 double HTMLMediaElement::defaultPlaybackRate() const | 1922 double HTMLMediaElement::defaultPlaybackRate() const |
| 1928 { | 1923 { |
| 1929 return m_defaultPlaybackRate; | 1924 return m_defaultPlaybackRate; |
| 1930 } | 1925 } |
| 1931 | 1926 |
| 1932 void HTMLMediaElement::setDefaultPlaybackRate(double rate, ExceptionState& excep
tionState) | 1927 void HTMLMediaElement::setDefaultPlaybackRate(double rate) |
| 1933 { | 1928 { |
| 1934 // FIXME: generated bindings should check isfinite: http://crbug.com/354298 | |
| 1935 if (!std::isfinite(rate)) { | |
| 1936 exceptionState.throwTypeError(ExceptionMessages::notAFiniteNumber(rate))
; | |
| 1937 return; | |
| 1938 } | |
| 1939 if (m_defaultPlaybackRate != rate) { | 1929 if (m_defaultPlaybackRate != rate) { |
| 1940 m_defaultPlaybackRate = rate; | 1930 m_defaultPlaybackRate = rate; |
| 1941 scheduleEvent(EventTypeNames::ratechange); | 1931 scheduleEvent(EventTypeNames::ratechange); |
| 1942 } | 1932 } |
| 1943 } | 1933 } |
| 1944 | 1934 |
| 1945 double HTMLMediaElement::playbackRate() const | 1935 double HTMLMediaElement::playbackRate() const |
| 1946 { | 1936 { |
| 1947 return m_playbackRate; | 1937 return m_playbackRate; |
| 1948 } | 1938 } |
| 1949 | 1939 |
| 1950 void HTMLMediaElement::setPlaybackRate(double rate, ExceptionState& exceptionSta
te) | 1940 void HTMLMediaElement::setPlaybackRate(double rate) |
| 1951 { | 1941 { |
| 1952 WTF_LOG(Media, "HTMLMediaElement::setPlaybackRate(%f)", rate); | 1942 WTF_LOG(Media, "HTMLMediaElement::setPlaybackRate(%f)", rate); |
| 1953 | 1943 |
| 1954 // FIXME: generated bindings should check isfinite: http://crbug.com/354298 | |
| 1955 if (!std::isfinite(rate)) { | |
| 1956 exceptionState.throwTypeError(ExceptionMessages::notAFiniteNumber(rate))
; | |
| 1957 return; | |
| 1958 } | |
| 1959 | |
| 1960 if (m_playbackRate != rate) { | 1944 if (m_playbackRate != rate) { |
| 1961 m_playbackRate = rate; | 1945 m_playbackRate = rate; |
| 1962 invalidateCachedTime(); | 1946 invalidateCachedTime(); |
| 1963 scheduleEvent(EventTypeNames::ratechange); | 1947 scheduleEvent(EventTypeNames::ratechange); |
| 1964 } | 1948 } |
| 1965 | 1949 |
| 1966 if (m_player && potentiallyPlaying() && m_player->rate() != rate && !m_media
Controller) | 1950 if (m_player && potentiallyPlaying() && m_player->rate() != rate && !m_media
Controller) |
| 1967 m_player->setRate(rate); | 1951 m_player->setRate(rate); |
| 1968 } | 1952 } |
| 1969 | 1953 |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2114 | 2098 |
| 2115 double HTMLMediaElement::volume() const | 2099 double HTMLMediaElement::volume() const |
| 2116 { | 2100 { |
| 2117 return m_volume; | 2101 return m_volume; |
| 2118 } | 2102 } |
| 2119 | 2103 |
| 2120 void HTMLMediaElement::setVolume(double vol, ExceptionState& exceptionState) | 2104 void HTMLMediaElement::setVolume(double vol, ExceptionState& exceptionState) |
| 2121 { | 2105 { |
| 2122 WTF_LOG(Media, "HTMLMediaElement::setVolume(%f)", vol); | 2106 WTF_LOG(Media, "HTMLMediaElement::setVolume(%f)", vol); |
| 2123 | 2107 |
| 2124 // FIXME: generated bindings should check isfinite: http://crbug.com/354298 | |
| 2125 if (!std::isfinite(vol)) { | |
| 2126 exceptionState.throwTypeError(ExceptionMessages::notAFiniteNumber(vol)); | |
| 2127 return; | |
| 2128 } | |
| 2129 | |
| 2130 if (vol < 0.0f || vol > 1.0f) { | 2108 if (vol < 0.0f || vol > 1.0f) { |
| 2131 exceptionState.throwDOMException(IndexSizeError, ExceptionMessages::inde
xOutsideRange("volume", vol, 0.0, ExceptionMessages::InclusiveBound, 1.0, Except
ionMessages::InclusiveBound)); | 2109 exceptionState.throwDOMException(IndexSizeError, ExceptionMessages::inde
xOutsideRange("volume", vol, 0.0, ExceptionMessages::InclusiveBound, 1.0, Except
ionMessages::InclusiveBound)); |
| 2132 return; | 2110 return; |
| 2133 } | 2111 } |
| 2134 | 2112 |
| 2135 if (m_volume != vol) { | 2113 if (m_volume != vol) { |
| 2136 m_volume = vol; | 2114 m_volume = vol; |
| 2137 updateVolume(); | 2115 updateVolume(); |
| 2138 scheduleEvent(EventTypeNames::volumechange); | 2116 scheduleEvent(EventTypeNames::volumechange); |
| 2139 } | 2117 } |
| (...skipping 1492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3632 | 3610 |
| 3633 void HTMLMediaElement::trace(Visitor* visitor) | 3611 void HTMLMediaElement::trace(Visitor* visitor) |
| 3634 { | 3612 { |
| 3635 visitor->trace(m_textTracks); | 3613 visitor->trace(m_textTracks); |
| 3636 visitor->trace(m_textTracksWhenResourceSelectionBegan); | 3614 visitor->trace(m_textTracksWhenResourceSelectionBegan); |
| 3637 Supplementable<HTMLMediaElement>::trace(visitor); | 3615 Supplementable<HTMLMediaElement>::trace(visitor); |
| 3638 HTMLElement::trace(visitor); | 3616 HTMLElement::trace(visitor); |
| 3639 } | 3617 } |
| 3640 | 3618 |
| 3641 } | 3619 } |
| OLD | NEW |