Bug 1308388. P1 - use the 'once' handler. r?kaku draft
authorJW Wang <jwwang@mozilla.com>
Tue, 07 Mar 2017 13:29:54 +0800
changeset 494493 1a827b6daa254482c3c0515c2a0d71cd897520b0
parent 494492 10900b1df79ef9f20930c9769072e3fcf8ed669d
child 494494 920d2545ef381053da77effc29839592eb74625c
push id48036
push userjwwang@mozilla.com
push dateTue, 07 Mar 2017 06:07:06 +0000
reviewerskaku
bugs1308388
milestone55.0a1
Bug 1308388. P1 - use the 'once' handler. r?kaku MozReview-Commit-ID: K0Mg8iZKcqn
dom/media/test/test_buffered.html
--- a/dom/media/test/test_buffered.html
+++ b/dom/media/test/test_buffered.html
@@ -9,60 +9,59 @@ https://bugzilla.mozilla.org/show_bug.cg
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
   <script type="text/javascript" src="manifest.js"></script>
 </head>
 <body>
 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=462957">Mozilla Bug 462957</a>
 
 <p id="display"></p>
 <div id="content" style="display: none">
-  
+
 </div>
 <pre id="test">
 <script type="application/javascript">
 
 // Test for Bug 462957; HTMLMediaElement.buffered.
 
 var manager = new MediaTestManager;
 
 function testBuffered(e) {
   var v = e.target;
-  v.removeEventListener('timeupdate', testBuffered);
-  
+
   // The whole media should be buffered...
   var b = v.buffered;
   is(b.length, 1, v._name + ": Should be buffered in one range");
   is(b.start(0), 0, v._name + ": First range start should be media start");
   ok(Math.abs(b.end(0) - v.duration) < 0.1, v._name + ": First range end should be media end");
 
   // Ensure INDEX_SIZE_ERR is thrown when we access outside the range
   var caught = false;
   try {
     b.start(-1);
   } catch (e) {
     caught = e.name == "IndexSizeError" && e.code == DOMException.INDEX_SIZE_ERR;
   }
   is(caught, true, v._name + ": Should throw INDEX_SIZE_ERR on under start bounds range");
-  
+
   caught = false;
   try {
     b.end(-1);
   } catch (e) {
     caught = e.name == "IndexSizeError" && e.code == DOMException.INDEX_SIZE_ERR;
   }
   is(caught, true, v._name + ": Should throw INDEX_SIZE_ERR on under end bounds range");
 
   caught = false;
   try {
     b.start(b.length);
   } catch (e) {
     caught = e.name == "IndexSizeError" && e.code == DOMException.INDEX_SIZE_ERR;
   }
   is(caught, true, v._name + ": Should throw INDEX_SIZE_ERR on over start bounds range");
-  
+
   caught = false;
   try {
     b.end(b.length);
   } catch (e) {
     caught = e.name == "IndexSizeError" && e.code == DOMException.INDEX_SIZE_ERR;
   }
   is(caught, true, v._name + ": Should throw INDEX_SIZE_ERR on over end bounds range");
 
@@ -95,17 +94,17 @@ function startTest(test, token) {
   // we have deterministic behaviour.
   var onfetched = function(uri) {
     var v = document.createElement('video');
     v.autoplay = true;
     v._token = token;
     v.src = uri;
     v._name = test.name;
     v._test = test;
-    v.addEventListener("timeupdate", testBuffered);
+    v.addEventListener("timeupdate", testBuffered, {once: true});
     document.body.appendChild(v);
   };
 
   manager.started(token);
   fetch(test.name, onfetched);
 }
 
 // Note: No need to set media test prefs, since we're using XHR to fetch