Bug 1431255 - Part VIII, Adjust videocontrols tests to test on UA Widget r=jaws
authorTimothy Guan-tin Chien <timdream@gmail.com>
Fri, 06 Jul 2018 13:27:12 +0800
changeset 480162 b12fb0dc3b49780879096c4d844fe5c9b057d502
parent 480161 06335a11cf2ad167ad4118747fd102485a712c4b
child 480163 203715029040010da6230c44f60c942d55b5bc27
push id224
push userfmarier@mozilla.com
push dateFri, 17 Aug 2018 00:53:15 +0000
reviewersjaws
bugs1431255
milestone63.0a1
Bug 1431255 - Part VIII, Adjust videocontrols tests to test on UA Widget r=jaws Duplicates the unchanged tests to xbl dir, ensuring the legacy XBL videocontrols continue to work. Opt out of related reftests until we've found a way to load the UA Widget in reftests. Also opt out of DevTools test until a decision is made on the representation of UA Widgets in the inspector. MozReview-Commit-ID: 9sDD7xeuv2H
devtools/client/inspector/markup/test/browser.ini
layout/reftests/bugs/reftest.list
toolkit/content/tests/moz.build
toolkit/content/tests/widgets/chrome.ini
toolkit/content/tests/widgets/head.js
toolkit/content/tests/widgets/mochitest.ini
toolkit/content/tests/widgets/test_audiocontrols_dimensions.html
toolkit/content/tests/widgets/test_videocontrols.html
toolkit/content/tests/widgets/test_videocontrols_error.html
toolkit/content/tests/widgets/test_videocontrols_iframe_fullscreen.html
toolkit/content/tests/widgets/test_videocontrols_keyhandler.html
toolkit/content/tests/widgets/test_videocontrols_size.html
toolkit/content/tests/widgets/test_videocontrols_video_noaudio.html
toolkit/content/tests/widgets/test_videocontrols_vtt.html
toolkit/content/tests/widgets/xbl/chrome.ini
toolkit/content/tests/widgets/xbl/head.js
toolkit/content/tests/widgets/xbl/mochitest.ini
toolkit/content/tests/widgets/xbl/test_audiocontrols_dimensions.html
toolkit/content/tests/widgets/xbl/test_bug898940.html
toolkit/content/tests/widgets/xbl/test_videocontrols.html
toolkit/content/tests/widgets/xbl/test_videocontrols_audio.html
toolkit/content/tests/widgets/xbl/test_videocontrols_audio_direction.html
toolkit/content/tests/widgets/xbl/test_videocontrols_error.html
toolkit/content/tests/widgets/xbl/test_videocontrols_iframe_fullscreen.html
toolkit/content/tests/widgets/xbl/test_videocontrols_jsdisabled.html
toolkit/content/tests/widgets/xbl/test_videocontrols_keyhandler.html
toolkit/content/tests/widgets/xbl/test_videocontrols_onclickplay.html
toolkit/content/tests/widgets/xbl/test_videocontrols_orientation.html
toolkit/content/tests/widgets/xbl/test_videocontrols_size.html
toolkit/content/tests/widgets/xbl/test_videocontrols_standalone.html
toolkit/content/tests/widgets/xbl/test_videocontrols_video_direction.html
toolkit/content/tests/widgets/xbl/test_videocontrols_video_noaudio.html
toolkit/content/tests/widgets/xbl/test_videocontrols_vtt.html
--- a/devtools/client/inspector/markup/test/browser.ini
+++ b/devtools/client/inspector/markup/test/browser.ini
@@ -1,11 +1,12 @@
 [DEFAULT]
 tags = devtools
 subsuite = devtools
+prefs = dom.ua_widget.enabled=false
 support-files =
   doc_markup_anonymous.html
   doc_markup_anonymous_xul.xul
   doc_markup_dragdrop.html
   doc_markup_dragdrop_autoscroll_01.html
   doc_markup_dragdrop_autoscroll_02.html
   doc_markup_edit.html
   doc_markup_events_01.html
