Title: [154760] trunk
- Revision
- 154760
- Author
- [email protected]
- Date
- 2013-08-28 11:27:03 -0700 (Wed, 28 Aug 2013)
Log Message
Duplicate in-band tracks when switching <source> elements
https://bugs.webkit.org/show_bug.cgi?id=120369
Patch by Brendan Long <[email protected]> on 2013-08-28
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/track/track-in-band-duplicate-tracks-when-source-changes.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::createMediaPlayer):
Delete existing in-band tracks before creating a new media player.
LayoutTests:
* media/track/track-in-band-duplicate-tracks-when-source-changes.html: Added.
* media/track/track-in-band-duplicate-tracks-when-source-changes-expected.txt: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (154759 => 154760)
--- trunk/LayoutTests/ChangeLog 2013-08-28 17:29:12 UTC (rev 154759)
+++ trunk/LayoutTests/ChangeLog 2013-08-28 18:27:03 UTC (rev 154760)
@@ -1,3 +1,13 @@
+2013-08-28 Brendan Long <[email protected]>
+
+ Duplicate in-band tracks when switching <source> elements
+ https://bugs.webkit.org/show_bug.cgi?id=120369
+
+ Reviewed by Eric Carlson.
+
+ * media/track/track-in-band-duplicate-tracks-when-source-changes.html: Added.
+ * media/track/track-in-band-duplicate-tracks-when-source-changes-expected.txt: Added.
+
2013-08-28 Niklas Nielsen <[email protected]>
[CSS Exclusions] Differentiate names in the simple rectangle test script
Added: trunk/LayoutTests/media/track/track-in-band-duplicate-tracks-when-source-changes-expected.txt (0 => 154760)
--- trunk/LayoutTests/media/track/track-in-band-duplicate-tracks-when-source-changes-expected.txt (rev 0)
+++ trunk/LayoutTests/media/track/track-in-band-duplicate-tracks-when-source-changes-expected.txt 2013-08-28 18:27:03 UTC (rev 154760)
@@ -0,0 +1,13 @@
+When changing the source for a video, we shouldn't get duplicate in-band tracks.
+
+EVENT(canplaythrough)
+
+** Storing number of tracks and reloading video
+EXPECTED (video.textTracks.length > '0') OK
+RUN(numTracks = video.textTracks.length)
+EVENT(canplaythrough)
+
+** Loaded video again, checking if tracks number is the same
+EXPECTED (video.textTracks.length == 'numTracks') OK
+END OF TEST
+
Added: trunk/LayoutTests/media/track/track-in-band-duplicate-tracks-when-source-changes.html (0 => 154760)
--- trunk/LayoutTests/media/track/track-in-band-duplicate-tracks-when-source-changes.html (rev 0)
+++ trunk/LayoutTests/media/track/track-in-band-duplicate-tracks-when-source-changes.html 2013-08-28 18:27:03 UTC (rev 154760)
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <script src=""
+ <script src=""
+ <script>
+ // Don't hard code the number of tracks, because ports may
+ // disagree. All that matters is that the number doesn't change.
+ var numTracks;
+
+ function storeTrackNumber()
+ {
+ consoleWrite("<br><i>** Storing number of tracks and reloading video</i>");
+ testExpected("video.textTracks.length", 0, ">");
+ run("numTracks = video.textTracks.length");
+
+ var source = document.createElement("source");
+ source.src = '';
+ video.replaceChild(source, video.firstChild);
+
+ waitForEventAndEnd("canplaythrough", checkTrackNumber);
+ }
+
+ function checkTrackNumber()
+ {
+ consoleWrite("<br><i>** Loaded video again, checking if tracks number is the same</i>");
+ reportExpected(video.textTracks.length == numTracks, "video.textTracks.length", "==", "numTracks", numTracks);
+ }
+
+ function setup()
+ {
+ findMediaElement();
+ // This bug only occurs when using the <source> element.
+ // Don't change this to use video.src.
+ var source = document.createElement("source");
+ source.src = '';
+ video.appendChild(source);
+ waitForEventOnce('canplaythrough', storeTrackNumber);
+ }
+
+ </script>
+ </head>
+ <body _onload_="setup()">
+ <video controls></video>
+ <p>When changing the source for a video, we shouldn't get duplicate in-band tracks.</p>
+ </body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (154759 => 154760)
--- trunk/Source/WebCore/ChangeLog 2013-08-28 17:29:12 UTC (rev 154759)
+++ trunk/Source/WebCore/ChangeLog 2013-08-28 18:27:03 UTC (rev 154760)
@@ -1,3 +1,16 @@
+2013-08-28 Brendan Long <[email protected]>
+
+ Duplicate in-band tracks when switching <source> elements
+ https://bugs.webkit.org/show_bug.cgi?id=120369
+
+ Reviewed by Eric Carlson.
+
+ Test: media/track/track-in-band-duplicate-tracks-when-source-changes.html
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::createMediaPlayer):
+ Delete existing in-band tracks before creating a new media player.
+
2013-08-28 Bem Jones-Bey <[email protected]>
Code cleanup: rename FloatIntervalSearchAdapter and remove unnecessary inlines
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (154759 => 154760)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2013-08-28 17:29:12 UTC (rev 154759)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2013-08-28 18:27:03 UTC (rev 154760)
@@ -4793,6 +4793,9 @@
m_mediaSource->setReadyState(MediaSource::closedKeyword());
#endif
+#if ENABLE(VIDEO_TRACK)
+ removeAllInbandTracks();
+#endif
m_player = MediaPlayer::create(this);
#if ENABLE(WEB_AUDIO)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes