[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198
jer.noble at apple.com
jer.noble at apple.com
Sun Feb 20 23:29:53 UTC 2011
The following commit has been merged in the webkit-1.3 branch:
commit f0000a8e0b64d120a0013524c3a0669b6c057367
Author: jer.noble at apple.com <jer.noble at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jan 20 23:45:05 2011 +0000
2011-01-14 Jer Noble <jer.noble at apple.com>
Reviewed by Eric Carlson.
REGRESSION (r71842): Compass video is not playing in Safari welcome page
https://bugs.webkit.org/show_bug.cgi?id=52506
Test that a delay between loading and playing video does not break playback.
* media/video-currentTime-delay-expected.txt: Added.
* media/video-currentTime-delay.html: Added.
2011-01-14 Jer Noble <jer.noble at apple.com>
Reviewed by Eric Carlson.
REGRESSION (r71842): Compass video is not playing in Safari welcome page
https://bugs.webkit.org/show_bug.cgi?id=52506
New test: LayoutTests/media/video-currentTime-delay.html
Call invalidateCachedTime() every time one of the cached property dependencies changes,
i.e. m_paused and m_playbackRate.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::setPlaybackRate):
(WebCore::HTMLMediaElement::mediaPlayerRateChanged):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76296 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index f27e232..580dbde 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2011-01-14 Jer Noble <jer.noble at apple.com>
+
+ Reviewed by Eric Carlson.
+
+ REGRESSION (r71842): Compass video is not playing in Safari welcome page
+ https://bugs.webkit.org/show_bug.cgi?id=52506
+
+ Test that a delay between loading and playing video does not break playback.
+
+ * media/video-currentTime-delay-expected.txt: Added.
+ * media/video-currentTime-delay.html: Added.
+
2011-01-20 Ryosuke Niwa <rniwa at webkit.org>
Unreviewed Chromium test expectations fix.
diff --git a/LayoutTests/media/video-currentTime-delay-expected.txt b/LayoutTests/media/video-currentTime-delay-expected.txt
new file mode 100644
index 0000000..58f18cd
--- /dev/null
+++ b/LayoutTests/media/video-currentTime-delay-expected.txt
@@ -0,0 +1,10 @@
+Test a delay in playing the movie results in a canPlay event.
+
+EVENT(canplaythrough)
+EXPECTED (video.currentTime == '0') OK
+RUN(video.currentTime = video.duration - 0.2)
+EVENT(seeked)
+RUN(video.play())
+EVENT(ended)
+END OF TEST
+
diff --git a/LayoutTests/media/video-currentTime-delay.html b/LayoutTests/media/video-currentTime-delay.html
new file mode 100644
index 0000000..91ce631
--- /dev/null
+++ b/LayoutTests/media/video-currentTime-delay.html
@@ -0,0 +1,34 @@
+<html>
+<body>
+
+ <video controls></video>
+
+ <p>Test a delay in playing the movie results in a canPlay event.</p>
+
+ <script src=media-file.js></script>
+ <script src=video-test.js></script>
+ <script>
+ waitForEvent('canplaythrough',
+ function () {
+ waitForEventAndEnd('ended');
+
+ testExpected("video.currentTime", 0);
+ run("video.currentTime = video.duration - 0.2");
+ });
+
+ waitForEvent('seeked',
+ function () {
+ setTimeout(function() {
+ run("video.play()");
+ }, 400);
+
+ var timeout = 2000;
+ setTimeout(function () { logResult(false, "No 'ended' event in " + timeout/1000 + " seconds"); }, timeout);
+
+ });
+
+ video.src = findMediaFile("video", "content/test");
+ </script>
+
+</body>
+</html>
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 5f9829d..570d83e 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2011-01-14 Jer Noble <jer.noble at apple.com>
+
+ Reviewed by Eric Carlson.
+
+ REGRESSION (r71842): Compass video is not playing in Safari welcome page
+ https://bugs.webkit.org/show_bug.cgi?id=52506
+
+ New test: LayoutTests/media/video-currentTime-delay.html
+
+ Call invalidateCachedTime() every time one of the cached property dependencies changes,
+ i.e. m_paused and m_playbackRate.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::prepareForLoad):
+ (WebCore::HTMLMediaElement::setReadyState):
+ (WebCore::HTMLMediaElement::setPlaybackRate):
+ (WebCore::HTMLMediaElement::mediaPlayerRateChanged):
+
2011-01-20 Beth Dakin <bdakin at apple.com>
Reviewed by Geoffrey Garen.
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp
index 3a63a33..3149b68 100644
--- a/Source/WebCore/html/HTMLMediaElement.cpp
+++ b/Source/WebCore/html/HTMLMediaElement.cpp
@@ -540,6 +540,7 @@ void HTMLMediaElement::prepareForLoad()
refreshCachedTime();
m_paused = true;
m_seeking = false;
+ invalidateCachedTime();
scheduleEvent(eventNames().emptiedEvent);
}
@@ -991,6 +992,7 @@ void HTMLMediaElement::setReadyState(MediaPlayer::ReadyState state)
if (m_autoplaying && m_paused && autoplay()) {
m_paused = false;
+ invalidateCachedTime();
scheduleEvent(eventNames().playEvent);
scheduleEvent(eventNames().playingEvent);
}
@@ -1300,6 +1302,7 @@ void HTMLMediaElement::setPlaybackRate(float rate)
if (m_playbackRate != rate) {
m_playbackRate = rate;
+ invalidateCachedTime();
scheduleEvent(eventNames().ratechangeEvent);
}
if (m_player && potentiallyPlaying() && m_player->rate() != rate)
@@ -1404,6 +1407,7 @@ void HTMLMediaElement::playInternal()
if (m_paused) {
m_paused = false;
+ invalidateCachedTime();
scheduleEvent(eventNames().playEvent);
if (m_readyState <= HAVE_CURRENT_DATA)
@@ -1891,6 +1895,7 @@ void HTMLMediaElement::mediaPlayerRateChanged(MediaPlayer*)
// Stash the rate in case the one we tried to set isn't what the engine is
// using (eg. it can't handle the rate we set)
m_playbackRate = m_player->rate();
+ invalidateCachedTime();
endProcessingMediaPlayerCallback();
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list