| Index: Source/core/html/HTMLMediaElement.cpp | 
| diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp | 
| index f5fb8f9311ddbe67a339b11b7c983bc1d9e04ec9..f4f6f362c3a474fe84b73f85f4935d72818e29b3 100644 | 
| --- a/Source/core/html/HTMLMediaElement.cpp | 
| +++ b/Source/core/html/HTMLMediaElement.cpp | 
| @@ -2181,14 +2181,15 @@ void HTMLMediaElement::scheduleTimeupdateEvent(bool periodicEvent) | 
| } | 
| } | 
|  | 
| -bool HTMLMediaElement::canPlay() const | 
| +bool HTMLMediaElement::togglePlayStateWillPlay() const | 
| { | 
| -    return paused() || ended() || m_readyState < HAVE_METADATA; | 
| +    if (m_mediaController) | 
| +        return m_mediaController->paused() || m_mediaController->isRestrained(); | 
| +    return paused(); | 
| } | 
|  | 
| void HTMLMediaElement::togglePlayState() | 
| { | 
| -    ASSERT(controls()); | 
| // The activation behavior of a media element that is exposing a user interface to the user | 
| if (m_mediaController) { | 
| if (m_mediaController->isRestrained()) | 
|  |