| Index: Source/core/html/MediaController.cpp
|
| diff --git a/Source/core/html/MediaController.cpp b/Source/core/html/MediaController.cpp
|
| index d0ba80e377c2a7392f1e196e46b2c4befc4f8f8e..2cd40927a84c661e3ca7b31f3d4d53509d218a35 100644
|
| --- a/Source/core/html/MediaController.cpp
|
| +++ b/Source/core/html/MediaController.cpp
|
| @@ -160,6 +160,11 @@ double MediaController::currentTime() const
|
|
|
| void MediaController::setCurrentTime(double time, ExceptionState& exceptionState)
|
| {
|
| + if (!std::isfinite(time)) {
|
| + exceptionState.throwTypeError(ExceptionMessages::notAFiniteNumber(time));
|
| + return;
|
| + }
|
| +
|
| // When the user agent is to seek the media controller to a particular new playback position,
|
| // it must follow these steps:
|
| // If the new playback position is less than zero, then set it to zero.
|
| @@ -218,8 +223,13 @@ void MediaController::pause()
|
| reportControllerState();
|
| }
|
|
|
| -void MediaController::setDefaultPlaybackRate(double rate)
|
| +void MediaController::setDefaultPlaybackRate(double rate, ExceptionState& exceptionState)
|
| {
|
| + if (!std::isfinite(rate)) {
|
| + exceptionState.throwTypeError(ExceptionMessages::notAFiniteNumber(rate));
|
| + return;
|
| + }
|
| +
|
| if (m_defaultPlaybackRate == rate)
|
| return;
|
|
|
| @@ -236,8 +246,13 @@ double MediaController::playbackRate() const
|
| return m_clock->playRate();
|
| }
|
|
|
| -void MediaController::setPlaybackRate(double rate)
|
| +void MediaController::setPlaybackRate(double rate, ExceptionState& exceptionState)
|
| {
|
| + if (!std::isfinite(rate)) {
|
| + exceptionState.throwTypeError(ExceptionMessages::notAFiniteNumber(rate));
|
| + return;
|
| + }
|
| +
|
| if (m_clock->playRate() == rate)
|
| return;
|
|
|
| @@ -254,6 +269,11 @@ void MediaController::setPlaybackRate(double rate)
|
|
|
| void MediaController::setVolume(double level, ExceptionState& exceptionState)
|
| {
|
| + if (!std::isfinite(level)) {
|
| + exceptionState.throwTypeError(ExceptionMessages::notAFiniteNumber(level));
|
| + return;
|
| + }
|
| +
|
| if (m_volume == level)
|
| return;
|
|
|
|
|