summaryrefslogtreecommitdiffstats
path: root/WebKit/android
diff options
context:
space:
mode:
authorNicolas Roard <nicolasroard@google.com>2011-03-14 13:23:18 -0700
committerNicolas Roard <nicolasroard@google.com>2011-03-14 19:07:36 -0700
commit833c9ceaa300f52cf2d1b12a9b3482ad417a3c21 (patch)
tree0fa83f5b4a725f225ef285f1b5e28e404feb8050 /WebKit/android
parenta0fb3c7e0c38540c392a5248b0f1100c158612f9 (diff)
downloadexternal_webkit-833c9ceaa300f52cf2d1b12a9b3482ad417a3c21.zip
external_webkit-833c9ceaa300f52cf2d1b12a9b3482ad417a3c21.tar.gz
external_webkit-833c9ceaa300f52cf2d1b12a9b3482ad417a3c21.tar.bz2
Improving HTML5 video controls
- correct support for the fullscreen button - change the controls to be 48px high - auto-hide the controls, touching the video makes them appear again bug:2126902 Change-Id: Idd2b720034de3d5d432c9ea62d9045934c46f6c1
Diffstat (limited to 'WebKit/android')
-rw-r--r--WebKit/android/RenderSkinMediaButton.cpp2
-rw-r--r--WebKit/android/RenderSkinMediaButton.h2
-rw-r--r--WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp17
3 files changed, 14 insertions, 7 deletions
diff --git a/WebKit/android/RenderSkinMediaButton.cpp b/WebKit/android/RenderSkinMediaButton.cpp
index f9da7cf..c3ab80f 100644
--- a/WebKit/android/RenderSkinMediaButton.cpp
+++ b/WebKit/android/RenderSkinMediaButton.cpp
@@ -51,6 +51,7 @@ static const PatchData gFiles[] =
{ "ic_media_pause.png", 0, 0 }, // MUTE
{ "ic_media_rew.png", 0, 0 }, // REWIND
{ "ic_media_ff.png", 0, 0 }, // FORWARD
+ { "ic_media_fullscreen.png", 0, 0 }, // FULLSCREEN
{ "btn_media_player_disabled.9.png", 0, 0 }, // BACKGROUND_SLIDER
{ "scrubber_track_holo_dark.9.png", 0, 0 }, // SLIDER_TRACK
{ "scrubber_control_holo.png", 0, 0 } // SLIDER_THUMB
@@ -113,6 +114,7 @@ void RenderSkinMediaButton::Draw(SkCanvas* canvas, const IntRect& r, int buttonT
case MUTE:
case REWIND:
case FORWARD:
+ case FULLSCREEN:
{
imageIndex = buttonType + 1;
paint.setColor(backgroundColor);
diff --git a/WebKit/android/RenderSkinMediaButton.h b/WebKit/android/RenderSkinMediaButton.h
index 124db32..bde31eb 100644
--- a/WebKit/android/RenderSkinMediaButton.h
+++ b/WebKit/android/RenderSkinMediaButton.h
@@ -48,7 +48,7 @@ public:
/**
* Button types
*/
- enum { PAUSE, PLAY, MUTE, REWIND, FORWARD, BACKGROUND_SLIDER, SLIDER_TRACK, SLIDER_THUMB };
+ enum { PAUSE, PLAY, MUTE, REWIND, FORWARD, FULLSCREEN, BACKGROUND_SLIDER, SLIDER_TRACK, SLIDER_THUMB };
/**
* Slider dimensions
*/
diff --git a/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp b/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
index 8f84c2f..4cc9cf4 100644
--- a/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
+++ b/WebKit/android/WebCoreSupport/MediaPlayerPrivateAndroid.cpp
@@ -103,6 +103,7 @@ void MediaPlayerPrivate::pause()
return;
m_paused = true;
+ m_player->playbackStateChanged();
env->CallVoidMethod(m_glue->m_javaProxy, m_glue->m_pause);
checkException(env);
}
@@ -162,6 +163,7 @@ void MediaPlayerPrivate::onEnded()
m_currentTime = duration();
m_player->timeChanged();
m_paused = true;
+ m_player->playbackStateChanged();
m_hasVideo = false;
m_networkState = MediaPlayer::Idle;
}
@@ -169,6 +171,7 @@ void MediaPlayerPrivate::onEnded()
void MediaPlayerPrivate::onPaused()
{
m_paused = true;
+ m_player->playbackStateChanged();
m_hasVideo = false;
m_networkState = MediaPlayer::Idle;
m_player->playbackStateChanged();
@@ -207,6 +210,7 @@ public:
return;
m_paused = false;
+ m_player->playbackStateChanged();
if (m_currentTime == duration())
m_currentTime = 0;
@@ -284,9 +288,9 @@ public:
m_player->sizeChanged();
}
- bool hasAudio() { return false; } // do not display the audio UI
- bool hasVideo() { return m_hasVideo; }
- bool suppportsFullscreen() { return true; }
+ virtual bool hasAudio() const { return false; } // do not display the audio UI
+ virtual bool hasVideo() const { return m_hasVideo; }
+ virtual bool supportsFullscreen() const { return true; }
MediaPlayerVideoPrivate(MediaPlayer* player) : MediaPlayerPrivate(player)
{
@@ -394,13 +398,14 @@ public:
return;
m_paused = false;
+ m_player->playbackStateChanged();
env->CallVoidMethod(m_glue->m_javaProxy, m_glue->m_play);
checkException(env);
}
- bool hasAudio() { return true; }
- bool hasVideo() { return false; }
- bool suppportsFullscreen() { return false; }
+ virtual bool hasAudio() const { return true; }
+ virtual bool hasVideo() const { return false; }
+ virtual bool supportsFullscreen() const { return false; }
float maxTimeSeekable() const
{