summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/WebCore/html/HTMLMediaElement.cpp5
-rw-r--r--Source/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp7
2 files changed, 11 insertions, 1 deletions
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp
index 693f214..f3cc170 100644
--- a/Source/WebCore/html/HTMLMediaElement.cpp
+++ b/Source/WebCore/html/HTMLMediaElement.cpp
@@ -1036,7 +1036,10 @@ void HTMLMediaElement::setReadyState(MediaPlayer::ReadyState state)
if (isPotentiallyPlaying && oldState <= HAVE_CURRENT_DATA)
scheduleEvent(eventNames().playingEvent);
-
+#if PLATFORM(ANDROID)
+ // autoplay should not be honored if we require user gesture.
+ if (!(m_restrictions & RequireUserGestureForRateChangeRestriction))
+#endif
if (m_autoplaying && m_paused && autoplay()) {
m_paused = false;
invalidateCachedTime();
diff --git a/Source/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp b/Source/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
index c01d916..409eff6 100644
--- a/Source/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
+++ b/Source/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
@@ -315,6 +315,13 @@ public:
m_naturalSize = IntSize(poster->width(), poster->height());
m_player->sizeChanged();
}
+ // At this time, we know that the proxy has been setup. And it is the
+ // right time to trigger autoplay through the HTMLMediaElement state
+ // change. Since we are using the java MediaPlayer, so we have to
+ // pretend that the MediaPlayer has enough data.
+ m_readyState = MediaPlayer::HaveEnoughData;
+ m_player->readyStateChanged();
+
}
void onPrepared(int duration, int width, int height)