Bug 1357040: P3. Don't expect that all data has been processed after metadata. r?gerald draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Fri, 28 Apr 2017 00:52:44 +0200
changeset 571845 18f0815dd4996e08154bc17f9d2990a552c894ce
parent 571844 e1f39b38bdea0c14e5632d6aaaf58c1b9d5c84b1
child 571846 80ecba8ef948283d3ef5cdafd82b3b204a729d40
push id56921
push userbmo:jyavenard@mozilla.com
push dateWed, 03 May 2017 10:07:51 +0000
reviewersgerald
bugs1357040
milestone55.0a1
Bug 1357040: P3. Don't expect that all data has been processed after metadata. r?gerald Following P2, the init segment is processed as soon as it's available. Assuming that the buffered range has been updated when loadedmetadata was fired was wrong. Only once the data has been fully appended to the source buffer, can seeking complete. MozReview-Commit-ID: LRY0PRaMEw9
dom/media/mediasource/test/test_BufferedSeek.html
dom/media/mediasource/test/test_BufferedSeek_mp4.html
--- a/dom/media/mediasource/test/test_BufferedSeek.html
+++ b/dom/media/mediasource/test/test_BufferedSeek.html
@@ -29,22 +29,17 @@ runWithMSE(function (ms, v) {
           ms.endOfStream();
         };
       });
     });
 
     var target = 2;
 
     v.addEventListener("loadedmetadata", function () {
-      if (v.currentTime != target &&
-          v.buffered.length &&
-          target >= v.buffered.start(0) &&
-          target < v.buffered.end(0)) {
-        v.currentTime = target;
-      }
+      v.currentTime = target;
     });
 
     var wasSeeking = false;
 
     v.addEventListener("seeking", function () {
       wasSeeking = true;
       is(v.currentTime, target, "Video currentTime at target");
     });
--- a/dom/media/mediasource/test/test_BufferedSeek_mp4.html
+++ b/dom/media/mediasource/test/test_BufferedSeek_mp4.html
@@ -29,22 +29,17 @@ runWithMSE(function (ms, v) {
           ms.endOfStream();
         };
       });
     });
 
     var target = 1.3;
 
     v.addEventListener("loadedmetadata", function () {
-      if (v.currentTime != target &&
-          v.buffered.length &&
-          target >= v.buffered.start(0) &&
-          target < v.buffered.end(0)) {
-        v.currentTime = target;
-      }
+      v.currentTime = target;
     });
 
     var wasSeeking = false;
 
     v.addEventListener("seeking", function () {
       wasSeeking = true;
       is(v.currentTime, target, "Video currentTime at target");
     });