Bug 1515942 - Enable ESLint for gfx/ (fix quotes only). r=jrmuizel
authorMark Banner <standard8@mozilla.com>
Thu, 27 Dec 2018 09:44:26 +0000
changeset 451982 486d4df8ab206ea23e94d007fee4effddae89a00
parent 451981 a09c3829ea4be8cb7e077494310f33ee62f0e5e2
child 451983 cda72b927c04782a92408dabcb9b355d397b4bd5
push id75285
push usermbanner@mozilla.com
push dateThu, 27 Dec 2018 09:52:31 +0000
treeherderautoland@d6c5ea714d9d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjrmuizel
bugs1515942
milestone66.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1515942 - Enable ESLint for gfx/ (fix quotes only). r=jrmuizel This changes single quotes to double quotes in one patch to match our ESLint rules. This used ESLint's automatic fixing. Differential Revision: https://phabricator.services.mozilla.com/D15204
gfx/layers/apz/test/mochitest/apz_test_utils.js
gfx/layers/apz/test/mochitest/helper_basic_doubletap_zoom.html
gfx/layers/apz/test/mochitest/helper_basic_zoom.html
gfx/layers/apz/test/mochitest/helper_bug1162771.html
gfx/layers/apz/test/mochitest/helper_bug1271432.html
gfx/layers/apz/test/mochitest/helper_bug1280013.html
gfx/layers/apz/test/mochitest/helper_bug1285070.html
gfx/layers/apz/test/mochitest/helper_bug1299195.html
gfx/layers/apz/test/mochitest/helper_bug1326290.html
gfx/layers/apz/test/mochitest/helper_bug1331693.html
gfx/layers/apz/test/mochitest/helper_bug1346632.html
gfx/layers/apz/test/mochitest/helper_bug1462961.html
gfx/layers/apz/test/mochitest/helper_bug1464568_opacity.html
gfx/layers/apz/test/mochitest/helper_bug1464568_transform.html
gfx/layers/apz/test/mochitest/helper_bug1473108.html
gfx/layers/apz/test/mochitest/helper_bug1490393-2.html
gfx/layers/apz/test/mochitest/helper_bug1490393.html
gfx/layers/apz/test/mochitest/helper_bug1502010_unconsumed_pan.html
gfx/layers/apz/test/mochitest/helper_bug982141.html
gfx/layers/apz/test/mochitest/helper_click.html
gfx/layers/apz/test/mochitest/helper_div_pan.html
gfx/layers/apz/test/mochitest/helper_drag_click.html
gfx/layers/apz/test/mochitest/helper_drag_scroll.html
gfx/layers/apz/test/mochitest/helper_hittest_backface_hidden.html
gfx/layers/apz/test/mochitest/helper_hittest_basic.html
gfx/layers/apz/test/mochitest/helper_hittest_checkerboard.html
gfx/layers/apz/test/mochitest/helper_hittest_fixed_in_scrolled_transform.html
gfx/layers/apz/test/mochitest/helper_hittest_float_bug1434846.html
gfx/layers/apz/test/mochitest/helper_hittest_float_bug1443518.html
gfx/layers/apz/test/mochitest/helper_hittest_touchaction.html
gfx/layers/apz/test/mochitest/helper_iframe_pan.html
gfx/layers/apz/test/mochitest/helper_long_tap.html
gfx/layers/apz/test/mochitest/helper_override_root.html
gfx/layers/apz/test/mochitest/helper_overscroll_behavior_bug1425573.html
gfx/layers/apz/test/mochitest/helper_overscroll_behavior_bug1425603.html
gfx/layers/apz/test/mochitest/helper_overscroll_behavior_bug1494440.html
gfx/layers/apz/test/mochitest/helper_scroll_inactive_perspective.html
gfx/layers/apz/test/mochitest/helper_scroll_inactive_zindex.html
gfx/layers/apz/test/mochitest/helper_scroll_on_position_fixed.html
gfx/layers/apz/test/mochitest/helper_scroll_over_scrollbar.html
gfx/layers/apz/test/mochitest/helper_scroll_tables_perspective.html
gfx/layers/apz/test/mochitest/helper_scrollbar_snap_bug1501062.html
gfx/layers/apz/test/mochitest/helper_scrollto_tap.html
gfx/layers/apz/test/mochitest/helper_tap.html
gfx/layers/apz/test/mochitest/helper_tap_default_passive.html
gfx/layers/apz/test/mochitest/helper_tap_fullzoom.html
gfx/layers/apz/test/mochitest/helper_tap_passive.html
gfx/layers/apz/test/mochitest/helper_touch_action.html
gfx/layers/apz/test/mochitest/helper_touch_action_complex.html
gfx/layers/apz/test/mochitest/helper_touch_action_regions.html
gfx/layers/apz/test/mochitest/helper_touch_action_zero_opacity_bug1500864.html
gfx/layers/apz/test/mochitest/test_bug1151667.html
gfx/layers/apz/test/mochitest/test_bug1253683.html
gfx/layers/apz/test/mochitest/test_bug1277814.html
gfx/layers/apz/test/mochitest/test_bug1304689-2.html
gfx/layers/apz/test/mochitest/test_bug1304689.html
gfx/layers/apz/test/mochitest/test_bug1464568.html
gfx/layers/apz/test/mochitest/test_frame_reconstruction.html
gfx/layers/apz/test/mochitest/test_group_hittest.html
gfx/layers/apz/test/mochitest/test_group_keyboard.html
gfx/layers/apz/test/mochitest/test_group_mouseevents.html
gfx/layers/apz/test/mochitest/test_group_overrides.html
gfx/layers/apz/test/mochitest/test_group_pointerevents.html
gfx/layers/apz/test/mochitest/test_group_touchevents-2.html
gfx/layers/apz/test/mochitest/test_group_touchevents-3.html
gfx/layers/apz/test/mochitest/test_group_touchevents-4.html
gfx/layers/apz/test/mochitest/test_group_touchevents.html
gfx/layers/apz/test/mochitest/test_group_wheelevents.html
gfx/layers/apz/test/mochitest/test_group_zoom.html
gfx/layers/apz/test/mochitest/test_interrupted_reflow.html
gfx/layers/apz/test/mochitest/test_layerization.html
gfx/layers/apz/test/mochitest/test_relative_update.html
gfx/layers/apz/test/mochitest/test_scroll_inactive_bug1190112.html
gfx/layers/apz/test/mochitest/test_scroll_inactive_flattened_frame.html
gfx/layers/apz/test/mochitest/test_scroll_subframe_scrollbar.html
gfx/layers/apz/test/mochitest/test_touch_listeners_impacting_wheel.html
gfx/layers/apz/test/mochitest/test_wheel_scroll.html
gfx/layers/apz/test/mochitest/test_wheel_transactions.html
gfx/layers/layerviewer/layerTreeView.js
--- a/gfx/layers/apz/test/mochitest/apz_test_utils.js
+++ b/gfx/layers/apz/test/mochitest/apz_test_utils.js
@@ -13,22 +13,22 @@ function convertEntries(entries) {
   for (var i = 0; i < entries.length; ++i) {
     result[entries[i].key] = entries[i].value;
   }
   return result;
 }
 
 function getPropertyAsRect(scrollFrames, scrollId, prop) {
   SimpleTest.ok(scrollId in scrollFrames,
-                'expected scroll frame data for scroll id ' + scrollId);
+                "expected scroll frame data for scroll id " + scrollId);
   var scrollFrameData = scrollFrames[scrollId];
-  SimpleTest.ok('displayport' in scrollFrameData,
-                'expected a ' + prop + ' for scroll id ' + scrollId);
+  SimpleTest.ok("displayport" in scrollFrameData,
+                "expected a " + prop + " for scroll id " + scrollId);
   var value = scrollFrameData[prop];