--- a/layout/reftests/bugs/reftest.list
+++ b/layout/reftests/bugs/reftest.list
@@ -1169,21 +1169,22 @@ fails-if(Android) fails-if(usesRepeatRes
 fails-if(Android) fails-if(usesRepeatResampling) fails-if(webrender) == 446100-1c.html about:blank
 fails-if(usesRepeatResampling) fails-if(webrender) == 446100-1d.html about:blank
 fails-if(usesRepeatResampling) fails-if(webrender) == 446100-1e.html about:blank
 == 446100-1f.html about:blank
 fails-if(usesRepeatResampling) fails-if(Android) fails-if(webrender) == 446100-1g.html about:blank
 == 446100-1h.html about:blank
 == 447749-1.html 447749-1-ref.html
 fuzzy(0-127,0-2) fails-if(webrender) == 448193.html 448193-ref.html # bug 1382896 for webrender
-!= 449149-1a.html about:blank
-!= 449149-1b.html about:blank
+# There isn't a way to load UA Widget in reftest yet.
+test-pref(dom.ua_widget.enabled,false) != 449149-1a.html about:blank
+test-pref(dom.ua_widget.enabled,false) != 449149-1b.html about:blank
 # Retry the above with XBL scopes
-test-pref(dom.use_xbl_scopes_for_remote_xul,true) != 449149-1a.html about:blank
-test-pref(dom.use_xbl_scopes_for_remote_xul,true) != 449149-1b.html about:blank
+test-pref(dom.ua_widget.enabled,false) test-pref(dom.use_xbl_scopes_for_remote_xul,true) != 449149-1a.html about:blank
+test-pref(dom.ua_widget.enabled,false) test-pref(dom.use_xbl_scopes_for_remote_xul,true) != 449149-1b.html about:blank
 == 449149-2.html 449149-2-ref.html
 == 449171-1.html 449171-ref.html
 == 449362-1.html 449362-1-ref.html
 fuzzy-if(webrender,0-4,0-361) == 449519-1.html 449519-1-ref.html
 == 450670-1.html 450670-1-ref.html
 == 451168-1.html 451168-1-ref.html
 == 451876-1.html 451876-1-ref.html
 == 451876-2.html 451876-2-ref.html
--- a/toolkit/content/tests/moz.build
+++ b/toolkit/content/tests/moz.build
@@ -6,14 +6,16 @@
 
 XPCSHELL_TESTS_MANIFESTS += ['unit/xpcshell.ini']
 
 BROWSER_CHROME_MANIFESTS += ['browser/browser.ini']
 
 MOCHITEST_CHROME_MANIFESTS += [
     'chrome/chrome.ini',
     'widgets/chrome.ini',
+    'widgets/xbl/chrome.ini',
 ]
 
 MOCHITEST_MANIFESTS += [
     'mochitest/mochitest.ini',
     'widgets/mochitest.ini',
+    'widgets/xbl/mochitest.ini',
 ]
--- a/toolkit/content/tests/widgets/chrome.ini
+++ b/toolkit/content/tests/widgets/chrome.ini
@@ -1,9 +1,12 @@
 [DEFAULT]
+prefs =
+  dom.ua_widget.enabled=true
+  dom.webcomponents.shadowdom.enabled=true
 skip-if = os == 'android'
 support-files =
   tree_shared.js
   popup_shared.js
   window_menubar.xul
   seek_with_sound.ogg
 
 [test_contextmenu_nested.xul]
--- a/toolkit/content/tests/widgets/head.js
+++ b/toolkit/content/tests/widgets/head.js
@@ -21,23 +21,18 @@ function waitForCondition(condition, nex
     if (conditionPassed) {
       moveOn();
     }
     tries++;
   }, 100);
   var moveOn = function() { clearInterval(interval); nextTest(); };
 }
 
