Title: [87323] trunk
Revision
87323
Author
scher...@chromium.org
Date
2011-05-25 14:47:39 -0700 (Wed, 25 May 2011)

Log Message

2011-05-25  Andrew Scherkus  <scher...@chromium.org>

        Reviewed by Eric Carlson.

        Fix media element regression where ended event stopped firing after changing the src attribute.

        https://bugs.webkit.org/show_bug.cgi?id=61336

        * media/media-ended-expected.txt: Added.
        * media/media-ended.html: Added.
2011-05-25  Andrew Scherkus  <scher...@chromium.org>

        Reviewed by Eric Carlson.

        Fix media element regression where ended event stopped firing after changing the src attribute.

        https://bugs.webkit.org/show_bug.cgi?id=61336

        Test: media/media-ended.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::prepareForLoad):

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (87322 => 87323)


--- trunk/LayoutTests/ChangeLog	2011-05-25 21:38:31 UTC (rev 87322)
+++ trunk/LayoutTests/ChangeLog	2011-05-25 21:47:39 UTC (rev 87323)
@@ -1,3 +1,14 @@
+2011-05-25  Andrew Scherkus  <scher...@chromium.org>
+
+        Reviewed by Eric Carlson.
+
+        Fix media element regression where ended event stopped firing after changing the src attribute.
+
+        https://bugs.webkit.org/show_bug.cgi?id=61336
+
+        * media/media-ended-expected.txt: Added.
+        * media/media-ended.html: Added.
+
 2011-05-25  Jer Noble  <jer.no...@apple.com>
 
         Reviewed by Darin Adler.

Added: trunk/LayoutTests/media/media-ended-expected.txt (0 => 87323)


--- trunk/LayoutTests/media/media-ended-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/media/media-ended-expected.txt	2011-05-25 21:47:39 UTC (rev 87323)
@@ -0,0 +1,13 @@
+Test ended by:
+
+Play to the end.
+When 'ended' event fires, change the source.
+Verify that 'ended' event fires again on different source.
+EVENT(ended)
+EXPECTED (audio.ended == 'true') OK
+EXPECTED (audio.ended == 'false') OK
+
+EVENT(ended)
+EXPECTED (audio.ended == 'true') OK
+END OF TEST
+

Added: trunk/LayoutTests/media/media-ended.html (0 => 87323)


--- trunk/LayoutTests/media/media-ended.html	                        (rev 0)
+++ trunk/LayoutTests/media/media-ended.html	2011-05-25 21:47:39 UTC (rev 87323)
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <script src=""
+        <script src=""
+
+        <script>
+            var endedCount = 0;
+            var canplaythroughCount = 0;
+            var audio;
+
+            function start()
+            {
+                audio = document.querySelector("audio");
+                waitForEvent("ended", ended);
+
+                audio.src = "" "content/silence")
+            }
+
+            function ended()
+            {
+                switch (++endedCount)
+                {
+                    case 1:
+                        testExpected("audio.ended", true);
+
+                        // Change src but don't seek so that internal state isn't reset.
+                        audio.src = "" "content/silence")
+                        testExpected("audio.ended", false);
+
+                        consoleWrite("");
+                        break;
+                    case 2:
+                        testExpected("audio.ended", true);
+                        endTest();
+                        break;
+                }
+            }
+        </script>
+    </head>
+    <body _onload_="start()">
+        <audio controls autoplay></audio>
+        <p><b>Test ended by:</b>
+        <ol>
+            <li>Play to the end.</li>
+            <li>When 'ended' event fires, change the source.</li>
+            <li>Verify that 'ended' event fires again on different source.</li>
+        </ol>
+        </p>
+    </body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (87322 => 87323)


--- trunk/Source/WebCore/ChangeLog	2011-05-25 21:38:31 UTC (rev 87322)
+++ trunk/Source/WebCore/ChangeLog	2011-05-25 21:47:39 UTC (rev 87323)
@@ -1,3 +1,16 @@
+2011-05-25  Andrew Scherkus  <scher...@chromium.org>
+
+        Reviewed by Eric Carlson.
+
+        Fix media element regression where ended event stopped firing after changing the src attribute.
+
+        https://bugs.webkit.org/show_bug.cgi?id=61336
+
+        Test: media/media-ended.html
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::prepareForLoad):
+
 2011-05-25  Jer Noble  <jer.no...@apple.com>
 
         Reviewed by Darin Adler.

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (87322 => 87323)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2011-05-25 21:38:31 UTC (rev 87322)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2011-05-25 21:47:39 UTC (rev 87323)
@@ -515,6 +515,7 @@
     // Perform the cleanup required for the resource load algorithm to run.
     stopPeriodicTimers();
     m_loadTimer.stop();
+    m_sentEndEvent = false;
     m_sentStalledEvent = false;
     m_haveFiredLoadedData = false;
     m_completelyLoaded = false;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to