-  var pieces = value.replace(/[()\s]+/g, '').split(',');
+  var pieces = value.replace(/[()\s]+/g, "").split(",");
   SimpleTest.is(pieces.length, 4, "expected string of form (x,y,w,h)");
   return { x: parseInt(pieces[0]),
            y: parseInt(pieces[1]),
            w: parseInt(pieces[2]),
            h: parseInt(pieces[3]) };
 }
 
 function convertScrollFrameData(scrollFrames) {
@@ -222,17 +222,17 @@ function runSubtestsSeriallyInFreshWindo
 
     function advanceSubtestExecution() {
       var test = aSubtests[testIndex];
       if (w) {
         // Run any cleanup functions registered in the subtest
         if (w.ApzCleanup) { // guard against the subtest not loading apz_test_utils.js
           w.ApzCleanup.execute();
         }
-        if (typeof test.dp_suppression != 'undefined') {
+        if (typeof test.dp_suppression != "undefined") {
           // We modified the suppression when starting the test, so now undo that.
           SpecialPowers.getDOMWindowUtils(window).respectDisplayPortSuppression(!test.dp_suppression);
         }
         if (test.prefs) {
           // We pushed some prefs for this test, pop them, and re-invoke
           // advanceSubtestExecution() after that's been processed
           SpecialPowers.popPrefEnv(function() {
             w.close();
@@ -256,46 +256,46 @@ function runSubtestsSeriallyInFreshWindo
       if (onlyOneSubtest && onlyOneSubtest != test.file) {
         SimpleTest.ok(true, "Skipping " + test.file + " because only " + onlyOneSubtest + " is being run");
         setTimeout(function() { advanceSubtestExecution(); }, 0);
         return;
       }
 
       SimpleTest.ok(true, "Starting subtest " + test.file);
 
-      if (typeof test.dp_suppression != 'undefined') {
+      if (typeof test.dp_suppression != "undefined") {
         // Normally during a test, the displayport will get suppressed during page
         // load, and unsuppressed at a non-deterministic time during the test. The
         // unsuppression can trigger a repaint which interferes with the test, so
         // to avoid that we can force the displayport to be unsuppressed for the
         // entire test which is more deterministic.
         SpecialPowers.getDOMWindowUtils(window).respectDisplayPortSuppression(test.dp_suppression);
       }
 
       function spawnTest(aFile) {
-        w = window.open('', "_blank");
+        w = window.open("", "_blank");
         w.subtestDone = advanceSubtestExecution;
         w.isApzSubtest = true;
         w.SimpleTest = SimpleTest;
         w.is = function(a, b, msg) { return is(a, b, aFile + " | " + msg); };
         w.ok = function(cond, msg) {
           arguments[1] = aFile + " | " + msg;
           // Forward all arguments to SimpleTest.ok where we will check that ok() was
           // called with at most 2 arguments.
           return SimpleTest.ok.apply(SimpleTest, arguments);
         };
         w.todo_is = function(a, b, msg)  { return todo_is(a, b, aFile + " | " + msg); };
         w.todo = function(cond, msg) { return todo(cond, aFile + " | " + msg); };
         if (test.onload) {
-          w.addEventListener('load', function(e) { test.onload(w); }, { once: true });
+          w.addEventListener("load", function(e) { test.onload(w); }, { once: true });
         }
-        var subtestUrl = location.href.substring(0, location.href.lastIndexOf('/') + 1) + aFile;
+        var subtestUrl = location.href.substring(0, location.href.lastIndexOf("/") + 1) + aFile;
         function urlResolves(url) {
           var request = new XMLHttpRequest();
-          request.open('GET', url, false);
+          request.open("GET", url, false);
           request.send();
           return request.status !== 404;
         }
         if (!urlResolves(subtestUrl)) {
           SimpleTest.ok(false, "Subtest URL " + subtestUrl + " does not resolve. " +
               "Be sure it's present in the support-files section of mochitest.ini.");
           reject();
           return;
@@ -316,36 +316,36 @@ function runSubtestsSeriallyInFreshWindo
 
     advanceSubtestExecution();
   }).catch(function(e) {
     SimpleTest.ok(false, "Error occurred while running subtests: " + e);
   });
 }
 
 function pushPrefs(prefs) {
-  return SpecialPowers.pushPrefEnv({'set': prefs});
+  return SpecialPowers.pushPrefEnv({"set": prefs});
 }
 
 async function waitUntilApzStable() {
   if (!SpecialPowers.isMainProcess()) {
     // We use this waitUntilApzStable function during test initialization
     // and for those scenarios we want to flush the parent-process layer
     // tree to the compositor and wait for that as well. That way we know
     // that not only is the content-process layer tree ready in the compositor,
     // the parent-process layer tree in the compositor has the appropriate
     // RefLayer pointing to the content-process layer tree.
 
     // Sadly this helper function cannot reuse any code from other places because
     // it must be totally self-contained to be shipped over to the parent process.
     function parentProcessFlush() {
       addMessageListener("apz-flush", function() {
         ChromeUtils.import("resource://gre/modules/Services.jsm");
-        var topWin = Services.wm.getMostRecentWindow('navigator:browser');
+        var topWin = Services.wm.getMostRecentWindow("navigator:browser");
         if (!topWin) {
-          topWin = Services.wm.getMostRecentWindow('navigator:geckoview');
+          topWin = Services.wm.getMostRecentWindow("navigator:geckoview");
         }
         var topUtils = topWin.windowUtils;
 
         var repaintDone = function() {
           Services.obs.removeObserver(repaintDone, "apz-repaints-flushed");
           // send message back to content process
           sendAsyncMessage("apz-flush-done", null);
         };
@@ -476,62 +476,62 @@ function runContinuation(testFunction) {
 // element is obscured by other things on top, the snapshot will include those
 // things. If it is clipped by a scroll container, the snapshot will include
 // that area anyway, so you will probably get parts of the scroll container in
 // the snapshot. If the rect extends outside the browser window then the
 // results are undefined.
 // The snapshot is returned in the form of a data URL.
 function getSnapshot(rect) {
   function parentProcessSnapshot() {
-    addMessageListener('snapshot', function(rect) {
-      ChromeUtils.import('resource://gre/modules/Services.jsm');
-      var topWin = Services.wm.getMostRecentWindow('navigator:browser');
+    addMessageListener("snapshot", function(rect) {
+      ChromeUtils.import("resource://gre/modules/Services.jsm");
+      var topWin = Services.wm.getMostRecentWindow("navigator:browser");
       if (!topWin) {
-        topWin = Services.wm.getMostRecentWindow('navigator:geckoview');
+        topWin = Services.wm.getMostRecentWindow("navigator:geckoview");
       }
 
       // reposition the rect relative to the top-level browser window
       rect = JSON.parse(rect);
       rect.x -= topWin.mozInnerScreenX;
       rect.y -= topWin.mozInnerScreenY;
 
       // take the snapshot
       var canvas = topWin.document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");
       canvas.width = rect.w;
       canvas.height = rect.h;
       var ctx = canvas.getContext("2d");
-      ctx.drawWindow(topWin, rect.x, rect.y, rect.w, rect.h, 'rgb(255,255,255)', ctx.DRAWWINDOW_DRAW_VIEW | ctx.DRAWWINDOW_USE_WIDGET_LAYERS | ctx.DRAWWINDOW_DRAW_CARET);
+      ctx.drawWindow(topWin, rect.x, rect.y, rect.w, rect.h, "rgb(255,255,255)", ctx.DRAWWINDOW_DRAW_VIEW | ctx.DRAWWINDOW_USE_WIDGET_LAYERS | ctx.DRAWWINDOW_DRAW_CARET);
       return canvas.toDataURL();
     });
   }
 
-  if (typeof getSnapshot.chromeHelper == 'undefined') {
+  if (typeof getSnapshot.chromeHelper == "undefined") {
     // This is the first time getSnapshot is being called; do initialization
     getSnapshot.chromeHelper = SpecialPowers.loadChromeScript(parentProcessSnapshot);
     ApzCleanup.register(function() { getSnapshot.chromeHelper.destroy() });
   }
 
-  return getSnapshot.chromeHelper.sendSyncMessage('snapshot', JSON.stringify(rect)).toString();
+  return getSnapshot.chromeHelper.sendSyncMessage("snapshot", JSON.stringify(rect)).toString();
 }
 
 // Takes the document's query string and parses it, assuming the query string
 // is composed of key-value pairs where the value is in JSON format. The object
 // returned contains the various values indexed by their respective keys. In
 // case of duplicate keys, the last value be used.
 // Examples:
 //   ?key="value"&key2=false&key3=500
 //     produces { "key": "value", "key2": false, "key3": 500 }
 //   ?key={"x":0,"y":50}&key2=[1,2,true]
 //     produces { "key": { "x": 0, "y": 0 }, "key2": [1, 2, true] }
 function getQueryArgs() {
   var args = {};
   if (location.search.length > 0) {
-    var params = location.search.substr(1).split('&');
+    var params = location.search.substr(1).split("&");
     for (var p of params) {
-      var [k, v] = p.split('=');
+      var [k, v] = p.split("=");
       args[k] = JSON.parse(v);
     }
   }
   return args;
 }
 
 // Return a function that returns a promise to create a script element with the
 // given URI and append it to the head of the document in the given window.
@@ -540,43 +540,43 @@ function getQueryArgs() {
 //   waitUntilApzStable().then(injectScript('foo'))
 //                       .then(injectScript('bar'));
 // If you want to do the injection right away, run the function returned by
 // this function:
 //   injectScript('foo')();
 function injectScript(aScript, aWindow = window) {
   return function() {
     return new Promise(function(resolve, reject) {
-      var e = aWindow.document.createElement('script');
-      e.type = 'text/javascript';
+      var e = aWindow.document.createElement("script");
+      e.type = "text/javascript";
       e.onload = function() {
         resolve();
       };
       e.onerror = function() {
-        dump('Script [' + aScript + '] errored out\n');
+        dump("Script [" + aScript + "] errored out\n");
         reject();
       };
       e.src = aScript;
-      aWindow.document.getElementsByTagName('head')[0].appendChild(e);
+      aWindow.document.getElementsByTagName("head")[0].appendChild(e);
     });
   };
 }
 
 // Compute some configuration information used for hit testing.
 // The computed information is cached to avoid recomputing it
 // each time this function is called.
 // The computed information is an object with three fields:
 //   utils: the nsIDOMWindowUtils instance for this window
 //   isWebRender: true if WebRender is enabled
 //   isWindow: true if the platform is Windows
 function getHitTestConfig() {
   if (!("hitTestConfig" in window)) {
     var utils = SpecialPowers.getDOMWindowUtils(window);
-    var isWebRender = (utils.layerManagerType == 'WebRender');
-    var isWindows = (getPlatform() == 'windows');
+    var isWebRender = (utils.layerManagerType == "WebRender");
+    var isWindows = (getPlatform() == "windows");
     window.hitTestConfig = { utils, isWebRender, isWindows };
   }
   return window.hitTestConfig;
 }
 
 // Compute the coordinates of the center of the given element. The argument
 // can either be a string (the id of the element desired) or the element
 // itself.
--- a/gfx/layers/apz/test/mochitest/helper_basic_doubletap_zoom.html
+++ b/gfx/layers/apz/test/mochitest/helper_basic_doubletap_zoom.html
@@ -26,29 +26,29 @@ function* doubleTapOn(element, x, y, tes
 
   // Flush state so we can query an accurate resolution
   yield flushApzRepaints(testDriver);
 }
 
 function* test(testDriver) {
   var resolution = getResolution();
   ok(resolution > 0,
-     'The initial_resolution is ' + resolution + ', which is some sane value');
+     "The initial_resolution is " + resolution + ", which is some sane value");
 
   // Check that double-tapping once zooms in
-  yield* doubleTapOn(document.getElementById('target'), 10, 10, testDriver);
+  yield* doubleTapOn(document.getElementById("target"), 10, 10, testDriver);
   var prev_resolution = resolution;
   resolution = getResolution();
-  ok(resolution > prev_resolution, 'The first double-tap has increased the resolution to ' + resolution);
+  ok(resolution > prev_resolution, "The first double-tap has increased the resolution to " + resolution);
 
   // Check that double-tapping again on the same spot zooms out
-  yield* doubleTapOn(document.getElementById('target'), 10, 10, testDriver);
+  yield* doubleTapOn(document.getElementById("target"), 10, 10, testDriver);
   prev_resolution = resolution;
   resolution = getResolution();
-  ok(resolution < prev_resolution, 'The second double-tap has decreased the resolution to ' + resolution);
+  ok(resolution < prev_resolution, "The second double-tap has decreased the resolution to " + resolution);
 }
 
 waitUntilApzStable()
 .then(runContinuation(test))
 .then(subtestDone);
 
   </script>
   <style type="text/css">
--- a/gfx/layers/apz/test/mochitest/helper_basic_zoom.html
+++ b/gfx/layers/apz/test/mochitest/helper_basic_zoom.html
@@ -20,17 +20,17 @@ function* test(testDriver) {
                                            { mozSystemGroup: true });
   let visScrEvtInternal = new EventCounter(window, "mozvisualscroll",
                                            { mozSystemGroup: true });
   let visResEvtContent = new EventCounter(window, "mozvisualresize");
   let visScrEvtContent = new EventCounter(window, "mozvisualscroll");
 
   var initial_resolution = getResolution();
   ok(initial_resolution > 0,
-      'The initial_resolution is ' + initial_resolution + ', which is some sane value');
+      "The initial_resolution is " + initial_resolution + ", which is some sane value");
 
   // This listener will trigger the test to continue once APZ is done with
   // processing the scroll.
   SpecialPowers.Services.obs.addObserver(testDriver, "APZ:TransformEnd");
 
   var zoom_in = [
       [ { x: 125, y: 250 }, { x: 175, y: 350 } ],
       [ { x: 120, y: 220 }, { x: 180, y: 380 } ],
@@ -48,17 +48,17 @@ function* test(testDriver) {
 
   // We get here once the APZ:TransformEnd has fired, so we don't need that
   // observer any more.
   SpecialPowers.Services.obs.removeObserver(testDriver, "APZ:TransformEnd", false);
 
   // Flush state and get the resolution we're at now
   yield waitForApzFlushedRepaints(testDriver);
   let final_resolution = getResolution();
-  ok(final_resolution > initial_resolution, 'The final resolution (' + final_resolution + ') is greater after zooming in');
+  ok(final_resolution > initial_resolution, "The final resolution (" + final_resolution + ") is greater after zooming in");
 
   // Check we've got the expected events.
   // Pinch-zooming the page should fire visual viewport resize events:
   visResEvt.unregister();
   ok(visResEvt.count > 0, "Got some visual viewport resize events");
   visResEvtInternal.unregister();
   ok(visResEvtInternal.count > 0, "Got some mozvisualresize events");
 
--- a/gfx/layers/apz/test/mochitest/helper_bug1162771.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1162771.html
@@ -5,54 +5,54 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Test for touchend on media elements</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function* test(testDriver) {
-  var v = document.getElementById('video');
-  var a = document.getElementById('audio');
-  var d = document.getElementById('div');
+  var v = document.getElementById("video");
+  var a = document.getElementById("audio");
+  var d = document.getElementById("div");
 
   document.body.ontouchstart = function(e) {
     if (e.target === v || e.target === a || e.target === d) {
-      e.target.style.display = 'none';
-      ok(true, 'Set display to none on #' + e.target.id);
+      e.target.style.display = "none";
+      ok(true, "Set display to none on #" + e.target.id);
     } else {
-      ok(false, 'Got unexpected touchstart on ' + e.target);
+      ok(false, "Got unexpected touchstart on " + e.target);
     }
     waitForAllPaints(testDriver);
   };
 
   document.body.ontouchend = function(e) {
     if (e.target === v || e.target === a || e.target === d) {
       e.target._gotTouchend = true;
-      ok(true, 'Got touchend event on #' + e.target.id);
+      ok(true, "Got touchend event on #" + e.target.id);
     }
     testDriver();
   };
 
   var utils = SpecialPowers.getDOMWindowUtils(window);
 
   var pt = coordinatesRelativeToScreen(25, 5, v);
   yield utils.sendNativeTouchPoint(0, SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, pt.x, pt.y, 1, 90, null);
   yield utils.sendNativeTouchPoint(0, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, pt.x, pt.y, 1, 90, null);
-  ok(v._gotTouchend, 'Touchend was received on video element');
+  ok(v._gotTouchend, "Touchend was received on video element");
 
   pt = coordinatesRelativeToScreen(25, 5, a);
   yield utils.sendNativeTouchPoint(0, SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, pt.x, pt.y, 1, 90, null);
   yield utils.sendNativeTouchPoint(0, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, pt.x, pt.y, 1, 90, null);
-  ok(a._gotTouchend, 'Touchend was received on audio element');
+  ok(a._gotTouchend, "Touchend was received on audio element");
 
   pt = coordinatesRelativeToScreen(25, 5, d);
   yield utils.sendNativeTouchPoint(0, SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, pt.x, pt.y, 1, 90, null);
   yield utils.sendNativeTouchPoint(0, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, pt.x, pt.y, 1, 90, null);
-  ok(d._gotTouchend, 'Touchend was received on div element');
+  ok(d._gotTouchend, "Touchend was received on div element");
 }
 
 waitUntilApzStable()
 .then(runContinuation(test))
 .then(subtestDone);
 
   </script>
   <style>
--- a/gfx/layers/apz/test/mochitest/helper_bug1271432.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1271432.html
@@ -1,16 +1,16 @@
 <head>
   <title>Ensure that the hit region doesn't get unexpectedly expanded</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
 <script type="application/javascript">
 function* test(testDriver) {
-  var scroller = document.getElementById('scroller');
+  var scroller = document.getElementById("scroller");
   var scrollerPos = scroller.scrollTop;
   var dx = 100, dy = 50;
 
   is(window.scrollY, 0, "Initial page scroll position should be 0");
   is(scrollerPos, 0, "Initial scroller position should be 0");
 
   yield moveMouseAndScrollWheelOver(scroller, dx, dy, testDriver);
 
--- a/gfx/layers/apz/test/mochitest/helper_bug1280013.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1280013.html
@@ -33,36 +33,36 @@ function* test(testDriver) {
   // However, because of the overflow:hidden on the root elements, all this
   // scrolling is happening in APZ and is not reflected in the main-thread
   // scroll position (it is stored in the callback transform instead). We check
   // this by checking the scroll offset.
   yield flushApzRepaints(testDriver);
   is(window.scrollY, 0, "Main-thread scroll position is still at 0");
 
   // Scroll the iframe by 300px.
-  var subframe = document.getElementById('subframe');
+  var subframe = document.getElementById("subframe");
   yield synthesizeNativeTouchDrag(subframe, 10, 200, 0, -300);
 
   // Remove the observer, we don't need it any more.
   SpecialPowers.Services.obs.removeObserver(testDriver, "APZ:TransformEnd", false);
 
   // Flush any pending paints
   yield flushApzRepaints(testDriver);
 
   // get the displayport for the subframe
   var utils = SpecialPowers.getDOMWindowUtils(window);
   var contentPaints = utils.getContentAPZTestData().paints;
   var lastPaint = convertScrollFrameData(getLastNonemptyBucket(contentPaints).scrollFrames);
   var foundIt = 0;
   for (var scrollId in lastPaint) {
-    if (('contentDescription' in lastPaint[scrollId]) &&
-        (lastPaint[scrollId]['contentDescription'].includes('tall_html'))) {
-      var dp = getPropertyAsRect(lastPaint, scrollId, 'displayport');
-      ok(dp.y <= 0, 'The displayport top should be less than or equal to zero to cover the visible part of the subframe; it is ' + dp.y);
-      ok(dp.y + dp.h >= subframe.clientHeight, 'The displayport bottom should be greater than the clientHeight; it is ' + (dp.y + dp.h));
+    if (("contentDescription" in lastPaint[scrollId]) &&
+        (lastPaint[scrollId]["contentDescription"].includes("tall_html"))) {
+      var dp = getPropertyAsRect(lastPaint, scrollId, "displayport");
+      ok(dp.y <= 0, "The displayport top should be less than or equal to zero to cover the visible part of the subframe; it is " + dp.y);
+      ok(dp.y + dp.h >= subframe.clientHeight, "The displayport bottom should be greater than the clientHeight; it is " + (dp.y + dp.h));
       foundIt++;
     }
   }
   is(foundIt, 1, "Found exactly one displayport for the subframe we were interested in.");
 }
 
 waitUntilApzStable()
 .then(runContinuation(test))
--- a/gfx/layers/apz/test/mochitest/helper_bug1285070.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1285070.html
@@ -12,31 +12,31 @@
       let eventsList = ["pointerover", "pointerenter", "pointerdown",
                         "pointerup", "pointerleave", "pointerout",
                         "mousedown", "mouseup",
                         "touchstart", "touchend", "click"];
       let eventsCount = {};
 
       eventsList.forEach((eventName) => {
         eventsCount[eventName] = 0;
-        document.getElementById('div1').addEventListener(eventName, (event) => {
+        document.getElementById("div1").addEventListener(eventName, (event) => {
           ++eventsCount[event.type];
           ok(true, "Received event " + event.type);
         });
       });
 
       document.addEventListener("click", (event) => {
-        is(event.target, document.getElementById('div1'), "Clicked on div (at " + event.clientX + "," + event.clientY + ")");
+        is(event.target, document.getElementById("div1"), "Clicked on div (at " + event.clientX + "," + event.clientY + ")");
         for (var key in eventsCount) {
           is(eventsCount[key], 1, "Event " + key + " should be generated once");
         }
         subtestDone();
       });
 
-      synthesizeNativeTap(document.getElementById('div1'), 100, 100);
+      synthesizeNativeTap(document.getElementById("div1"), 100, 100);
     }
 
     waitUntilApzStable().then(test);
 
   </script>
 </head>
 <body>
   <div id="div1" style="width: 200px; height: 200px; background: black"></div>
--- a/gfx/layers/apz/test/mochitest/helper_bug1299195.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1299195.html
@@ -30,18 +30,18 @@
         ++mousedown_count;
       });
       target0.addEventListener("pointerup", () => {
         ++pointerup_count;
       });
       target0.addEventListener("pointerdown", () => {
         ++pointerdown_count;
       });
-      synthesizeNativeTap(document.getElementById('target0'), 100, 100);
-      synthesizeNativeTap(document.getElementById('target0'), 100, 100);
+      synthesizeNativeTap(document.getElementById("target0"), 100, 100);
+      synthesizeNativeTap(document.getElementById("target0"), 100, 100);
     }
     waitUntilApzStable().then(runTests);
     </script>
 </head>
 <body>
   <div id="target0" style="width: 200px; height: 200px; background: green"></div>
 </body>
 </html>
--- a/gfx/layers/apz/test/mochitest/helper_bug1326290.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1326290.html
@@ -16,18 +16,18 @@
     .content {
       width: 1000px;
       height: 2000px;
     }
   </style>
   <script type="text/javascript">
 
 function* test(testDriver) {
-  var scrollableDiv = document.getElementById('scrollable');
-  scrollableDiv.addEventListener('scroll', () => setTimeout(testDriver, 0), {once: true});
+  var scrollableDiv = document.getElementById("scrollable");
+  scrollableDiv.addEventListener("scroll", () => setTimeout(testDriver, 0), {once: true});
 
   var dragFinisher = yield* dragVerticalScrollbar(scrollableDiv, testDriver);
   if (!dragFinisher) {
     ok(true, "No scrollbar, can't do this test");
     return;
   }
 
   // the events above might be stuck in APZ input queue for a bit until the
--- a/gfx/layers/apz/test/mochitest/helper_bug1331693.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1331693.html
@@ -5,18 +5,18 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Dragging the mouse on a scrollframe inside an SVGEffects</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="text/javascript">
 
 function* test(testDriver) {
-  var scrollableDiv = document.getElementById('scrollable');
-  scrollableDiv.addEventListener('scroll', () => setTimeout(testDriver, 0), {once: true});
+  var scrollableDiv = document.getElementById("scrollable");
+  scrollableDiv.addEventListener("scroll", () => setTimeout(testDriver, 0), {once: true});
 
   var dragFinisher = yield* dragVerticalScrollbar(scrollableDiv, testDriver);
   if (!dragFinisher) {
     ok(true, "No scrollbar, can't do this test");
     return;
   }
 
   // the events above might be stuck in APZ input queue for a bit until the
--- a/gfx/layers/apz/test/mochitest/helper_bug1346632.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1346632.html
@@ -23,17 +23,17 @@
     #fixed-content {
       height: 2000px;
     }
   </style>
   <script type="text/javascript">
 function* test(testDriver) {
   var root = document.scrollingElement;
   var scrollPos = root.scrollTop;
-  document.addEventListener('scroll', () => {
+  document.addEventListener("scroll", () => {
     ok(root.scrollTop > scrollPos, "document scrolled after dragging scrollbar");
     setTimeout(testDriver, 0);
   }, {once: true});
 
   var scrollbarX = (window.innerWidth + root.clientWidth) / 2;
   // Move the mouse to the scrollbar
   yield synthesizeNativeMouseEvent(root, scrollbarX, 100, nativeMouseMoveEventMsg(), testDriver);
   // mouse down
--- a/gfx/layers/apz/test/mochitest/helper_bug1462961.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1462961.html
@@ -5,18 +5,18 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Dragging the mouse on a transformed scrollframe inside a fixed-pos element</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="text/javascript">
 
 function* test(testDriver) {
-  var scrollableDiv = document.getElementById('scrollable');
-  scrollableDiv.addEventListener('scroll', () => setTimeout(testDriver, 0), {once: true});
+  var scrollableDiv = document.getElementById("scrollable");
+  scrollableDiv.addEventListener("scroll", () => setTimeout(testDriver, 0), {once: true});
 
   // Scroll down a small amount (10px). The bug in this case is that the
   // scrollthumb remains a little "above" where it's supposed to be, so if the
   // bug manifests here, then the thumb will remain at the top of the track
   // and the scroll position will remain at 0.
   var dragFinisher = yield* dragVerticalScrollbar(scrollableDiv, testDriver, 10, 10);
   if (!dragFinisher) {
     ok(true, "No scrollbar, can't do this test");
--- a/gfx/layers/apz/test/mochitest/helper_bug1464568_opacity.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1464568_opacity.html
@@ -23,17 +23,17 @@
   This height should be smaller than window height, otherwise the animation
   followed by this element will be out of view, thus the animation doesn't run
   on the compositor.
   -->
  <div style="height: 500px"></div>
  <div id="anim"></div>
 </body>
 <script>
-'use strict';
+"use strict";
 
 const utils = SpecialPowers.getDOMWindowUtils(window);
 
 async function test_opacity() {
   utils.setDisplayPortForElement(0, 0, 300, 1000, document.documentElement, 1);
   await promiseAllPaintsDone();
   let dpr = window.devicePixelRatio;
 
@@ -45,17 +45,17 @@ async function test_opacity() {
 
   await new Promise(resolve => waitForApzFlushedRepaints(resolve));
 
   transform = parseTransform(utils.getOMTCTransform(anim));
   isTransformClose(transform, [1, 0, 0, 1, 0, -300 * dpr],
      "Element should have been moved by the offset");
 }
 
-if (utils.layerManagerType == 'WebRender') {
+if (utils.layerManagerType == "WebRender") {
   ok(true, "This test doesn't need to run on WebRender");
   subtestDone();
 } else {
   waitUntilApzStable().then(test_opacity).then(subtestDone);
 }
 
 </script>
 </html>
--- a/gfx/layers/apz/test/mochitest/helper_bug1464568_transform.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1464568_transform.html
@@ -23,17 +23,17 @@
   This height should be smaller than window height, otherwise the animation
   followed by this element will be out of view, thus the animation doesn't run
   on the compositor.
   -->
  <div style="height: 500px"></div>
  <div id="anim"></div>
 </body>
 <script>
-'use strict';
+"use strict";
 
 const utils = SpecialPowers.getDOMWindowUtils(window);
 
 async function test_transform() {
   utils.setDisplayPortForElement(0, 0, 300, 1000, document.documentElement, 1);
   await promiseAllPaintsDone();
 
   let dpr = window.devicePixelRatio;
@@ -45,17 +45,17 @@ async function test_transform() {
 
   await new Promise(resolve => waitForApzFlushedRepaints(resolve));
 
   transform = parseTransform(utils.getOMTCTransform(anim));
   isTransformClose(transform, [1, 0, 0, 1, 200 * dpr, -300 * dpr],
      "Element should have been moved by the offset");
 }
 
-if (utils.layerManagerType == 'WebRender') {
+if (utils.layerManagerType == "WebRender") {
   ok(true, "This test doesn't need to run on WebRender");
   subtestDone();
 } else {
   waitUntilApzStable().then(test_transform).then(subtestDone);
 }
 
 </script>
 </html>
--- a/gfx/layers/apz/test/mochitest/helper_bug1473108.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1473108.html
@@ -33,17 +33,17 @@ https://bugzilla.mozilla.org/show_bug.cg
 <body>
   <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1473108">Mozilla Bug 1473108</a>
   <a class="a" id="event"><span id="target"></span></a>
 
   <script type="application/javascript">
 
   waitUntilApzStable().then(() => {
     let target = document.getElementById("target");
-    target.addEventListener('click', function(e) {
+    target.addEventListener("click", function(e) {
       is(e.target, target, `Clicked on at (${e.clientX}, ${e.clientY})`);
       subtestDone();
     });
     synthesizeNativeTap(target, 5, 5);
   });
 
 </script>
 </body>
--- a/gfx/layers/apz/test/mochitest/helper_bug1490393-2.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1490393-2.html
@@ -5,18 +5,18 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Dragging the mouse on a scrollbar for a scrollframe inside nested transforms</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="text/javascript">
 
 function* test(testDriver) {
-  var scrollableDiv = document.getElementById('scrollable');
-  scrollableDiv.addEventListener('scroll', () => setTimeout(testDriver, 0), {once: true});
+  var scrollableDiv = document.getElementById("scrollable");
+  scrollableDiv.addEventListener("scroll", () => setTimeout(testDriver, 0), {once: true});
 
   // Scroll down a small amount (10px). The bug in this case is that the
   // scrollthumb "jumps" by an additional 40 pixels (height of the "gap" div)
   // and the scrollframe scrolls by a corresponding amount. So after doing this
   // drag we check the scroll position to make sure it hasn't scrolled by
   // too much.
   // Given the scrollable height of 2000px and scrollframe height of 400px,
   // the scrollthumb should be approximately 80px tall, and dragging it 10px
--- a/gfx/layers/apz/test/mochitest/helper_bug1490393.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1490393.html
@@ -5,18 +5,18 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Dragging the mouse on a scrollbar for a scrollframe inside nested transforms</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="text/javascript">
 
 function* test(testDriver) {
-  var scrollableDiv = document.getElementById('scrollable');
-  scrollableDiv.addEventListener('scroll', () => setTimeout(testDriver, 0), {once: true});
+  var scrollableDiv = document.getElementById("scrollable");
+  scrollableDiv.addEventListener("scroll", () => setTimeout(testDriver, 0), {once: true});
 
   // Scroll down a small amount (10px). The bug in this case is that the
   // scrollthumb "jumps" by an additional 40 pixels (height of the "gap" div)
   // and the scrollframe scrolls by a corresponding amount. So after doing this
   // drag we check the scroll position to make sure it hasn't scrolled by
   // too much.
   // Given the scrollable height of 2000px and scrollframe height of 400px,
   // the scrollthumb should be approximately 80px tall, and dragging it 10px
--- a/gfx/layers/apz/test/mochitest/helper_bug1502010_unconsumed_pan.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug1502010_unconsumed_pan.html
@@ -10,47 +10,47 @@
   <script type="application/javascript">
     var pointerMoveCount = 0;
     var lastPointerCoord = -1;
     var apzFlushed = false;
     var endEventReceived = false;
 
     function checkForTestEnd() {
         if (apzFlushed && endEventReceived) {
-            var target = document.getElementById('carousel');
-            target.removeEventListener('pointermove', moveListener);
+            var target = document.getElementById("carousel");
+            target.removeEventListener("pointermove", moveListener);
 
             ok(pointerMoveCount > 0, "Got " + pointerMoveCount + " pointermove events");
             is(document.scrollingElement.scrollTop, 0, "Document didn't y-scroll");
             is(document.scrollingElement.scrollLeft, 0, "Document didn't x-scroll");
 
             subtestDone();
         }
     }
 
     function moveListener(event) {
         ok(event.clientX >= lastPointerCoord, "Got nondecreasing pointermove to " + event.clientX + "," + event.clientY);
         lastPointerCoord = event.clientX;
         pointerMoveCount++;
     }
 
     function* test(testDriver) {
-        var target = document.getElementById('carousel');
-        target.addEventListener('pointercancel', (event) => {
+        var target = document.getElementById("carousel");
+        target.addEventListener("pointercancel", (event) => {
             ok(false, "Received pointercancel, uh-oh!");
             endEventReceived = true;
             setTimeout(checkForTestEnd, 0);
         }, {once: true});
-        target.addEventListener('pointerup', () => {
+        target.addEventListener("pointerup", () => {
             ok(true, "Received pointerup");
             endEventReceived = true;
             setTimeout(checkForTestEnd, 0);
         }, {once: true});
 
-        target.addEventListener('pointermove', moveListener);
+        target.addEventListener("pointermove", moveListener);
 
         // Drag mostly horizontally but also slightly vertically. If the
         // touch-action were not respected due to a bug this might result
         // in vertical scrolling instead of pointermove events.
         yield synthesizeNativeTouchDrag(target, 10, 10, 200, -10, testDriver);
         yield flushApzRepaints(testDriver);
         apzFlushed = true;
 
--- a/gfx/layers/apz/test/mochitest/helper_bug982141.html
+++ b/gfx/layers/apz/test/mochitest/helper_bug982141.html
@@ -55,18 +55,18 @@ https://bugzilla.mozilla.org/show_bug.cg
       SimpleTest.is(rcd.children.length, 1, "expected a single child APZC");
       var childScrollId = rcd.children[0].scrollId;
 
       // We should have content-side data for the same paint.
       SimpleTest.ok(lastCompositorPaintSeqNo in contentTestData.paints,
                     "expected a content paint with sequence number" + lastCompositorPaintSeqNo);
       var correspondingContentPaint = contentTestData.paints[lastCompositorPaintSeqNo];
 
-      var dp = getPropertyAsRect(correspondingContentPaint, childScrollId, 'displayport');
-      var subframe = document.getElementById('subframe');
+      var dp = getPropertyAsRect(correspondingContentPaint, childScrollId, "displayport");
+      var subframe = document.getElementById("subframe");
       // The clientWidth and clientHeight may be less than 50 if there are scrollbars showing.
       // In general they will be (50 - <scrollbarwidth>, 50 - <scrollbarheight>).
       SimpleTest.ok(subframe.clientWidth > 0, "Expected a non-zero clientWidth, got: " + subframe.clientWidth);
       SimpleTest.ok(subframe.clientHeight > 0, "Expected a non-zero clientHeight, got: " + subframe.clientHeight);
       SimpleTest.ok(dp.w >= subframe.clientWidth && dp.h >= subframe.clientHeight,
                     "expected a displayport at least as large as the scrollable element, got " + JSON.stringify(dp));
 
       window.opener.finishTest();
--- a/gfx/layers/apz/test/mochitest/helper_click.html
+++ b/gfx/layers/apz/test/mochitest/helper_click.html
@@ -5,33 +5,33 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Sanity mouse-clicking test</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function* clickButton(testDriver) {
-  document.addEventListener('click', clicked);
+  document.addEventListener("click", clicked);
 
-  if (getQueryArgs()['dtc']) {
+  if (getQueryArgs()["dtc"]) {
     // force a dispatch-to-content region on the document
-    document.addEventListener('wheel', function() { /* no-op */ }, { passive: false });
+    document.addEventListener("wheel", function() { /* no-op */ }, { passive: false });
     yield waitForAllPaints(function() {
       flushApzRepaints(testDriver);
     });
   }
 
-  synthesizeNativeClick(document.getElementById('b'), 5, 5, function() {
+  synthesizeNativeClick(document.getElementById("b"), 5, 5, function() {
     dump("Finished synthesizing click, waiting for button to be clicked...\n");
   });
 }
 
 function clicked(e) {
-  is(e.target, document.getElementById('b'), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")");
+  is(e.target, document.getElementById("b"), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")");
   subtestDone();
 }
 
 waitUntilApzStable()
 .then(runContinuation(clickButton));
 
   </script>
 </head>
--- a/gfx/layers/apz/test/mochitest/helper_div_pan.html
+++ b/gfx/layers/apz/test/mochitest/helper_div_pan.html
@@ -12,22 +12,22 @@
 function scrollOuter() {
   var transformEnd = function() {
     SpecialPowers.Services.obs.removeObserver(transformEnd, "APZ:TransformEnd", false);
     dump("Transform complete; flushing repaints...\n");
     flushApzRepaints(checkScroll);
   };
   SpecialPowers.Services.obs.addObserver(transformEnd, "APZ:TransformEnd");
 
-  synthesizeNativeTouchDrag(document.getElementById('outer'), 10, 100, 0, -50);
+  synthesizeNativeTouchDrag(document.getElementById("outer"), 10, 100, 0, -50);
   dump("Finished native drag, waiting for transform-end observer...\n");
 }
 
 function checkScroll() {
-  var outerScroll = document.getElementById('outer').scrollTop;
+  var outerScroll = document.getElementById("outer").scrollTop;
   is(outerScroll, 50, "check that the div scrolled");
   subtestDone();
 }
 
 waitUntilApzStable().then(scrollOuter);
 
   </script>
 </head>
--- a/gfx/layers/apz/test/mochitest/helper_drag_click.html
+++ b/gfx/layers/apz/test/mochitest/helper_drag_click.html
@@ -5,35 +5,35 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Sanity mouse-drag click test</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function* test(testDriver) {
-  document.addEventListener('click', clicked);
+  document.addEventListener("click", clicked);
 
   // Ensure the pointer is inside the window
-  yield synthesizeNativeMouseEvent(document.getElementById('b'), 5, 5, nativeMouseMoveEventMsg(), testDriver);
+  yield synthesizeNativeMouseEvent(document.getElementById("b"), 5, 5, nativeMouseMoveEventMsg(), testDriver);
   // mouse down, move it around, and release it near where it went down. this
   // should generate a click at the release point
-  yield synthesizeNativeMouseEvent(document.getElementById('b'), 5, 5, nativeMouseDownEventMsg(), testDriver);
-  yield synthesizeNativeMouseEvent(document.getElementById('b'), 100, 100, nativeMouseMoveEventMsg(), testDriver);
-  yield synthesizeNativeMouseEvent(document.getElementById('b'), 10, 10, nativeMouseMoveEventMsg(), testDriver);
-  yield synthesizeNativeMouseEvent(document.getElementById('b'), 8, 8, nativeMouseUpEventMsg(), testDriver);
+  yield synthesizeNativeMouseEvent(document.getElementById("b"), 5, 5, nativeMouseDownEventMsg(), testDriver);
+  yield synthesizeNativeMouseEvent(document.getElementById("b"), 100, 100, nativeMouseMoveEventMsg(), testDriver);
+  yield synthesizeNativeMouseEvent(document.getElementById("b"), 10, 10, nativeMouseMoveEventMsg(), testDriver);
+  yield synthesizeNativeMouseEvent(document.getElementById("b"), 8, 8, nativeMouseUpEventMsg(), testDriver);
   dump("Finished synthesizing click with a drag in the middle\n");
 }
 
 function clicked(e) {
   // The mouse down at (5, 5) should not have generated a click, but the up
   // at (8, 8) should have.
-  is(e.target, document.getElementById('b'), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")");
-  is(e.clientX, 8 + Math.floor(document.getElementById('b').getBoundingClientRect().left), 'x-coord of click event looks sane');
-  is(e.clientY, 8 + Math.floor(document.getElementById('b').getBoundingClientRect().top), 'y-coord of click event looks sane');
+  is(e.target, document.getElementById("b"), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")");
+  is(e.clientX, 8 + Math.floor(document.getElementById("b").getBoundingClientRect().left), "x-coord of click event looks sane");
+  is(e.clientY, 8 + Math.floor(document.getElementById("b").getBoundingClientRect().top), "y-coord of click event looks sane");
   subtestDone();
 }
 
 waitUntilApzStable()
 .then(runContinuation(test));
 
   </script>
 </head>
--- a/gfx/layers/apz/test/mochitest/helper_drag_scroll.html
+++ b/gfx/layers/apz/test/mochitest/helper_drag_scroll.html
@@ -36,37 +36,37 @@ function moveTo(mouseY, testDriver) {
   document.scrollingElement.scrollTop = (oldScrollPos + newScrollPos) / 2;
   waitForAllPaints(function() {
     document.scrollingElement.scrollTop = newScrollPos;
     testDriver();
   });
 }
 
 function setupDragging(testDriver) {
-  bar = document.getElementById('scrollbar');
+  bar = document.getElementById("scrollbar");
   mouseDown = false;
 
-  bar.addEventListener('mousedown', function(e) {
+  bar.addEventListener("mousedown", function(e) {
     mouseDown = true;
     moveTo(e.clientY, testDriver);
   }, true);
 
-  bar.addEventListener('mousemove', function(e) {
+  bar.addEventListener("mousemove", function(e) {
     if (mouseDown) {
       dump("Got mousemove clientY " + e.clientY + "\n");
       moveTo(e.clientY, testDriver);
       e.stopPropagation();
     }
   }, true);
 
-  bar.addEventListener('mouseup', function(e) {
+  bar.addEventListener("mouseup", function(e) {
     mouseDown = false;
   }, true);
 
-  window.addEventListener('mousemove', function(e) {
+  window.addEventListener("mousemove", function(e) {
     if (mouseDown) {
       ok(false, "The mousemove at " + e.clientY + " was not stopped by the bar listener, and is a glitchy event!");
       setTimeout(testDriver, 0);
     }
   });
 }
 
 function* test(testDriver) {
--- a/gfx/layers/apz/test/mochitest/helper_hittest_backface_hidden.html
+++ b/gfx/layers/apz/test/mochitest/helper_hittest_backface_hidden.html
@@ -38,17 +38,17 @@
     <div id="content"></div>
   </div>
   <div id="back"></div></body>
 <script type="application/javascript">
 
 function* test(testDriver) {
   var config = getHitTestConfig();
 
-  var subframe = document.getElementById('front');
+  var subframe = document.getElementById("front");
 
   // Set a displayport to ensure the subframe is layerized.
   // This is not required for exercising the behavior we want to test,
   // but it's needed to be able to assert the results reliably.
   config.utils.setDisplayPortForElement(0, 0, 1000, 1000, subframe, 1);
   yield waitForApzFlushedRepaints(testDriver);
 
   var subframeViewId = config.utils.getViewId(subframe);
--- a/gfx/layers/apz/test/mochitest/helper_hittest_basic.html
+++ b/gfx/layers/apz/test/mochitest/helper_hittest_basic.html
@@ -16,18 +16,18 @@
  <div id="make_root_scrollable" style="height: 5000px"></div>
 </body>
 <script type="application/javascript">
 
 function* test(testDriver) {
   var config = getHitTestConfig();
   var utils = config.utils;
 
-  var scroller = document.getElementById('scroller');
-  var apzaware = document.getElementById('apzaware');
+  var scroller = document.getElementById("scroller");
+  var apzaware = document.getElementById("apzaware");
 
   checkHitResult(hitTest(centerOf(scroller)),
                  APZHitResultFlags.VISIBLE | APZHitResultFlags.DISPATCH_TO_CONTENT,
                  utils.getViewId(document.scrollingElement),
                  "inactive scrollframe");
 
   // The apz-aware div (which has a non-passive wheel listener) is not visible
   // and so the hit-test should just return the root scrollframe area that's
--- a/gfx/layers/apz/test/mochitest/helper_hittest_checkerboard.html
+++ b/gfx/layers/apz/test/mochitest/helper_hittest_checkerboard.html
@@ -16,17 +16,17 @@
  <div id="make_root_scrollable" style="height: 5000px"></div>
 </body>
 <script type="application/javascript">
 
 function* test(testDriver) {
   var config = getHitTestConfig();
   var utils = config.utils;
 
-  var scroller = document.getElementById('scroller');
+  var scroller = document.getElementById("scroller");
 
   // Activate the scrollframe but keep the main-thread scroll position at 0.
   // Also apply an async scroll offset in the y-direction such that the
   // scrollframe scrolls all the way to the bottom of its range, where it's
   // sure to checkerboard.
   utils.setDisplayPortForElement(0, 0, 300, 1000, scroller, 1);
   yield waitForApzFlushedRepaints(testDriver);
   var scrollY = scroller.scrollTopMax;
--- a/gfx/layers/apz/test/mochitest/helper_hittest_fixed_in_scrolled_transform.html
+++ b/gfx/layers/apz/test/mochitest/helper_hittest_fixed_in_scrolled_transform.html
@@ -63,21 +63,21 @@ body {
 </body>
 <script type="application/javascript">
 
 function* test(testDriver) {
   var config = getHitTestConfig();
   var utils = config.utils;
 
   // layerize the scrollable frame
-  var subframe = document.querySelector('.subframe');
+  var subframe = document.querySelector(".subframe");
   utils.setDisplayPortForElement(0, 0, 800, 2000, subframe, 1);
   yield waitForApzFlushedRepaints(testDriver);
 
-  var target = document.querySelector('.absoluteClip');
+  var target = document.querySelector(".absoluteClip");
   checkHitResult(hitTest(centerOf(target)),
                  APZHitResultFlags.VISIBLE,
                  utils.getViewId(subframe),
                  "fixed item inside a scrolling transform");
 
   subtestDone();
 }
 
--- a/gfx/layers/apz/test/mochitest/helper_hittest_float_bug1434846.html
+++ b/gfx/layers/apz/test/mochitest/helper_hittest_float_bug1434846.html
@@ -33,17 +33,17 @@
   <div id="make-root-scrollable"></div>
 </body>
 <script type="application/javascript">
 
 function* test(testDriver) {
   var utils = getHitTestConfig().utils;
 
   hitTestScrollbar({
-    element: document.getElementById('subframe'),
+    element: document.getElementById("subframe"),
     directions: { vertical: true },
     expectedScrollId: utils.getViewId(document.scrollingElement),
     trackLocation: ScrollbarTrackLocation.START,
     expectThumb: true,
     layerState: LayerState.INACTIVE
   });
 
   subtestDone();
--- a/gfx/layers/apz/test/mochitest/helper_hittest_float_bug1443518.html
+++ b/gfx/layers/apz/test/mochitest/helper_hittest_float_bug1443518.html
@@ -33,17 +33,17 @@
   <div id="make-root-scrollable"></div>
 </body>
 <script type="application/javascript">
 
 function* test(testDriver) {
   var utils = getHitTestConfig().utils;
 
   hitTestScrollbar({
-    element: document.getElementById('subframe'),
+    element: document.getElementById("subframe"),
     directions: { horizontal: true },
     expectedScrollId: utils.getViewId(document.scrollingElement),
     trackLocation: ScrollbarTrackLocation.START,
     expectThumb: true,
     layerState: LayerState.INACTIVE
   });
 
   subtestDone();
--- a/gfx/layers/apz/test/mochitest/helper_hittest_touchaction.html
+++ b/gfx/layers/apz/test/mochitest/helper_hittest_touchaction.html
@@ -101,205 +101,205 @@
   </div>
  </div>
 </body>
 <script type="application/javascript">
 
 var config = getHitTestConfig();
 
 function* test(testDriver) {
-  for (var scroller of document.querySelectorAll('.taBigBox > div')) {
+  for (var scroller of document.querySelectorAll(".taBigBox > div")) {
     // layerize all the scrollable divs
     config.utils.setDisplayPortForElement(0, 0, 100, 100, scroller, 1);
   }
   yield waitForApzFlushedRepaints(testDriver);
 
   var scrollId = config.utils.getViewId(document.scrollingElement);
 
   checkHitResult(
-      hitTest(centerOf('taNone')),
+      hitTest(centerOf("taNone")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: none");
   checkHitResult(
-      hitTest(centerOf('taInnerNonePanX')),
+      hitTest(centerOf("taInnerNonePanX")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: pan-x inside touch-action: none");
   checkHitResult(
-      hitTest(centerOf('taInnerNoneManip')),
+      hitTest(centerOf("taInnerNoneManip")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: manipulation inside touch-action: none");
 
   checkHitResult(
-      hitTest(centerOf('taPanX')),
+      hitTest(centerOf("taPanX")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: pan-x");
   checkHitResult(
-      hitTest(centerOf('taInnerPanXY')),
+      hitTest(centerOf("taInnerPanXY")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: pan-y inside touch-action: pan-x");
   checkHitResult(
-      hitTest(centerOf('taInnerPanXManip')),
+      hitTest(centerOf("taInnerPanXManip")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: manipulation inside touch-action: pan-x");
 
   checkHitResult(
-      hitTest(centerOf('taPanY')),
+      hitTest(centerOf("taPanY")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: pan-y");
   checkHitResult(
-      hitTest(centerOf('taInnerPanYX')),
+      hitTest(centerOf("taInnerPanYX")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: pan-x inside touch-action: pan-y");
   checkHitResult(
-      hitTest(centerOf('taInnerPanYY')),
+      hitTest(centerOf("taInnerPanYY")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: pan-y inside touch-action: pan-y");
 
   checkHitResult(
-      hitTest(centerOf('taPanXY')),
+      hitTest(centerOf("taPanXY")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: pan-x pan-y");
   checkHitResult(
-      hitTest(centerOf('taInnerPanXYNone')),
+      hitTest(centerOf("taInnerPanXYNone")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: none inside touch-action: pan-x pan-y");
 
   checkHitResult(
-      hitTest(centerOf('taManip')),
+      hitTest(centerOf("taManip")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: manipulation");
   checkHitResult(
-      hitTest(centerOf('taInnerManipPanX')),
+      hitTest(centerOf("taInnerManipPanX")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: pan-x inside touch-action: manipulation");
   checkHitResult(
-      hitTest(centerOf('taInnerManipNone')),
+      hitTest(centerOf("taInnerManipNone")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: none inside touch-action: manipulation");
   checkHitResult(
-      hitTest(centerOf('taInnerManipListener')),
+      hitTest(centerOf("taInnerManipListener")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.DISPATCH_TO_CONTENT |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "div with touch listener inside touch-action: manipulation");
 
   checkHitResult(
-      hitTest(centerOf('taListener')),
+      hitTest(centerOf("taListener")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.DISPATCH_TO_CONTENT,
       scrollId,
       "div with touch listener");
   checkHitResult(
-      hitTest(centerOf('taInnerListenerPanX')),
+      hitTest(centerOf("taInnerListenerPanX")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.DISPATCH_TO_CONTENT |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
       scrollId,
       "touch-action: pan-x inside div with touch listener");
 
   checkHitResult(
-      hitTest(centerOf('taScrollerPanY')),
+      hitTest(centerOf("taScrollerPanY")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
-      config.utils.getViewId(document.getElementById('taScrollerPanY')),
+      config.utils.getViewId(document.getElementById("taScrollerPanY")),
       "touch-action: pan-y on scroller");
   checkHitResult(
-      hitTest(centerOf('taScroller')),
+      hitTest(centerOf("taScroller")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_X_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
-      config.utils.getViewId(document.getElementById('taScroller')),
+      config.utils.getViewId(document.getElementById("taScroller")),
       "touch-action: pan-y on div inside scroller");
   checkHitResult(
-      hitTest(centerOf('taScroller2')),
+      hitTest(centerOf("taScroller2")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
-      config.utils.getViewId(document.getElementById('taScroller2')),
+      config.utils.getViewId(document.getElementById("taScroller2")),
       "zooming restrictions from pan-x outside scroller get inherited in");
 
   checkHitResult(
-      hitTest(centerOf('taScrollerPanX')),
+      hitTest(centerOf("taScrollerPanX")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.PAN_Y_DISABLED |
       APZHitResultFlags.PINCH_ZOOM_DISABLED |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
-      config.utils.getViewId(document.getElementById('taScrollerPanX')),
+      config.utils.getViewId(document.getElementById("taScrollerPanX")),
       "touch-action: pan-x on scroller inside manipulation");
   checkHitResult(
-      hitTest(centerOf('taScroller3')),
+      hitTest(centerOf("taScroller3")),
       APZHitResultFlags.VISIBLE |
       APZHitResultFlags.DOUBLE_TAP_ZOOM_DISABLED,
-      config.utils.getViewId(document.getElementById('taScroller3')),
+      config.utils.getViewId(document.getElementById("taScroller3")),
       "touch-action: manipulation outside scroller gets inherited in");
 }
 
 if (!config.isWebRender) {
   ok(true, "This test is WebRender-only because we get a bunch of dispatch-to-content regions without it and the test isn't very interesting.");
   subtestDone();
 } else {
   waitUntilApzStable()
--- a/gfx/layers/apz/test/mochitest/helper_iframe_pan.html
+++ b/gfx/layers/apz/test/mochitest/helper_iframe_pan.html
@@ -5,30 +5,30 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Sanity panning test for scrollable div</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function scrollOuter() {
-  var outer = document.getElementById('outer');
+  var outer = document.getElementById("outer");
   var transformEnd = function() {
     SpecialPowers.Services.obs.removeObserver(transformEnd, "APZ:TransformEnd", false);
     dump("Transform complete; flushing repaints...\n");
     flushApzRepaints(checkScroll, outer.contentWindow);
   };
   SpecialPowers.Services.obs.addObserver(transformEnd, "APZ:TransformEnd");
 
   synthesizeNativeTouchDrag(outer.contentDocument.body, 10, 100, 0, -50);
   dump("Finished native drag, waiting for transform-end observer...\n");
 }
 
 function checkScroll() {
-  var outerScroll = document.getElementById('outer').contentWindow.scrollY;
+  var outerScroll = document.getElementById("outer").contentWindow.scrollY;
   if (getPlatform() == "windows") {
     // On windows, because we run this test with native event synthesization,
     // Windows can end up eating the first touchmove which can result in the
     // scroll amount being slightly smaller than 50px. See bug 1388955.
     dump("iframe scrolled " + outerScroll + "px");
     ok(outerScroll > 45, "iframe scrolled at least 45 px");
     ok(outerScroll <= 50, "iframe scrolled at most 50 px");
   } else {
--- a/gfx/layers/apz/test/mochitest/helper_long_tap.html
+++ b/gfx/layers/apz/test/mochitest/helper_long_tap.html
@@ -5,75 +5,75 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Ensure we get a touch-cancel after a contextmenu comes up</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function longPressLink() {
-  synthesizeNativeTouch(document.getElementById('b'), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, function() {
+  synthesizeNativeTouch(document.getElementById("b"), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, function() {
     dump("Finished synthesizing touch-start, waiting for events...\n");
   });
 }
 
 var eventsFired = 0;
 function recordEvent(e) {
   if (getPlatform() == "windows") {
     // On Windows we get a mouselongtap event once the long-tap has been detected
     // by APZ, and that's what we use as the trigger to lift the finger. That then
     // triggers the contextmenu. This matches the platform convention.
     switch (eventsFired) {
-      case 0: is(e.type, 'touchstart', 'Got a touchstart'); break;
+      case 0: is(e.type, "touchstart", "Got a touchstart"); break;
       case 1:
-        is(e.type, 'mouselongtap', 'Got a mouselongtap');
-        synthesizeNativeTouch(document.getElementById('b'), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE);
+        is(e.type, "mouselongtap", "Got a mouselongtap");
+        synthesizeNativeTouch(document.getElementById("b"), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE);
         break;
-      case 2: is(e.type, 'touchend', 'Got a touchend'); break;
-      case 3: is(e.type, 'contextmenu', 'Got a contextmenu'); e.preventDefault(); break;
-      default: ok(false, 'Got an unexpected event of type ' + e.type); break;
+      case 2: is(e.type, "touchend", "Got a touchend"); break;
+      case 3: is(e.type, "contextmenu", "Got a contextmenu"); e.preventDefault(); break;
+      default: ok(false, "Got an unexpected event of type " + e.type); break;
     }
     eventsFired++;
 
     if (eventsFired == 4) {
       dump("Finished waiting for events, doing an APZ flush to see if any more unexpected events come through...\n");
       flushApzRepaints(function() {
         dump("Done APZ flush, ending test...\n");
         subtestDone();
       });
     }
   } else {
     // On non-Windows platforms we get a contextmenu event once the long-tap has
     // been detected. Since we prevent-default that, we don't get a mouselongtap
     // event at all, and instead get a touchcancel.
     switch (eventsFired) {
-      case 0: is(e.type, 'touchstart', 'Got a touchstart'); break;
-      case 1: is(e.type, 'contextmenu', 'Got a contextmenu'); e.preventDefault(); break;
-      case 2: is(e.type, 'touchcancel', 'Got a touchcancel'); break;
-      default: ok(false, 'Got an unexpected event of type ' + e.type); break;
+      case 0: is(e.type, "touchstart", "Got a touchstart"); break;
+      case 1: is(e.type, "contextmenu", "Got a contextmenu"); e.preventDefault(); break;
+      case 2: is(e.type, "touchcancel", "Got a touchcancel"); break;
+      default: ok(false, "Got an unexpected event of type " + e.type); break;
     }
     eventsFired++;
 
     if (eventsFired == 3) {
-      synthesizeNativeTouch(document.getElementById('b'), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, function() {
+      synthesizeNativeTouch(document.getElementById("b"), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, function() {
         dump("Finished synthesizing touch-end, doing an APZ flush to see if any more unexpected events come through...\n");
         flushApzRepaints(function() {
           dump("Done APZ flush, ending test...\n");
           subtestDone();
         });
       });
     }
   }
 }
 
-window.addEventListener('touchstart', recordEvent, { passive: true, capture: true });
-window.addEventListener('touchend', recordEvent, { passive: true, capture: true });
-window.addEventListener('touchcancel', recordEvent, true);
-window.addEventListener('contextmenu', recordEvent, true);
-SpecialPowers.addChromeEventListener('mouselongtap', recordEvent, true);
+window.addEventListener("touchstart", recordEvent, { passive: true, capture: true });
+window.addEventListener("touchend", recordEvent, { passive: true, capture: true });
+window.addEventListener("touchcancel", recordEvent, true);
+window.addEventListener("contextmenu", recordEvent, true);
+SpecialPowers.addChromeEventListener("mouselongtap", recordEvent, true);
 
 waitUntilApzStable()
 .then(longPressLink);
 
   </script>
 </head>
 <body>
  <a id="b" href="#">Link to nowhere</a>
--- a/gfx/layers/apz/test/mochitest/helper_override_root.html
+++ b/gfx/layers/apz/test/mochitest/helper_override_root.html
@@ -7,17 +7,17 @@
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 // Add a non-passive listener on the document, so that we have a document-level
 // APZ-aware listener, and the entire document is put in the dispatch-to-content
 // region
-document.addEventListener('wheel', function(e) {
+document.addEventListener("wheel", function(e) {
     dump("Wheel listener running...\n");
 
     // spin for 2 seconds to give APZ time to scroll, if the event region override
     // is broken and it decides not to wait for the main thread. Note that it's
     // possible the APZ controller thread is busy for whatever reason so APZ
     // may not scroll. That might cause this test to only fail intermittently
     // instead of consistently if the behaviour being tested regresses.
     var now = Date.now();
--- a/gfx/layers/apz/test/mochitest/helper_overscroll_behavior_bug1425573.html
+++ b/gfx/layers/apz/test/mochitest/helper_overscroll_behavior_bug1425573.html
@@ -2,17 +2,17 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Wheel-scrolling over inactive subframe with overscroll-behavior</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function* test(testDriver) {
-  var subframe = document.getElementById('scroll');
+  var subframe = document.getElementById("scroll");
 
   // scroll over the middle of the subframe, and make sure that the page
   // does not scroll.
   var waitForScroll = false;  // don't wait for a scroll event, it will never come
   yield moveMouseAndScrollWheelOver(subframe, 100, 100, testDriver, waitForScroll);
   ok(window.scrollY == 0, "overscroll-behavior was respected");
 }
 
--- a/gfx/layers/apz/test/mochitest/helper_overscroll_behavior_bug1425603.html
+++ b/gfx/layers/apz/test/mochitest/helper_overscroll_behavior_bug1425603.html
@@ -29,17 +29,17 @@
   <div id="make_root_scrollable" style="height: 5000px"></div>
 </body>
 <script type="application/javascript">
 
 function* test(testDriver) {
   var config = getHitTestConfig();
   var utils = config.utils;
 
-  var subframe = document.getElementById('subframe');
+  var subframe = document.getElementById("subframe");
 
   // Activate the scrollframe but keep the main-thread scroll position at 0.
   // Also apply an async scroll offset in the y-direction large enough
   // to make the scrollframe checkerboard.
   // Note: We have to be careful with the numbers here.
   //   moveMouseAndScrollWheelOver() relies on the main thread receiving
   //   the synthesized mouse-move and wheel events. However, the async
   //   transform created by setAsyncScrollOffset() will cause an untransform
--- a/gfx/layers/apz/test/mochitest/helper_overscroll_behavior_bug1494440.html
+++ b/gfx/layers/apz/test/mochitest/helper_overscroll_behavior_bug1494440.html
@@ -8,17 +8,17 @@
 <body>
   <iframe id="scroll" srcdoc="<html style='overscroll-behavior:none;'><div style='width:100px;height:2000px;'>">
   </iframe>
   <div style="height: 5000px;"></div><!-- So the page is scrollable as well -->
 
   <script type="application/javascript">
 
 function* test(testDriver) {
-  var iframe = document.getElementById('scroll');
+  var iframe = document.getElementById("scroll");
   var iframeWindow = iframe.contentWindow;
   var iframeContent = iframeWindow.document.documentElement;
 
   // scroll the iframe to the bottom, such that a subsequent scroll on it
   // _would_ hand off to the page if overscroll-behavior allowed it
   iframeWindow.scrollTo(0, iframeWindow.scrollMaxY);
   yield waitForApzFlushedRepaints(testDriver);
   is(iframeWindow.scrollY, iframeWindow.scrollMaxY, "iframe has scrolled to the bottom");
--- a/gfx/layers/apz/test/mochitest/helper_scroll_inactive_perspective.html
+++ b/gfx/layers/apz/test/mochitest/helper_scroll_inactive_perspective.html
@@ -2,17 +2,17 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Wheel-scrolling over inactive subframe with perspective</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function* test(testDriver) {
-  var subframe = document.getElementById('scroll');
+  var subframe = document.getElementById("scroll");
 
   // scroll over the middle of the subframe, to make sure it scrolls,
   // not the page
   var scrollPos = subframe.scrollTop;
   yield moveMouseAndScrollWheelOver(subframe, 100, 100, testDriver);
   dump("after scroll, subframe.scrollTop = " + subframe.scrollTop + "\n");
   ok(subframe.scrollTop > scrollPos, "subframe scrolled after wheeling over it");
 }
--- a/gfx/layers/apz/test/mochitest/helper_scroll_inactive_zindex.html
+++ b/gfx/layers/apz/test/mochitest/helper_scroll_inactive_zindex.html
@@ -2,17 +2,17 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Wheel-scrolling over inactive subframe with z-index</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function* test(testDriver) {
-  var subframe = document.getElementById('scroll');
+  var subframe = document.getElementById("scroll");
 
   // scroll over the middle of the subframe, and make sure that it scrolls,
   // not the page
   var scrollPos = subframe.scrollTop;
   yield moveMouseAndScrollWheelOver(subframe, 100, 100, testDriver);
   dump("after scroll, subframe.scrollTop = " + subframe.scrollTop + "\n");
   ok(subframe.scrollTop > scrollPos, "subframe scrolled after wheeling over it");
 }
--- a/gfx/layers/apz/test/mochitest/helper_scroll_on_position_fixed.html
+++ b/gfx/layers/apz/test/mochitest/helper_scroll_on_position_fixed.html
@@ -2,31 +2,31 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Wheel-scrolling over position:fixed and position:sticky elements, in the top-level document as well as iframes</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function* test(testDriver) {
-  var iframeWin = document.getElementById('iframe').contentWindow;
+  var iframeWin = document.getElementById("iframe").contentWindow;
 
   // scroll over the middle of the iframe's position:sticky element, check
   // that it scrolls the iframe
   var scrollPos = iframeWin.scrollY;
   yield moveMouseAndScrollWheelOver(iframeWin.document.body, 50, 150, testDriver);
   ok(iframeWin.scrollY > scrollPos, "iframe scrolled after wheeling over the position:sticky element");
 
   // same, but using the iframe's position:fixed element
   scrollPos = iframeWin.scrollY;
   yield moveMouseAndScrollWheelOver(iframeWin.document.body, 250, 150, testDriver);
   ok(iframeWin.scrollY > scrollPos, "iframe scrolled after wheeling over the position:fixed element");
 
   // same, but scrolling the scrollable frame *inside* the position:fixed item
-  var fpos = document.getElementById('fpos_scrollable');
+  var fpos = document.getElementById("fpos_scrollable");
   scrollPos = fpos.scrollTop;
   yield moveMouseAndScrollWheelOver(fpos, 50, 150, testDriver);
   ok(fpos.scrollTop > scrollPos, "scrollable item inside fixed-pos element scrolled");
   // wait for it to layerize fully and then try again
   yield waitForAllPaints(function() {
     flushApzRepaints(testDriver);
   });
   scrollPos = fpos.scrollTop;
--- a/gfx/layers/apz/test/mochitest/helper_scroll_over_scrollbar.html
+++ b/gfx/layers/apz/test/mochitest/helper_scroll_over_scrollbar.html
@@ -2,17 +2,17 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Wheel-scrolling over scrollbar</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function* test(testDriver) {
-  var subframe = document.getElementById('scroll');
+  var subframe = document.getElementById("scroll");
 
   // scroll over the scrollbar, and make sure the subframe scrolls
   var scrollPos = subframe.scrollTop;
   var scrollbarX = (200 + subframe.clientWidth) / 2;
   yield synthesizeNativeWheelAndWaitForScrollEvent(subframe, scrollbarX, 100,
       0, -10, testDriver);
   ok(subframe.scrollTop > scrollPos, "subframe scrolled after wheeling over scrollbar");
 }
--- a/gfx/layers/apz/test/mochitest/helper_scroll_tables_perspective.html
+++ b/gfx/layers/apz/test/mochitest/helper_scroll_tables_perspective.html
@@ -1,16 +1,16 @@
 <!DOCTYPE html>
 <head>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 function* test(testDriver) {
-  var subframe = document.getElementById('content-wrapper');
+  var subframe = document.getElementById("content-wrapper");
 
   // scroll over the middle of the subframe, to make sure it scrolls,
   // not the page
   var scrollPos = subframe.scrollTop;
   yield moveMouseAndScrollWheelOver(subframe, 100, 100, testDriver);
   ok(subframe.scrollTop > scrollPos, "subframe scrolled after wheeling over it");
 }
 
--- a/gfx/layers/apz/test/mochitest/helper_scrollbar_snap_bug1501062.html
+++ b/gfx/layers/apz/test/mochitest/helper_scrollbar_snap_bug1501062.html
@@ -21,26 +21,26 @@ function* test(testDriver) {
   var snapMultiplier = SpecialPowers.getIntPref("slider.snapMultiplier");
 
   // Much of the code below is "inlined" from dragVerticalScrollbar. Reusing
   // that code was nontrivial given the modifications we needed to make, and
   // would have increased the complexity of that helper function more than I'd
   // like. However if any bugfixes are made to that function this code might
   // need to be updated as well.
 
-  var scrollableDiv = document.getElementById('scrollable');
+  var scrollableDiv = document.getElementById("scrollable");
   var boundingClientRect = scrollableDiv.getBoundingClientRect();
   var verticalScrollbarWidth = boundingClientRect.width - scrollableDiv.clientWidth;
   if (verticalScrollbarWidth == 0) {
     ok(true, "No scrollbar, can't do this test");
     return;
   }
 
   // register a scroll listener for the initial drag
-  scrollableDiv.addEventListener('scroll', () => setTimeout(testDriver, 0), {once: true});
+  scrollableDiv.addEventListener("scroll", () => setTimeout(testDriver, 0), {once: true});
 
   var upArrowHeight = verticalScrollbarWidth; // assume square scrollbar buttons
   var mouseX = scrollableDiv.clientWidth + (verticalScrollbarWidth / 2);
   var mouseY = upArrowHeight + 5; // start dragging somewhere in the thumb
 
   dump("Starting drag at " + mouseX + ", " + mouseY + " from top-left of #" + scrollableDiv.id + "\n");
 
   // Move the mouse to the scrollbar thumb and drag it down
@@ -56,32 +56,32 @@ function* test(testDriver) {
   ok(savedScrollPos > 0, "Scrolled to " + savedScrollPos);
 
   // register a new scroll event listener. The next mousemove below will either
   // trigger the snapback behaviour (if snapMultiplier > 0) or trigger a vertical
   // scroll (if snapMultiplier == 0) because of the x- and y-coordinates we move
   // the mouse to. This allows us to wait for a scroll event in either case.
   // If we only triggered the snapback case then waiting for the scroll to
   // "not happen" in the other case would be more error-prone.
-  scrollableDiv.addEventListener('scroll', () => setTimeout(testDriver, 0), {once: true});
+  scrollableDiv.addEventListener("scroll", () => setTimeout(testDriver, 0), {once: true});
   // Add 2 to snapMultipler just to make sure we get far enough away from the scrollbar
   var snapBackDistance = (snapMultiplier + 2) * verticalScrollbarWidth;
   yield synthesizeNativeMouseEvent(scrollableDiv, mouseX + snapBackDistance, mouseY + 10, nativeMouseMoveEventMsg(), testDriver);
 
   // wait here until the scroll happens
   yield;
   if (snapMultiplier > 0) {
     ok(scrollableDiv.scrollTop == 0, "Scroll position snapped back to " + scrollableDiv.scrollTop);
   } else {
     ok(scrollableDiv.scrollTop > savedScrollPos, "Scroll position increased to " + scrollableDiv.scrollTop);
   }
 
   // Now we move the mouse back to the old position to ensure the scroll position
   // gets restored properly
-  scrollableDiv.addEventListener('scroll', () => setTimeout(testDriver, 0), {once: true});
+  scrollableDiv.addEventListener("scroll", () => setTimeout(testDriver, 0), {once: true});
   yield synthesizeNativeMouseEvent(scrollableDiv, mouseX, mouseY, nativeMouseMoveEventMsg(), testDriver);
 
   // wait here until the scroll happens
   yield;
   ok(scrollableDiv.scrollTop == savedScrollPos, "Scroll position was restored to " + scrollableDiv.scrollTop);
 
   // Release mouse and ensure the scroll position stuck
   yield synthesizeNativeMouseEvent(scrollableDiv, mouseX, mouseY, nativeMouseUpEventMsg(), testDriver);
--- a/gfx/layers/apz/test/mochitest/helper_scrollto_tap.html
+++ b/gfx/layers/apz/test/mochitest/helper_scrollto_tap.html
@@ -19,39 +19,39 @@ function startTest() {
   }
 
   // This is a scroll by 20px that should use paint-skipping if possible.
   // If paint-skipping is enabled, this should not trigger a paint, but go
   // directly to the compositor using an empty transaction. We check for this
   // by ensuring the document element did not get painted.
   var utils = window.opener.SpecialPowers.getDOMWindowUtils(window);
   var elem = document.documentElement;
-  var skipping = location.search == '?true';
+  var skipping = location.search == "?true";
   utils.checkAndClearPaintedState(elem);
   window.scrollTo(0, 20);
   waitForAllPaints(function() {
     if (skipping) {
       is(utils.checkAndClearPaintedState(elem), false, "Document element didn't get painted");
     }
     // After that's done, we click on the button to make sure the
     // skipped-paint codepath still has working APZ event transformations.
     clickButton();
   });
 }
 
 function clickButton() {
-  document.addEventListener('click', clicked);
+  document.addEventListener("click", clicked);
 
-  synthesizeNativeTap(document.getElementById('b'), 5, 5, function() {
+  synthesizeNativeTap(document.getElementById("b"), 5, 5, function() {
     dump("Finished synthesizing tap, waiting for button to be clicked...\n");
   });
 }
 
 function clicked(e) {
-  is(e.target, document.getElementById('b'), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")");
+  is(e.target, document.getElementById("b"), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")");
   subtestDone();
 }
 
 waitUntilApzStable().then(startTest);
 
   </script>
 </head>
 <body style="height: 5000px">
--- a/gfx/layers/apz/test/mochitest/helper_tap.html
+++ b/gfx/layers/apz/test/mochitest/helper_tap.html
@@ -5,25 +5,25 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Sanity touch-tapping test</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function clickButton() {
-  document.addEventListener('click', clicked);
+  document.addEventListener("click", clicked);
 
-  synthesizeNativeTap(document.getElementById('b'), 5, 5, function() {
+  synthesizeNativeTap(document.getElementById("b"), 5, 5, function() {
     dump("Finished synthesizing tap, waiting for button to be clicked...\n");
   });
 }
 
 function clicked(e) {
-  is(e.target, document.getElementById('b'), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")");
+  is(e.target, document.getElementById("b"), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")");
   subtestDone();
 }
 
 waitUntilApzStable().then(clickButton);
 
   </script>
 </head>
 <body>
--- a/gfx/layers/apz/test/mochitest/helper_tap_default_passive.html
+++ b/gfx/layers/apz/test/mochitest/helper_tap_default_passive.html
@@ -7,56 +7,56 @@
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 var touchdownTime;
 
 function longPressLink() {
-  synthesizeNativeTouch(document.getElementById('b'), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, function() {
+  synthesizeNativeTouch(document.getElementById("b"), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, function() {
     dump("Finished synthesizing touch-start, waiting for events...\n");
   });
 }
 
 var touchstartReceived = false;
 function recordEvent(e) {
   if (!touchstartReceived) {
     touchstartReceived = true;
-    is(e.type, 'touchstart', 'Got a touchstart');
+    is(e.type, "touchstart", "Got a touchstart");
     e.preventDefault(); // should be a no-op because it's a passive listener
     return;
   }
 
   // If APZ decides to wait for the content response on a particular input block,
   // it needs to wait until both the touchstart and touchmove event are handled
   // by the main thread. In this case there is no touchmove at all, so APZ would
   // end up waiting indefinitely and time out the test. The fact that we get this
   // contextmenu event (mouselongtap on Windows) at all means that APZ decided
   // not to wait for the content response, which is the desired behaviour, since
   // the touchstart listener was registered as a passive listener.
   if (getPlatform() == "windows") {
-    is(e.type, 'mouselongtap', 'Got a mouselongtap');
+    is(e.type, "mouselongtap", "Got a mouselongtap");
   } else {
-    is(e.type, 'contextmenu', 'Got a contextmenu');
+    is(e.type, "contextmenu", "Got a contextmenu");
   }
   e.preventDefault();
 
-  synthesizeNativeTouch(document.getElementById('b'), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, function() {
+  synthesizeNativeTouch(document.getElementById("b"), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, function() {
     dump("Finished synthesizing touch-end to clear state; finishing test...\n");
     subtestDone();
   });
 }
 
 // Note, not passing 'passive'.
-window.addEventListener('touchstart', recordEvent, { capture: true });
+window.addEventListener("touchstart", recordEvent, { capture: true });
 if (getPlatform() == "windows") {
-  SpecialPowers.addChromeEventListener('mouselongtap', recordEvent, true);
+  SpecialPowers.addChromeEventListener("mouselongtap", recordEvent, true);
 } else {
-  window.addEventListener('contextmenu', recordEvent, true);
+  window.addEventListener("contextmenu", recordEvent, true);
 }
 
 waitUntilApzStable()
 .then(longPressLink);
 
   </script>
 </head>
 <body>
--- a/gfx/layers/apz/test/mochitest/helper_tap_fullzoom.html
+++ b/gfx/layers/apz/test/mochitest/helper_tap_fullzoom.html
@@ -5,25 +5,25 @@
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Sanity touch-tapping test with fullzoom</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 function clickButton() {
-  document.addEventListener('click', clicked);
+  document.addEventListener("click", clicked);
 
-  synthesizeNativeTap(document.getElementById('b'), 5, 5, function() {
+  synthesizeNativeTap(document.getElementById("b"), 5, 5, function() {
     dump("Finished synthesizing tap, waiting for button to be clicked...\n");
   });
 }
 
 function clicked(e) {
-  is(e.target, document.getElementById('b'), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")");
+  is(e.target, document.getElementById("b"), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")");
   subtestDone();
 }
 
 SpecialPowers.setFullZoom(window, 2.0);
 waitUntilApzStable().then(clickButton);
 
   </script>
 </head>
--- a/gfx/layers/apz/test/mochitest/helper_tap_passive.html
+++ b/gfx/layers/apz/test/mochitest/helper_tap_passive.html
@@ -7,55 +7,55 @@
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 
 var touchdownTime;
 
 function longPressLink() {
-  synthesizeNativeTouch(document.getElementById('b'), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, function() {
+  synthesizeNativeTouch(document.getElementById("b"), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, function() {
     dump("Finished synthesizing touch-start, waiting for events...\n");
   });
 }
 
 var touchstartReceived = false;
 function recordEvent(e) {
   if (!touchstartReceived) {
     touchstartReceived = true;
-    is(e.type, 'touchstart', 'Got a touchstart');
+    is(e.type, "touchstart", "Got a touchstart");
     e.preventDefault(); // should be a no-op because it's a passive listener
     return;
   }
 
   // If APZ decides to wait for the content response on a particular input block,
   // it needs to wait until both the touchstart and touchmove event are handled
   // by the main thread. In this case there is no touchmove at all, so APZ would
   // end up waiting indefinitely and time out the test. The fact that we get this
   // contextmenu event (mouselongtap on Windows) at all means that APZ decided
   // not to wait for the content response, which is the desired behaviour, since
   // the touchstart listener was registered as a passive listener.
   if (getPlatform() == "windows") {
-    is(e.type, 'mouselongtap', 'Got a mouselongtap');
+    is(e.type, "mouselongtap", "Got a mouselongtap");
   } else {
-    is(e.type, 'contextmenu', 'Got a contextmenu');
+    is(e.type, "contextmenu", "Got a contextmenu");
   }
   e.preventDefault();
 
-  synthesizeNativeTouch(document.getElementById('b'), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, function() {
+  synthesizeNativeTouch(document.getElementById("b"), 5, 5, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, function() {
     dump("Finished synthesizing touch-end to clear state; finishing test...\n");
     subtestDone();
   });
 }
 
-window.addEventListener('touchstart', recordEvent, { passive: true, capture: true });
+window.addEventListener("touchstart", recordEvent, { passive: true, capture: true });
 if (getPlatform() == "windows") {
-  SpecialPowers.addChromeEventListener('mouselongtap', recordEvent, true);
+  SpecialPowers.addChromeEventListener("mouselongtap", recordEvent, true);
 } else {
-  window.addEventListener('contextmenu', recordEvent, true);
+  window.addEventListener("contextmenu", recordEvent, true);
 }
 
 waitUntilApzStable()
 .then(longPressLink);
 
   </script>
 </head>
 <body>
--- a/gfx/layers/apz/test/mochitest/helper_touch_action.html
+++ b/gfx/layers/apz/test/mochitest/helper_touch_action.html
@@ -10,28 +10,28 @@
   <script type="application/javascript">
 
 function checkScroll(x, y, desc) {
   is(window.scrollX, x, desc + " - x axis");
   is(window.scrollY, y, desc + " - y axis");
 }
 
 function* test(testDriver) {
-  var target = document.getElementById('target');
+  var target = document.getElementById("target");
 
-  document.body.addEventListener('touchend', testDriver, { passive: true });
+  document.body.addEventListener("touchend", testDriver, { passive: true });
 
   // drag the page up to scroll down by 50px
   yield ok(synthesizeNativeTouchDrag(target, 10, 100, 0, -50),
       "Synthesized native vertical drag (1), waiting for touch-end event...");
   yield flushApzRepaints(testDriver);
   checkScroll(0, 50, "After first vertical drag, with pan-y" );
 
   // switch style to pan-x
-  document.body.style.touchAction = 'pan-x';
+  document.body.style.touchAction = "pan-x";
   ok(true, "Waiting for pan-x to propagate...");
   yield waitForAllPaintsFlushed(function() {
     flushApzRepaints(testDriver);
   });
 
   // drag the page up to scroll down by 50px, but it won't happen because pan-x
   yield ok(synthesizeNativeTouchDrag(target, 10, 100, 0, -50),
      "Synthesized native vertical drag (2), waiting for touch-end event...");
@@ -47,44 +47,44 @@ function* test(testDriver) {
   // drag the page diagonally right/down to scroll up/left by 40px each axis;
   // only the x-axis will actually scroll because pan-x
   yield ok(synthesizeNativeTouchDrag(target, 10, 10, 40, 40),
      "Synthesized diagonal drag (1), waiting for touch-end event...");
   yield flushApzRepaints(testDriver);
   checkScroll(10, 50, "After first diagonal drag, with pan-x");
 
   // switch style back to pan-y
-  document.body.style.touchAction = 'pan-y';
+  document.body.style.touchAction = "pan-y";
   ok(true, "Waiting for pan-y to propagate...");
   yield waitForAllPaintsFlushed(function() {
     flushApzRepaints(testDriver);
   });
 
   // drag the page diagonally right/down to scroll up/left by 40px each axis;
   // only the y-axis will actually scroll because pan-y
   yield ok(synthesizeNativeTouchDrag(target, 10, 10, 40, 40),
      "Synthesized diagonal drag (2), waiting for touch-end event...");
   yield flushApzRepaints(testDriver);
   checkScroll(10, 10, "After second diagonal drag, with pan-y");
 
   // switch style to none
-  document.body.style.touchAction = 'none';
+  document.body.style.touchAction = "none";
   ok(true, "Waiting for none to propagate...");
   yield waitForAllPaintsFlushed(function() {
     flushApzRepaints(testDriver);
   });
 
   // drag the page diagonally up/left to scroll down/right by 40px each axis;
   // neither will scroll because of touch-action
   yield ok(synthesizeNativeTouchDrag(target, 100, 100, -40, -40),
       "Synthesized diagonal drag (3), waiting for touch-end event...");
   yield flushApzRepaints(testDriver);
   checkScroll(10, 10, "After third diagonal drag, with none");
 
-  document.body.style.touchAction = 'manipulation';
+  document.body.style.touchAction = "manipulation";
   ok(true, "Waiting for manipulation to propagate...");
   yield waitForAllPaintsFlushed(function() {
     flushApzRepaints(testDriver);
   });
 
   // drag the page diagonally up/left to scroll down/right by 40px each axis;
   // both will scroll because of touch-action
   yield ok(synthesizeNativeTouchDrag(target, 100, 100, -40, -40),
--- a/gfx/layers/apz/test/mochitest/helper_touch_action_complex.html
+++ b/gfx/layers/apz/test/mochitest/helper_touch_action_complex.html
@@ -15,45 +15,45 @@ function checkScroll(target, x, y, desc)
 }
 
 function resetConfiguration(config, testDriver) {
   // Cycle through all the configuration_X elements, setting them to display:none
   // except for when X == config, in which case set it to display:block
   var i = 0;
   while (true) {
     i++;
-    var element = document.getElementById('configuration_' + i);
+    var element = document.getElementById("configuration_" + i);
     if (element == null) {
       if (i <= config) {
         ok(false, "The configuration requested was not encountered!");
       }
       break;
     }
 
     if (i == config) {
-      element.style.display = 'block';
+      element.style.display = "block";
     } else {
-      element.style.display = 'none';
+      element.style.display = "none";
     }
   }
 
   // Also reset the scroll position on the scrollframe
-  var s = document.getElementById('scrollframe');
+  var s = document.getElementById("scrollframe");
   s.scrollLeft = 0;
   s.scrollTop = 0;
 
   return waitForAllPaints(function() {
     flushApzRepaints(testDriver);
   });
 }
 
 function* test(testDriver) {
-  var scrollframe = document.getElementById('scrollframe');
+  var scrollframe = document.getElementById("scrollframe");
 
-  document.body.addEventListener('touchend', testDriver, { passive: true });
+  document.body.addEventListener("touchend", testDriver, { passive: true });
 
   // Helper function for the tests below.
   // Touch-pan configuration |configuration| towards scroll offset (dx, dy) with
   // the pan touching down at (x, y). Check that the final scroll offset is
   // (ex, ey). |desc| is some description string.
   function* scrollAndCheck(configuration, x, y, dx, dy, ex, ey, desc) {
     // Start with a clean slate
     yield resetConfiguration(configuration, testDriver);
@@ -62,17 +62,17 @@ function* test(testDriver) {
     dy = -dy;
     // Do the pan
     yield ok(synthesizeNativeTouchDrag(scrollframe, x, y, dx, dy),
         "Synthesized drag of (" + dx + ", " + dy + ") on configuration " + configuration);
     yield waitForAllPaints(function() {
       flushApzRepaints(testDriver);
     });
     // Check for expected scroll position
-    checkScroll(scrollframe, ex, ey, 'configuration ' + configuration + ' ' + desc);
+    checkScroll(scrollframe, ex, ey, "configuration " + configuration + " " + desc);
   }
 
   // Test configuration_1, which contains two sibling elements that are
   // overlapping. The touch-action from the second sibling (which is on top)
   // should be used for the overlapping area.
   yield* scrollAndCheck(1,  25,  75, 20,  0, 20,  0, "first element horizontal scroll");
   yield* scrollAndCheck(1,  25,  75,  0, 50,  0,  0, "first element vertical scroll");
   yield* scrollAndCheck(1,  75,  75, 50,  0,  0,  0, "overlap horizontal scroll");
--- a/gfx/layers/apz/test/mochitest/helper_touch_action_regions.html
+++ b/gfx/layers/apz/test/mochitest/helper_touch_action_regions.html
@@ -10,106 +10,106 @@
   <script type="application/javascript">
 
 function failure(e) {
   ok(false, "This event listener should not have triggered: " + e.type);
 }
 
 function listener(callback) {
   return function(e) {
-    ok(e.type == 'touchstart', "The touchstart event handler was triggered after snapshotting completed");
+    ok(e.type == "touchstart", "The touchstart event handler was triggered after snapshotting completed");
     setTimeout(callback, 0);
   };
 }
 
 // This helper function provides a way for the child process to synchronously
 // check how many touch events the chrome process main-thread has processed. This
 // function can be called with three values: 'start', 'report', and 'end'.
 // The 'start' invocation sets up the listeners, and should be invoked before
 // the touch events of interest are generated. This should only be called once.
 // This returns true on success, and false on failure.
 // The 'report' invocation can be invoked multiple times, and returns an object
 // (in JSON string format) containing the counters.
 // The 'end' invocation tears down the listeners, and should be invoked once
 // at the end to clean up. Returns true on success, false on failure.
 function chromeTouchEventCounter(operation) {
   function chromeProcessCounter() {
-    addMessageListener('start', function() {
-      ChromeUtils.import('resource://gre/modules/Services.jsm');
-      var topWin = Services.wm.getMostRecentWindow('navigator:browser');
-      if (typeof topWin.eventCounts != 'undefined') {
-        dump('Found pre-existing eventCounts object on the top window!\n');
+    addMessageListener("start", function() {
+      ChromeUtils.import("resource://gre/modules/Services.jsm");
+      var topWin = Services.wm.getMostRecentWindow("navigator:browser");
+      if (typeof topWin.eventCounts != "undefined") {
+        dump("Found pre-existing eventCounts object on the top window!\n");
         return false;
       }
-      topWin.eventCounts = { 'touchstart': 0, 'touchmove': 0, 'touchend': 0 };
+      topWin.eventCounts = { "touchstart": 0, "touchmove": 0, "touchend": 0 };
       topWin.counter = function(e) {
         topWin.eventCounts[e.type]++;
       }
 
-      topWin.addEventListener('touchstart', topWin.counter, { passive: true });
-      topWin.addEventListener('touchmove', topWin.counter, { passive: true });
-      topWin.addEventListener('touchend', topWin.counter, { passive: true });
+      topWin.addEventListener("touchstart", topWin.counter, { passive: true });
+      topWin.addEventListener("touchmove", topWin.counter, { passive: true });
+      topWin.addEventListener("touchend", topWin.counter, { passive: true });
 
       return true;
     });
 
-    addMessageListener('report', function() {
-      ChromeUtils.import('resource://gre/modules/Services.jsm');
-      var topWin = Services.wm.getMostRecentWindow('navigator:browser');
+    addMessageListener("report", function() {
+      ChromeUtils.import("resource://gre/modules/Services.jsm");
+      var topWin = Services.wm.getMostRecentWindow("navigator:browser");
       return JSON.stringify(topWin.eventCounts);
     });
 
-    addMessageListener('end', function() {
-      ChromeUtils.import('resource://gre/modules/Services.jsm');
-      var topWin = Services.wm.getMostRecentWindow('navigator:browser');
-      if (typeof topWin.eventCounts == 'undefined') {
-        dump('The eventCounts object was not found on the top window!\n');
+    addMessageListener("end", function() {
+      ChromeUtils.import("resource://gre/modules/Services.jsm");
+      var topWin = Services.wm.getMostRecentWindow("navigator:browser");
+      if (typeof topWin.eventCounts == "undefined") {
+        dump("The eventCounts object was not found on the top window!\n");
         return false;
       }
-      topWin.removeEventListener('touchstart', topWin.counter);
-      topWin.removeEventListener('touchmove', topWin.counter);
-      topWin.removeEventListener('touchend', topWin.counter);
+      topWin.removeEventListener("touchstart", topWin.counter);
+      topWin.removeEventListener("touchmove", topWin.counter);
+      topWin.removeEventListener("touchend", topWin.counter);
       delete topWin.counter;
       delete topWin.eventCounts;
       return true;
     });
   }
 
-  if (typeof chromeTouchEventCounter.chromeHelper == 'undefined') {
+  if (typeof chromeTouchEventCounter.chromeHelper == "undefined") {
     // This is the first time chromeTouchEventCounter is being called; do initialization
     chromeTouchEventCounter.chromeHelper = SpecialPowers.loadChromeScript(chromeProcessCounter);
     ApzCleanup.register(function() { chromeTouchEventCounter.chromeHelper.destroy() });
   }
 
   return chromeTouchEventCounter.chromeHelper.sendSyncMessage(operation, "");
 }
 
 // Simple wrapper that waits until the chrome process has seen |count| instances
 // of the |eventType| event. Returns true on success, and false if 10 seconds
 // go by without the condition being satisfied.
 function waitFor(eventType, count) {
   var start = Date.now();
-  while (JSON.parse(chromeTouchEventCounter('report'))[eventType] != count) {
+  while (JSON.parse(chromeTouchEventCounter("report"))[eventType] != count) {
     if (Date.now() - start > 10000) {
       // It's taking too long, let's abort
       return false;
     }
   }
   return true;
 }
 
 function RunAfterProcessedQueuedInputEvents(aCallback) {
   let tm = SpecialPowers.Services.tm;
   tm.dispatchToMainThread(aCallback, SpecialPowers.Ci.nsIRunnablePriority.PRIORITY_INPUT);
 }
 
 function* test(testDriver) {
   // The main part of this test should run completely before the child process'
   // main-thread deals with the touch event, so check to make sure that happens.
-  document.body.addEventListener('touchstart', failure, { passive: true });
+  document.body.addEventListener("touchstart", failure, { passive: true });
 
   // What we want here is to synthesize all of the touch events (from this code in
   // the child process), and have the chrome process generate and process them,
   // but not allow the events to be dispatched back into the child process until
   // later. This allows us to ensure that the APZ in the chrome process is not
   // waiting for the child process to send notifications upon processing the
   // events. If it were doing so, the APZ would block and this test would fail.
 
@@ -170,20 +170,20 @@ function* test(testDriver) {
   // That's what the chromeTouchEventCounter business is all about. The sync
   // polling looks bad but in practice only ends up needing to poll once or
   // twice before the condition is satisfied, and as an extra precaution we add
   // a time guard so it fails after 10s of polling.
 
   // So, here we go...
 
   // Set up the chrome process touch listener
-  ok(chromeTouchEventCounter('start'), "Chrome touch counter registered");
+  ok(chromeTouchEventCounter("start"), "Chrome touch counter registered");
 
   // Set up the child process events and callbacks
-  var scroller = document.getElementById('scroller');
+  var scroller = document.getElementById("scroller");
   synthesizeNativeTouch(scroller, 10, 110, SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, null, 0);
   RunAfterProcessedQueuedInputEvents(testDriver);
   for (var i = 1; i < 10; i++) {
     synthesizeNativeTouch(scroller, 10, 110 - (i * 10), SpecialPowers.DOMWindowUtils.TOUCH_CONTACT, null, 0);
     RunAfterProcessedQueuedInputEvents(testDriver);
   }
   synthesizeNativeTouch(scroller, 10, 10, SpecialPowers.DOMWindowUtils.TOUCH_REMOVE, null, 0);
   RunAfterProcessedQueuedInputEvents(testDriver);
@@ -192,22 +192,22 @@ function* test(testDriver) {
   // Get our baseline snapshot
   var rect = rectRelativeToScreen(scroller);
   var lastSnapshot = getSnapshot(rect);
   ok(true, "Got baseline snapshot");
   var numDifferentSnapshotPairs = 0;
 
   yield; // this will tell the chrome process to synthesize the touchstart event
          // and then we wait to make sure it got processed:
-  ok(waitFor('touchstart', 1), "Touchstart processed in chrome process");
+  ok(waitFor("touchstart", 1), "Touchstart processed in chrome process");
 
   // Loop through the touchmove events
   for (var i = 1; i < 10; i++) {
     yield;
-    ok(waitFor('touchmove', i), "Touchmove processed in chrome process");
+    ok(waitFor("touchmove", i), "Touchmove processed in chrome process");
 
     // Take a snapshot after each touch move event. This forces
     // a composite each time, even we don't get a vsync in this
     // interval.
     var snapshot = getSnapshot(rect);
     if (lastSnapshot != snapshot) {
       numDifferentSnapshotPairs += 1;
     }
@@ -220,30 +220,30 @@ function* test(testDriver) {
   // of delay between APZ processing a touch event and the compositor
   // applying the async scroll (bug 1375949), by the end of the gesture
   // the snapshot should have changed.
   ok(numDifferentSnapshotPairs > 0,
      "The number of different snapshot pairs was " + numDifferentSnapshotPairs);
 
   // Wait for the touchend as well, to clear all pending testDriver resumes
   yield;
-  ok(waitFor('touchend', 1), "Touchend processed in chrome process");
+  ok(waitFor("touchend", 1), "Touchend processed in chrome process");
 
   // Clean up the chrome process hooks
-  chromeTouchEventCounter('end');
+  chromeTouchEventCounter("end");
 
   // Now we are going to release our grip on the child process main thread,
   // so that all the DOM events that were queued up can be processed. We
   // register a touchstart listener to make sure this happens.
-  document.body.removeEventListener('touchstart', failure);
+  document.body.removeEventListener("touchstart", failure);
   var listenerFunc = listener(testDriver);
-  document.body.addEventListener('touchstart', listenerFunc, { passive: true });
-  dump('done registering listener, going to yield\n');
+  document.body.addEventListener("touchstart", listenerFunc, { passive: true });
+  dump("done registering listener, going to yield\n");
   yield;
-  document.body.removeEventListener('touchstart', listenerFunc);
+  document.body.removeEventListener("touchstart", listenerFunc);
 }
 
 if (SpecialPowers.isMainProcess()) {
   // This is probably android, where everything is single-process. The
   // test structure depends on e10s, so the test won't run properly on
   // this platform. Skip it
   ok(true, "Skipping test because it is designed to run from the content process");
   subtestDone();
--- a/gfx/layers/apz/test/mochitest/helper_touch_action_zero_opacity_bug1500864.html
+++ b/gfx/layers/apz/test/mochitest/helper_touch_action_zero_opacity_bug1500864.html
@@ -4,19 +4,19 @@
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width; initial-scale=1.0">
   <title>Touch-action on a zero-opacity element</title>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript">
 function* test(testDriver) {
-  var target = document.getElementById('target');
+  var target = document.getElementById("target");
 
-  document.body.addEventListener('touchend', testDriver, { passive: true });
+  document.body.addEventListener("touchend", testDriver, { passive: true });
 
   // drag the page up to scroll down by 50px
   yield ok(synthesizeNativeTouchDrag(target, 10, 100, 0, -50),
       "Synthesized native vertical drag, waiting for touch-end event...");
 
   yield flushApzRepaints(testDriver);
 
   is(window.scrollX, 0, "X scroll offset didn't change");
--- a/gfx/layers/apz/test/mochitest/test_bug1151667.html
+++ b/gfx/layers/apz/test/mochitest/test_bug1151667.html
@@ -40,22 +40,22 @@ https://bugzilla.mozilla.org/show_bug.cg
 <!-- This makes sure the page is also scrollable, so it (rather than the subframe)
      is considered the primary async-scrollable frame, and so the subframe isn't
      layerized upon page load. -->
 <div id="page-content"></div>
 <pre id="test">
 <script type="application/javascript">
 
 function startTest() {
-  var subframe = document.getElementById('subframe');
+  var subframe = document.getElementById("subframe");
   synthesizeNativeWheelAndWaitForScrollEvent(subframe, 100, 150, 0, -10, continueTest);
 }
 
 function continueTest() {
-  var subframe = document.getElementById('subframe');
+  var subframe = document.getElementById("subframe");
   is(subframe.scrollTop > 0, true, "We should have scrolled the subframe down");
   is(document.documentElement.scrollTop, 0, "We should not have scrolled the page");
   SimpleTest.finish();
 }
 
 SimpleTest.waitForExplicitFinish();
 waitUntilApzStable().then(startTest);
 
--- a/gfx/layers/apz/test/mochitest/test_bug1253683.html
+++ b/gfx/layers/apz/test/mochitest/test_bug1253683.html
@@ -17,31 +17,31 @@ https://bugzilla.mozilla.org/show_bug.cg
  <div id="container" style="height: 500px; overflow:scroll">
   <pre id="no_layer" style="background-color: #f5f5f5; margin: 15px; padding: 15px; margin-top: 100px; border: 1px solid #eee; overflow:scroll">sample code here</pre>
   <div style="height: 5000px">spacer to make the 'container' div the root scrollable element</div>
  </div>
 <pre id="test">
 <script type="application/javascript">
 
 function* test(testDriver) {
-  var container = document.getElementById('container');
-  var no_layer = document.getElementById('no_layer');
+  var container = document.getElementById("container");
+  var no_layer = document.getElementById("no_layer");
 
   // Check initial state
   is(container.scrollTop, 0, "Initial scrollY should be 0");
-  ok(!isLayerized('no_layer'), "initially 'no_layer' should not be layerized");
+  ok(!isLayerized("no_layer"), "initially 'no_layer' should not be layerized");
 
   // Scrolling over outer1 should layerize outer1, but not inner1.
   yield moveMouseAndScrollWheelOver(no_layer, 10, 10, testDriver, true);
   yield waitForAllPaints(function() {
     flushApzRepaints(testDriver);
   });
 
   ok(container.scrollTop > 0, "We should have scrolled the body");
-  ok(!isLayerized('no_layer'), "no_layer should still not be layerized");
+  ok(!isLayerized("no_layer"), "no_layer should still not be layerized");
 }
 
 if (isApzEnabled()) {
   SimpleTest.waitForExplicitFinish();
 
   // Turn off displayport expiry so that we don't miss failures where the
   // displayport is set and expired before we check for layerization.
   // Also enable APZ test logging, since we use that data to determine whether
--- a/gfx/layers/apz/test/mochitest/test_bug1277814.html
+++ b/gfx/layers/apz/test/mochitest/test_bug1277814.html
@@ -9,18 +9,18 @@ https://bugzilla.mozilla.org/show_bug.cg
   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <script type="application/javascript" src="/tests/SimpleTest/paint_listener.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
   <script type="application/javascript">
     function* test(testDriver) {
       // Trigger the buggy scenario
-      var subframe = document.getElementById('bug1277814-div');
-      subframe.classList.add('a');
+      var subframe = document.getElementById("bug1277814-div");
+      subframe.classList.add("a");
 
       // The transform change is animated, so let's step through 1s of animation
       var utils = SpecialPowers.getDOMWindowUtils(window);
       for (var i = 0; i < 60; i++) {
         utils.advanceTimeAndRefresh(16);
       }
       utils.restoreNormalRefresh();
 
@@ -45,18 +45,18 @@ https://bugzilla.mozilla.org/show_bug.cg
       // calculation for this scroll frame to go wrong, causing it not to
       // become layerized.
       contentTestData = convertTestData(contentTestData);
       var foundIt = false;
       for (var seqNo in contentTestData.paints) {
         var paint = contentTestData.paints[seqNo];
         for (var scrollId in paint) {
           var scrollFrame = paint[scrollId];
-          if ('contentDescription' in scrollFrame &&
-              scrollFrame['contentDescription'].includes('bug1277814-div')) {
+          if ("contentDescription" in scrollFrame &&
+              scrollFrame["contentDescription"].includes("bug1277814-div")) {
             foundIt = true;
           }
         }
       }
       SimpleTest.ok(foundIt, "expected to find APZ test data for bug1277814-div");
     }
 
     if (isApzEnabled()) {
--- a/gfx/layers/apz/test/mochitest/test_bug1304689-2.html
+++ b/gfx/layers/apz/test/mochitest/test_bug1304689-2.html
@@ -27,17 +27,17 @@ https://bugzilla.mozilla.org/show_bug.cg
         width: 100%;
         z-index: 99;
     }
   </style>
   <script type="application/javascript">
 
 function* test(testDriver) {
   var utils = SpecialPowers.DOMWindowUtils;
-  var elm = document.getElementById('outer');
+  var elm = document.getElementById("outer");
 
   // Set margins on the element, to ensure it is layerized
   utils.setDisplayPortMarginsForElement(0, 0, 0, 0, elm, /*priority*/ 1);
   yield waitForAllPaints(function() {
     flushApzRepaints(testDriver);
   });
 
   // Take control of the refresh driver
@@ -50,17 +50,17 @@ function* test(testDriver) {
   utils.advanceTimeAndRefresh(16);
   utils.advanceTimeAndRefresh(16);
   utils.advanceTimeAndRefresh(16);
   utils.advanceTimeAndRefresh(16);
 
   // Do another scroll update but also do a frame reconstruction within the same
   // tick of the refresh driver.
   elm.scrollTop = 100;
-  elm.classList.add('contentBefore');
+  elm.classList.add("contentBefore");
 
   // Now let everything settle and all the animations run out
   for (var i = 0; i < 60; i++) {
     utils.advanceTimeAndRefresh(16);
   }
   utils.restoreNormalRefresh();
 
   yield flushApzRepaints(testDriver);
--- a/gfx/layers/apz/test/mochitest/test_bug1304689.html
+++ b/gfx/layers/apz/test/mochitest/test_bug1304689.html
@@ -30,17 +30,17 @@ https://bugzilla.mozilla.org/show_bug.cg
         width: 100%;
         z-index: 99;
     }
   </style>
   <script type="application/javascript">
 
 function* test(testDriver) {
   var utils = SpecialPowers.DOMWindowUtils;
-  var elm = document.getElementById('outer');
+  var elm = document.getElementById("outer");
 
   // Set margins on the element, to ensure it is layerized
   utils.setDisplayPortMarginsForElement(0, 0, 0, 0, elm, /*priority*/ 1);
   yield waitForAllPaints(function() {
     flushApzRepaints(testDriver);
   });
 
   // Take control of the refresh driver
@@ -52,19 +52,19 @@ function* test(testDriver) {
   elm.scrollTop = 10;
   utils.advanceTimeAndRefresh(16);
   utils.advanceTimeAndRefresh(16);
   utils.advanceTimeAndRefresh(16);
   utils.advanceTimeAndRefresh(16);
 
   // Do another scroll update but also do a frame reconstruction within the same
   // tick of the refresh driver.
-  elm.classList.add('instant');
+  elm.classList.add("instant");
   elm.scrollTop = 100;
-  elm.classList.add('contentBefore');
+  elm.classList.add("contentBefore");
 
   // Now let everything settle and all the animations run out
   for (var i = 0; i < 60; i++) {
     utils.advanceTimeAndRefresh(16);
   }
   utils.restoreNormalRefresh();
 
   yield flushApzRepaints(testDriver);
--- a/gfx/layers/apz/test/mochitest/test_bug1464568.html
+++ b/gfx/layers/apz/test/mochitest/test_bug1464568.html
@@ -5,19 +5,19 @@
   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
   <script type="application/javascript">
     if (isApzEnabled()) {
       SimpleTest.waitForExplicitFinish();
 
       const subtests = [
-        { file: 'helper_bug1464568_transform.html',
+        { file: "helper_bug1464568_transform.html",
           prefs: [["apz.test.logging_enabled", true]] },
-        { file: 'helper_bug1464568_opacity.html',
+        { file: "helper_bug1464568_opacity.html",
           prefs: [["apz.test.logging_enabled", true]] },
       ];
       // Run the actual test in its own window, because it requires that the
       // root APZC be scrollable. Mochitest pages themselves often run
       // inside an iframe which means we have no control over the root APZC.
       window.onload = () => {
         runSubtestsSeriallyInFreshWindows(subtests)
         .then(SimpleTest.finish, SimpleTest.finish);
--- a/gfx/layers/apz/test/mochitest/test_frame_reconstruction.html
+++ b/gfx/layers/apz/test/mochitest/test_frame_reconstruction.html
@@ -150,17 +150,17 @@
    </ol>
   </div>
  </div>
 </div>
 
 <pre id="test">
 <script type="application/javascript">
 function* test(testDriver) {
-  var elm = document.getElementsByClassName('inner')[0];
+  var elm = document.getElementsByClassName("inner")[0];
   elm.scrollTop = 0;
   yield flushApzRepaints(testDriver);
 
   // Take over control of the refresh driver and compositor
   var utils = SpecialPowers.DOMWindowUtils;
   utils.advanceTimeAndRefresh(0);
 
   // Kick off an APZ smooth-scroll to 0,200
@@ -173,21 +173,21 @@ function* test(testDriver) {
   yield flushApzRepaints(testDriver);
   ok(elm.scrollTop > 0, "APZ animation in progress, scrollTop is now " + elm.scrollTop);
   ok(elm.scrollTop < 200, "APZ animation not yet completed, scrollTop is now " + elm.scrollTop);
 
   var frameReconstructionTriggered = 0;
   // Register the listener that triggers the frame reconstruction
   elm.onscroll = function() {
     // Do the reconstruction
-    elm.parentNode.classList.add('contentBefore');
+    elm.parentNode.classList.add("contentBefore");
     frameReconstructionTriggered++;
     // schedule a thing to undo the changes above
     setTimeout(function() {
-      elm.parentNode.classList.remove('contentBefore');
+      elm.parentNode.classList.remove("contentBefore");
     }, 0);
   }
 
   // and do a few more frames of the animation, this should trigger the listener
   // and the frame reconstruction
   utils.advanceTimeAndRefresh(16);
   utils.advanceTimeAndRefresh(16);
   yield flushApzRepaints(testDriver);
--- a/gfx/layers/apz/test/mochitest/test_group_hittest.html
+++ b/gfx/layers/apz/test/mochitest/test_group_hittest.html
@@ -22,25 +22,25 @@ var prefs = [
   // and to allow the MozMouseHittest event in particular to be dispatched to
   // APZ as a MouseInput so the hit result is recorded.
   ["test.events.async.enabled", true],
   // Turns on APZTestData logging which we use to obtain the hit test results.
   ["apz.test.logging_enabled", true]
 ];
 
 var subtests = [
-  {'file': 'helper_hittest_basic.html', 'prefs': prefs},
-  {'file': 'helper_hittest_fixed_in_scrolled_transform.html', 'prefs': prefs},
-  {'file': 'helper_hittest_float_bug1434846.html', 'prefs': prefs},
-  {'file': 'helper_hittest_float_bug1443518.html', 'prefs': prefs},
-  {'file': 'helper_hittest_checkerboard.html', 'prefs': prefs},
-  {'file': 'helper_hittest_backface_hidden.html', 'prefs': prefs},
-  {'file': 'helper_hittest_touchaction.html', 'prefs': prefs},
-  {'file': 'helper_hittest_nested_transforms_bug1459696.html', 'prefs': prefs},
-  {'file': 'helper_hittest_sticky_bug1478304.html', 'prefs': prefs}
+  {"file": "helper_hittest_basic.html", "prefs": prefs},
+  {"file": "helper_hittest_fixed_in_scrolled_transform.html", "prefs": prefs},
+  {"file": "helper_hittest_float_bug1434846.html", "prefs": prefs},
+  {"file": "helper_hittest_float_bug1443518.html", "prefs": prefs},
+  {"file": "helper_hittest_checkerboard.html", "prefs": prefs},
+  {"file": "helper_hittest_backface_hidden.html", "prefs": prefs},
+  {"file": "helper_hittest_touchaction.html", "prefs": prefs},
+  {"file": "helper_hittest_nested_transforms_bug1459696.html", "prefs": prefs},
+  {"file": "helper_hittest_sticky_bug1478304.html", "prefs": prefs}
 ];
 
 if (isApzEnabled()) {
   SimpleTest.waitForExplicitFinish();
   window.onload = function() {
     runSubtestsSeriallyInFreshWindows(subtests)
     .then(SimpleTest.finish, SimpleTest.finish);
   };
--- a/gfx/layers/apz/test/mochitest/test_group_keyboard.html
+++ b/gfx/layers/apz/test/mochitest/test_group_keyboard.html
@@ -4,17 +4,17 @@
   <meta charset="utf-8">
   <title>Various keyboard scrolling tests</title>
   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
   <script type="application/javascript">
 
 var subtests = [
-  {'file': 'helper_key_scroll.html', prefs: [["apz.test.logging_enabled", true],
+  {"file": "helper_key_scroll.html", prefs: [["apz.test.logging_enabled", true],
                                              ["test.events.async.enabled", true]]},
 ];
 
     if (isKeyApzEnabled()) {
       SimpleTest.waitForExplicitFinish();
       window.onload = function() {
         runSubtestsSeriallyInFreshWindows(subtests)
         .then(SimpleTest.finish, SimpleTest.finish);
--- a/gfx/layers/apz/test/mochitest/test_group_mouseevents.html
+++ b/gfx/layers/apz/test/mochitest/test_group_mouseevents.html
@@ -5,38 +5,38 @@
   <title>Various mouse tests that spawn in new windows</title>
   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
   <script type="application/javascript">
 
 var subtests = [
   // Sanity test to synthesize a mouse click
-  {'file': 'helper_click.html?dtc=false'},
+  {"file": "helper_click.html?dtc=false"},
   // Same as above, but with a dispatch-to-content region that exercises the
   // main-thread notification codepaths for mouse events
-  {'file': 'helper_click.html?dtc=true'},
+  {"file": "helper_click.html?dtc=true"},
   // Sanity test for click but with some mouse movement between the down and up
-  {'file': 'helper_drag_click.html'},
+  {"file": "helper_drag_click.html"},
   // Test for dragging on a fake-scrollbar element that scrolls the page
-  {'file': 'helper_drag_scroll.html'},
+  {"file": "helper_drag_scroll.html"},
   // Test for dragging the scrollbar with a fixed-pos element overlaying it
-  {'file': 'helper_bug1346632.html'},
+  {"file": "helper_bug1346632.html"},
   // Test for scrollbar-dragging on a scrollframe that's inactive
-  {'file': 'helper_bug1326290.html'},
+  {"file": "helper_bug1326290.html"},
   // Test for scrollbar-dragging on a scrollframe inside an SVGEffects
-  {'file': 'helper_bug1331693.html'},
+  {"file": "helper_bug1331693.html"},
   // Test for scrollbar-dragging on a transformed scrollframe inside a fixed-pos item
-  {'file': 'helper_bug1462961.html'},
+  {"file": "helper_bug1462961.html"},
   // Scrollbar dragging where we exercise the snapback behaviour by moving the
   // mouse away from the scrollbar during drag
-  {'file': 'helper_scrollbar_snap_bug1501062.html'},
+  {"file": "helper_scrollbar_snap_bug1501062.html"},
   // Tests for scrollbar-dragging on scrollframes inside nested transforms
-  {'file': 'helper_bug1490393.html'},
-  {'file': 'helper_bug1490393-2.html'}
+  {"file": "helper_bug1490393.html"},
+  {"file": "helper_bug1490393-2.html"}
 ];
 
 if (isApzEnabled()) {
   SimpleTest.waitForExplicitFinish();
   window.onload = function() {
     runSubtestsSeriallyInFreshWindows(subtests)
     .then(SimpleTest.finish, SimpleTest.finish);
   };
--- a/gfx/layers/apz/test/mochitest/test_group_overrides.html
+++ b/gfx/layers/apz/test/mochitest/test_group_overrides.html
@@ -6,25 +6,25 @@
   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
   <script type="application/javascript">
 
 var prefs = [
   // turn off smooth scrolling so that we don't have to wait for
   // APZ animations to finish before sampling the scroll offset
-  ['general.smoothScroll', false],
+  ["general.smoothScroll", false],
   // Increase the content response timeout because these tests do preventDefault
   // and we want to make sure APZ actually waits for them.
-  ['apz.content_response_timeout', 10000],
+  ["apz.content_response_timeout", 10000],
 ]
 
 var subtests = [
-  {'file': 'helper_override_root.html', 'prefs': prefs},
-  {'file': 'helper_override_subdoc.html', 'prefs': prefs},
+  {"file": "helper_override_root.html", "prefs": prefs},
+  {"file": "helper_override_subdoc.html", "prefs": prefs},
 ];
 
 if (isApzEnabled()) {
   SimpleTest.waitForExplicitFinish();
   window.onload = function() {
     runSubtestsSeriallyInFreshWindows(subtests)
     .then(SimpleTest.finish, SimpleTest.finish);
   };
--- a/gfx/layers/apz/test/mochitest/test_group_pointerevents.html
+++ b/gfx/layers/apz/test/mochitest/test_group_pointerevents.html
@@ -9,22 +9,22 @@ https://bugzilla.mozilla.org/show_bug.cg
   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
   <script type="application/javascript">
 
   let isWindows = navigator.platform.indexOf("Win") == 0;
   let enablePE = ["dom.w3c_pointer_events.enabled", true];
   var subtests = [
-    {'file': 'helper_bug1285070.html', 'prefs': [enablePE]},
-    {'file': 'helper_bug1299195.html', 'prefs': [enablePE]},
-    {'file': 'helper_bug1414336.html', 'prefs': [enablePE,
+    {"file": "helper_bug1285070.html", "prefs": [enablePE]},
+    {"file": "helper_bug1299195.html", "prefs": [enablePE]},
+    {"file": "helper_bug1414336.html", "prefs": [enablePE,
       ["apz.test.fails_with_native_injection", isWindows]
     ]},
-    {'file': 'helper_bug1502010_unconsumed_pan.html', 'prefs': [enablePE]}
+    {"file": "helper_bug1502010_unconsumed_pan.html", "prefs": [enablePE]}
   ];
 
   if (isApzEnabled()) {
     SimpleTest.waitForExplicitFinish();
     window.onload = function() {
       runSubtestsSeriallyInFreshWindows(subtests)
       .then(SimpleTest.finish, SimpleTest.finish);
     };
--- a/gfx/layers/apz/test/mochitest/test_group_touchevents-2.html
+++ b/gfx/layers/apz/test/mochitest/test_group_touchevents-2.html
@@ -14,32 +14,32 @@ var isWindows = getPlatform() == "window
 var subtests = [
   // Taps on media elements to make sure the touchend event is delivered
   // properly. We increase the long-tap timeout to ensure it doesn't get trip
   // during the tap.
   // Also this test (on Windows) cannot satisfy the OS requirement of providing
   // an injected touch event every 100ms, because it waits for a paint between
   // the touchstart and the touchend, so we have to use the "fake injection"
   // code instead.
-  {'file': 'helper_bug1162771.html', 'prefs': [["ui.click_hold_context_menus.delay", 10000],
+  {"file": "helper_bug1162771.html", "prefs": [["ui.click_hold_context_menus.delay", 10000],
                                                ["apz.test.fails_with_native_injection", isWindows]]},
 
   // As with the previous test, this test cannot inject touch events every 100ms
   // because it waits for a long-tap, so we have to use the "fake injection" code
   // instead.
-  {'file': 'helper_long_tap.html', 'prefs': [["apz.test.fails_with_native_injection", isWindows]]},
+  {"file": "helper_long_tap.html", "prefs": [["apz.test.fails_with_native_injection", isWindows]]},
 
   // For the following tests, we want to make sure APZ doesn't wait for a content
   // response that is never going to arrive. To detect this we set the content response
   // timeout to a day, so that the entire test times out and fails if APZ does
   // end up waiting.
-  {'file': 'helper_tap_passive.html', 'prefs': [["apz.content_response_timeout", 24 * 60 * 60 * 1000],
+  {"file": "helper_tap_passive.html", "prefs": [["apz.content_response_timeout", 24 * 60 * 60 * 1000],
                                                 ["apz.test.fails_with_native_injection", isWindows]]},
 
-  {'file': 'helper_tap_default_passive.html', 'prefs': [["apz.content_response_timeout", 24 * 60 * 60 * 1000],
+  {"file": "helper_tap_default_passive.html", "prefs": [["apz.content_response_timeout", 24 * 60 * 60 * 1000],
                                                         ["apz.test.fails_with_native_injection", isWindows],
                                                         ["dom.event.default_to_passive_touch_listeners", true]]},
 
   // Add new subtests to test_group_touch_events-4.html, not this file.
 ];
 
 if (isApzEnabled()) {
   ok(window.TouchEvent, "Check if TouchEvent is supported (it should be, the test harness forces it on everywhere)");
--- a/gfx/layers/apz/test/mochitest/test_group_touchevents-3.html
+++ b/gfx/layers/apz/test/mochitest/test_group_touchevents-3.html
@@ -12,24 +12,24 @@
 var touch_action_prefs = [
   ...getPrefs("TOUCH_EVENTS:PAN"),
   ["layout.css.touch_action.enabled", true],
   ["apz.test.fails_with_native_injection", getPlatform() == "windows"],
 ];
 
 var subtests = [
   // Simple test to exercise touch-action CSS property
-  {'file': 'helper_touch_action.html', 'prefs': touch_action_prefs},
+  {"file": "helper_touch_action.html", "prefs": touch_action_prefs},
   // More complex touch-action tests, with overlapping regions and such
-  {'file': 'helper_touch_action_complex.html', 'prefs': touch_action_prefs},
+  {"file": "helper_touch_action_complex.html", "prefs": touch_action_prefs},
   // Tests that touch-action CSS properties are handled in APZ without waiting
   // on the main-thread, when possible
-  {'file': 'helper_touch_action_regions.html', 'prefs': touch_action_prefs},
+  {"file": "helper_touch_action_regions.html", "prefs": touch_action_prefs},
   // Tests that touch-action inside zero-opacity items are respected
-  {'file': 'helper_touch_action_zero_opacity_bug1500864.html', 'prefs': touch_action_prefs},
+  {"file": "helper_touch_action_zero_opacity_bug1500864.html", "prefs": touch_action_prefs},
 
   // Add new subtests to test_group_touchevents-4.html, not this file (exceptions
   // may be made for quick-running tests that need the touch-action prefs)
 ];
 
 if (isApzEnabled()) {
   ok(window.TouchEvent, "Check if TouchEvent is supported (it should be, the test harness forces it on everywhere)");
   if (getPlatform() == "android") {
--- a/gfx/layers/apz/test/mochitest/test_group_touchevents-4.html
+++ b/gfx/layers/apz/test/mochitest/test_group_touchevents-4.html
@@ -6,17 +6,17 @@
   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <script type="application/javascript" src="apz_test_native_event_utils.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
   <script type="application/javascript">
 
 var subtests = [
   // clicking on element with :active::after CSS property
-  {'file': 'helper_bug1473108.html'},
+  {"file": "helper_bug1473108.html"},
   // Add new subtests here. If this starts timing out because it's taking too
   // long, create a test_group_touchevents-5.html file. Refer to 1423011#c57
   // for more details.
 ];
 
 if (isApzEnabled()) {
   ok(window.TouchEvent, "Check if TouchEvent is supported (it should be, the test harness forces it on everywhere)");
   if (getPlatform() == "android") {
--- a/gfx/layers/apz/test/mochitest/test_group_touchevents.html
+++ b/gfx/layers/apz/test/mochitest/test_group_touchevents.html
@@ -9,29 +9,29 @@
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
   <script type="application/javascript">
 
 var basic_pan_prefs = getPrefs("TOUCH_EVENTS:PAN");
 
 var subtests = [
   // Simple tests to exercise basic panning behaviour
   // The visual viewport isn't yet enabled by default and we want to test its events, too.
-  {'file': 'helper_basic_pan.html', 'prefs': basic_pan_prefs.concat([["dom.visualviewport.enabled", true]])},
-  {'file': 'helper_div_pan.html', 'prefs': basic_pan_prefs},
-  {'file': 'helper_iframe_pan.html', 'prefs': basic_pan_prefs},
+  {"file": "helper_basic_pan.html", "prefs": basic_pan_prefs.concat([["dom.visualviewport.enabled", true]])},
+  {"file": "helper_div_pan.html", "prefs": basic_pan_prefs},
+  {"file": "helper_iframe_pan.html", "prefs": basic_pan_prefs},
 
   // Simple test to exercise touch-tapping behaviour
-  {'file': 'helper_tap.html'},
+  {"file": "helper_tap.html"},
   // Tapping, but with a full-zoom applied
-  {'file': 'helper_tap_fullzoom.html'},
+  {"file": "helper_tap_fullzoom.html"},
 
   // For the following two tests, disable displayport suppression to make sure it
   // doesn't interfere with the test by scheduling paints non-deterministically.
-  {'file': 'helper_scrollto_tap.html?true', 'prefs': [["apz.paint_skipping.enabled", true]], 'dp_suppression': false},
-  {'file': 'helper_scrollto_tap.html?false', 'prefs': [["apz.paint_skipping.enabled", false]], 'dp_suppression': false},
+  {"file": "helper_scrollto_tap.html?true", "prefs": [["apz.paint_skipping.enabled", true]], "dp_suppression": false},
+  {"file": "helper_scrollto_tap.html?false", "prefs": [["apz.paint_skipping.enabled", false]], "dp_suppression": false},
 
   // Add new subtests to test_group_touch_events-4.html, not this file.
 ];
 
 if (isApzEnabled()) {
   ok(window.TouchEvent, "Check if TouchEvent is supported (it should be, the test harness forces it on everywhere)");
   if (getPlatform() == "android") {
     // This has a lot of subtests, and Android emulators are slow.
--- a/gfx/layers/apz/test/mochitest/test_group_wheelevents.html
+++ b/gfx/layers/apz/test/mochitest/test_group_wheelevents.html
@@ -6,46 +6,46 @@
   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
   <script type="application/javascript" src="apz_test_utils.js"></script>
   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
   <script type="application/javascript">
 
 var prefs = [
   // turn off smooth scrolling so that we don't have to wait for
   // APZ animations to finish before sampling the scroll offset
-  ['general.smoothScroll', false],
+  ["general.smoothScroll", false],
   // ensure that any mouse movement will trigger a new wheel transaction,
   // because in this test we move the mouse a bunch and want to recalculate
   // the target APZC after each such movement.
-  ['mousewheel.transaction.ignoremovedelay', 0],
-  ['mousewheel.transaction.timeout', 0]
+  ["mousewheel.transaction.ignoremovedelay", 0],
+  ["mousewheel.transaction.timeout", 0]
 ]
 
 // For helper_scroll_over_scrollbar, we need to set a pref to force
 // layerization of the scrollbar track to reproduce the bug being fixed.
 // Otherwise, the bug only manifests with overlay scrollbars on macOS,
 // or in a XUL RCD, both of which are hard to materialize in a test.
 var scrollbar_prefs = prefs.slice();  // make a copy
 scrollbar_prefs.push(["layout.scrollbars.always-layerize-track", true]);
 
 // For helper_overscroll_behavior_bug1425573, we need to set the APZ content
 // response timeout to 0, so we exercise the fallback codepath.
 var timeout_prefs = prefs.slice();  // make a copy
 timeout_prefs.push(["apz.content_response_timeout", 0]);
 
 var subtests = [
-  {'file': 'helper_scroll_on_position_fixed.html', 'prefs': prefs},
-  {'file': 'helper_bug1271432.html', 'prefs': prefs},
-  {'file': 'helper_overscroll_behavior_bug1425573.html', 'prefs': timeout_prefs},
-  {'file': 'helper_overscroll_behavior_bug1425603.html', 'prefs': prefs},
-  {'file': 'helper_overscroll_behavior_bug1494440.html', 'prefs': prefs},
-  {'file': 'helper_scroll_inactive_perspective.html', 'prefs': prefs},
-  {'file': 'helper_scroll_inactive_zindex.html', 'prefs': prefs},
-  {'file': 'helper_scroll_over_scrollbar.html', 'prefs': scrollbar_prefs},
-  {'file': 'helper_scroll_tables_perspective.html', 'prefs': prefs},
+  {"file": "helper_scroll_on_position_fixed.html", "prefs": prefs},
+  {"file": "helper_bug1271432.html", "prefs": prefs},
+  {"file": "helper_overscroll_behavior_bug1425573.html", "prefs": timeout_prefs},
+  {"file": "helper_overscroll_behavior_bug1425603.html", "prefs": prefs},
+  {"file": "helper_overscroll_behavior_bug1494440.html", "prefs": prefs},
+  {"file": "helper_scroll_inactive_perspective.html", "prefs": prefs},
+  {"file": "helper_scroll_inactive_zindex.html", "prefs": prefs},
+  {"file": "helper_scroll_over_scrollbar.html", "prefs": scrollbar_prefs},
+  {"file": "helper_scroll_tables_perspective.html", "prefs": prefs},
 ];
 
 if (isApzEnabled()) {
   SimpleTest.waitForExplicitFinish();
   window.onload = function() {
     runSubtestsSeriallyInFreshWindows(subtests)
     .then(SimpleTest.finish, SimpleTest.finish);
   };
--- a/gfx/layers/apz/test/mochitest/test_group_zoom.html
+++ b/gfx/layers/apz/test/mochitest/test_group_zoom.html
@@ -47,21 +47,21 @@ var prefs = [
 // random delays during testing.
 var doubletap_prefs = [
   ...prefs,
   ["ui.click_hold_context_menus.delay", 10000],
   ["apz.max_tap_time", 10000],
 ];
 
 var subtests = [
-  {'file': 'helper_bug1280013.html', 'prefs': prefs},
-  {'file': 'helper_basic_zoom.html', 'prefs': prefs},
-  {'file': 'helper_zoomed_pan.html', 'prefs': prefs},
-  {'file': 'helper_fixed_position_scroll_hittest.html', 'prefs': prefs},
-  {'file': 'helper_basic_doubletap_zoom.html', 'prefs': doubletap_prefs},
+  {"file": "helper_bug1280013.html", "prefs": prefs},
+  {"file": "helper_basic_zoom.html", "prefs": prefs},
+  {"file": "helper_zoomed_pan.html", "prefs": prefs},
+  {"file": "helper_fixed_position_scroll_hittest.html", "prefs": prefs},
+  {"file": "helper_basic_doubletap_zoom.html", "prefs": doubletap_prefs},
 ];
 
 if (isApzEnabled()) {
   // This has a lot of subtests, and Android emulators are slow.
   SimpleTest.requestLongerTimeout(2);
   SimpleTest.waitForExplicitFinish();
   window.onload = function() {
     runSubtestsSeriallyInFreshWindows(subtests)
--- a/gfx/layers/apz/test/mochitest/test_interrupted_reflow.html
+++ b/gfx/layers/apz/test/mochitest/test_interrupted_reflow.html
@@ -581,33 +581,33 @@ function getAsyncScrollOffsets(aPaintsTo
       childIsLayerized = true;
     }
     if (!childIsLayerized) {
       continue;
     }
 
     ok(rcd.children.length == 1, "Root content APZC has exactly one child");
     var scroll = rcd.children[0].asyncScrollOffset;
-    var pieces = scroll.replace(/[()\s]+/g, '').split(',');
+    var pieces = scroll.replace(/[()\s]+/g, "").split(",");
     is(pieces.length, 2, "expected string of form (x,y)");
     offsets.push({ x: parseInt(pieces[0]),
                    y: parseInt(pieces[1]) });
   }
   return offsets;
 }
 
 function* test(testDriver) {
   var utils = SpecialPowers.DOMWindowUtils;
 
   // The APZ test data accumulates whenever a test turns it on. We just want
   // the data for this test, so we check how many frames are already recorded
   // and discard those later.
   var framesToSkip = SpecialPowers.getDOMWindowUtils(window).getCompositorAPZTestData().paints.length;
 
-  var elm = document.getElementsByClassName('inner')[0];
+  var elm = document.getElementsByClassName("inner")[0];
   // Set a zero-margin displayport to ensure that the element is async-scrollable
   // otherwise on Fennec it is not
   utils.setDisplayPortMarginsForElement(0, 0, 0, 0, elm, 0);
 
   var maxScroll = elm.scrollTopMax;
   elm.scrollTop = maxScroll;
   yield waitForAllPaints(function() {
     flushApzRepaints(testDriver);
@@ -619,17 +619,17 @@ function* test(testDriver) {
   // Force the next reflow to get interrupted
   utils.forceReflowInterrupt();
 
   // Make a change that triggers frame reconstruction, and then tick the refresh
   // driver so that layout processes the pending restyles and then runs an
   // interruptible reflow. That reflow *will* be interrupted (because of the flag
   // we set above), and we should end up with a transient 0,0 scroll offset
   // being sent to the compositor.
-  elm.parentNode.classList.add('contentBefore');
+  elm.parentNode.classList.add("contentBefore");
   utils.advanceTimeAndRefresh(0);
   // On android, and maybe non-e10s platforms generally, we need to manually
   // kick the paint to send the layer transaction to the compositor.
   yield waitForAllPaints(function() { setTimeout(testDriver, 0) });
 
   // Read the main-thread scroll offset; although this is temporarily 0,0 that
   // temporary value is never exposed to content - instead reading this value
   // will finish doing the interrupted reflow from above and then report the
--- a/gfx/layers/apz/test/mochitest/test_layerization.html
+++ b/gfx/layers/apz/test/mochitest/test_layerization.html
@@ -69,130 +69,130 @@ const DISPLAYPORT_EXPIRY = 100;
 function asyncWrapper(testDriver) {
   return function() {
     setTimeout(testDriver, 0);
   };
 }
 
 function* test(testDriver) {
   // Initially, nothing should be layerized.
-  ok(!isLayerized('outer1'), "initially 'outer1' should not be layerized");
-  ok(!isLayerized('inner1'), "initially 'inner1' should not be layerized");
-  ok(!isLayerized('outer2'), "initially 'outer2' should not be layerized");
-  ok(!isLayerized('inner2'), "initially 'inner2' should not be layerized");
-  ok(!isLayerized('outer3'), "initially 'outer3' should not be layerized");
-  ok(!isLayerized('inner3'), "initially 'inner3' should not be layerized");
-  ok(!isLayerized('outer4'), "initially 'outer4' should not be layerized");
-  ok(!isLayerized('inner4'), "initially 'inner4' should not be layerized");
+  ok(!isLayerized("outer1"), "initially 'outer1' should not be layerized");
+  ok(!isLayerized("inner1"), "initially 'inner1' should not be layerized");
+  ok(!isLayerized("outer2"), "initially 'outer2' should not be layerized");
+  ok(!isLayerized("inner2"), "initially 'inner2' should not be layerized");
+  ok(!isLayerized("outer3"), "initially 'outer3' should not be layerized");
+  ok(!isLayerized("inner3"), "initially 'inner3' should not be layerized");
+  ok(!isLayerized("outer4"), "initially 'outer4' should not be layerized");
+  ok(!isLayerized("inner4"), "initially 'inner4' should not be layerized");
 
   // Scrolling over outer1 should layerize outer1, but not inner1.
-  yield scrollWheelOver(document.getElementById('outer1'), true, testDriver);
-  ok(isLayerized('outer1'), "scrolling 'outer1' should cause it to be layerized");
-  ok(!isLayerized('inner1'), "scrolling 'outer1' should not cause 'inner1' to be layerized");
+  yield scrollWheelOver(document.getElementById("outer1"), true, testDriver);
+  ok(isLayerized("outer1"), "scrolling 'outer1' should cause it to be layerized");
+  ok(!isLayerized("inner1"), "scrolling 'outer1' should not cause 'inner1' to be layerized");
 
   // Scrolling over inner2 should layerize both outer2 and inner2.
-  yield scrollWheelOver(document.getElementById('inner2'), true, testDriver);
-  ok(isLayerized('inner2'), "scrolling 'inner2' should cause it to be layerized");
-  ok(isLayerized('outer2'), "scrolling 'inner2' should also cause 'outer2' to be layerized");
+  yield scrollWheelOver(document.getElementById("inner2"), true, testDriver);
+  ok(isLayerized("inner2"), "scrolling 'inner2' should cause it to be layerized");
+  ok(isLayerized("outer2"), "scrolling 'inner2' should also cause 'outer2' to be layerized");
 
   // The second half of the test repeats the same checks as the first half,
   // but with an iframe as the outer scrollable frame.
 
   // Scrolling over outer3 should layerize outer3, but not inner3.
-  yield scrollWheelOver(document.getElementById('outer3').contentDocument.documentElement, true, testDriver);
-  ok(isLayerized('outer3'), "scrolling 'outer3' should cause it to be layerized");
-  ok(!isLayerized('inner3'), "scrolling 'outer3' should not cause 'inner3' to be layerized");
+  yield scrollWheelOver(document.getElementById("outer3").contentDocument.documentElement, true, testDriver);
+  ok(isLayerized("outer3"), "scrolling 'outer3' should cause it to be layerized");
+  ok(!isLayerized("inner3"), "scrolling 'outer3' should not cause 'inner3' to be layerized");
 
   // Scrolling over outer4 should layerize both outer4 and inner4.
-  yield scrollWheelOver(document.getElementById('outer4').contentDocument.getElementById('inner4'), true, testDriver);
-  ok(isLayerized('inner4'), "scrolling 'inner4' should cause it to be layerized");
-  ok(isLayerized('outer4'), "scrolling 'inner4' should also cause 'outer4' to be layerized");
+  yield scrollWheelOver(document.getElementById("outer4").contentDocument.getElementById("inner4"), true, testDriver);
+  ok(isLayerized("inner4"), "scrolling 'inner4' should cause it to be layerized");
+  ok(isLayerized("outer4"), "scrolling 'inner4' should also cause 'outer4' to be layerized");
 
   // Now we enable displayport expiry, and verify that things are still
   // layerized as they were before.
   yield SpecialPowers.pushPrefEnv({"set": [["apz.displayport_expiry_ms", DISPLAYPORT_EXPIRY]]}, testDriver);
-  ok(isLayerized('outer1'), "outer1 is still layerized after enabling expiry");
-  ok(!isLayerized('inner1'), "inner1 is still not layerized after enabling expiry");
-  ok(isLayerized('outer2'), "outer2 is still layerized after enabling expiry");
-  ok(isLayerized('inner2'), "inner2 is still layerized after enabling expiry");
-  ok(isLayerized('outer3'), "outer3 is still layerized after enabling expiry");
-  ok(!isLayerized('inner3'), "inner3 is still not layerized after enabling expiry");
-  ok(isLayerized('outer4'), "outer4 is still layerized after enabling expiry");
-  ok(isLayerized('inner4'), "inner4 is still layerized after enabling expiry");
+  ok(isLayerized("outer1"), "outer1 is still layerized after enabling expiry");
+  ok(!isLayerized("inner1"), "inner1 is still not layerized after enabling expiry");
+  ok(isLayerized("outer2"), "outer2 is still layerized after enabling expiry");
+  ok(isLayerized("inner2"), "inner2 is still layerized after enabling expiry");
+  ok(isLayerized("outer3"), "outer3 is still layerized after enabling expiry");
+  ok(!isLayerized("inner3"), "inner3 is still not layerized after enabling expiry");
+  ok(isLayerized("outer4"), "outer4 is still layerized after enabling expiry");
+  ok(isLayerized("inner4"), "inner4 is still layerized after enabling expiry");
 
   // Now we trigger a scroll on some of the things still layerized, so that
   // the displayport expiry gets triggered.
 
   // Expire displayport with scrolling on outer1
-  yield scrollWheelOver(document.getElementById('outer1'), true, testDriver);
+  yield scrollWheelOver(document.getElementById("outer1"), true, testDriver);
   yield waitForAllPaints(function() {
     flushApzRepaints(testDriver);
   });
   yield setTimeout(testDriver, DISPLAYPORT_EXPIRY);
   yield waitForAllPaints(asyncWrapper(testDriver));
-  ok(!isLayerized('outer1'), "outer1 is no longer layerized after displayport expiry");
-  ok(!isLayerized('inner1'), "inner1 is still not layerized after displayport expiry");
+  ok(!isLayerized("outer1"), "outer1 is no longer layerized after displayport expiry");
+  ok(!isLayerized("inner1"), "inner1 is still not layerized after displayport expiry");
 
   // Expire displayport with scrolling on inner2
-  yield scrollWheelOver(document.getElementById('inner2'), true, testDriver);
+  yield scrollWheelOver(document.getElementById("inner2"), true, testDriver);
   yield waitForAllPaints(function() {
     flushApzRepaints(testDriver);
   });
   // Once the expiry elapses, it will trigger expiry on outer2, so we check
   // both, one at a time.
   yield setTimeout(testDriver, DISPLAYPORT_EXPIRY);
   yield waitForAllPaints(asyncWrapper(testDriver));
-  ok(!isLayerized('inner2'), "inner2 is no longer layerized after displayport expiry");
+  ok(!isLayerized("inner2"), "inner2 is no longer layerized after displayport expiry");
   yield setTimeout(testDriver, DISPLAYPORT_EXPIRY);
   yield waitForAllPaints(asyncWrapper(testDriver));
-  ok(!isLayerized('outer2'), "outer2 got de-layerized with inner2");
+  ok(!isLayerized("outer2"), "outer2 got de-layerized with inner2");
 
   // Scroll on inner3. inner3 isn't layerized, and this will cause it to
   // get layerized, but it will also trigger displayport expiration for inner3
   // which will eventually trigger displayport expiration on inner3 and outer3.
   // Note that the displayport expiration might actually happen before the wheel
   // input is processed in the compositor (see bug 1246480 comment 3), and so
   // we make sure not to wait for a scroll event here, since it may never fire.
   // However, if we do get a scroll event while waiting for the expiry, we need
   // to restart the expiry timer because the displayport expiry got reset. There's
   // no good way that I can think of to deterministically avoid doing this.
-  let inner3 = document.getElementById('outer3').contentDocument.getElementById('inner3');
+  let inner3 = document.getElementById("outer3").contentDocument.getElementById("inner3");
   yield scrollWheelOver(inner3, false, testDriver);
   yield waitForAllPaints(function() {
     flushApzRepaints(testDriver);
   });
   var timerId = setTimeout(testDriver, DISPLAYPORT_EXPIRY);
   var timeoutResetter = function() {
     ok(true, "Got a scroll event; resetting timer...");
     clearTimeout(timerId);
     setTimeout(testDriver, DISPLAYPORT_EXPIRY);
     // by not updating timerId we ensure that this listener resets the timeout
     // at most once.
   };
-  inner3.addEventListener('scroll', timeoutResetter);
+  inner3.addEventListener("scroll", timeoutResetter);
   yield; // wait for the setTimeout to elapse
-  inner3.removeEventListener('scroll', timeoutResetter);
+  inner3.removeEventListener("scroll", timeoutResetter);
 
   yield waitForAllPaints(asyncWrapper(testDriver));
-  ok(!isLayerized('inner3'), "inner3 becomes unlayerized after expiry");
+  ok(!isLayerized("inner3"), "inner3 becomes unlayerized after expiry");
   yield setTimeout(testDriver, DISPLAYPORT_EXPIRY);
   yield waitForAllPaints(asyncWrapper(testDriver));
-  ok(!isLayerized('outer3'), "outer3 is no longer layerized after inner3 triggered expiry");
+  ok(!isLayerized("outer3"), "outer3 is no longer layerized after inner3 triggered expiry");
 
   // Scroll outer4 and wait for the expiry. It should NOT get expired because
   // inner4 is still layerized
-  yield scrollWheelOver(document.getElementById('outer4').contentDocument.documentElement, true, testDriver);
+  yield scrollWheelOver(document.getElementById("outer4").contentDocument.documentElement, true, testDriver);
   yield waitForAllPaints(function() {
     flushApzRepaints(testDriver);
   });
   // Wait for the expiry to elapse
   yield setTimeout(testDriver, DISPLAYPORT_EXPIRY);
   yield waitForAllPaints(asyncWrapper(testDriver));
-  ok(isLayerized('inner4'), "inner4 is still layerized because it never expired");
-  ok(isLayerized('outer4'), "outer4 is still layerized because inner4 is still layerized");
+  ok(isLayerized("inner4"), "inner4 is still layerized because it never expired");
+  ok(isLayerized("outer4"), "outer4 is still layerized because inner4 is still layerized");
 }
 
 if (isApzEnabled()) {
   SimpleTest.waitForExplicitFinish();
   SimpleTest.requestFlakyTimeout("we are testing code that measures an actual timeout");
   SimpleTest.expectAssertions(0, 8); // we get a bunch of "ASSERTION: Bounds computation mismatch" sometimes (bug 1232856)
 
   // Disable smooth scrolling, because it results in long-running scroll
--- a/gfx/layers/apz/test/mochitest/test_relative_update.html
+++ b/gfx/layers/apz/test/mochitest/test_relative_update.html
@@ -34,39 +34,39 @@ https://bugzilla.mozilla.org/show_bug.cg
     <div id="frame">
         <div id="first"></div>
         <div id="second"></div>
     </div>
 <script type="application/javascript">
 function* test(testDriver) {
   var utils = SpecialPowers.DOMWindowUtils;
 
-  var elm = document.querySelector('#frame');
+  var elm = document.querySelector("#frame");
   // Set a zero-margin displayport to ensure that the element is async-scrollable
   utils.setDisplayPortMarginsForElement(0, 0, 0, 0, elm, 0);
   elm.scrollTop = 0;
 
   // Take over control of the refresh driver and don't allow a layer
   // transaction until the main thread and APZ have processed two different
   // scrolls.
   yield waitForApzFlushedRepaints(testDriver);
   utils.advanceTimeAndRefresh(0);
 
   // Scroll instantly on the main thread by (0, 100).
   elm.scrollBy(0, 100);
 
   // We are not using `scroll-behavior`
-  is(elm.scrollTop, 100, 'the main thread scroll should be instant');
+  is(elm.scrollTop, 100, "the main thread scroll should be instant");
 
   // Dispatch a wheel event to have APZ scroll by (0, 8). Wait for the wheel
   // event to ensure that the APZ has processed the scroll.
   yield synthesizeNativeWheelAndWaitForWheelEvent(elm, 40, 40, 0, -8, testDriver);
 
   // APZ should be handling the wheel scroll
-  is(elm.scrollTop, 100, 'the wheel scroll should be handled by APZ');
+  is(elm.scrollTop, 100, "the wheel scroll should be handled by APZ");
 
   // Restore control of the refresh driver, allowing the main thread to send a
   // layer transaction containing the (0, 100) scroll.
   utils.restoreNormalRefresh();
 
   // Wait for all paints to finish and for the main thread to receive pending
   // repaint requests with the scroll offset from the wheel event.
   yield waitForApzFlushedRepaints(testDriver);
--- a/gfx/layers/apz/test/mochitest/test_scroll_inactive_bug1190112.html
+++ b/gfx/layers/apz/test/mochitest/test_scroll_inactive_bug1190112.html
@@ -482,39 +482,39 @@ 37	<br>
 38	<br>
 39	<br>
 40	<br>
 
 </p>
 </div>
 <script clss="testbody" type="text/javascript">
 function ScrollTops() {
-  this.outerScrollTop = document.getElementById('iframe-body').scrollTop;
-  this.innerScrollTop = document.getElementById('subframe').scrollTop;
+  this.outerScrollTop = document.getElementById("iframe-body").scrollTop;
+  this.innerScrollTop = document.getElementById("subframe").scrollTop;
 }
 
 var DefaultEvent = {
   deltaMode: WheelEvent.DOM_DELTA_LINE,
   deltaX: 0, deltaY: 1,
   lineOrPageDeltaX: 0, lineOrPageDeltaY: 1,
 };
 
 function test() {
-  var subframe = document.getElementById('subframe');
+  var subframe = document.getElementById("subframe");
   var oldpos = new ScrollTops();
   sendWheelAndPaint(subframe, 10, 10, DefaultEvent, function () {
     var newpos = new ScrollTops();
     ok(oldpos.outerScrollTop == newpos.outerScrollTop, "viewport should not have scrolled");
     ok(oldpos.innerScrollTop != newpos.innerScrollTop, "subframe should have scrolled");
     doOuterScroll(subframe, newpos);
   });
 }
 
 function doOuterScroll(subframe, oldpos) {
-  var outer = document.getElementById('iframe-body');
+  var outer = document.getElementById("iframe-body");
   sendWheelAndPaint(outer, 20, 5, DefaultEvent, function () {
     var newpos = new ScrollTops();
     ok(oldpos.outerScrollTop != newpos.outerScrollTop, "viewport should have scrolled");
     ok(oldpos.innerScrollTop == newpos.innerScrollTop, "subframe should not have scrolled");
     doInnerScrollAgain(subframe, newpos);
   });
 }
 
@@ -524,17 +524,17 @@ function doInnerScrollAgain(subframe, ol
     ok(oldpos.outerScrollTop == newpos.outerScrollTop, "viewport should not have scrolled");
     ok(oldpos.innerScrollTop != newpos.innerScrollTop, "subframe should have scrolled");
     SimpleTest.finish();
   });
 }
 
 SimpleTest.waitForExplicitFinish();
 
-pushPrefs([['general.smoothScroll', false],
-           ['mousewheel.transaction.timeout', 0],
-           ['mousewheel.transaction.ignoremovedelay', 0]])
+pushPrefs([["general.smoothScroll", false],
+           ["mousewheel.transaction.timeout", 0],
+           ["mousewheel.transaction.ignoremovedelay", 0]])
 .then(waitUntilApzStable)
 .then(test);
 
 </script>
 </body>
 </html>
--- a/gfx/layers/apz/test/mochitest/test_scroll_inactive_flattened_frame.html
+++ b/gfx/layers/apz/test/mochitest/test_scroll_inactive_flattened_frame.html
@@ -12,19 +12,19 @@
 <div id="container" style="height: 300px; width: 600px; overflow: auto; background: yellow">
  <div id="outer" style="height: 400px; width: 500px; overflow: auto; background: black">
   <div id="inner" style="mix-blend-mode: screen; height: 800px; overflow: auto; background: purple">
   </div>
  </div>
 </div>
 <script class="testbody" type="text/javascript">
 function test() {
-  var container = document.getElementById('container');
-  var outer = document.getElementById('outer');
-  var inner = document.getElementById('inner');
+  var container = document.getElementById("container");
+  var outer = document.getElementById("outer");
+  var inner = document.getElementById("inner");
   var outerScrollTop = outer.scrollTop;
   var containerScrollTop = container.scrollTop;
   var event = {
     deltaMode: WheelEvent.DOM_DELTA_LINE,
     deltaX: 0,
     deltaY: 10,
     lineOrPageDeltaX: 0,
     lineOrPageDeltaY: 10,
@@ -33,16 +33,16 @@ function test() {
     ok(container.scrollTop == containerScrollTop, "container scrollframe should not have scrolled");
     ok(outer.scrollTop > outerScrollTop, "nested scrollframe should have scrolled");
     SimpleTest.finish();
   });
 }
 
 SimpleTest.waitForExplicitFinish();
 
-pushPrefs([['general.smoothScroll', false],
-           ['mousewheel.transaction.timeout', 1000000]])
+pushPrefs([["general.smoothScroll", false],
+           ["mousewheel.transaction.timeout", 1000000]])
 .then(waitUntilApzStable)
 .then(test);
 
 </script>
 </body>
 </html>
--- a/gfx/layers/apz/test/mochitest/test_scroll_subframe_scrollbar.html
+++ b/gfx/layers/apz/test/mochitest/test_scroll_subframe_scrollbar.html
@@ -64,20 +64,20 @@ var DefaultEvent = {
   deltaMode: WheelEvent.DOM_DELTA_LINE,
   deltaX: 0, deltaY: 1,
   lineOrPageDeltaX: 0, lineOrPageDeltaY: 1,
 };
 
 var ScrollbarWidth = 0;
 
 function test() {
-  var subframe = document.getElementById('subframe');
+  var subframe = document.getElementById("subframe");
   var oldClientWidth = subframe.clientWidth;
 
-  subframe.style.overflow = 'auto';
+  subframe.style.overflow = "auto";
   subframe.getBoundingClientRect();
 
   waitForAllPaintsFlushed(function () {
     ScrollbarWidth = oldClientWidth - subframe.clientWidth;
     if (!ScrollbarWidth) {
       // Probably we have overlay scrollbars - abort the test.
       ok(true, "overlay scrollbars - skipping test");
       SimpleTest.finish();
@@ -101,17 +101,17 @@ function testScrolling(subframe) {
   sendWheelAndPaint(subframe, posX, posY, DefaultEvent, function () {
     ok(subframe.scrollTop > oldScrollTop, "subframe should have scrolled");
     SimpleTest.finish();
   });
 }
 
 SimpleTest.waitForExplicitFinish();
 
-pushPrefs([['general.smoothScroll', false],
-           ['mousewheel.transaction.timeout', 0],
-           ['mousewheel.transaction.ignoremovedelay', 0]])
+pushPrefs([["general.smoothScroll", false],
+           ["mousewheel.transaction.timeout", 0],
+           ["mousewheel.transaction.ignoremovedelay", 0]])
 .then(waitUntilApzStable)
 .then(test);
 
 </script>
 </body>
 </html>
--- a/gfx/layers/apz/test/mochitest/test_touch_listeners_impacting_wheel.html
+++ b/gfx/layers/apz/test/mochitest/test_touch_listeners_impacting_wheel.html
@@ -34,17 +34,17 @@ function takeSnapshots(e) {
   // Note that we want this function to take less time than the content response
   // timeout, otherwise the scrolling will start even if we haven't returned,
   // and that would invalidate purpose of the test.
   var start = Date.now();
   var lastSnapshot = null;
   var success = false;
 
   // Get the position of the 'content' div relative to the screen
-  var rect = rectRelativeToScreen(document.getElementById('content'));
+  var rect = rectRelativeToScreen(document.getElementById("content"));
 
   for (var i = 0; i < 10; i++) {
     SpecialPowers.DOMWindowUtils.advanceTimeAndRefresh(16);
     var snapshot = getSnapshot(rect);
     //dump("Took snapshot " + snapshot + "\n"); // this might help with debugging
 
     if (lastSnapshot && lastSnapshot != snapshot) {
       ok(true, "Found some different pixels in snapshot " + i + " compared to previous");
@@ -59,25 +59,25 @@ function takeSnapshots(e) {
   // because scroll events are dispatched on the main thread, which we've been
   // hogging with the code above. At this point we restore the normal refresh
   // behaviour and let the main thread go back to C++ code, so the scroll events
   // fire and we unwind from the main test continuation.
   SpecialPowers.DOMWindowUtils.restoreNormalRefresh();
 }
 
 function* test(testDriver) {
-  var box = document.getElementById('box');
+  var box = document.getElementById("box");
 
   // Ensure the div is layerized by scrolling it
   yield moveMouseAndScrollWheelOver(box, 10, 10, testDriver);
 
-  box.addEventListener('touchstart', function(e) {
+  box.addEventListener("touchstart", function(e) {
     ok(false, "This should never be run");
   });
-  box.addEventListener('wheel', takeSnapshots, { capture: false, passive: true });
+  box.addEventListener("wheel", takeSnapshots, { capture: false, passive: true });
 
   // Let the event regions and layerization propagate to the APZ
   yield waitForAllPaints(function() {
     flushApzRepaints(testDriver);
   });
 
   yield synthesizeNativeMouseMoveAndWaitForMoveEvent(box, 10, 10, testDriver);
 
--- a/gfx/layers/apz/test/mochitest/test_wheel_scroll.html
+++ b/gfx/layers/apz/test/mochitest/test_wheel_scroll.html
@@ -73,21 +73,21 @@ var incrementForMode = function (mode) {
 document.getElementById("scrollbox").addEventListener("wheel", function (e) {
   rotation += e.deltaY * incrementForMode(e.deltaMode) * 0.2;
   document.getElementById("circle").style.transform = "rotate(" + rotation + "deg)";
   rotationAdjusted = true;
   e.preventDefault();
 });
 
 function* test(testDriver) {
-  var content = document.getElementById('content');
+  var content = document.getElementById("content");
   for (i = 0; i < 300; i++) { // enough iterations that we would scroll to the bottom of 'content'
     yield synthesizeNativeWheelAndWaitForWheelEvent(content, 100, 150, 0, -5, testDriver);
   }
-  var scrollbox = document.getElementById('scrollbox');
+  var scrollbox = document.getElementById("scrollbox");
   is(content.scrollTop > 0, true, "We should have scrolled down somewhat");
   is(content.scrollTop < content.scrollTopMax, true, "We should not have scrolled to the bottom of the scrollframe");
   is(rotationAdjusted, true, "The rotation should have been adjusted");
 }
 
 SimpleTest.waitForExplicitFinish();
 
 // If we allow smooth scrolling the "smooth" scrolling may cause the page to
--- a/gfx/layers/apz/test/mochitest/test_wheel_transactions.html
+++ b/gfx/layers/apz/test/mochitest/test_wheel_transactions.html
@@ -41,19 +41,19 @@ https://bugzilla.mozilla.org/show_bug.cg
 <pre id="test">
 <script type="application/javascript">
 
 function scrollWheelOver(element, deltaY, testDriver) {
   synthesizeNativeWheelAndWaitForScrollEvent(element, 10, 10, 0, deltaY, testDriver);
 }
 
 function* test(testDriver) {
-  var outer = document.getElementById('outer-frame');
-  var inner = document.getElementById('inner-frame');
-  var innerContent = document.getElementById('inner-content');
+  var outer = document.getElementById("outer-frame");
+  var inner = document.getElementById("inner-frame");
+  var innerContent = document.getElementById("inner-content");
 
   // Register a wheel event listener that records the target of
   // the last wheel event, so that we can make assertions about it.
   var lastWheelTarget;
   var wheelTargetRecorder = function(e) { lastWheelTarget = e.target; };
   window.addEventListener("wheel", wheelTargetRecorder);
 
   // Scroll |outer| to the bottom.
--- a/gfx/layers/layerviewer/layerTreeView.js
+++ b/gfx/layers/layerviewer/layerTreeView.js
@@ -71,22 +71,22 @@ function parseDisplayList(lines) {
     rest = "content" + rest;
 
     var fields = {};
     var nesting = 0;
     var startIndex;
     var lastSpace = -1;
     var lastFieldStart = -1;
     for (var j = 0; j < rest.length; j++) {
-      if (rest.charAt(j) == '(') {
+      if (rest.charAt(j) == "(") {
         nesting++;
         if (nesting == 1) {
           startIndex = j;
         }
-      } else if (rest.charAt(j) == ')') {
+      } else if (rest.charAt(j) == ")") {
         nesting--;
         if (nesting == 0) {
           var name = rest.substring(lastSpace + 1, startIndex);
           var value = rest.substring(startIndex + 1, j);
 
           var rectMatches = value.match("^(.*?),(.*?),(.*?),(.*?)$")
           if (rectMatches) {
             layerObject[name] = [
@@ -94,27 +94,27 @@ function parseDisplayList(lines) {
               parseFloat(rectMatches[2]),
               parseFloat(rectMatches[3]),
               parseFloat(rectMatches[4]),
             ];
           } else {
             layerObject[name] = value;
           }
         }
-      } else if (nesting == 0 && rest.charAt(j) == ' ') {
+      } else if (nesting == 0 && rest.charAt(j) == " ") {
         lastSpace = j;
       }
     }
     //dump("FIELDS: " + JSON.stringify(fields) + "\n");
   }
   return root;
 }
 
 function trim(s){ 
-  return ( s || '' ).replace( /^\s+|\s+$/g, '' ); 
+  return ( s || "" ).replace( /^\s+|\s+$/g, "" ); 
 }
 
 function getDataURI(str) {
   if (str.indexOf("data:image/png;base64,") == 0) {
     return str;
   }
 
   var matches = str.match("data:image/lz4bgra;base64,([0-9]+),([0-9]+),([0-9]+),(.*)");
@@ -215,17 +215,17 @@ function parseLayers(layersDumpLines) {
       parseFloat(rectMatches[3]), parseFloat(rectMatches[4]),
     ];
     return rect;
   }
   function parseRegion(str) {
     str = trim(str);
 
     // Something like '< (x=0, y=0, w=2842, h=158); (x=0, y=1718, w=2842, h=500); >'
-    if (str.charAt(0) != '<' || str.charAt(str.length - 1) != '>') {
+    if (str.charAt(0) != "<" || str.charAt(str.length - 1) != ">") {
       return null;
     }
 
     var region = [];
     str = trim(str.substring(1, str.length - 1));
     while (str != "") {
       var rectMatches = str.match("^\\(x=(.*?), y=(.*?), w=(.*?), h=(.*?)\\);(.*)$");
       if (!rectMatches) {
@@ -331,22 +331,22 @@ function parseLayers(layersDumpLines) {
 
     var rest = matches[4];
 
     function parseProperties(rest, layerObject) {
       var fields = [];
       var nesting = 0;
       var startIndex;
       for (var j = 0; j < rest.length; j++) {
-        if (rest.charAt(j) == '[') {
+        if (rest.charAt(j) == "[") {
           nesting++;
           if (nesting == 1) {
             startIndex = j;
           }
-        } else if (rest.charAt(j) == ']') {
+        } else if (rest.charAt(j) == "]") {
           nesting--;
           if (nesting == 0) {
             fields.push(rest.substring(startIndex + 1, j));
           }
         }
       }
 
       for (var j = 0; j < fields.length; j++) {
@@ -386,45 +386,45 @@ function parseLayers(layersDumpLines) {
           continue;
         }
         var color = parseColor(rest);
         if (color) {
           layerObject[fieldName] = color;
           layerObject[fieldName].type = "color";
           continue;
         }
-        if (rest[0] == '{' && rest[rest.length - 1] == '}') {
+        if (rest[0] == "{" && rest[rest.length - 1] == "}") {
           var object = {};
           parseProperties(rest.substring(1, rest.length - 2).trim(), object);
           layerObject[fieldName] = object;
           layerObject[fieldName].type = "object";
           continue;
         }
         fieldName = fieldName.split(" ")[0];
         layerObject[fieldName] = rest[0];
         layerObject[fieldName].type = "string";
       }
     }
     parseProperties(rest, layerObject);
 
-    if (!layerObject['shadow-transform']) {
+    if (!layerObject["shadow-transform"]) {
       // No shadow transform = identify
-      layerObject['shadow-transform'] = [[1, 0], [0, 1], [0, 0]];
+      layerObject["shadow-transform"] = [[1, 0], [0, 1], [0, 0]];
     }
 
     // Compute screenTransformX/screenTransformY
     // TODO Fully support transforms
-    if (layerObject['shadow-transform'] && layerObject['transform']) {
-      layerObject['screen-transform'] = [layerObject['shadow-transform'][2][0], layerObject['shadow-transform'][2][1]];
+    if (layerObject["shadow-transform"] && layerObject["transform"]) {
+      layerObject["screen-transform"] = [layerObject["shadow-transform"][2][0], layerObject["shadow-transform"][2][1]];
       var currIndentation = indentation - 1;
       while (currIndentation >= 0) {
-        var transform = objectAtIndentation[currIndentation]['shadow-transform'] || objectAtIndentation[currIndentation]['transform'];
+        var transform = objectAtIndentation[currIndentation]["shadow-transform"] || objectAtIndentation[currIndentation]["transform"];
         if (transform) {
-          layerObject['screen-transform'][0] += transform[2][0];
-          layerObject['screen-transform'][1] += transform[2][1];
+          layerObject["screen-transform"][0] += transform[2][0];
+          layerObject["screen-transform"][1] += transform[2][1];
         }
         currIndentation--;
       }
     }
 
     //dump("Fields: " + JSON.stringify(fields) + "\n");
   }
   root.compositeTime = layersDumpLines.compositeTime;
@@ -592,19 +592,19 @@ function populateLayers(root, displayLis
             }
           }
         }
         layerPreview.style.background = "";
       } else if (root.surfaceURI) {
         hasImg = true;
         var offsetX = 0;
         var offsetY = 0;
-        if (root.contentHostProp && root.contentHostProp['buffer-rect']) {
-          offsetX = root.contentHostProp['buffer-rect'][0];
-          offsetY = root.contentHostProp['buffer-rect'][1];
+        if (root.contentHostProp && root.contentHostProp["buffer-rect"]) {
+          offsetX = root.contentHostProp["buffer-rect"][0];
+          offsetY = root.contentHostProp["buffer-rect"][1];
         }
         var surfaceImgElem = createElement("img", {
           src: getDataURI(root.surfaceURI),
           style: {
             position: "absolute",
             left: (offsetX - previewOffset[0]) + "px",
             top: (offsetY - previewOffset[1]) + "px",
             pointerEvents: "auto",