-function getAnonElementWithinVideoByAttribute(video, aName, aValue) {
-  // <videocontrols> is the second anonymous child node of <video>, but
-  // the first child node of <audio>.
-  const videoControlIndex = video.nodeName == "VIDEO" ? 1 : 0;
-  const videoControl = InspectorUtils.getChildrenForNode(video, true)[videoControlIndex];
-
-  return videoControl.ownerDocument
-    .getAnonymousElementByAttribute(videoControl, aName, aValue);
+function getElementWithinVideo(video, aValue) {
+  const shadowRoot = SpecialPowers.wrap(video).openOrClosedShadowRoot;
+  return shadowRoot.getElementById(aValue);
 }
 
 function executeTests() {
   return tests
     .map(fn => () => new Promise(fn))
     .reduce((promise, task) => promise.then(task), Promise.resolve());
 }
--- a/toolkit/content/tests/widgets/mochitest.ini
+++ b/toolkit/content/tests/widgets/mochitest.ini
@@ -1,9 +1,12 @@
 [DEFAULT]
+prefs =
+  dom.ua_widget.enabled=true
+  dom.webcomponents.shadowdom.enabled=true
 support-files =
   audio.wav
   audio.ogg
   file_videocontrols_jsdisabled.html
   seek_with_sound.ogg
   video.ogg
   head.js
   tree_shared.js
@@ -18,32 +21,42 @@ support-files =
   videocontrols_direction-2b.html
   videocontrols_direction-2c.html
   videocontrols_direction-2d.html
   videocontrols_direction-2e.html
   videocontrols_direction_test.js
   videomask.css
 
 [test_audiocontrols_dimensions.html]
+skip-if = toolkit == 'android' # Bug 1483656
 [test_mousecapture_area.html]
-skip-if = (verify && debug)
+skip-if = (verify && debug) || toolkit == 'android' # Bug 1483656 (android)
 [test_ua_widget.html]
+skip-if = toolkit == 'android' # Bug 1483656
 [test_videocontrols.html]
 tags = fullscreen
 skip-if = toolkit == 'android' || (verify && debug && (os == 'linux')) #TIMED_OUT
 [test_videocontrols_keyhandler.html]
 skip-if = toolkit == 'android'
 [test_videocontrols_vtt.html]
+skip-if = toolkit == 'android' # Bug 1483656
 [test_videocontrols_iframe_fullscreen.html]
+skip-if = toolkit == 'android' # Bug 1483656
 [test_videocontrols_size.html]
+skip-if = toolkit == 'android' # Bug 1483656
 [test_videocontrols_audio.html]
+skip-if = toolkit == 'android' # Bug 1483656
 [test_videocontrols_audio_direction.html]
+skip-if = toolkit == 'android' # Bug 1483656
 [test_videocontrols_jsdisabled.html]
-skip-if = toolkit == 'android' # bug 1272646
+skip-if = toolkit == 'android' # bug 1272646 & bug 1483656
 [test_videocontrols_standalone.html]
-skip-if = toolkit == 'android' # bug 1075573
+skip-if = toolkit == 'android' # bug 1075573 & bug 1483656
 [test_videocontrols_video_direction.html]
-skip-if = os == 'win'
+skip-if = os == 'win' || toolkit == 'android' # Bug 1483656 (android)
 [test_videocontrols_video_noaudio.html]
+skip-if = toolkit == 'android' # Bug 1483656
 [test_bug898940.html]
+skip-if = toolkit == 'android' # Bug 1483656
 [test_videocontrols_error.html]
+skip-if = toolkit == 'android' # Bug 1483656
 [test_videocontrols_orientation.html]
-run-if = toolkit == 'android'
+skip-if = true # Bug 1483656
--- a/toolkit/content/tests/widgets/test_audiocontrols_dimensions.html
+++ b/toolkit/content/tests/widgets/test_audiocontrols_dimensions.html
@@ -12,17 +12,17 @@
 
 <div id="content">
   <audio id="audio" controls preload="auto"></audio>
 </div>
 
 <pre id="test">
 <script class="testbody" type="text/javascript">
   const audio = document.getElementById("audio");
-  const controlBar = getAnonElementWithinVideoByAttribute(audio, "anonid", "controlBar");
+  const controlBar = getElementWithinVideo(audio, "controlBar");
 
   add_task(async function setup() {
     await SpecialPowers.pushPrefEnv({"set": [["media.cache_size", 40000]]});
     await new Promise(resolve => {
       audio.addEventListener("loadedmetadata", resolve, {once: true});
       audio.src = "audio.wav";
     });
   });
--- a/toolkit/content/tests/widgets/test_videocontrols.html
+++ b/toolkit/content/tests/widgets/test_videocontrols.html
@@ -57,23 +57,23 @@ const scrubberOffsetX = controlBarMargin
 const scrubberCenterY = videoHeight - Math.round(scrubberHeight / 2);
 
 const video = document.getElementById("video");
 
 let expectingEvents;
 let expectingEventPromise;
 
 async function isMuteButtonMuted() {
-  const muteButton = getAnonElementWithinVideoByAttribute(video, "anonid", "muteButton");
+  const muteButton = getElementWithinVideo(video, "muteButton");
   await new Promise(SimpleTest.executeSoon);
   return muteButton.getAttribute("muted") === "true";
 }
 
 async function isVolumeSliderShowingCorrectVolume(expectedVolume) {
-  const volumeControl = getAnonElementWithinVideoByAttribute(video, "anonid", "volumeControl");
+  const volumeControl = getElementWithinVideo(video, "volumeControl");
   await new Promise(SimpleTest.executeSoon);
   is(+volumeControl.value, expectedVolume * 100, "volume slider should match expected volume");
 }
 
 function forceReframe() {
   // Setting display then getting the bounding rect to force a frame
   // reconstruction on the video element.
   video.style.display = "block";
@@ -389,17 +389,17 @@ add_task(async function ensure_video_pau
 add_task(async function ensure_fullscreen_cursor() {
   video.removeAttribute("mozNoDynamicControls");
   video.play();
   await waitForEvent("play");
 
   video.mozRequestFullScreen();
   await waitForEvent("mozfullscreenchange");
 
-  const controlsSpacer = getAnonElementWithinVideoByAttribute(video, "anonid", "controlsSpacer");
+  const controlsSpacer = getElementWithinVideo(video, "controlsSpacer");
   is(controlsSpacer.hasAttribute("hideCursor"), true, "Cursor is hidden");
 
   // Wiggle the mouse a bit
   synthesizeMouse(video, playButtonCenterX, playButtonCenterY, { type: "mousemove" });
 
   is(controlsSpacer.hasAttribute("hideCursor"), false, "Cursor is shown");
 
   // Restore
--- a/toolkit/content/tests/widgets/test_videocontrols_error.html
+++ b/toolkit/content/tests/widgets/test_videocontrols_error.html
@@ -13,18 +13,18 @@
 
 <div id="content">
   <video id="video" controls preload="auto"></video>
 </div>
 
 <pre id="test">
 <script clas="testbody" type="application/javascript">
   const video = document.getElementById("video");
-  const statusOverlay = getAnonElementWithinVideoByAttribute(video, "anonid", "statusOverlay");
-  const statusIcon = getAnonElementWithinVideoByAttribute(video, "anonid", "statusIcon");
+  const statusOverlay = getElementWithinVideo(video, "statusOverlay");
+  const statusIcon = getElementWithinVideo(video, "statusIcon");
 
   add_task(async function setup() {
     await new Promise(resolve => window.addEventListener("load", resolve, {once: true}));
     await SpecialPowers.pushPrefEnv({"set": [["media.cache_size", 40000]]});
   });
 
   add_task(async function check_normal_status() {
     await new Promise(resolve => {
--- a/toolkit/content/tests/widgets/test_videocontrols_iframe_fullscreen.html
+++ b/toolkit/content/tests/widgets/test_videocontrols_iframe_fullscreen.html
@@ -1,51 +1,46 @@
 <!DOCTYPE HTML>
 <html>
 <head>
   <title>Video controls test - iframe</title>
   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
+  <script type="text/javascript" src="head.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
 </head>
 <body>
 <p id="display"></p>
 
 <div id="content">
 <iframe id="ifr1"></iframe>
 <iframe id="ifr2" allowfullscreen></iframe>
 </div>
 
 <pre id="test">
 <script clas="testbody" type="application/javascript">
   SimpleTest.waitForExplicitFinish();
 
-  const InspectorUtils = SpecialPowers.InspectorUtils;
-
   const iframe1 = document.getElementById("ifr1");
   const iframe2 = document.getElementById("ifr2");
   const testCases = [];
 
   function checkIframeFullscreenAvailable(ifr) {
     const available = ifr.hasAttribute("allowfullscreen");
     let video;
 
     return () => new Promise(resolve => {
       ifr.srcdoc = `<video id="video" controls preload="auto"></video>`;
       ifr.addEventListener("load", resolve);
     }).then(() => new Promise(resolve => {
       video = ifr.contentDocument.getElementById("video");
       video.src = "seek_with_sound.ogg";
       video.addEventListener("loadedmetadata", resolve);
     })).then(() => new Promise(resolve => {
-      const children = InspectorUtils.getChildrenForNode(video, true);
-      const videoControl = children[1];
-      const doc = SpecialPowers.wrap(video.ownerDocument);
-      const controlBar = doc.getAnonymousElementByAttribute(
-        videoControl, "class", "controlBar");
+      const controlBar = getElementWithinVideo(video, "controlBar");
 
       is(controlBar.getAttribute("fullscreen-unavailable") == "true", !available, "The controlbar should have an attribute marking whether fullscreen is available that corresponds to if the iframe has the allowfullscreen attribute.");
       resolve();
     }));
   }
 
   function start() {
     testCases.reduce((promise, task) => promise.then(task), Promise.resolve());
--- a/toolkit/content/tests/widgets/test_videocontrols_keyhandler.html
+++ b/toolkit/content/tests/widgets/test_videocontrols_keyhandler.html
@@ -14,19 +14,19 @@
   <video id="video" controls preload="auto"></video>
 </div>
 
 <pre id="test">
 <script class="testbody" type="application/javascript">
   SimpleTest.waitForExplicitFinish();
   const video = document.getElementById("video");
 
-  const playButton = getAnonElementWithinVideoByAttribute(video, "anonid", "playButton");
-  const scrubber = getAnonElementWithinVideoByAttribute(video, "anonid", "scrubber");
-  const volumeStack = getAnonElementWithinVideoByAttribute(video, "anonid", "volumeStack");
+  const playButton = getElementWithinVideo(video, "playButton");
+  const scrubber = getElementWithinVideo(video, "scrubber");
+  const volumeStack = getElementWithinVideo(video, "volumeStack");
 
   // Setup video
   tests.push(done => {
     SpecialPowers.pushPrefEnv({"set": [["media.cache_size", 40000]]}, done);
   }, done => {
     video.src = "seek_with_sound.ogg";
     video.addEventListener("loadedmetadata", done);
   });
--- a/toolkit/content/tests/widgets/test_videocontrols_size.html
+++ b/toolkit/content/tests/widgets/test_videocontrols_size.html
@@ -70,25 +70,25 @@
     video.style.display = "";
 
     const videoRect = video.getBoundingClientRect();
 
     const videoHeight = video.clientHeight;
     const videoWidth = video.clientWidth;
 
     const videoSizeMsg = `size:${videoRect.width}x${videoRect.height} -`;
-    const controlBar = getAnonElementWithinVideoByAttribute(video, "anonid", "controlBar");
-    const playBtn = getAnonElementWithinVideoByAttribute(video, "anonid", "playButton");
-    const scrubber = getAnonElementWithinVideoByAttribute(video, "anonid", "scrubberStack");
-    const positionDurationBox = getAnonElementWithinVideoByAttribute(video, "anonid", "positionDurationBox");
+    const controlBar = getElementWithinVideo(video, "controlBar");
+    const playBtn = getElementWithinVideo(video, "playButton");
+    const scrubber = getElementWithinVideo(video, "scrubberStack");
+    const positionDurationBox = getElementWithinVideo(video, "positionDurationBox");
     const durationLabel = positionDurationBox.getElementsByTagName("span")[0];
-    const muteBtn = getAnonElementWithinVideoByAttribute(video, "anonid", "muteButton");
-    const volumeStack = getAnonElementWithinVideoByAttribute(video, "anonid", "volumeStack");
-    const fullscreenBtn = getAnonElementWithinVideoByAttribute(video, "anonid", "fullscreenButton");
-    const clickToPlay = getAnonElementWithinVideoByAttribute(video, "anonid", "clickToPlay");
+    const muteBtn = getElementWithinVideo(video, "muteButton");
+    const volumeStack = getElementWithinVideo(video, "volumeStack");
+    const fullscreenBtn = getElementWithinVideo(video, "fullscreenButton");
+    const clickToPlay = getElementWithinVideo(video, "clickToPlay");
 
 
     // Controls should show/hide according to the priority
     const prioritizedControls = [
       playBtn,
       muteBtn,
       fullscreenBtn,
       positionDurationBox,
--- a/toolkit/content/tests/widgets/test_videocontrols_video_noaudio.html
+++ b/toolkit/content/tests/widgets/test_videocontrols_video_noaudio.html
@@ -13,18 +13,18 @@
 
 <div id="content">
   <video id="video" controls preload="auto"></video>
 </div>
 
 <pre id="test">
 <script clas="testbody" type="application/javascript">
   const video = document.getElementById("video");
-  const muteButton = getAnonElementWithinVideoByAttribute(video, "anonid", "muteButton");
-  const volumeStack = getAnonElementWithinVideoByAttribute(video, "anonid", "volumeStack");
+  const muteButton = getElementWithinVideo(video, "muteButton");
+  const volumeStack = getElementWithinVideo(video, "volumeStack");
 
   add_task(async function setup() {
     await new Promise(resolve => window.addEventListener("load", resolve));
     await SpecialPowers.pushPrefEnv({"set": [["media.cache_size", 40000]]});
     await new Promise(resolve => {
       video.src = "video.ogg";
       video.addEventListener("loadedmetadata", () => SimpleTest.executeSoon(resolve));
     });
--- a/toolkit/content/tests/widgets/test_videocontrols_vtt.html
+++ b/toolkit/content/tests/widgets/test_videocontrols_vtt.html
@@ -15,18 +15,18 @@
   <video id="video" controls preload="auto"></video>
 </div>
 
 <pre id="test">
 <script clas="testbody" type="application/javascript">
   SimpleTest.waitForExplicitFinish();
 
   const video = document.getElementById("video");
-  const ccBtn = getAnonElementWithinVideoByAttribute(video, "anonid", "closedCaptionButton");
-  const ttList = getAnonElementWithinVideoByAttribute(video, "anonid", "textTrackList");
+  const ccBtn = getElementWithinVideo(video, "closedCaptionButton");
+  const ttList = getElementWithinVideo(video, "textTrackList");
 
   add_task(async function wait_for_media_ready() {
     await new Promise(resolve => window.addEventListener("load", resolve, {once: true}));
     await SpecialPowers.pushPrefEnv({"set": [["media.cache_size", 40000]]});
     await new Promise(resolve => {
       video.src = "seek_with_sound.ogg";
       video.addEventListener("loadedmetadata", resolve);
     });
copy from toolkit/content/tests/widgets/chrome.ini
copy to toolkit/content/tests/widgets/xbl/chrome.ini
--- a/toolkit/content/tests/widgets/chrome.ini
+++ b/toolkit/content/tests/widgets/xbl/chrome.ini
@@ -1,20 +1,8 @@
 [DEFAULT]
+prefs =
+  dom.ua_widget.enabled=false
 skip-if = os == 'android'
 support-files =
-  tree_shared.js
-  popup_shared.js
-  window_menubar.xul
-  seek_with_sound.ogg
+  ../seek_with_sound.ogg
 
-[test_contextmenu_nested.xul]
-skip-if = os == 'linux' # Bug 1116215
-[test_contextmenu_menugroup.xul]
-skip-if = os == 'linux' # Bug 1115088
-[test_editor_currentURI.xul]
-[test_menubar.xul]
-skip-if = os == 'mac'
-[test_popupanchor.xul]
-skip-if = os == 'linux' || (verify && (os == 'win')) # Bug 1335894 perma-fail on linux 16.04
-[test_popupreflows.xul]
-[test_tree_column_reorder.xul]
 [test_videocontrols_onclickplay.html]
copy from toolkit/content/tests/widgets/head.js
copy to toolkit/content/tests/widgets/xbl/head.js
copy from toolkit/content/tests/widgets/mochitest.ini
copy to toolkit/content/tests/widgets/xbl/mochitest.ini
--- a/toolkit/content/tests/widgets/mochitest.ini
+++ b/toolkit/content/tests/widgets/xbl/mochitest.ini
@@ -1,36 +1,34 @@
 [DEFAULT]
+prefs =
+  dom.ua_widget.enabled=false
 support-files =
-  audio.wav
-  audio.ogg
-  file_videocontrols_jsdisabled.html
-  seek_with_sound.ogg
-  video.ogg
+  ../audio.wav
+  ../audio.ogg
+  ../file_videocontrols_jsdisabled.html
+  ../seek_with_sound.ogg
+  ../video.ogg
   head.js
-  tree_shared.js
-  videocontrols_direction-1-ref.html
-  videocontrols_direction-1a.html
-  videocontrols_direction-1b.html
-  videocontrols_direction-1c.html
-  videocontrols_direction-1d.html
-  videocontrols_direction-1e.html
-  videocontrols_direction-2-ref.html
-  videocontrols_direction-2a.html
-  videocontrols_direction-2b.html
-  videocontrols_direction-2c.html
-  videocontrols_direction-2d.html
-  videocontrols_direction-2e.html
-  videocontrols_direction_test.js
-  videomask.css
+  ../videocontrols_direction-1-ref.html
+  ../videocontrols_direction-1a.html
+  ../videocontrols_direction-1b.html
+  ../videocontrols_direction-1c.html
+  ../videocontrols_direction-1d.html
+  ../videocontrols_direction-1e.html
+  ../videocontrols_direction-2-ref.html
+  ../videocontrols_direction-2a.html
+  ../videocontrols_direction-2b.html
+  ../videocontrols_direction-2c.html
+  ../videocontrols_direction-2d.html
+  ../videocontrols_direction-2e.html
+  ../videocontrols_direction_test.js
+  ../videomask.css
 
 [test_audiocontrols_dimensions.html]
-[test_mousecapture_area.html]
-skip-if = (verify && debug)
-[test_ua_widget.html]
 [test_videocontrols.html]
 tags = fullscreen
 skip-if = toolkit == 'android' || (verify && debug && (os == 'linux')) #TIMED_OUT
 [test_videocontrols_keyhandler.html]
 skip-if = toolkit == 'android'
 [test_videocontrols_vtt.html]
 [test_videocontrols_iframe_fullscreen.html]
 [test_videocontrols_size.html]
copy from toolkit/content/tests/widgets/test_audiocontrols_dimensions.html
copy to toolkit/content/tests/widgets/xbl/test_audiocontrols_dimensions.html
copy from toolkit/content/tests/widgets/test_bug898940.html
copy to toolkit/content/tests/widgets/xbl/test_bug898940.html
copy from toolkit/content/tests/widgets/test_videocontrols.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols.html
copy from toolkit/content/tests/widgets/test_videocontrols_audio.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_audio.html
copy from toolkit/content/tests/widgets/test_videocontrols_audio_direction.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_audio_direction.html
copy from toolkit/content/tests/widgets/test_videocontrols_error.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_error.html
copy from toolkit/content/tests/widgets/test_videocontrols_iframe_fullscreen.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_iframe_fullscreen.html
copy from toolkit/content/tests/widgets/test_videocontrols_jsdisabled.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_jsdisabled.html
copy from toolkit/content/tests/widgets/test_videocontrols_keyhandler.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_keyhandler.html
copy from toolkit/content/tests/widgets/test_videocontrols_onclickplay.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_onclickplay.html
copy from toolkit/content/tests/widgets/test_videocontrols_orientation.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_orientation.html
copy from toolkit/content/tests/widgets/test_videocontrols_size.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_size.html
copy from toolkit/content/tests/widgets/test_videocontrols_standalone.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_standalone.html
copy from toolkit/content/tests/widgets/test_videocontrols_video_direction.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_video_direction.html
copy from toolkit/content/tests/widgets/test_videocontrols_video_noaudio.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_video_noaudio.html
copy from toolkit/content/tests/widgets/test_videocontrols_vtt.html
copy to toolkit/content/tests/widgets/xbl/test_videocontrols_vtt.html