Bug 1385817 - Enable the quotes ESLint rule for accessible/ r?yzen draft
authorDan Banner <dbugs@thebanners.uk>
Tue, 01 Aug 2017 17:13:27 +0100
changeset 620549 3be62a3de45869c5aefb6ab7953dc93b7238de15
parent 620338 63e261ce8cb04c913d2e6b19ea451b7078d24dc1
child 620550 224daacb2fa395ab9a7c63a9cd9e9a17624e4527
push id72079
push userbmo:dbugs@thebanners.uk
push dateThu, 03 Aug 2017 15:15:22 +0000
reviewersyzen
bugs1385817
milestone57.0a1
Bug 1385817 - Enable the quotes ESLint rule for accessible/ r?yzen MozReview-Commit-ID: 1pS6xMzeh82
accessible/.eslintrc.js
accessible/jsat/AccessFu.jsm
accessible/jsat/Constants.jsm
accessible/jsat/ContentControl.jsm
accessible/jsat/EventManager.jsm
accessible/jsat/Gestures.jsm
accessible/jsat/OutputGenerator.jsm
accessible/jsat/PointerAdapter.jsm
accessible/jsat/Presentation.jsm
accessible/jsat/Traversal.jsm
accessible/jsat/Utils.jsm
accessible/jsat/content-script.js
accessible/tests/browser/bounds/browser_test_zoom.js
accessible/tests/browser/bounds/browser_test_zoom_text.js
accessible/tests/browser/bounds/head.js
accessible/tests/browser/browser_shutdown_acc_reference.js
accessible/tests/browser/browser_shutdown_doc_acc_reference.js
accessible/tests/browser/browser_shutdown_multi_acc_reference_doc.js
accessible/tests/browser/browser_shutdown_multi_acc_reference_obj.js
accessible/tests/browser/browser_shutdown_multi_proxy_acc_reference_doc.js
accessible/tests/browser/browser_shutdown_multi_proxy_acc_reference_obj.js
accessible/tests/browser/browser_shutdown_multi_reference.js
accessible/tests/browser/browser_shutdown_parent_own_reference.js
accessible/tests/browser/browser_shutdown_proxy_acc_reference.js
accessible/tests/browser/browser_shutdown_proxy_doc_acc_reference.js
accessible/tests/browser/browser_shutdown_remote_no_reference.js
accessible/tests/browser/browser_shutdown_remote_only.js
accessible/tests/browser/browser_shutdown_remote_own_reference.js
accessible/tests/browser/browser_shutdown_scope_lifecycle.js
accessible/tests/browser/browser_shutdown_start_restart.js
accessible/tests/browser/e10s/browser_caching_attributes.js
accessible/tests/browser/e10s/browser_caching_description.js
accessible/tests/browser/e10s/browser_caching_name.js
accessible/tests/browser/e10s/browser_caching_relations.js
accessible/tests/browser/e10s/browser_caching_states.js
accessible/tests/browser/e10s/browser_caching_value.js
accessible/tests/browser/e10s/browser_events_caretmove.js
accessible/tests/browser/e10s/browser_events_hide.js
accessible/tests/browser/e10s/browser_events_show.js
accessible/tests/browser/e10s/browser_events_statechange.js
accessible/tests/browser/e10s/browser_events_textchange.js
accessible/tests/browser/e10s/browser_treeupdate_ariadialog.js
accessible/tests/browser/e10s/browser_treeupdate_ariaowns.js
accessible/tests/browser/e10s/browser_treeupdate_canvas.js
accessible/tests/browser/e10s/browser_treeupdate_cssoverflow.js
accessible/tests/browser/e10s/browser_treeupdate_doc.js
accessible/tests/browser/e10s/browser_treeupdate_gencontent.js
accessible/tests/browser/e10s/browser_treeupdate_hidden.js
accessible/tests/browser/e10s/browser_treeupdate_imagemap.js
accessible/tests/browser/e10s/browser_treeupdate_list.js
accessible/tests/browser/e10s/browser_treeupdate_list_editabledoc.js
accessible/tests/browser/e10s/browser_treeupdate_listener.js
accessible/tests/browser/e10s/browser_treeupdate_optgroup.js
accessible/tests/browser/e10s/browser_treeupdate_removal.js
accessible/tests/browser/e10s/browser_treeupdate_table.js
accessible/tests/browser/e10s/browser_treeupdate_textleaf.js
accessible/tests/browser/e10s/browser_treeupdate_visibility.js
accessible/tests/browser/e10s/browser_treeupdate_whitespace.js
accessible/tests/browser/e10s/head.js
accessible/tests/browser/events.js
accessible/tests/browser/events/browser_test_docload.js
accessible/tests/browser/events/browser_test_focus_browserui.js
accessible/tests/browser/events/browser_test_focus_dialog.js
accessible/tests/browser/events/head.js
accessible/tests/browser/head.js
accessible/tests/browser/scroll/browser_test_zoom_text.js
accessible/tests/browser/scroll/head.js
accessible/tests/browser/shared-head.js
accessible/tests/browser/states/browser_test_link.js
accessible/tests/browser/states/browser_test_visibility.js
accessible/tests/browser/states/head.js
accessible/tests/browser/tree/head.js
accessible/tests/crashtests/448064.xhtml
accessible/tests/mochitest/aom/test_general.html
accessible/tests/mochitest/attributes/test_dpub_aria_xml-roles.html
accessible/tests/mochitest/common.js
accessible/tests/mochitest/elm/test_canvas.html
accessible/tests/mochitest/elm/test_shadowroot.html
accessible/tests/mochitest/events/docload_wnd.html
accessible/tests/mochitest/events/test_coalescence.html
accessible/tests/mochitest/events/test_focus_general.html
accessible/tests/mochitest/events/test_mutation.html
accessible/tests/mochitest/events/test_statechange.html
accessible/tests/mochitest/hittest/test_canvas_hitregion.html
accessible/tests/mochitest/hittest/test_shadowroot.html
accessible/tests/mochitest/jsat/doc_content_integration.html
accessible/tests/mochitest/jsat/dom_helper.js
accessible/tests/mochitest/jsat/jsatcommon.js
accessible/tests/mochitest/jsat/output.js
accessible/tests/mochitest/jsat/test_alive.html
accessible/tests/mochitest/jsat/test_content_integration.html
accessible/tests/mochitest/jsat/test_content_text.html
accessible/tests/mochitest/jsat/test_hints.html
accessible/tests/mochitest/jsat/test_live_regions.html
accessible/tests/mochitest/jsat/test_pointer_relay.html
accessible/tests/mochitest/jsat/test_quicknav_modes.html
accessible/tests/mochitest/jsat/test_traversal.html
accessible/tests/mochitest/jsat/test_traversal_helper.html
accessible/tests/mochitest/name/markup.js
accessible/tests/mochitest/name/test_counterstyle.html
accessible/tests/mochitest/pivot.js
accessible/tests/mochitest/pivot/test_virtualcursor.html
accessible/tests/mochitest/pivot/test_virtualcursor_text.html
accessible/tests/mochitest/states/test_inputs.html
accessible/tests/mochitest/treeupdate/test_ariaowns.html
accessible/tests/mochitest/treeupdate/test_bug1276857.html
accessible/tests/mochitest/treeupdate/test_doc.html
accessible/tests/mochitest/treeupdate/test_general.html
accessible/tests/mochitest/treeupdate/test_select.html
npm-shrinkwrap.json
--- a/accessible/.eslintrc.js
+++ b/accessible/.eslintrc.js
@@ -5,17 +5,16 @@ module.exports = {
     // Warn about cyclomatic complexity in functions.
     "complexity": ["error", 42],
 
     // XXX These are rules that are enabled in the recommended configuration, but
     // disabled here due to failures when initially implemented. They should be
     // removed (and hence enabled) at some stage.
     "brace-style": "off",
     "consistent-return": "off",
-    "quotes": "off",
     "object-shorthand": "off",
     "space-before-function-paren": "off",
     "space-infix-ops": "off",
     "no-else-return": "off",
     "no-multi-spaces": "off",
     "no-unexpected-multiline": "off",
     "no-unsafe-finally": "off",
     "no-useless-call": "off",
--- a/accessible/jsat/AccessFu.jsm
+++ b/accessible/jsat/AccessFu.jsm
@@ -1,65 +1,65 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* exported AccessFu */
 
-'use strict';
+"use strict";
 
 const {utils: Cu, interfaces: Ci} = Components;
 
-this.EXPORTED_SYMBOLS = ['AccessFu']; // jshint ignore:line
+this.EXPORTED_SYMBOLS = ["AccessFu"]; // jshint ignore:line
 
-Cu.import('resource://gre/modules/Services.jsm');
-Cu.import('resource://gre/modules/accessibility/Utils.jsm');
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/accessibility/Utils.jsm");
 
-if (Utils.MozBuildApp === 'mobile/android') {
-  Cu.import('resource://gre/modules/Messaging.jsm');
+if (Utils.MozBuildApp === "mobile/android") {
+  Cu.import("resource://gre/modules/Messaging.jsm");
 }
 
 const ACCESSFU_DISABLE = 0; // jshint ignore:line
 const ACCESSFU_ENABLE = 1;
 const ACCESSFU_AUTO = 2;
 
-const SCREENREADER_SETTING = 'accessibility.screenreader';
-const QUICKNAV_MODES_PREF = 'accessibility.accessfu.quicknav_modes';
-const QUICKNAV_INDEX_PREF = 'accessibility.accessfu.quicknav_index';
+const SCREENREADER_SETTING = "accessibility.screenreader";
+const QUICKNAV_MODES_PREF = "accessibility.accessfu.quicknav_modes";
+const QUICKNAV_INDEX_PREF = "accessibility.accessfu.quicknav_index";
 
 this.AccessFu = { // jshint ignore:line
   /**
    * Initialize chrome-layer accessibility functionality.
    * If accessibility is enabled on the platform, then a special accessibility
    * mode is started.
    */
   attach: function attach(aWindow) {
     Utils.init(aWindow);
 
-    if (Utils.MozBuildApp === 'mobile/android') {
-      EventDispatcher.instance.dispatch('Accessibility:Ready');
-      EventDispatcher.instance.registerListener(this, 'Accessibility:Settings');
+    if (Utils.MozBuildApp === "mobile/android") {
+      EventDispatcher.instance.dispatch("Accessibility:Ready");
+      EventDispatcher.instance.registerListener(this, "Accessibility:Settings");
     }
 
     this._activatePref = new PrefCache(
-      'accessibility.accessfu.activate', this._enableOrDisable.bind(this));
+      "accessibility.accessfu.activate", this._enableOrDisable.bind(this));
 
     this._enableOrDisable();
   },
 
   /**
    * Shut down chrome-layer accessibility functionality from the outside.
    */
   detach: function detach() {
     // Avoid disabling twice.
     if (this._enabled) {
       this._disable();
     }
-    if (Utils.MozBuildApp === 'mobile/android') {
-      EventDispatcher.instance.unregisterListener(this, 'Accessibility:Settings');
+    if (Utils.MozBuildApp === "mobile/android") {
+      EventDispatcher.instance.unregisterListener(this, "Accessibility:Settings");
     }
     delete this._activatePref;
     Utils.uninit();
   },
 
   /**
    * A lazy getter for event handler that binds the scope to AccessFu object.
    */
@@ -74,29 +74,29 @@ this.AccessFu = { // jshint ignore:line
    * with arrow keys.
    */
   _enable: function _enable() {
     if (this._enabled) {
       return;
     }
     this._enabled = true;
 
-    Cu.import('resource://gre/modules/accessibility/Utils.jsm');
-    Cu.import('resource://gre/modules/accessibility/PointerAdapter.jsm');
-    Cu.import('resource://gre/modules/accessibility/Presentation.jsm');
+    Cu.import("resource://gre/modules/accessibility/Utils.jsm");
+    Cu.import("resource://gre/modules/accessibility/PointerAdapter.jsm");
+    Cu.import("resource://gre/modules/accessibility/Presentation.jsm");
 
     for (let mm of Utils.AllMessageManagers) {
       this._addMessageListeners(mm);
       this._loadFrameScript(mm);
     }
 
     // Add stylesheet
-    let stylesheetURL = 'chrome://global/content/accessibility/AccessFu.css';
+    let stylesheetURL = "chrome://global/content/accessibility/AccessFu.css";
     let stylesheet = Utils.win.document.createProcessingInstruction(
-      'xml-stylesheet', 'href="' + stylesheetURL + '" type="text/css"');
+      "xml-stylesheet", `href="${stylesheetURL}" type="text/css"`);
     Utils.win.document.insertBefore(stylesheet, Utils.win.document.firstChild);
     this.stylesheet = Cu.getWeakReference(stylesheet);
 
 
     // Populate quicknav modes
     this._quicknavModesPref =
       new PrefCache(QUICKNAV_MODES_PREF, (aName, aValue, aFirstRun) => {
         this.Input.quickNavMode.updateModes(aValue);
@@ -108,139 +108,139 @@ this.AccessFu = { // jshint ignore:line
 
     this._quicknavCurrentModePref =
       new PrefCache(QUICKNAV_INDEX_PREF, (aName, aValue) => {
         this.Input.quickNavMode.updateCurrentMode(Number(aValue));
       }, true);
 
     // Check for output notification
     this._notifyOutputPref =
-      new PrefCache('accessibility.accessfu.notify_output');
+      new PrefCache("accessibility.accessfu.notify_output");
 
 
     this.Input.start();
     Output.start();
     PointerAdapter.start();
 
-    if (Utils.MozBuildApp === 'mobile/android') {
+    if (Utils.MozBuildApp === "mobile/android") {
       EventDispatcher.instance.registerListener(this, [
-        'Accessibility:ActivateObject',
-        'Accessibility:Focus',
-        'Accessibility:LongPress',
-        'Accessibility:MoveByGranularity',
-        'Accessibility:NextObject',
-        'Accessibility:PreviousObject',
-        'Accessibility:ScrollBackward',
-        'Accessibility:ScrollForward',
+        "Accessibility:ActivateObject",
+        "Accessibility:Focus",
+        "Accessibility:LongPress",
+        "Accessibility:MoveByGranularity",
+        "Accessibility:NextObject",
+        "Accessibility:PreviousObject",
+        "Accessibility:ScrollBackward",
+        "Accessibility:ScrollForward",
       ]);
     }
 
-    Services.obs.addObserver(this, 'remote-browser-shown');
-    Services.obs.addObserver(this, 'inprocess-browser-shown');
-    Utils.win.addEventListener('TabOpen', this);
-    Utils.win.addEventListener('TabClose', this);
-    Utils.win.addEventListener('TabSelect', this);
+    Services.obs.addObserver(this, "remote-browser-shown");
+    Services.obs.addObserver(this, "inprocess-browser-shown");
+    Utils.win.addEventListener("TabOpen", this);
+    Utils.win.addEventListener("TabClose", this);
+    Utils.win.addEventListener("TabSelect", this);
 
     if (this.readyCallback) {
       this.readyCallback();
       delete this.readyCallback;
     }
 
-    Logger.info('AccessFu:Enabled');
+    Logger.info("AccessFu:Enabled");
   },
 
   /**
    * Disable AccessFu and return to default interaction mode.
    */
   _disable: function _disable() {
     if (!this._enabled) {
       return;
     }
 
     this._enabled = false;
 
     Utils.win.document.removeChild(this.stylesheet.get());
 
     for (let mm of Utils.AllMessageManagers) {
-      mm.sendAsyncMessage('AccessFu:Stop');
+      mm.sendAsyncMessage("AccessFu:Stop");
       this._removeMessageListeners(mm);
     }
 
     this.Input.stop();
     Output.stop();
     PointerAdapter.stop();
 
-    Utils.win.removeEventListener('TabOpen', this);
-    Utils.win.removeEventListener('TabClose', this);
-    Utils.win.removeEventListener('TabSelect', this);
+    Utils.win.removeEventListener("TabOpen", this);
+    Utils.win.removeEventListener("TabClose", this);
+    Utils.win.removeEventListener("TabSelect", this);
 
-    Services.obs.removeObserver(this, 'remote-browser-shown');
-    Services.obs.removeObserver(this, 'inprocess-browser-shown');
+    Services.obs.removeObserver(this, "remote-browser-shown");
+    Services.obs.removeObserver(this, "inprocess-browser-shown");
 
-    if (Utils.MozBuildApp === 'mobile/android') {
+    if (Utils.MozBuildApp === "mobile/android") {
       EventDispatcher.instance.unregisterListener(this, [
-        'Accessibility:ActivateObject',
-        'Accessibility:Focus',
-        'Accessibility:LongPress',
-        'Accessibility:MoveByGranularity',
-        'Accessibility:NextObject',
-        'Accessibility:PreviousObject',
-        'Accessibility:ScrollBackward',
-        'Accessibility:ScrollForward',
+        "Accessibility:ActivateObject",
+        "Accessibility:Focus",
+        "Accessibility:LongPress",
+        "Accessibility:MoveByGranularity",
+        "Accessibility:NextObject",
+        "Accessibility:PreviousObject",
+        "Accessibility:ScrollBackward",
+        "Accessibility:ScrollForward",
       ]);
     }
 
     delete this._quicknavModesPref;
     delete this._notifyOutputPref;
 
     if (this.doneCallback) {
       this.doneCallback();
       delete this.doneCallback;
     }
 
-    Logger.info('AccessFu:Disabled');
+    Logger.info("AccessFu:Disabled");
   },
 
   _enableOrDisable: function _enableOrDisable() {
     try {
       if (!this._activatePref) {
         return;
       }
       let activatePref = this._activatePref.value;
       if (activatePref == ACCESSFU_ENABLE ||
           this._systemPref && activatePref == ACCESSFU_AUTO) {
         this._enable();
       } else {
         this._disable();
       }
     } catch (x) {
-      dump('Error ' + x.message + ' ' + x.fileName + ':' + x.lineNumber);
+      dump("Error " + x.message + " " + x.fileName + ":" + x.lineNumber);
     }
   },
 
   receiveMessage: function receiveMessage(aMessage) {
     Logger.debug(() => {
-      return ['Recieved', aMessage.name, JSON.stringify(aMessage.json)];
+      return ["Recieved", aMessage.name, JSON.stringify(aMessage.json)];
     });
 
     switch (aMessage.name) {
-      case 'AccessFu:Ready':
+      case "AccessFu:Ready":
         let mm = Utils.getMessageManager(aMessage.target);
         if (this._enabled) {
-          mm.sendAsyncMessage('AccessFu:Start',
-                              {method: 'start', buildApp: Utils.MozBuildApp});
+          mm.sendAsyncMessage("AccessFu:Start",
+                              {method: "start", buildApp: Utils.MozBuildApp});
         }
         break;
-      case 'AccessFu:Present':
+      case "AccessFu:Present":
         this._output(aMessage.json, aMessage.target);
         break;
-      case 'AccessFu:Input':
+      case "AccessFu:Input":
         this.Input.setEditState(aMessage.json);
         break;
-      case 'AccessFu:DoScroll':
+      case "AccessFu:DoScroll":
         this.Input.doScroll(aMessage.json);
         break;
     }
   },
 
   _output: function _output(aPresentationData, aBrowser) {
     if (!Utils.isAliveAndVisible(
       Utils.AccService.getAccessibleFor(aBrowser))) {
@@ -254,139 +254,139 @@ this.AccessFu = { // jshint ignore:line
       try {
         Output[presenter.type](presenter.details, aBrowser);
       } catch (x) {
         Logger.logException(x);
       }
     }
 
     if (this._notifyOutputPref.value) {
-      Services.obs.notifyObservers(null, 'accessibility-output',
+      Services.obs.notifyObservers(null, "accessibility-output",
                                    JSON.stringify(aPresentationData));
     }
   },
 
   _loadFrameScript: function _loadFrameScript(aMessageManager) {
     if (this._processedMessageManagers.indexOf(aMessageManager) < 0) {
       aMessageManager.loadFrameScript(
-        'chrome://global/content/accessibility/content-script.js', true);
+        "chrome://global/content/accessibility/content-script.js", true);
       this._processedMessageManagers.push(aMessageManager);
     } else if (this._enabled) {
       // If the content-script is already loaded and AccessFu is enabled,
       // send an AccessFu:Start message.
-      aMessageManager.sendAsyncMessage('AccessFu:Start',
-        {method: 'start', buildApp: Utils.MozBuildApp});
+      aMessageManager.sendAsyncMessage("AccessFu:Start",
+        {method: "start", buildApp: Utils.MozBuildApp});
     }
   },
 
   _addMessageListeners: function _addMessageListeners(aMessageManager) {
-    aMessageManager.addMessageListener('AccessFu:Present', this);
-    aMessageManager.addMessageListener('AccessFu:Input', this);
-    aMessageManager.addMessageListener('AccessFu:Ready', this);
-    aMessageManager.addMessageListener('AccessFu:DoScroll', this);
+    aMessageManager.addMessageListener("AccessFu:Present", this);
+    aMessageManager.addMessageListener("AccessFu:Input", this);
+    aMessageManager.addMessageListener("AccessFu:Ready", this);
+    aMessageManager.addMessageListener("AccessFu:DoScroll", this);
   },
 
   _removeMessageListeners: function _removeMessageListeners(aMessageManager) {
-    aMessageManager.removeMessageListener('AccessFu:Present', this);
-    aMessageManager.removeMessageListener('AccessFu:Input', this);
-    aMessageManager.removeMessageListener('AccessFu:Ready', this);
-    aMessageManager.removeMessageListener('AccessFu:DoScroll', this);
+    aMessageManager.removeMessageListener("AccessFu:Present", this);
+    aMessageManager.removeMessageListener("AccessFu:Input", this);
+    aMessageManager.removeMessageListener("AccessFu:Ready", this);
+    aMessageManager.removeMessageListener("AccessFu:DoScroll", this);
   },
 
   _handleMessageManager: function _handleMessageManager(aMessageManager) {
     if (this._enabled) {
       this._addMessageListeners(aMessageManager);
     }
     this._loadFrameScript(aMessageManager);
   },
 
   onEvent: function (event, data, callback) {
     switch (event) {
-      case 'Accessibility:Settings':
+      case "Accessibility:Settings":
         this._systemPref = data.enabled;
         this._enableOrDisable();
         break;
-      case 'Accessibility:NextObject':
-      case 'Accessibility:PreviousObject': {
+      case "Accessibility:NextObject":
+      case "Accessibility:PreviousObject": {
         let rule = data ?
           data.rule.substr(0, 1).toUpperCase() + data.rule.substr(1).toLowerCase() :
-          'Simple';
-        let method = event.replace(/Accessibility:(\w+)Object/, 'move$1');
-        this.Input.moveCursor(method, rule, 'gesture');
+          "Simple";
+        let method = event.replace(/Accessibility:(\w+)Object/, "move$1");
+        this.Input.moveCursor(method, rule, "gesture");
         break;
       }
-      case 'Accessibility:ActivateObject':
+      case "Accessibility:ActivateObject":
         this.Input.activateCurrent(data);
         break;
-      case 'Accessibility:LongPress':
+      case "Accessibility:LongPress":
         this.Input.sendContextMenuMessage();
         break;
-      case 'Accessibility:ScrollForward':
-        this.Input.androidScroll('forward');
+      case "Accessibility:ScrollForward":
+        this.Input.androidScroll("forward");
         break;
-      case 'Accessibility:ScrollBackward':
-        this.Input.androidScroll('backward');
+      case "Accessibility:ScrollBackward":
+        this.Input.androidScroll("backward");
         break;
-      case 'Accessibility:Focus':
+      case "Accessibility:Focus":
         this._focused = data.gainFocus;
         if (this._focused) {
           this.autoMove({ forcePresent: true, noOpIfOnScreen: true });
         }
         break;
-      case 'Accessibility:MoveByGranularity':
+      case "Accessibility:MoveByGranularity":
         this.Input.moveByGranularity(data);
         break;
     }
   },
 
   observe: function observe(aSubject, aTopic, aData) {
     switch (aTopic) {
-      case 'remote-browser-shown':
-      case 'inprocess-browser-shown':
+      case "remote-browser-shown":
+      case "inprocess-browser-shown":
       {
         // Ignore notifications that aren't from a Browser
         let frameLoader = aSubject.QueryInterface(Ci.nsIFrameLoader);
         if (!frameLoader.ownerIsMozBrowserFrame) {
           return;
         }
         this._handleMessageManager(frameLoader.messageManager);
         break;
       }
     }
   },
 
   _handleEvent: function _handleEvent(aEvent) {
     switch (aEvent.type) {
-      case 'TabOpen':
+      case "TabOpen":
       {
         let mm = Utils.getMessageManager(aEvent.target);
         this._handleMessageManager(mm);
         break;
       }
-      case 'TabClose':
+      case "TabClose":
       {
         let mm = Utils.getMessageManager(aEvent.target);
         let mmIndex = this._processedMessageManagers.indexOf(mm);
         if (mmIndex > -1) {
           this._removeMessageListeners(mm);
           this._processedMessageManagers.splice(mmIndex, 1);
         }
         break;
       }
-      case 'TabSelect':
+      case "TabSelect":
       {
         if (this._focused) {
           // We delay this for half a second so the awesomebar could close,
           // and we could use the current coordinates for the content item.
           // XXX TODO figure out how to avoid magic wait here.
           this.autoMove({
             delay: 500,
             forcePresent: true,
             noOpIfOnScreen: true,
-            moveMethod: 'moveFirst' });
+            moveMethod: "moveFirst" });
         }
         break;
       }
       default:
       {
         // A settings change, it does not have an event type
         if (aEvent.settingName == SCREENREADER_SETTING) {
           this._systemPref = aEvent.settingValue;
@@ -394,17 +394,17 @@ this.AccessFu = { // jshint ignore:line
         }
         break;
       }
     }
   },
 
   autoMove: function autoMove(aOptions) {
     let mm = Utils.getMessageManager(Utils.CurrentBrowser);
-    mm.sendAsyncMessage('AccessFu:AutoMove', aOptions);
+    mm.sendAsyncMessage("AccessFu:AutoMove", aOptions);
   },
 
   announce: function announce(aAnnouncement) {
     this._output(Presentation.announce(aAnnouncement), Utils.CurrentBrowser);
   },
 
   // So we don't enable/disable twice
   _enabled: false,
@@ -445,61 +445,61 @@ this.AccessFu = { // jshint ignore:line
       return bounds.expandToIntegers();
     }
 };
 
 var Output = {
   brailleState: {
     startOffset: 0,
     endOffset: 0,
-    text: '',
+    text: "",
     selectionStart: 0,
     selectionEnd: 0,
 
     init: function init(aOutput) {
-      if (aOutput && 'output' in aOutput) {
+      if (aOutput && "output" in aOutput) {
         this.startOffset = aOutput.startOffset;
         this.endOffset = aOutput.endOffset;
         // We need to append a space at the end so that the routing key
         // corresponding to the end of the output (i.e. the space) can be hit to
         // move the caret there.
-        this.text = aOutput.output + ' ';
-        this.selectionStart = typeof aOutput.selectionStart === 'number' ?
+        this.text = aOutput.output + " ";
+        this.selectionStart = typeof aOutput.selectionStart === "number" ?
                               aOutput.selectionStart : this.selectionStart;
-        this.selectionEnd = typeof aOutput.selectionEnd === 'number' ?
+        this.selectionEnd = typeof aOutput.selectionEnd === "number" ?
                             aOutput.selectionEnd : this.selectionEnd;
 
         return { text: this.text,
                  selectionStart: this.selectionStart,
                  selectionEnd: this.selectionEnd };
       }
 
       return null;
     },
 
     adjustText: function adjustText(aText) {
       let newBraille = [];
       let braille = {};
 
       let prefix = this.text.substring(0, this.startOffset).trim();
       if (prefix) {
-        prefix += ' ';
+        prefix += " ";
         newBraille.push(prefix);
       }
 
       newBraille.push(aText);
 
       let suffix = this.text.substring(this.endOffset).trim();
       if (suffix) {
-        suffix = ' ' + suffix;
+        suffix = " " + suffix;
         newBraille.push(suffix);
       }
 
       this.startOffset = braille.startOffset = prefix.length;
-      this.text = braille.text = newBraille.join('') + ' ';
+      this.text = braille.text = newBraille.join("") + " ";
       this.endOffset = braille.endOffset = braille.text.length - suffix.length;
       braille.selectionStart = this.selectionStart;
       braille.selectionEnd = this.selectionEnd;
 
       return braille;
     },
 
     adjustSelection: function adjustSelection(aSelection) {
@@ -513,87 +513,87 @@ var Output = {
       this.selectionEnd = braille.selectionEnd =
         aSelection.selectionEnd + this.startOffset;
 
       return braille;
     }
   },
 
   start: function start() {
-    Cu.import('resource://gre/modules/Geometry.jsm');
+    Cu.import("resource://gre/modules/Geometry.jsm");
   },
 
   stop: function stop() {
     if (this.highlightBox) {
       let highlightBox = this.highlightBox.get();
       if (highlightBox) {
         highlightBox.remove();
       }
       delete this.highlightBox;
     }
   },
 
   B2G: function B2G(aDetails) {
-    Utils.dispatchChromeEvent('accessibility-output', aDetails);
+    Utils.dispatchChromeEvent("accessibility-output", aDetails);
   },
 
   Visual: function Visual(aDetail, aBrowser) {
     switch (aDetail.eventType) {
-      case 'viewport-change':
-      case 'vc-change':
+      case "viewport-change":
+      case "vc-change":
       {
         let highlightBox = null;
         if (!this.highlightBox) {
           let doc = Utils.win.document;
           // Add highlight box
           highlightBox = Utils.win.document.
-            createElementNS('http://www.w3.org/1999/xhtml', 'div');
+            createElementNS("http://www.w3.org/1999/xhtml", "div");
           let parent = doc.body || doc.documentElement;
           parent.appendChild(highlightBox);
-          highlightBox.id = 'virtual-cursor-box';
+          highlightBox.id = "virtual-cursor-box";
 
           // Add highlight inset for inner shadow
           highlightBox.appendChild(
-            doc.createElementNS('http://www.w3.org/1999/xhtml', 'div'));
+            doc.createElementNS("http://www.w3.org/1999/xhtml", "div"));
 
           this.highlightBox = Cu.getWeakReference(highlightBox);
         } else {
           highlightBox = this.highlightBox.get();
         }
 
         let padding = aDetail.padding;
         let r = AccessFu.adjustContentBounds(aDetail.bounds, aBrowser, true);
 
         // First hide it to avoid flickering when changing the style.
-        highlightBox.classList.remove('show');
-        highlightBox.style.top = (r.top - padding) + 'px';
-        highlightBox.style.left = (r.left - padding) + 'px';
-        highlightBox.style.width = (r.width + padding*2) + 'px';
-        highlightBox.style.height = (r.height + padding*2) + 'px';
-        highlightBox.classList.add('show');
+        highlightBox.classList.remove("show");
+        highlightBox.style.top = (r.top - padding) + "px";
+        highlightBox.style.left = (r.left - padding) + "px";
+        highlightBox.style.width = (r.width + padding*2) + "px";
+        highlightBox.style.height = (r.height + padding*2) + "px";
+        highlightBox.classList.add("show");
 
         break;
       }
-      case 'tabstate-change':
+      case "tabstate-change":
       {
         let highlightBox = this.highlightBox ? this.highlightBox.get() : null;
         if (highlightBox) {
-          highlightBox.classList.remove('show');
+          highlightBox.classList.remove("show");
         }
         break;
       }
     }
   },
 
   Android: function Android(aDetails, aBrowser) {
     const ANDROID_VIEW_TEXT_CHANGED = 0x10;
     const ANDROID_VIEW_TEXT_SELECTION_CHANGED = 0x2000;
 
     for (let androidEvent of aDetails) {
-      androidEvent.type = 'Accessibility:Event';
+      androidEvent.type = "Accessibility:Event";
       if (androidEvent.bounds) {
         androidEvent.bounds = AccessFu.adjustContentBounds(
           androidEvent.bounds, aBrowser);
       }
 
       switch (androidEvent.eventType) {
         case ANDROID_VIEW_TEXT_CHANGED:
           androidEvent.brailleOutput = this.brailleState.adjustText(
@@ -609,140 +609,140 @@ var Output = {
           break;
       }
 
       Utils.win.WindowEventDispatcher.sendRequest(androidEvent);
     }
   },
 
   Braille: function Braille(aDetails) {
-    Logger.debug('Braille output: ' + aDetails.output);
+    Logger.debug("Braille output: " + aDetails.output);
   }
 };
 
 var Input = {
   editState: {},
 
   start: function start() {
     // XXX: This is too disruptive on desktop for now.
     // Might need to add special modifiers.
-    if (Utils.MozBuildApp != 'browser') {
-      Utils.win.document.addEventListener('keypress', this, true);
+    if (Utils.MozBuildApp != "browser") {
+      Utils.win.document.addEventListener("keypress", this, true);
     }
-    Utils.win.addEventListener('mozAccessFuGesture', this, true);
+    Utils.win.addEventListener("mozAccessFuGesture", this, true);
   },
 
   stop: function stop() {
-    if (Utils.MozBuildApp != 'browser') {
-      Utils.win.document.removeEventListener('keypress', this, true);
+    if (Utils.MozBuildApp != "browser") {
+      Utils.win.document.removeEventListener("keypress", this, true);
     }
-    Utils.win.removeEventListener('mozAccessFuGesture', this, true);
+    Utils.win.removeEventListener("mozAccessFuGesture", this, true);
   },
 
   handleEvent: function Input_handleEvent(aEvent) {
     try {
       switch (aEvent.type) {
-      case 'keypress':
+      case "keypress":
         this._handleKeypress(aEvent);
         break;
-      case 'mozAccessFuGesture':
+      case "mozAccessFuGesture":
         this._handleGesture(aEvent.detail);
         break;
       }
     } catch (x) {
       Logger.logException(x);
     }
   },
 
   _handleGesture: function _handleGesture(aGesture) {
     let gestureName = aGesture.type + aGesture.touches.length;
-    Logger.debug('Gesture', aGesture.type,
-                 '(fingers: ' + aGesture.touches.length + ')');
+    Logger.debug("Gesture", aGesture.type,
+                 "(fingers: " + aGesture.touches.length + ")");
 
     switch (gestureName) {
-      case 'dwell1':
-      case 'explore1':
-        this.moveToPoint('Simple', aGesture.touches[0].x,
+      case "dwell1":
+      case "explore1":
+        this.moveToPoint("Simple", aGesture.touches[0].x,
           aGesture.touches[0].y);
         break;
-      case 'doubletap1':
+      case "doubletap1":
         this.activateCurrent();
         break;
-      case 'doubletaphold1':
-        Utils.dispatchChromeEvent('accessibility-control', 'quicknav-menu');
+      case "doubletaphold1":
+        Utils.dispatchChromeEvent("accessibility-control", "quicknav-menu");
         break;
-      case 'swiperight1':
-        this.moveCursor('moveNext', 'Simple', 'gestures');
+      case "swiperight1":
+        this.moveCursor("moveNext", "Simple", "gestures");
         break;
-      case 'swipeleft1':
-        this.moveCursor('movePrevious', 'Simple', 'gesture');
+      case "swipeleft1":
+        this.moveCursor("movePrevious", "Simple", "gesture");
         break;
-      case 'swipeup1':
+      case "swipeup1":
         this.moveCursor(
-          'movePrevious', this.quickNavMode.current, 'gesture', true);
+          "movePrevious", this.quickNavMode.current, "gesture", true);
         break;
-      case 'swipedown1':
-        this.moveCursor('moveNext', this.quickNavMode.current, 'gesture', true);
+      case "swipedown1":
+        this.moveCursor("moveNext", this.quickNavMode.current, "gesture", true);
         break;
-      case 'exploreend1':
-      case 'dwellend1':
+      case "exploreend1":
+      case "dwellend1":
         this.activateCurrent(null, true);
         break;
-      case 'swiperight2':
+      case "swiperight2":
         if (aGesture.edge) {
-          Utils.dispatchChromeEvent('accessibility-control',
-            'edge-swipe-right');
+          Utils.dispatchChromeEvent("accessibility-control",
+            "edge-swipe-right");
           break;
         }
         this.sendScrollMessage(-1, true);
         break;
-      case 'swipedown2':
+      case "swipedown2":
         if (aGesture.edge) {
-          Utils.dispatchChromeEvent('accessibility-control', 'edge-swipe-down');
+          Utils.dispatchChromeEvent("accessibility-control", "edge-swipe-down");
           break;
         }
         this.sendScrollMessage(-1);
         break;
-      case 'swipeleft2':
+      case "swipeleft2":
         if (aGesture.edge) {
-          Utils.dispatchChromeEvent('accessibility-control', 'edge-swipe-left');
+          Utils.dispatchChromeEvent("accessibility-control", "edge-swipe-left");
           break;
         }
         this.sendScrollMessage(1, true);
         break;
-      case 'swipeup2':
+      case "swipeup2":
         if (aGesture.edge) {
-          Utils.dispatchChromeEvent('accessibility-control', 'edge-swipe-up');
+          Utils.dispatchChromeEvent("accessibility-control", "edge-swipe-up");
           break;
         }
         this.sendScrollMessage(1);
         break;
-      case 'explore2':
+      case "explore2":
         Utils.CurrentBrowser.contentWindow.scrollBy(
           -aGesture.deltaX, -aGesture.deltaY);
         break;
-      case 'swiperight3':
-        this.moveCursor('moveNext', this.quickNavMode.current, 'gesture');
+      case "swiperight3":
+        this.moveCursor("moveNext", this.quickNavMode.current, "gesture");
         break;
-      case 'swipeleft3':
-        this.moveCursor('movePrevious', this.quickNavMode.current, 'gesture');
+      case "swipeleft3":
+        this.moveCursor("movePrevious", this.quickNavMode.current, "gesture");
         break;
-      case 'swipedown3':
+      case "swipedown3":
         this.quickNavMode.next();
-        AccessFu.announce('quicknav_' + this.quickNavMode.current);
+        AccessFu.announce("quicknav_" + this.quickNavMode.current);
         break;
-      case 'swipeup3':
+      case "swipeup3":
         this.quickNavMode.previous();
-        AccessFu.announce('quicknav_' + this.quickNavMode.current);
+        AccessFu.announce("quicknav_" + this.quickNavMode.current);
         break;
-      case 'tripletap3':
-        Utils.dispatchChromeEvent('accessibility-control', 'toggle-shade');
+      case "tripletap3":
+        Utils.dispatchChromeEvent("accessibility-control", "toggle-shade");
         break;
-      case 'tap2':
-        Utils.dispatchChromeEvent('accessibility-control', 'toggle-pause');
+      case "tap2":
+        Utils.dispatchChromeEvent("accessibility-control", "toggle-pause");
         break;
     }
   },
 
   _handleKeypress: function _handleKeypress(aEvent) {
     let target = aEvent.target;
 
     // Ignore keys with modifiers so the content could take advantage of them.
@@ -757,60 +757,60 @@ var Input = {
         // If it was pressed with meta, pass the key on without the meta.
         if (this.editState.editing) {
           return;
         }
 
         let key = String.fromCharCode(aEvent.charCode);
         try {
           let [methodName, rule] = this.keyMap[key];
-          this.moveCursor(methodName, rule, 'keyboard');
+          this.moveCursor(methodName, rule, "keyboard");
         } catch (x) {
           return;
         }
         break;
       case aEvent.DOM_VK_RIGHT:
         if (this.editState.editing) {
           if (!this.editState.atEnd) {
             // Don't move forward if caret is not at end of entry.
             // XXX: Fix for rtl
             return;
           } else {
             target.blur();
           }
         }
         this.moveCursor(aEvent.shiftKey ?
-          'moveLast' : 'moveNext', 'Simple', 'keyboard');
+          "moveLast" : "moveNext", "Simple", "keyboard");
         break;
       case aEvent.DOM_VK_LEFT:
         if (this.editState.editing) {
           if (!this.editState.atStart) {
             // Don't move backward if caret is not at start of entry.
             // XXX: Fix for rtl
             return;
           } else {
             target.blur();
           }
         }
         this.moveCursor(aEvent.shiftKey ?
-          'moveFirst' : 'movePrevious', 'Simple', 'keyboard');
+          "moveFirst" : "movePrevious", "Simple", "keyboard");
         break;
       case aEvent.DOM_VK_UP:
         if (this.editState.multiline) {
           if (!this.editState.atStart) {
             // Don't blur content if caret is not at start of text area.
             return;
           } else {
             target.blur();
           }
         }
 
-        if (Utils.MozBuildApp == 'mobile/android') {
+        if (Utils.MozBuildApp == "mobile/android") {
           // Return focus to native Android browser chrome.
-          Utils.win.WindowEventDispatcher.dispatch('ToggleChrome:Focus');
+          Utils.win.WindowEventDispatcher.dispatch("ToggleChrome:Focus");
         }
         break;
       case aEvent.DOM_VK_RETURN:
         if (this.editState.editing) {
           return;
         }
         this.activateCurrent();
         break;
@@ -821,137 +821,137 @@ var Input = {
     aEvent.preventDefault();
     aEvent.stopPropagation();
   },
 
   moveToPoint: function moveToPoint(aRule, aX, aY) {
     // XXX: Bug 1013408 - There is no alignment between the chrome window's
     // viewport size and the content viewport size in Android. This makes
     // sending mouse events beyond its bounds impossible.
-    if (Utils.MozBuildApp === 'mobile/android') {
+    if (Utils.MozBuildApp === "mobile/android") {
       let mm = Utils.getMessageManager(Utils.CurrentBrowser);
-      mm.sendAsyncMessage('AccessFu:MoveToPoint',
-        {rule: aRule, x: aX, y: aY, origin: 'top'});
+      mm.sendAsyncMessage("AccessFu:MoveToPoint",
+        {rule: aRule, x: aX, y: aY, origin: "top"});
     } else {
       let win = Utils.win;
-      Utils.winUtils.sendMouseEvent('mousemove',
+      Utils.winUtils.sendMouseEvent("mousemove",
         aX - win.mozInnerScreenX, aY - win.mozInnerScreenY, 0, 0, 0);
     }
   },
 
   moveCursor: function moveCursor(aAction, aRule, aInputType, aAdjustRange) {
     let mm = Utils.getMessageManager(Utils.CurrentBrowser);
-    mm.sendAsyncMessage('AccessFu:MoveCursor',
+    mm.sendAsyncMessage("AccessFu:MoveCursor",
                         { action: aAction, rule: aRule,
-                          origin: 'top', inputType: aInputType,
+                          origin: "top", inputType: aInputType,
                           adjustRange: aAdjustRange });
   },
 
   androidScroll: function androidScroll(aDirection) {
     let mm = Utils.getMessageManager(Utils.CurrentBrowser);
-    mm.sendAsyncMessage('AccessFu:AndroidScroll',
-                        { direction: aDirection, origin: 'top' });
+    mm.sendAsyncMessage("AccessFu:AndroidScroll",
+                        { direction: aDirection, origin: "top" });
   },
 
   moveByGranularity: function moveByGranularity(aDetails) {
     const GRANULARITY_PARAGRAPH = 8;
     const GRANULARITY_LINE = 4;
 
     if (!this.editState.editing) {
       if (aDetails.granularity & (GRANULARITY_PARAGRAPH | GRANULARITY_LINE)) {
-        this.moveCursor('move' + aDetails.direction, 'Simple', 'gesture');
+        this.moveCursor("move" + aDetails.direction, "Simple", "gesture");
         return;
       }
     } else {
       aDetails.atStart = this.editState.atStart;
       aDetails.atEnd = this.editState.atEnd;
     }
 
     let mm = Utils.getMessageManager(Utils.CurrentBrowser);
-    let type = this.editState.editing ? 'AccessFu:MoveCaret' :
-                                        'AccessFu:MoveByGranularity';
+    let type = this.editState.editing ? "AccessFu:MoveCaret" :
+                                        "AccessFu:MoveByGranularity";
     mm.sendAsyncMessage(type, aDetails);
   },
 
   activateCurrent: function activateCurrent(aData, aActivateIfKey = false) {
     let mm = Utils.getMessageManager(Utils.CurrentBrowser);
-    let offset = aData && typeof aData.keyIndex === 'number' ?
+    let offset = aData && typeof aData.keyIndex === "number" ?
                  aData.keyIndex - Output.brailleState.startOffset : -1;
 
-    mm.sendAsyncMessage('AccessFu:Activate',
+    mm.sendAsyncMessage("AccessFu:Activate",
                         {offset: offset, activateIfKey: aActivateIfKey});
   },
 
   sendContextMenuMessage: function sendContextMenuMessage() {
     let mm = Utils.getMessageManager(Utils.CurrentBrowser);
-    mm.sendAsyncMessage('AccessFu:ContextMenu', {});
+    mm.sendAsyncMessage("AccessFu:ContextMenu", {});
   },
 
   setEditState: function setEditState(aEditState) {
-    Logger.debug(() => { return ['setEditState', JSON.stringify(aEditState)] });
+    Logger.debug(() => { return ["setEditState", JSON.stringify(aEditState)] });
     this.editState = aEditState;
   },
 
   // XXX: This is here for backwards compatability with screen reader simulator
   // it should be removed when the extension is updated on amo.
   scroll: function scroll(aPage, aHorizontal) {
     this.sendScrollMessage(aPage, aHorizontal);
   },
 
   sendScrollMessage: function sendScrollMessage(aPage, aHorizontal) {
     let mm = Utils.getMessageManager(Utils.CurrentBrowser);
-    mm.sendAsyncMessage('AccessFu:Scroll',
-      {page: aPage, horizontal: aHorizontal, origin: 'top'});
+    mm.sendAsyncMessage("AccessFu:Scroll",
+      {page: aPage, horizontal: aHorizontal, origin: "top"});
   },
 
   doScroll: function doScroll(aDetails) {
     let horizontal = aDetails.horizontal;
     let page = aDetails.page;
     let p = AccessFu.adjustContentBounds(
       aDetails.bounds, Utils.CurrentBrowser, true).center();
     Utils.winUtils.sendWheelEvent(p.x, p.y,
       horizontal ? page : 0, horizontal ? 0 : page, 0,
       Utils.win.WheelEvent.DOM_DELTA_PAGE, 0, 0, 0, 0);
   },
 
   get keyMap() {
     delete this.keyMap;
     this.keyMap = {
-      a: ['moveNext', 'Anchor'],
-      A: ['movePrevious', 'Anchor'],
-      b: ['moveNext', 'Button'],
-      B: ['movePrevious', 'Button'],
-      c: ['moveNext', 'Combobox'],
-      C: ['movePrevious', 'Combobox'],
-      d: ['moveNext', 'Landmark'],
-      D: ['movePrevious', 'Landmark'],
-      e: ['moveNext', 'Entry'],
-      E: ['movePrevious', 'Entry'],
-      f: ['moveNext', 'FormElement'],
-      F: ['movePrevious', 'FormElement'],
-      g: ['moveNext', 'Graphic'],
-      G: ['movePrevious', 'Graphic'],
-      h: ['moveNext', 'Heading'],
-      H: ['movePrevious', 'Heading'],
-      i: ['moveNext', 'ListItem'],
-      I: ['movePrevious', 'ListItem'],
-      k: ['moveNext', 'Link'],
-      K: ['movePrevious', 'Link'],
-      l: ['moveNext', 'List'],
-      L: ['movePrevious', 'List'],
-      p: ['moveNext', 'PageTab'],
-      P: ['movePrevious', 'PageTab'],
-      r: ['moveNext', 'RadioButton'],
-      R: ['movePrevious', 'RadioButton'],
-      s: ['moveNext', 'Separator'],
-      S: ['movePrevious', 'Separator'],
-      t: ['moveNext', 'Table'],
-      T: ['movePrevious', 'Table'],
-      x: ['moveNext', 'Checkbox'],
-      X: ['movePrevious', 'Checkbox']
+      a: ["moveNext", "Anchor"],
+      A: ["movePrevious", "Anchor"],
+      b: ["moveNext", "Button"],
+      B: ["movePrevious", "Button"],
+      c: ["moveNext", "Combobox"],
+      C: ["movePrevious", "Combobox"],
+      d: ["moveNext", "Landmark"],
+      D: ["movePrevious", "Landmark"],
+      e: ["moveNext", "Entry"],
+      E: ["movePrevious", "Entry"],
+      f: ["moveNext", "FormElement"],
+      F: ["movePrevious", "FormElement"],
+      g: ["moveNext", "Graphic"],
+      G: ["movePrevious", "Graphic"],
+      h: ["moveNext", "Heading"],
+      H: ["movePrevious", "Heading"],
+      i: ["moveNext", "ListItem"],
+      I: ["movePrevious", "ListItem"],
+      k: ["moveNext", "Link"],
+      K: ["movePrevious", "Link"],
+      l: ["moveNext", "List"],
+      L: ["movePrevious", "List"],
+      p: ["moveNext", "PageTab"],
+      P: ["movePrevious", "PageTab"],
+      r: ["moveNext", "RadioButton"],
+      R: ["movePrevious", "RadioButton"],
+      s: ["moveNext", "Separator"],
+      S: ["movePrevious", "Separator"],
+      t: ["moveNext", "Table"],
+      T: ["movePrevious", "Table"],
+      x: ["moveNext", "Checkbox"],
+      X: ["movePrevious", "Checkbox"]
     };
 
     return this.keyMap;
   },
 
   quickNavMode: {
     get current() {
       return this.modes[this._currentIndex];
@@ -966,21 +966,21 @@ var Input = {
     next: function quickNavMode_next() {
       Services.prefs.setIntPref(QUICKNAV_INDEX_PREF,
         this._currentIndex + 1 >= this.modes.length ?
           0 : this._currentIndex + 1);
     },
 
     updateModes: function updateModes(aModes) {
       if (aModes) {
-        this.modes = aModes.split(',');
+        this.modes = aModes.split(",");
       } else {
         this.modes = [];
       }
     },
 
     updateCurrentMode: function updateCurrentMode(aModeIndex) {
-      Logger.debug('Quicknav mode:', this.modes[aModeIndex]);
+      Logger.debug("Quicknav mode:", this.modes[aModeIndex]);
       this._currentIndex = aModeIndex;
     }
   }
 };
 AccessFu.Input = Input;
--- a/accessible/jsat/Constants.jsm
+++ b/accessible/jsat/Constants.jsm
@@ -1,59 +1,59 @@
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
-this.EXPORTED_SYMBOLS = ['Roles', 'Events', 'Relations',
-                         'Filters', 'States', 'Prefilters'];
+this.EXPORTED_SYMBOLS = ["Roles", "Events", "Relations",
+                         "Filters", "States", "Prefilters"];
 
 function ConstantsMap (aObject, aPrefix, aMap = {}, aModifier = null) {
   let offset = aPrefix.length;
   for (var name in aObject) {
     if (name.indexOf(aPrefix) === 0) {
       aMap[name.slice(offset)] = aModifier ?
         aModifier(aObject[name]) : aObject[name];
     }
   }
 
   return aMap;
 }
 
 XPCOMUtils.defineLazyGetter(
-  this, 'Roles',
+  this, "Roles",
   function() {
-    return ConstantsMap(Ci.nsIAccessibleRole, 'ROLE_');
+    return ConstantsMap(Ci.nsIAccessibleRole, "ROLE_");
   });
 
 XPCOMUtils.defineLazyGetter(
-  this, 'Events',
+  this, "Events",
   function() {
-    return ConstantsMap(Ci.nsIAccessibleEvent, 'EVENT_');
+    return ConstantsMap(Ci.nsIAccessibleEvent, "EVENT_");
   });
 
 XPCOMUtils.defineLazyGetter(
-  this, 'Relations',
+  this, "Relations",
   function() {
-    return ConstantsMap(Ci.nsIAccessibleRelation, 'RELATION_');
+    return ConstantsMap(Ci.nsIAccessibleRelation, "RELATION_");
   });
 
 XPCOMUtils.defineLazyGetter(
-  this, 'Prefilters',
+  this, "Prefilters",
   function() {
-    return ConstantsMap(Ci.nsIAccessibleTraversalRule, 'PREFILTER_');
+    return ConstantsMap(Ci.nsIAccessibleTraversalRule, "PREFILTER_");
   });
 
 XPCOMUtils.defineLazyGetter(
-  this, 'Filters',
+  this, "Filters",
   function() {
-    return ConstantsMap(Ci.nsIAccessibleTraversalRule, 'FILTER_');
+    return ConstantsMap(Ci.nsIAccessibleTraversalRule, "FILTER_");
   });
 
 XPCOMUtils.defineLazyGetter(
-  this, 'States',
+  this, "States",
   function() {
-    let statesMap = ConstantsMap(Ci.nsIAccessibleStates, 'STATE_', {},
+    let statesMap = ConstantsMap(Ci.nsIAccessibleStates, "STATE_", {},
                                  (val) => { return { base: val, extended: 0 }; });
-    ConstantsMap(Ci.nsIAccessibleStates, 'EXT_STATE_', statesMap,
+    ConstantsMap(Ci.nsIAccessibleStates, "EXT_STATE_", statesMap,
                  (val) => { return { base: 0, extended: val }; });
     return statesMap;
   });
--- a/accessible/jsat/ContentControl.jsm
+++ b/accessible/jsat/ContentControl.jsm
@@ -1,175 +1,175 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 var Ci = Components.interfaces;
 var Cu = Components.utils;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, 'Services',
-  'resource://gre/modules/Services.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Utils',
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Logger',
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Roles',
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'TraversalRules',
-  'resource://gre/modules/accessibility/Traversal.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'TraversalHelper',
-  'resource://gre/modules/accessibility/Traversal.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Presentation',
-  'resource://gre/modules/accessibility/Presentation.jsm');
+XPCOMUtils.defineLazyModuleGetter(this, "Services",
+  "resource://gre/modules/Services.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Utils",
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Logger",
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Roles",
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "TraversalRules",
+  "resource://gre/modules/accessibility/Traversal.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "TraversalHelper",
+  "resource://gre/modules/accessibility/Traversal.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Presentation",
+  "resource://gre/modules/accessibility/Presentation.jsm");
 
-this.EXPORTED_SYMBOLS = ['ContentControl'];
+this.EXPORTED_SYMBOLS = ["ContentControl"];
 
 const MOVEMENT_GRANULARITY_CHARACTER = 1;
 const MOVEMENT_GRANULARITY_WORD = 2;
 const MOVEMENT_GRANULARITY_PARAGRAPH = 8;
 
 this.ContentControl = function ContentControl(aContentScope) {
   this._contentScope = Cu.getWeakReference(aContentScope);
   this._childMessageSenders = new WeakMap();
 };
 
 this.ContentControl.prototype = {
-  messagesOfInterest: ['AccessFu:MoveCursor',
-                       'AccessFu:ClearCursor',
-                       'AccessFu:MoveToPoint',
-                       'AccessFu:AutoMove',
-                       'AccessFu:Activate',
-                       'AccessFu:MoveCaret',
-                       'AccessFu:MoveByGranularity',
-                       'AccessFu:AndroidScroll'],
+  messagesOfInterest: ["AccessFu:MoveCursor",
+                       "AccessFu:ClearCursor",
+                       "AccessFu:MoveToPoint",
+                       "AccessFu:AutoMove",
+                       "AccessFu:Activate",
+                       "AccessFu:MoveCaret",
+                       "AccessFu:MoveByGranularity",
+                       "AccessFu:AndroidScroll"],
 
   start: function cc_start() {
     let cs = this._contentScope.get();
     for (let message of this.messagesOfInterest) {
       cs.addMessageListener(message, this);
     }
-    cs.addEventListener('mousemove', this);
+    cs.addEventListener("mousemove", this);
   },
 
   stop: function cc_stop() {
     let cs = this._contentScope.get();
     for (let message of this.messagesOfInterest) {
       cs.removeMessageListener(message, this);
     }
-    cs.removeEventListener('mousemove', this);
+    cs.removeEventListener("mousemove", this);
   },
 
   get document() {
     return this._contentScope.get().content.document;
   },
 
   get window() {
     return this._contentScope.get().content;
   },
 
   get vc() {
     return Utils.getVirtualCursor(this.document);
   },
 
   receiveMessage: function cc_receiveMessage(aMessage) {
     Logger.debug(() => {
-      return ['ContentControl.receiveMessage',
+      return ["ContentControl.receiveMessage",
         aMessage.name,
         JSON.stringify(aMessage.json)];
     });
 
     // If we get an explicit message, we should immediately cancel any autoMove
     this.cancelAutoMove();
 
     try {
-      let func = this['handle' + aMessage.name.slice(9)]; // 'AccessFu:'.length
+      let func = this["handle" + aMessage.name.slice(9)]; // 'AccessFu:'.length
       if (func) {
         func.bind(this)(aMessage);
       } else {
-        Logger.warning('ContentControl: Unhandled message:', aMessage.name);
+        Logger.warning("ContentControl: Unhandled message:", aMessage.name);
       }
     } catch (x) {
       Logger.logException(
-        x, 'Error handling message: ' + JSON.stringify(aMessage.json));
+        x, "Error handling message: " + JSON.stringify(aMessage.json));
     }
   },
 
   handleAndroidScroll: function cc_handleAndroidScroll(aMessage) {
     let vc = this.vc;
     let position = vc.position;
 
-    if (aMessage.json.origin != 'child' && this.sendToChild(vc, aMessage)) {
+    if (aMessage.json.origin != "child" && this.sendToChild(vc, aMessage)) {
       // Forwarded succesfully to child cursor.
       return;
     }
 
     // Counter-intuitive, but scrolling backward (ie. up), actually should
     // increase range values.
-    if (this.adjustRange(position, aMessage.json.direction === 'backward')) {
+    if (this.adjustRange(position, aMessage.json.direction === "backward")) {
       return;
     }
 
-    this._contentScope.get().sendAsyncMessage('AccessFu:DoScroll',
+    this._contentScope.get().sendAsyncMessage("AccessFu:DoScroll",
       { bounds: Utils.getBounds(position, true),
-        page: aMessage.json.direction === 'forward' ? 1 : -1,
+        page: aMessage.json.direction === "forward" ? 1 : -1,
         horizontal: false });
   },
 
   handleMoveCursor: function cc_handleMoveCursor(aMessage) {
     let origin = aMessage.json.origin;
     let action = aMessage.json.action;
     let adjustRange = aMessage.json.adjustRange;
     let vc = this.vc;
 
-    if (origin != 'child' && this.sendToChild(vc, aMessage)) {
+    if (origin != "child" && this.sendToChild(vc, aMessage)) {
       // Forwarded succesfully to child cursor.
       return;
     }
 
-    if (adjustRange && this.adjustRange(vc.position, action === 'moveNext')) {
+    if (adjustRange && this.adjustRange(vc.position, action === "moveNext")) {
       return;
     }
 
     let moved = TraversalHelper.move(vc, action, aMessage.json.rule);
 
     if (moved) {
-      if (origin === 'child') {
+      if (origin === "child") {
         // We just stepped out of a child, clear child cursor.
         Utils.getMessageManager(aMessage.target).sendAsyncMessage(
-          'AccessFu:ClearCursor', {});
+          "AccessFu:ClearCursor", {});
       } else {
         // We potentially landed on a new child cursor. If so, we want to
         // either be on the first or last item in the child doc.
         let childAction = action;
-        if (action === 'moveNext') {
-          childAction = 'moveFirst';
-        } else if (action === 'movePrevious') {
-          childAction = 'moveLast';
+        if (action === "moveNext") {
+          childAction = "moveFirst";
+        } else if (action === "movePrevious") {
+          childAction = "moveLast";
         }
 
         // Attempt to forward move to a potential child cursor in our
         // new position.
         this.sendToChild(vc, aMessage, { action: childAction }, true);
       }
     } else if (!this._childMessageSenders.has(aMessage.target) &&
-               origin !== 'top') {
+               origin !== "top") {
       // We failed to move, and the message is not from a parent, so forward
       // to it.
       this.sendToParent(aMessage);
     } else {
-      this._contentScope.get().sendAsyncMessage('AccessFu:Present',
+      this._contentScope.get().sendAsyncMessage("AccessFu:Present",
         Presentation.noMove(action));
     }
   },
 
   handleEvent: function cc_handleEvent(aEvent) {
-    if (aEvent.type === 'mousemove') {
+    if (aEvent.type === "mousemove") {
       this.handleMoveToPoint(
-        { json: { x: aEvent.screenX, y: aEvent.screenY, rule: 'Simple' } });
+        { json: { x: aEvent.screenX, y: aEvent.screenY, rule: "Simple" } });
     }
     if (!Utils.getMessageManager(aEvent.target)) {
       aEvent.preventDefault();
     } else {
       aEvent.target.focus();
     }
   },
 
@@ -180,29 +180,29 @@ this.ContentControl.prototype = {
     let dpr = this.window.devicePixelRatio;
     this.vc.moveToPoint(rule, x * dpr, y * dpr, true);
   },
 
   handleClearCursor: function cc_handleClearCursor(aMessage) {
     let forwarded = this.sendToChild(this.vc, aMessage);
     this.vc.position = null;
     if (!forwarded) {
-      this._contentScope.get().sendAsyncMessage('AccessFu:CursorCleared');
+      this._contentScope.get().sendAsyncMessage("AccessFu:CursorCleared");
     }
     this.document.activeElement.blur();
   },
 
   handleAutoMove: function cc_handleAutoMove(aMessage) {
     this.autoMove(null, aMessage.json);
   },
 
   handleActivate: function cc_handleActivate(aMessage) {
     let activateAccessible = (aAccessible) => {
       Logger.debug(() => {
-        return ['activateAccessible', Logger.accessibleToString(aAccessible)];
+        return ["activateAccessible", Logger.accessibleToString(aAccessible)];
       });
       try {
         if (aMessage.json.activateIfKey &&
           !Utils.isActivatableOnFingerUp(aAccessible)) {
           // Only activate keys, don't do anything on other objects.
           return;
         }
       } catch (e) {
@@ -229,28 +229,28 @@ this.ContentControl.prototype = {
         let objX = {}, objY = {}, objW = {}, objH = {};
         aAccessible.getBounds(objX, objY, objW, objH);
 
         let x = Math.round((objX.value - docX.value) + objW.value / 2);
         let y = Math.round((objY.value - docY.value) + objH.value / 2);
 
         let node = aAccessible.DOMNode || aAccessible.parent.DOMNode;
 
-        for (let eventType of ['mousedown', 'mouseup']) {
-          let evt = this.document.createEvent('MouseEvents');
+        for (let eventType of ["mousedown", "mouseup"]) {
+          let evt = this.document.createEvent("MouseEvents");
           evt.initMouseEvent(eventType, true, true, this.window,
             x, y, 0, 0, 0, false, false, false, false, 0, null);
           node.dispatchEvent(evt);
         }
       }
 
       if (!Utils.isActivatableOnFingerUp(aAccessible)) {
         // Keys will typically have a sound of their own.
-        this._contentScope.get().sendAsyncMessage('AccessFu:Present',
-          Presentation.actionInvoked(aAccessible, 'click'));
+        this._contentScope.get().sendAsyncMessage("AccessFu:Present",
+          Presentation.actionInvoked(aAccessible, "click"));
       }
     };
 
     let focusedAcc = Utils.AccService.getAccessibleFor(
       this.document.activeElement);
     if (focusedAcc && this.vc.position === focusedAcc
         && focusedAcc.role === Roles.ENTRY) {
       let accText = focusedAcc.QueryInterface(Ci.nsIAccessibleText);
@@ -298,23 +298,23 @@ this.ContentControl.prototype = {
       return false;
     }
 
     let elem = acc.DOMNode;
     if (!elem) {
       return false;
     }
 
-    if (elem.tagName === 'INPUT' && elem.type === 'range') {
-      elem[aStepUp ? 'stepDown' : 'stepUp']();
-      let evt = this.document.createEvent('UIEvent');
-      evt.initEvent('change', true, true);
+    if (elem.tagName === "INPUT" && elem.type === "range") {
+      elem[aStepUp ? "stepDown" : "stepUp"]();
+      let evt = this.document.createEvent("UIEvent");
+      evt.initEvent("change", true, true);
       elem.dispatchEvent(evt);
     } else {
-      let evt = this.document.createEvent('KeyboardEvent');
+      let evt = this.document.createEvent("KeyboardEvent");
       let keycode = aStepUp ? evt.DOM_VK_DOWN : evt.DOM_VK_UP;
       evt.initKeyEvent(
         "keypress", false, true, null, false, false, false, false, keycode, 0);
       elem.dispatchEvent(evt);
     }
 
     return true;
   },
@@ -330,84 +330,84 @@ this.ContentControl.prototype = {
         break;
       case MOVEMENT_GRANULARITY_WORD:
         granularity = Ci.nsIAccessiblePivot.WORD_BOUNDARY;
         break;
       default:
         return;
     }
 
-    if (direction === 'Previous') {
+    if (direction === "Previous") {
       this.vc.movePreviousByText(granularity);
-    } else if (direction === 'Next') {
+    } else if (direction === "Next") {
       this.vc.moveNextByText(granularity);
     }
   },
 
   presentCaretChange: function cc_presentCaretChange(
     aText, aOldOffset, aNewOffset) {
     if (aOldOffset !== aNewOffset) {
       let msg = Presentation.textSelectionChanged(aText, aNewOffset, aNewOffset,
         aOldOffset, aOldOffset, true);
-      this._contentScope.get().sendAsyncMessage('AccessFu:Present', msg);
+      this._contentScope.get().sendAsyncMessage("AccessFu:Present", msg);
     }
   },
 
   handleMoveCaret: function cc_handleMoveCaret(aMessage) {
     let direction = aMessage.json.direction;
     let granularity = aMessage.json.granularity;
     let accessible = this.vc.position;
     let accText = accessible.QueryInterface(Ci.nsIAccessibleText);
     let oldOffset = accText.caretOffset;
     let text = accText.getText(0, accText.characterCount);
 
     let start = {}, end = {};
-    if (direction === 'Previous' && !aMessage.json.atStart) {
+    if (direction === "Previous" && !aMessage.json.atStart) {
       switch (granularity) {
         case MOVEMENT_GRANULARITY_CHARACTER:
           accText.caretOffset--;
           break;
         case MOVEMENT_GRANULARITY_WORD:
           accText.getTextBeforeOffset(accText.caretOffset,
             Ci.nsIAccessibleText.BOUNDARY_WORD_START, start, end);
           accText.caretOffset = end.value === accText.caretOffset ?
             start.value : end.value;
           break;
         case MOVEMENT_GRANULARITY_PARAGRAPH:
-          let startOfParagraph = text.lastIndexOf('\n', accText.caretOffset - 1);
+          let startOfParagraph = text.lastIndexOf("\n", accText.caretOffset - 1);
           accText.caretOffset = startOfParagraph !== -1 ? startOfParagraph : 0;
           break;
       }
-    } else if (direction === 'Next' && !aMessage.json.atEnd) {
+    } else if (direction === "Next" && !aMessage.json.atEnd) {
       switch (granularity) {
         case MOVEMENT_GRANULARITY_CHARACTER:
           accText.caretOffset++;
           break;
         case MOVEMENT_GRANULARITY_WORD:
           accText.getTextAtOffset(accText.caretOffset,
                                   Ci.nsIAccessibleText.BOUNDARY_WORD_END, start, end);
           accText.caretOffset = end.value;
           break;
         case MOVEMENT_GRANULARITY_PARAGRAPH:
-          accText.caretOffset = text.indexOf('\n', accText.caretOffset + 1);
+          accText.caretOffset = text.indexOf("\n", accText.caretOffset + 1);
           break;
       }
     }
 
     this.presentCaretChange(text, oldOffset, accText.caretOffset);
   },
 
   getChildCursor: function cc_getChildCursor(aAccessible) {
     let acc = aAccessible || this.vc.position;
     if (Utils.isAliveAndVisible(acc) && acc.role === Roles.INTERNAL_FRAME) {
       let domNode = acc.DOMNode;
       let mm = this._childMessageSenders.get(domNode, null);
       if (!mm) {
         mm = Utils.getMessageManager(domNode);
-        mm.addWeakMessageListener('AccessFu:MoveCursor', this);
+        mm.addWeakMessageListener("AccessFu:MoveCursor", this);
         this._childMessageSenders.set(domNode, mm);
       }
 
       return mm;
     }
 
     return null;
   },
@@ -421,29 +421,29 @@ this.ContentControl.prototype = {
     }
 
     if (aFocus) {
       position.takeFocus();
     }
 
     // XXX: This is a silly way to make a deep copy
     let newJSON = JSON.parse(JSON.stringify(aMessage.json));
-    newJSON.origin = 'parent';
+    newJSON.origin = "parent";
     for (let attr in aReplacer) {
       newJSON[attr] = aReplacer[attr];
     }
 
     mm.sendAsyncMessage(aMessage.name, newJSON);
     return true;
   },
 
   sendToParent: function cc_sendToParent(aMessage) {
     // XXX: This is a silly way to make a deep copy
     let newJSON = JSON.parse(JSON.stringify(aMessage.json));
-    newJSON.origin = 'child';
+    newJSON.origin = "child";
     aMessage.target.sendAsyncMessage(aMessage.name, newJSON);
   },
 
   /**
    * Move cursor and/or present its location.
    * aOptions could have any of these fields:
    * - delay: in ms, before actual move is performed. Another autoMove call
    *    would cancel it. Useful if we want to wait for a possible trailing
@@ -460,17 +460,17 @@ this.ContentControl.prototype = {
     let moveFunc = () => {
       let vc = this.vc;
       let acc = aAnchor;
       let rule = aOptions.onScreenOnly ?
         TraversalRules.SimpleOnScreen : TraversalRules.Simple;
       let forcePresentFunc = () => {
         if (aOptions.forcePresent) {
           this._contentScope.get().sendAsyncMessage(
-            'AccessFu:Present', Presentation.pivotChanged(
+            "AccessFu:Present", Presentation.pivotChanged(
               vc.position, null, Ci.nsIAccessiblePivot.REASON_NONE,
               vc.startOffset, vc.endOffset, false));
         }
       };
 
       if (aOptions.noOpIfOnScreen &&
         Utils.isAliveAndVisible(vc.position, true)) {
         forcePresentFunc();
@@ -478,30 +478,30 @@ this.ContentControl.prototype = {
       }
 
       if (aOptions.moveToFocused) {
         acc = Utils.AccService.getAccessibleFor(
           this.document.activeElement) || acc;
       }
 
       let moved = false;
-      let moveMethod = aOptions.moveMethod || 'moveNext'; // default is moveNext
-      let moveFirstOrLast = moveMethod in ['moveFirst', 'moveLast'];
+      let moveMethod = aOptions.moveMethod || "moveNext"; // default is moveNext
+      let moveFirstOrLast = moveMethod in ["moveFirst", "moveLast"];
       if (!moveFirstOrLast || acc) {
         // We either need next/previous or there is an anchor we need to use.
-        moved = vc[moveFirstOrLast ? 'moveNext' : moveMethod](rule, acc, true,
+        moved = vc[moveFirstOrLast ? "moveNext" : moveMethod](rule, acc, true,
                                                               false);
       }
       if (moveFirstOrLast && !moved) {
         // We move to first/last after no anchor move happened or succeeded.
         moved = vc[moveMethod](rule, false);
       }
 
       let sentToChild = this.sendToChild(vc, {
-        name: 'AccessFu:AutoMove',
+        name: "AccessFu:AutoMove",
         json: {
           moveMethod: aOptions.moveMethod,
           moveToFocused: aOptions.moveToFocused,
           noOpIfOnScreen: true,
           forcePresent: true
         }
       }, null, true);
 
--- a/accessible/jsat/EventManager.jsm
+++ b/accessible/jsat/EventManager.jsm
@@ -1,36 +1,36 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
 const TEXT_NODE = 3;
 
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Services',
-  'resource://gre/modules/Services.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Utils',
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Logger',
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Presentation',
-  'resource://gre/modules/accessibility/Presentation.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Roles',
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Events',
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'States',
-  'resource://gre/modules/accessibility/Constants.jsm');
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Services",
+  "resource://gre/modules/Services.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Utils",
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Logger",
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Presentation",
+  "resource://gre/modules/accessibility/Presentation.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Roles",
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Events",
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "States",
+  "resource://gre/modules/accessibility/Constants.jsm");
 
-this.EXPORTED_SYMBOLS = ['EventManager'];
+this.EXPORTED_SYMBOLS = ["EventManager"];
 
 this.EventManager = function EventManager(aContentScope, aContentControl) {
   this.contentScope = aContentScope;
   this.contentControl = aContentControl;
   this.addEventListener = this.contentScope.addEventListener.bind(
     this.contentScope);
   this.removeEventListener = this.contentScope.removeEventListener.bind(
     this.contentScope);
@@ -42,108 +42,108 @@ this.EventManager = function EventManage
 };
 
 this.EventManager.prototype = {
   editState: { editing: false },
 
   start: function start() {
     try {
       if (!this._started) {
-        Logger.debug('EventManager.start');
+        Logger.debug("EventManager.start");
 
         this._started = true;
 
         AccessibilityEventObserver.addListener(this);
 
         this.webProgress.addProgressListener(this,
           (Ci.nsIWebProgress.NOTIFY_STATE_ALL |
            Ci.nsIWebProgress.NOTIFY_LOCATION));
-        this.addEventListener('wheel', this, true);
-        this.addEventListener('scroll', this, true);
-        this.addEventListener('resize', this, true);
+        this.addEventListener("wheel", this, true);
+        this.addEventListener("scroll", this, true);
+        this.addEventListener("resize", this, true);
         this._preDialogPosition = new WeakMap();
       }
-      this.present(Presentation.tabStateChanged(null, 'newtab'));
+      this.present(Presentation.tabStateChanged(null, "newtab"));
 
     } catch (x) {
-      Logger.logException(x, 'Failed to start EventManager');
+      Logger.logException(x, "Failed to start EventManager");
     }
   },
 
   // XXX: Stop is not called when the tab is closed (|TabClose| event is too
   // late). It is only called when the AccessFu is disabled explicitly.
   stop: function stop() {
     if (!this._started) {
       return;
     }
-    Logger.debug('EventManager.stop');
+    Logger.debug("EventManager.stop");
     AccessibilityEventObserver.removeListener(this);
     try {
       this._preDialogPosition = new WeakMap();
       this.webProgress.removeProgressListener(this);
-      this.removeEventListener('wheel', this, true);
-      this.removeEventListener('scroll', this, true);
-      this.removeEventListener('resize', this, true);
+      this.removeEventListener("wheel", this, true);
+      this.removeEventListener("scroll", this, true);
+      this.removeEventListener("resize", this, true);
     } catch (x) {
       // contentScope is dead.
     } finally {
       this._started = false;
     }
   },
 
   handleEvent: function handleEvent(aEvent) {
     Logger.debug(() => {
-      return ['DOMEvent', aEvent.type];
+      return ["DOMEvent", aEvent.type];
     });
 
     try {
       switch (aEvent.type) {
-      case 'wheel':
+      case "wheel":
       {
         let delta = aEvent.deltaX || aEvent.deltaY;
         this.contentControl.autoMove(
          null,
-         { moveMethod: delta > 0 ? 'moveNext' : 'movePrevious',
+         { moveMethod: delta > 0 ? "moveNext" : "movePrevious",
            onScreenOnly: true, noOpIfOnScreen: true, delay: 500 });
         break;
       }
-      case 'scroll':
-      case 'resize':
+      case "scroll":
+      case "resize":
       {
         // the target could be an element, document or window
         let window = null;
         if (aEvent.target instanceof Ci.nsIDOMWindow)
           window = aEvent.target;
         else if (aEvent.target instanceof Ci.nsIDOMDocument)
           window = aEvent.target.defaultView;
         else if (aEvent.target instanceof Ci.nsIDOMElement)
           window = aEvent.target.ownerGlobal;
         this.present(Presentation.viewportChanged(window));
         break;
       }
       }
     } catch (x) {
-      Logger.logException(x, 'Error handling DOM event');
+      Logger.logException(x, "Error handling DOM event");
     }
   },
 
   handleAccEvent: function handleAccEvent(aEvent) {
     Logger.debug(() => {
-      return ['A11yEvent', Logger.eventToString(aEvent),
+      return ["A11yEvent", Logger.eventToString(aEvent),
               Logger.accessibleToString(aEvent.accessible)];
     });
 
     // Don't bother with non-content events in firefox.
-    if (Utils.MozBuildApp == 'browser' &&
+    if (Utils.MozBuildApp == "browser" &&
         aEvent.eventType != Events.VIRTUALCURSOR_CHANGED &&
         // XXX Bug 442005 results in DocAccessible::getDocType returning
         // NS_ERROR_FAILURE. Checking for aEvent.accessibleDocument.docType ==
         // 'window' does not currently work.
         (aEvent.accessibleDocument.DOMDocument.doctype &&
-         aEvent.accessibleDocument.DOMDocument.doctype.name === 'window')) {
+         aEvent.accessibleDocument.DOMDocument.doctype.name === "window")) {
       return;
     }
 
     switch (aEvent.eventType) {
       case Events.VIRTUALCURSOR_CHANGED:
       {
         let pivot = aEvent.accessible.
           QueryInterface(Ci.nsIAccessibleDocument).virtualCursor;
@@ -170,39 +170,39 @@ this.EventManager.prototype = {
       {
         let event = aEvent.QueryInterface(Ci.nsIAccessibleStateChangeEvent);
         let state = Utils.getState(event);
         if (state.contains(States.CHECKED)) {
           if (aEvent.accessible.role === Roles.SWITCH) {
             this.present(
               Presentation.
                 actionInvoked(aEvent.accessible,
-                              event.isEnabled ? 'on' : 'off'));
+                              event.isEnabled ? "on" : "off"));
           } else {
             this.present(
               Presentation.
                 actionInvoked(aEvent.accessible,
-                              event.isEnabled ? 'check' : 'uncheck'));
+                              event.isEnabled ? "check" : "uncheck"));
           }
         } else if (state.contains(States.SELECTED)) {
           this.present(
             Presentation.
               actionInvoked(aEvent.accessible,
-                            event.isEnabled ? 'select' : 'unselect'));
+                            event.isEnabled ? "select" : "unselect"));
         }
         break;
       }
       case Events.NAME_CHANGE:
       {
         let acc = aEvent.accessible;
         if (acc === this.contentControl.vc.position) {
           this.present(Presentation.nameChanged(acc));
         } else {
           let {liveRegion, isPolite} = this._handleLiveRegion(aEvent,
-            ['text', 'all']);
+            ["text", "all"]);
           if (liveRegion) {
             this.present(Presentation.nameChanged(acc, isPolite));
           }
         }
         break;
       }
       case Events.SCROLLING_START:
       {
@@ -227,22 +227,22 @@ this.EventManager.prototype = {
           }
         }
         break;
       }
       case Events.OBJECT_ATTRIBUTE_CHANGED:
       {
         let evt = aEvent.QueryInterface(
           Ci.nsIAccessibleObjectAttributeChangedEvent);
-        if (evt.changedAttribute.toString() !== 'aria-hidden') {
+        if (evt.changedAttribute.toString() !== "aria-hidden") {
           // Only handle aria-hidden attribute change.
           break;
         }
         let hidden = Utils.isHidden(aEvent.accessible);
-        this[hidden ? '_handleHide' : '_handleShow'](evt);
+        this[hidden ? "_handleHide" : "_handleShow"](evt);
         if (this.inTest) {
           this.sendMsgFunc("AccessFu:AriaHidden", { hidden: hidden });
         }
         break;
       }
       case Events.SHOW:
       {
         this._handleShow(aEvent);
@@ -253,17 +253,17 @@ this.EventManager.prototype = {
         let evt = aEvent.QueryInterface(Ci.nsIAccessibleHideEvent);
         this._handleHide(evt);
         break;
       }
       case Events.TEXT_INSERTED:
       case Events.TEXT_REMOVED:
       {
         let {liveRegion, isPolite} = this._handleLiveRegion(aEvent,
-          ['text', 'all']);
+          ["text", "all"]);
         if (aEvent.isFromUserInput || liveRegion) {
           // Handle all text mutations coming from the user or if they happen
           // on a live region.
           this._handleText(aEvent, liveRegion, isPolite);
         }
         break;
       }
       case Events.FOCUS:
@@ -304,17 +304,17 @@ this.EventManager.prototype = {
       {
         let position = this.contentControl.vc.position;
         let target = aEvent.accessible;
         if (position === target ||
             Utils.getEmbeddedControl(position) === target) {
           this.present(Presentation.valueChanged(target));
         } else {
           let {liveRegion, isPolite} = this._handleLiveRegion(aEvent,
-            ['text', 'all']);
+            ["text", "all"]);
           if (liveRegion) {
             this.present(Presentation.valueChanged(target, isPolite));
           }
         }
       }
     }
   },
 
@@ -363,32 +363,32 @@ this.EventManager.prototype = {
       this.sendMsgFunc("AccessFu:Input", editState);
     }
 
     this.editState = editState;
   },
 
   _handleShow: function _handleShow(aEvent) {
     let {liveRegion, isPolite} = this._handleLiveRegion(aEvent,
-      ['additions', 'all']);
+      ["additions", "all"]);
     // Only handle show if it is a relevant live region.
     if (!liveRegion) {
       return;
     }
     // Show for text is handled by the EVENT_TEXT_INSERTED handler.
     if (aEvent.accessible.role === Roles.TEXT_LEAF) {
       return;
     }
     this._dequeueLiveEvent(Events.HIDE, liveRegion);
     this.present(Presentation.liveRegion(liveRegion, isPolite, false));
   },
 
   _handleHide: function _handleHide(aEvent) {
     let {liveRegion, isPolite} = this._handleLiveRegion(
-      aEvent, ['removals', 'all']);
+      aEvent, ["removals", "all"]);
     let acc = aEvent.accessible;
     if (liveRegion) {
       // Hide for text is handled by the EVENT_TEXT_REMOVED handler.
       if (acc.role === Roles.TEXT_LEAF) {
         return;
       }
       this._queueLiveEvent(Events.HIDE, liveRegion, isPolite);
     } else {
@@ -412,30 +412,30 @@ this.EventManager.prototype = {
     }
   },
 
   _handleText: function _handleText(aEvent, aLiveRegion, aIsPolite) {
     let event = aEvent.QueryInterface(Ci.nsIAccessibleTextChangeEvent);
     let isInserted = event.isInserted;
     let txtIface = aEvent.accessible.QueryInterface(Ci.nsIAccessibleText);
 
-    let text = '';
+    let text = "";
     try {
       text = txtIface.getText(0, Ci.nsIAccessibleText.TEXT_OFFSET_END_OF_TEXT);
     } catch (x) {
       // XXX we might have gotten an exception with of a
       // zero-length text. If we did, ignore it (bug #749810).
       if (txtIface.characterCount) {
         throw x;
       }
     }
     // If there are embedded objects in the text, ignore them.
     // Assuming changes to the descendants would already be handled by the
     // show/hide event.
-    let modifiedText = event.modifiedText.replace(/\uFFFC/g, '');
+    let modifiedText = event.modifiedText.replace(/\uFFFC/g, "");
     if (modifiedText != event.modifiedText && !modifiedText.trim()) {
       return;
     }
 
     if (aLiveRegion) {
       if (aEvent.eventType === Events.TEXT_REMOVED) {
         this._queueLiveEvent(Events.TEXT_REMOVED, aLiveRegion, aIsPolite,
           modifiedText);
@@ -451,23 +451,23 @@ this.EventManager.prototype = {
   },
 
   _handleLiveRegion: function _handleLiveRegion(aEvent, aRelevant) {
     if (aEvent.isFromUserInput) {
       return {};
     }
     let parseLiveAttrs = function parseLiveAttrs(aAccessible) {
       let attrs = Utils.getAttributes(aAccessible);
-      if (attrs['container-live']) {
+      if (attrs["container-live"]) {
         return {
-          live: attrs['container-live'],
-          relevant: attrs['container-relevant'] || 'additions text',
-          busy: attrs['container-busy'],
-          atomic: attrs['container-atomic'],
-          memberOf: attrs['member-of']
+          live: attrs["container-live"],
+          relevant: attrs["container-relevant"] || "additions text",
+          busy: attrs["container-busy"],
+          atomic: attrs["container-atomic"],
+          memberOf: attrs["member-of"]
         };
       }
       return null;
     };
     // XXX live attributes are not set for hidden accessibles yet. Need to
     // climb up the tree to check for them.
     let getLiveAttributes = function getLiveAttributes(aEvent) {
       let liveAttrs = parseLiveAttrs(aEvent.accessible);
@@ -481,30 +481,30 @@ this.EventManager.prototype = {
           return liveAttrs;
         }
         parent = parent.parent
       }
       return {};
     };
     let {live, relevant, /* busy, atomic, memberOf */ } = getLiveAttributes(aEvent);
     // If container-live is not present or is set to |off| ignore the event.
-    if (!live || live === 'off') {
+    if (!live || live === "off") {
       return {};
     }
     // XXX: support busy and atomic.
 
     // Determine if the type of the mutation is relevant. Default is additions
     // and text.
     let isRelevant = Utils.matchAttributeValue(relevant, aRelevant);
     if (!isRelevant) {
       return {};
     }
     return {
       liveRegion: aEvent.accessible,
-      isPolite: live === 'polite'
+      isPolite: live === "polite"
     };
   },
 
   _dequeueLiveEvent: function _dequeueLiveEvent(aEventType, aLiveRegion) {
     let domNode = aLiveRegion.DOMNode;
     if (this._liveEventQueue && this._liveEventQueue.has(domNode)) {
       let queue = this._liveEventQueue.get(domNode);
       let nextEvent = queue[0];
@@ -537,39 +537,39 @@ this.EventManager.prototype = {
     }
   },
 
   present: function present(aPresentationData) {
     this.sendMsgFunc("AccessFu:Present", aPresentationData);
   },
 
   onStateChange: function onStateChange(aWebProgress, aRequest, aStateFlags, aStatus) {
-    let tabstate = '';
+    let tabstate = "";
 
     let loadingState = Ci.nsIWebProgressListener.STATE_TRANSFERRING |
       Ci.nsIWebProgressListener.STATE_IS_DOCUMENT;
     let loadedState = Ci.nsIWebProgressListener.STATE_STOP |
       Ci.nsIWebProgressListener.STATE_IS_NETWORK;
 
     if ((aStateFlags & loadingState) == loadingState) {
-      tabstate = 'loading';
+      tabstate = "loading";
     } else if ((aStateFlags & loadedState) == loadedState &&
                !aWebProgress.isLoadingDocument) {
-      tabstate = 'loaded';
+      tabstate = "loaded";
     }
 
     if (tabstate) {
       let docAcc = Utils.AccService.getAccessibleFor(aWebProgress.DOMWindow.document);
       this.present(Presentation.tabStateChanged(docAcc, tabstate));
     }
   },
 
   onLocationChange: function onLocationChange(aWebProgress, aRequest, aLocation, aFlags) {
     let docAcc = Utils.AccService.getAccessibleFor(aWebProgress.DOMWindow.document);
-    this.present(Presentation.tabStateChanged(docAcc, 'newdoc'));
+    this.present(Presentation.tabStateChanged(docAcc, "newdoc"));
   },
 
   QueryInterface: XPCOMUtils.generateQI([Ci.nsIWebProgressListener,
                                          Ci.nsISupportsWeakReference,
                                          Ci.nsISupports,
                                          Ci.nsIObserver])
 };
 
@@ -592,28 +592,28 @@ const AccessibilityEventObserver = {
 
   /**
    * Start an AccessibilityEventObserver.
    */
   start: function start() {
     if (this.started || this.listenerCount === 0) {
       return;
     }
-    Services.obs.addObserver(this, 'accessible-event');
+    Services.obs.addObserver(this, "accessible-event");
     this.started = true;
   },
 
   /**
    * Stop an AccessibilityEventObserver.
    */
   stop: function stop() {
     if (!this.started) {
       return;
     }
-    Services.obs.removeObserver(this, 'accessible-event');
+    Services.obs.removeObserver(this, "accessible-event");
     // Clean up all registered event managers.
     this.eventManagers = new WeakMap();
     this.listenerCount = 0;
     this.started = false;
   },
 
   /**
    * Register an EventManager and start listening to the
@@ -624,17 +624,17 @@ const AccessibilityEventObserver = {
    */
   addListener: function addListener(aEventManager) {
     let content = aEventManager.contentScope.content;
     if (!this.eventManagers.has(content)) {
       this.listenerCount++;
     }
     this.eventManagers.set(content, aEventManager);
     // Since at least one EventManager was registered, start listening.
-    Logger.debug('AccessibilityEventObserver.addListener. Total:',
+    Logger.debug("AccessibilityEventObserver.addListener. Total:",
       this.listenerCount);
     this.start();
   },
 
   /**
    * Unregister an EventManager and, optionally, stop listening to the
    * 'accessible-event' messages.
    *
@@ -642,17 +642,17 @@ const AccessibilityEventObserver = {
    *        An EventManager object that was stopped in the specific content.
    */
   removeListener: function removeListener(aEventManager) {
     let content = aEventManager.contentScope.content;
     if (!this.eventManagers.delete(content)) {
       return;
     }
     this.listenerCount--;
-    Logger.debug('AccessibilityEventObserver.removeListener. Total:',
+    Logger.debug("AccessibilityEventObserver.removeListener. Total:",
       this.listenerCount);
     if (this.listenerCount === 0) {
       // If there are no EventManagers registered at the moment, stop listening
       // to the 'accessible-event' messages.
       this.stop();
     }
   },
 
@@ -674,42 +674,42 @@ const AccessibilityEventObserver = {
     }
     return this.getListener(parent);
   },
 
   /**
    * Handle the 'accessible-event' message.
    */
   observe: function observe(aSubject, aTopic, aData) {
-    if (aTopic !== 'accessible-event') {
+    if (aTopic !== "accessible-event") {
       return;
     }
     let event = aSubject.QueryInterface(Ci.nsIAccessibleEvent);
     if (!event.accessibleDocument) {
       Logger.warning(
-        'AccessibilityEventObserver.observe: no accessible document:',
+        "AccessibilityEventObserver.observe: no accessible document:",
         Logger.eventToString(event), "accessible:",
         Logger.accessibleToString(event.accessible));
       return;
     }
     let content = event.accessibleDocument.window;
     // Match the content window to its EventManager.
     let eventManager = this.getListener(content);
     if (!eventManager || !eventManager._started) {
-      if (Utils.MozBuildApp === 'browser' &&
+      if (Utils.MozBuildApp === "browser" &&
           !(content instanceof Ci.nsIDOMChromeWindow)) {
         Logger.warning(
-          'AccessibilityEventObserver.observe: ignored event:',
+          "AccessibilityEventObserver.observe: ignored event:",
           Logger.eventToString(event), "accessible:",
           Logger.accessibleToString(event.accessible), "document:",
           Logger.accessibleToString(event.accessibleDocument));
       }
       return;
     }
     try {
       eventManager.handleAccEvent(event);
     } catch (x) {
-      Logger.logException(x, 'Error handing accessible event');
+      Logger.logException(x, "Error handing accessible event");
     } finally {
       return;
     }
   }
 };
--- a/accessible/jsat/Gestures.jsm
+++ b/accessible/jsat/Gestures.jsm
@@ -29,34 +29,34 @@
 
   DoubleTapHoldEnd -> Explore          (x)
 
         ExploreEnd -> Explore          (x)
 
            Explore -> ExploreEnd       (v)
 ******************************************************************************/
 
-'use strict';
+"use strict";
 
 const Cu = Components.utils;
 
-this.EXPORTED_SYMBOLS = ['GestureSettings', 'GestureTracker']; // jshint ignore:line
+this.EXPORTED_SYMBOLS = ["GestureSettings", "GestureTracker"]; // jshint ignore:line
 
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
-XPCOMUtils.defineLazyModuleGetter(this, 'Utils', // jshint ignore:line
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Logger', // jshint ignore:line
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'setTimeout', // jshint ignore:line
-  'resource://gre/modules/Timer.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'clearTimeout', // jshint ignore:line
-  'resource://gre/modules/Timer.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'PromiseUtils', // jshint ignore:line
-  'resource://gre/modules/PromiseUtils.jsm');
+XPCOMUtils.defineLazyModuleGetter(this, "Utils", // jshint ignore:line
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Logger", // jshint ignore:line
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "setTimeout", // jshint ignore:line
+  "resource://gre/modules/Timer.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "clearTimeout", // jshint ignore:line
+  "resource://gre/modules/Timer.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "PromiseUtils", // jshint ignore:line
+  "resource://gre/modules/PromiseUtils.jsm");
 
 // Default maximum duration of swipe
 const SWIPE_MAX_DURATION = 200;
 // Default maximum amount of time allowed for a gesture to be considered a
 // multitouch
 const MAX_MULTITOUCH = 125;
 // Default maximum consecutive pointer event timeout
 const MAX_CONSECUTIVE_GESTURE_DELAY = 200;
@@ -70,17 +70,17 @@ const TAP_MAX_RADIUS = 0.2;
 // consequent pointer move lines.
 const DIRECTNESS_COEFF = 1.44;
 // Amount in inches from the edges of the screen for it to be an edge swipe
 const EDGE = 0.1;
 // Multiply timeouts by this constant, x2 works great too for slower users.
 const TIMEOUT_MULTIPLIER = 1;
 // A single pointer down/up sequence periodically precedes the tripple swipe
 // gesture on Android. This delay acounts for that.
-const IS_ANDROID = Utils.MozBuildApp === 'mobile/android' &&
+const IS_ANDROID = Utils.MozBuildApp === "mobile/android" &&
   Utils.AndroidSdkVersion >= 14;
 
 /**
  * A point object containing distance travelled data.
  * @param {Object} aPoint A point object that looks like: {
  *   x: x coordinate in pixels,
  *   y: y coordinate in pixels
  * }
@@ -197,35 +197,35 @@ this.GestureTracker = { // jshint ignore
    * Create a new gesture object and attach resolution handler to it as well as
    * handle the incoming pointer event.
    * @param  {Object} aDetail A new pointer event detail.
    * @param  {Number} aTimeStamp A new pointer event timeStamp.
    * @param  {Function} aGesture A gesture constructor (default: Tap).
    */
   _init: function GestureTracker__init(aDetail, aTimeStamp, aGesture) {
     // Only create a new gesture on |pointerdown| event.
-    if (aDetail.type !== 'pointerdown') {
+    if (aDetail.type !== "pointerdown") {
       return;
     }
     let GestureConstructor = aGesture || (IS_ANDROID ? DoubleTap : Tap);
     this._create(GestureConstructor);
     this._update(aDetail, aTimeStamp);
   },
 
   /**
    * Handle the incoming pointer event with the existing gesture object(if
    * present) or with the newly created one.
    * @param  {Object} aDetail A new pointer event detail.
    * @param  {Number} aTimeStamp A new pointer event timeStamp.
    */
   handle: function GestureTracker_handle(aDetail, aTimeStamp) {
     Logger.gesture(() => {
-      return ['Pointer event', Utils.dpi, 'at:', aTimeStamp, JSON.stringify(aDetail)];
+      return ["Pointer event", Utils.dpi, "at:", aTimeStamp, JSON.stringify(aDetail)];
     });
-    this[this.current ? '_update' : '_init'](aDetail, aTimeStamp);
+    this[this.current ? "_update" : "_init"](aDetail, aTimeStamp);
   },
 
   /**
    * Create a new gesture object and attach resolution handler to it.
    * @param  {Function} aGesture A gesture constructor.
    * @param  {Number} aTimeStamp An original pointer event timeStamp.
    * @param  {Array} aPoints All changed points associated with the new pointer
    * event.
@@ -274,17 +274,17 @@ this.GestureTracker = { // jshint ignore
  * @param  {String} aType A gesture type.
  * @param  {Object} aPoints Gesture's points.
  * @param  {String} xKey A default key for the x coordinate. Default is
  * 'startX'.
  * @param  {String} yKey A default key for the y coordinate. Default is
  * 'startY'.
  * @return {Object} a mozAccessFuGesture detail structure.
  */
-function compileDetail(aType, aPoints, keyMap = {x: 'startX', y: 'startY'}) {
+function compileDetail(aType, aPoints, keyMap = {x: "startX", y: "startY"}) {
   let touches = [];
   let maxDeltaX = 0;
   let maxDeltaY = 0;
   for (let identifier in aPoints) {
     let point = aPoints[identifier];
     let touch = {};
     for (let key in keyMap) {
       touch[key] = point[keyMap[key]];
@@ -316,17 +316,17 @@ function compileDetail(aType, aPoints, k
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * Default is an empty object.
  * @param {?String} aLastEvent Last pointer event type.
  */
 function Gesture(aTimeStamp, aPoints = {}, aLastEvent = undefined) {
   this.startTime = Date.now();
-  Logger.gesture('Creating', this.id, 'gesture.');
+  Logger.gesture("Creating", this.id, "gesture.");
   this.points = aPoints;
   this.lastEvent = aLastEvent;
   this._deferred = PromiseUtils.defer();
   // Call this._handleResolve or this._handleReject when the promise is
   // fulfilled with either resolve or reject.
   this.promise = this._deferred.promise.then(this._handleResolve.bind(this),
     this._handleReject.bind(this));
   this.startTimer(aTimeStamp);
@@ -344,32 +344,32 @@ Gesture.prototype = {
     // reject this gesture promise.
     return GestureSettings.maxConsecutiveGestureDelay;
   },
 
   /**
    * Clear the existing timer.
    */
   clearTimer: function Gesture_clearTimer() {
-    Logger.gesture('clearTimeout', this.type);
+    Logger.gesture("clearTimeout", this.type);
     clearTimeout(this._timer);
     delete this._timer;
   },
 
   /**
    * Start the timer for gesture timeout.
    * @param {Number} aTimeStamp An original pointer event's timeStamp that
    * started the gesture resolution sequence.
    */
   startTimer: function Gesture_startTimer(aTimeStamp) {
-    Logger.gesture('startTimer', this.type);
+    Logger.gesture("startTimer", this.type);
     this.clearTimer();
     let delay = this._getDelay(aTimeStamp);
     let handler = () => {
-      Logger.gesture('timer handler');
+      Logger.gesture("timer handler");
       this.clearTimer();
       if (!this._inProgress) {
         this._deferred.reject();
       } else if (this._rejectToOnWait) {
         this._deferred.reject(this._rejectToOnWait);
       }
     };
     if (delay <= 0) {
@@ -403,17 +403,17 @@ Gesture.prototype = {
    */
   _update: function Gesture__update(aPoints, aType, aCanCreate = false, aNeedComplete = false) {
     let complete;
     let lastEvent;
     for (let point of aPoints) {
       let identifier = point.identifier;
       let gesturePoint = this.points[identifier];
       if (gesturePoint) {
-        if (aType === 'pointerdown' && aCanCreate) {
+        if (aType === "pointerdown" && aCanCreate) {
           // scratch the previous pointer with that id.
           this.points[identifier] = new Point(point);
         } else {
           gesturePoint.update(point);
         }
         if (aNeedComplete) {
           // Since the gesture is completing and at least one of the gesture
           // points is updated, set the return value to true.
@@ -435,49 +435,49 @@ Gesture.prototype = {
     return complete;
   },
 
   /**
    * Emit a mozAccessFuGesture (when the gesture is resolved).
    * @param  {Object} aDetail a compiled mozAccessFuGesture detail structure.
    */
   _emit: function Gesture__emit(aDetail) {
-    let evt = new Utils.win.CustomEvent('mozAccessFuGesture', {
+    let evt = new Utils.win.CustomEvent("mozAccessFuGesture", {
       bubbles: true,
       cancelable: true,
       detail: aDetail
     });
     Utils.win.dispatchEvent(evt);
   },
 
   /**
    * Handle the pointer down event.
    * @param  {Array} aPoints A new pointer down points.
    * @param  {Number} aTimeStamp A new pointer down timeStamp.
    */
   pointerdown: function Gesture_pointerdown(aPoints, aTimeStamp) {
     this._inProgress = true;
-    this._update(aPoints, 'pointerdown',
+    this._update(aPoints, "pointerdown",
       aTimeStamp - this.startTime < GestureSettings.maxMultitouch);
   },
 
   /**
    * Handle the pointer move event.
    * @param  {Array} aPoints A new pointer move points.
    */
   pointermove: function Gesture_pointermove(aPoints) {
-    this._update(aPoints, 'pointermove');
+    this._update(aPoints, "pointermove");
   },
 
   /**
    * Handle the pointer up event.
    * @param  {Array} aPoints A new pointer up points.
    */
   pointerup: function Gesture_pointerup(aPoints) {
-    let complete = this._update(aPoints, 'pointerup', false, true);
+    let complete = this._update(aPoints, "pointerup", false, true);
     if (complete) {
       this._deferred.resolve();
     }
   },
 
   /**
    * A subsequent gesture constructor to resolve the current one to. E.g.
    * tap->doubletap, dwell->dwellend, etc.
@@ -501,17 +501,17 @@ Gesture.prototype = {
    *   id: current gesture id,
    *   gestureType: an optional subsequent gesture constructor.
    * }
    */
   _handleResolve: function Gesture__handleResolve() {
     if (this.isComplete) {
       return;
     }
-    Logger.gesture('Resolving', this.id, 'gesture.');
+    Logger.gesture("Resolving", this.id, "gesture.");
     this.isComplete = true;
     this.clearTimer();
     let detail = this.compile();
     if (detail) {
       this._emit(detail);
     }
     return {
       id: this.id,
@@ -526,17 +526,17 @@ Gesture.prototype = {
    *   id: current gesture id,
    *   gestureType: an optional subsequent gesture constructor.
    * }
    */
   _handleReject: function Gesture__handleReject(aRejectTo) {
     if (this.isComplete) {
       return;
     }
-    Logger.gesture('Rejecting', this.id, 'gesture.');
+    Logger.gesture("Rejecting", this.id, "gesture.");
     this.isComplete = true;
     this.clearTimer();
     return {
       id: this.id,
       gestureType: aRejectTo
     };
   },
 
@@ -553,26 +553,26 @@ Gesture.prototype = {
 
 /**
  * A mixin for an explore related object.
  */
 function ExploreGesture() {
   this.compile = () => {
     // Unlike most of other gestures explore based gestures compile using the
     // current point position and not the start one.
-    return compileDetail(this.type, this.points, {x: 'x', y: 'y'});
+    return compileDetail(this.type, this.points, {x: "x", y: "y"});
   };
 }
 
 /**
  * Check the in progress gesture for completion.
  */
 function checkProgressGesture(aGesture) {
   aGesture._inProgress = true;
-  if (aGesture.lastEvent === 'pointerup') {
+  if (aGesture.lastEvent === "pointerup") {
     if (aGesture.test) {
       aGesture.test(true);
     }
     aGesture._deferred.resolve();
   }
 }
 
 /**
@@ -624,17 +624,17 @@ TravelGesture.prototype.test = function 
 function DwellEnd(aTimeStamp, aPoints, aLastEvent) {
   this._inProgress = true;
   // If the pointer travels, reject to Explore.
   TravelGesture.call(this, aTimeStamp, aPoints, aLastEvent);
   checkProgressGesture(this);
 }
 
 DwellEnd.prototype = Object.create(TravelGesture.prototype);
-DwellEnd.prototype.type = 'dwellend';
+DwellEnd.prototype.type = "dwellend";
 
 /**
  * TapHoldEnd gesture. This gesture can be represented as the following diagram:
  * pointerdown-pointerup-pointerdown-*wait*-pointerup.
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
@@ -642,17 +642,17 @@ DwellEnd.prototype.type = 'dwellend';
 function TapHoldEnd(aTimeStamp, aPoints, aLastEvent) {
   this._inProgress = true;
   // If the pointer travels, reject to Explore.
   TravelGesture.call(this, aTimeStamp, aPoints, aLastEvent);
   checkProgressGesture(this);
 }
 
 TapHoldEnd.prototype = Object.create(TravelGesture.prototype);
-TapHoldEnd.prototype.type = 'tapholdend';
+TapHoldEnd.prototype.type = "tapholdend";
 
 /**
  * DoubleTapHoldEnd gesture. This gesture can be represented as the following
  * diagram:
  * pointerdown-pointerup-pointerdown-pointerup-pointerdown-*wait*-pointerup.
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
@@ -661,17 +661,17 @@ TapHoldEnd.prototype.type = 'tapholdend'
 function DoubleTapHoldEnd(aTimeStamp, aPoints, aLastEvent) {
   this._inProgress = true;
   // If the pointer travels, reject to Explore.
   TravelGesture.call(this, aTimeStamp, aPoints, aLastEvent);
   checkProgressGesture(this);
 }
 
 DoubleTapHoldEnd.prototype = Object.create(TravelGesture.prototype);
-DoubleTapHoldEnd.prototype.type = 'doubletapholdend';
+DoubleTapHoldEnd.prototype.type = "doubletapholdend";
 
 /**
  * A common tap gesture object.
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
  * @param {Function} aRejectToOnWait A constructor for the next gesture to
@@ -695,17 +695,17 @@ TapGesture.prototype._getDelay = functio
   // If, for TapGesture, no pointermove or pointerup happens within the
   // GestureSettings.dwellThreshold, reject.
   // Note: the original pointer event's timeStamp is irrelevant here.
   return GestureSettings.dwellThreshold;
 };
 
 TapGesture.prototype.pointerup = function TapGesture_pointerup(aPoints) {
     if (this._rejectToOnPointerDown) {
-      let complete = this._update(aPoints, 'pointerup', false, true);
+      let complete = this._update(aPoints, "pointerup", false, true);
       if (complete) {
         this.clearTimer();
         if (GestureSettings.maxGestureResolveTimeout) {
           this._pointerUpTimer = setTimeout(() => {
             clearTimeout(this._pointerUpTimer);
             delete this._pointerUpTimer;
             this._deferred.resolve();
           }, GestureSettings.maxGestureResolveTimeout);
@@ -737,48 +737,48 @@ TapGesture.prototype.pointerdown = funct
  * @param {?String} aLastEvent Last pointer event type.
  */
 function Tap(aTimeStamp, aPoints, aLastEvent) {
   // If the pointer travels, reject to Swipe.
   TapGesture.call(this, aTimeStamp, aPoints, aLastEvent, Dwell, Swipe, DoubleTap);
 }
 
 Tap.prototype = Object.create(TapGesture.prototype);
-Tap.prototype.type = 'tap';
+Tap.prototype.type = "tap";
 
 
 /**
  * Double Tap gesture.
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
  */
 function DoubleTap(aTimeStamp, aPoints, aLastEvent) {
   this._inProgress = true;
   TapGesture.call(this, aTimeStamp, aPoints, aLastEvent, TapHold, null, TripleTap);
 }
 
 DoubleTap.prototype = Object.create(TapGesture.prototype);
-DoubleTap.prototype.type = 'doubletap';
+DoubleTap.prototype.type = "doubletap";
 
 /**
  * Triple Tap gesture.
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
  */
 function TripleTap(aTimeStamp, aPoints, aLastEvent) {
   this._inProgress = true;
   TapGesture.call(this, aTimeStamp, aPoints, aLastEvent, DoubleTapHold, null, null);
 }
 
 TripleTap.prototype = Object.create(TapGesture.prototype);
-TripleTap.prototype.type = 'tripletap';
+TripleTap.prototype.type = "tripletap";
 
 /**
  * Common base object for gestures that are created as resolved.
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
  */
@@ -797,63 +797,63 @@ ResolvedGesture.prototype = Object.creat
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
  */
 function Dwell(aTimeStamp, aPoints, aLastEvent) {
   ResolvedGesture.call(this, aTimeStamp, aPoints, aLastEvent);
 }
 
 Dwell.prototype = Object.create(ResolvedGesture.prototype);
-Dwell.prototype.type = 'dwell';
+Dwell.prototype.type = "dwell";
 Dwell.prototype.resolveTo = DwellEnd;
 
 /**
  * TapHold gesture
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
  */
 function TapHold(aTimeStamp, aPoints, aLastEvent) {
   ResolvedGesture.call(this, aTimeStamp, aPoints, aLastEvent);
 }
 
 TapHold.prototype = Object.create(ResolvedGesture.prototype);
-TapHold.prototype.type = 'taphold';
+TapHold.prototype.type = "taphold";
 TapHold.prototype.resolveTo = TapHoldEnd;
 
 /**
  * DoubleTapHold gesture
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
  */
 function DoubleTapHold(aTimeStamp, aPoints, aLastEvent) {
   ResolvedGesture.call(this, aTimeStamp, aPoints, aLastEvent);
 }
 
 DoubleTapHold.prototype = Object.create(ResolvedGesture.prototype);
-DoubleTapHold.prototype.type = 'doubletaphold';
+DoubleTapHold.prototype.type = "doubletaphold";
 DoubleTapHold.prototype.resolveTo = DoubleTapHoldEnd;
 
 /**
  * Explore gesture
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
  */
 function Explore(aTimeStamp, aPoints, aLastEvent) {
   ExploreGesture.call(this);
   ResolvedGesture.call(this, aTimeStamp, aPoints, aLastEvent);
 }
 
 Explore.prototype = Object.create(ResolvedGesture.prototype);
-Explore.prototype.type = 'explore';
+Explore.prototype.type = "explore";
 Explore.prototype.resolveTo = ExploreEnd;
 
 /**
  * ExploreEnd gesture.
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
@@ -862,34 +862,34 @@ function ExploreEnd(aTimeStamp, aPoints,
   this._inProgress = true;
   ExploreGesture.call(this);
   // If the pointer travels, reject to Explore.
   TravelGesture.call(this, aTimeStamp, aPoints, aLastEvent);
   checkProgressGesture(this);
 }
 
 ExploreEnd.prototype = Object.create(TravelGesture.prototype);
-ExploreEnd.prototype.type = 'exploreend';
+ExploreEnd.prototype.type = "exploreend";
 
 /**
  * Swipe gesture.
  * @param {Number} aTimeStamp An original pointer event's timeStamp that started
  * the gesture resolution sequence.
  * @param {Object} aPoints An existing set of points (from previous events).
  * @param {?String} aLastEvent Last pointer event type.
  */
 function Swipe(aTimeStamp, aPoints, aLastEvent) {
   this._inProgress = true;
   this._rejectToOnWait = Explore;
   Gesture.call(this, aTimeStamp, aPoints, aLastEvent);
   checkProgressGesture(this);
 }
 
 Swipe.prototype = Object.create(Gesture.prototype);
-Swipe.prototype.type = 'swipe';
+Swipe.prototype.type = "swipe";
 Swipe.prototype._getDelay = function Swipe__getDelay(aTimeStamp) {
   // Swipe should be completed within the GestureSettings.swipeMaxDuration from
   // the initial pointer down event.
   return GestureSettings.swipeMaxDuration - this.startTime + aTimeStamp;
 };
 
 /**
  * Determine wither the gesture was Swipe or Explore.
@@ -919,37 +919,37 @@ Swipe.prototype.test = function Swipe_te
 
 /**
  * Compile a swipe related mozAccessFuGesture event detail.
  * @return {Object} A mozAccessFuGesture detail object.
  */
 Swipe.prototype.compile = function Swipe_compile() {
   let type = this.type;
   let detail = compileDetail(type, this.points,
-    {x1: 'startX', y1: 'startY', x2: 'x', y2: 'y'});
+    {x1: "startX", y1: "startY", x2: "x", y2: "y"});
   let deltaX = detail.deltaX;
   let deltaY = detail.deltaY;
   let edge = EDGE * Utils.dpi;
   if (Math.abs(deltaX) > Math.abs(deltaY)) {
     // Horizontal swipe.
     let startPoints = detail.touches.map(touch => touch.x1);
     if (deltaX > 0) {
-      detail.type = type + 'right';
+      detail.type = type + "right";
       detail.edge = Math.min.apply(null, startPoints) <= edge;
     } else {
-      detail.type = type + 'left';
+      detail.type = type + "left";
       detail.edge =
         Utils.win.screen.width - Math.max.apply(null, startPoints) <= edge;
     }
   } else {
     // Vertical swipe.
     let startPoints = detail.touches.map(touch => touch.y1);
     if (deltaY > 0) {
-      detail.type = type + 'down';
+      detail.type = type + "down";
       detail.edge = Math.min.apply(null, startPoints) <= edge;
     } else {
-      detail.type = type + 'up';
+      detail.type = type + "up";
       detail.edge =
         Utils.win.screen.height - Math.max.apply(null, startPoints) <= edge;
     }
   }
   return detail;
 };
--- a/accessible/jsat/OutputGenerator.jsm
+++ b/accessible/jsat/OutputGenerator.jsm
@@ -1,40 +1,40 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* exported UtteranceGenerator, BrailleGenerator */
 
-'use strict';
+"use strict";
 
 const {utils: Cu, interfaces: Ci} = Components;
 
 const INCLUDE_DESC = 0x01;
 const INCLUDE_NAME = 0x02;
 const INCLUDE_VALUE = 0x04;
 const NAME_FROM_SUBTREE_RULE = 0x10;
 const IGNORE_EXPLICIT_NAME = 0x20;
 
 const OUTPUT_DESC_FIRST = 0;
 const OUTPUT_DESC_LAST = 1;
 
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Utils', // jshint ignore:line
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'PrefCache', // jshint ignore:line
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Logger', // jshint ignore:line
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Roles', // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'States', // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Utils", // jshint ignore:line
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "PrefCache", // jshint ignore:line
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Logger", // jshint ignore:line
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Roles", // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "States", // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
 
-this.EXPORTED_SYMBOLS = ['UtteranceGenerator', 'BrailleGenerator']; // jshint ignore:line
+this.EXPORTED_SYMBOLS = ["UtteranceGenerator", "BrailleGenerator"]; // jshint ignore:line
 
 var OutputGenerator = {
 
   defaultOutputOrder: OUTPUT_DESC_LAST,
 
   /**
    * Generates output for a PivotContext.
    * @param {PivotContext} aContext object that generates and caches
@@ -52,17 +52,17 @@ var OutputGenerator = {
     };
     let ignoreSubtree = function ignoreSubtree(aAccessible) {
       let roleString = Utils.AccService.getStringRole(aAccessible.role);
       let nameRule = self.roleRuleMap[roleString] || 0;
       // Ignore subtree if the name is explicit and the role's name rule is the
       // NAME_FROM_SUBTREE_RULE.
       return (((nameRule & INCLUDE_VALUE) && aAccessible.value) ||
               ((nameRule & NAME_FROM_SUBTREE_RULE) &&
-               (Utils.getAttributes(aAccessible)['explicit-name'] === 'true' &&
+               (Utils.getAttributes(aAccessible)["explicit-name"] === "true" &&
                !(nameRule & IGNORE_EXPLICIT_NAME))));
     };
 
     let contextStart = this._getContextStart(aContext);
 
     if (this.outputOrder === OUTPUT_DESC_FIRST) {
       contextStart.forEach(addOutput);
       addOutput(aContext.accessible);
@@ -161,51 +161,51 @@ var OutputGenerator = {
   /**
    * Adds an accessible name and description to the output if available.
    * @param {Array} aOutput Output array.
    * @param {nsIAccessible} aAccessible current accessible object.
    * @param {Number} aFlags output flags.
    */
   _addName: function _addName(aOutput, aAccessible, aFlags) {
     let name;
-    if ((Utils.getAttributes(aAccessible)['explicit-name'] === 'true' &&
+    if ((Utils.getAttributes(aAccessible)["explicit-name"] === "true" &&
          !(aFlags & IGNORE_EXPLICIT_NAME)) || (aFlags & INCLUDE_NAME)) {
       name = aAccessible.name;
     }
 
     let description = aAccessible.description;
     if (description) {
       // Compare against the calculated name unconditionally, regardless of name rule,
       // so we can make sure we don't speak duplicated descriptions
       let tmpName = name || aAccessible.name;
       if (tmpName && (description !== tmpName)) {
-        name = name || '';
+        name = name || "";
         name = this.outputOrder === OUTPUT_DESC_FIRST ?
-          description + ' - ' + name :
-          name + ' - ' + description;
+          description + " - " + name :
+          name + " - " + description;
       }
     }
 
     if (!name || !name.trim()) {
       return;
     }
-    aOutput[this.outputOrder === OUTPUT_DESC_FIRST ? 'push' : 'unshift'](name);
+    aOutput[this.outputOrder === OUTPUT_DESC_FIRST ? "push" : "unshift"](name);
   },
 
   /**
    * Adds a landmark role to the output if available.
    * @param {Array} aOutput Output array.
    * @param {nsIAccessible} aAccessible current accessible object.
    */
   _addLandmark: function _addLandmark(aOutput, aAccessible) {
     let landmarkName = Utils.getLandmarkName(aAccessible);
     if (!landmarkName) {
       return;
     }
-    aOutput[this.outputOrder === OUTPUT_DESC_FIRST ? 'unshift' : 'push']({
+    aOutput[this.outputOrder === OUTPUT_DESC_FIRST ? "unshift" : "push"]({
       string: landmarkName
     });
   },
 
   /**
    * Adds math roles to the output, for a MathML accessible.
    * @param {Array} aOutput Output array.
    * @param {nsIAccessible} aAccessible current accessible object.
@@ -227,198 +227,198 @@ var OutputGenerator = {
       case Roles.MATHML_MULTISCRIPTS:
       case Roles.MATHML_OVER:
       case Roles.MATHML_SUB:
       case Roles.MATHML_SUB_SUP:
       case Roles.MATHML_SUP:
       case Roles.MATHML_UNDER:
       case Roles.MATHML_UNDER_OVER:
         // For scripted accessibles, use the string 'mathmlscripted'.
-        roleStr = 'mathmlscripted';
+        roleStr = "mathmlscripted";
         break;
       case Roles.MATHML_FRACTION:
         // From a semantic point of view, the only important point is to
         // distinguish between fractions that have a bar and those that do not.
         // Per the MathML 3 spec, the latter happens iff the linethickness
         // attribute is of the form [zero-float][optional-unit]. In that case,
         // we use the string 'mathmlfractionwithoutbar'.
         let linethickness = Utils.getAttributes(aAccessible).linethickness;
         if (linethickness) {
             let numberMatch = linethickness.match(/^(?:\d|\.)+/);
             if (numberMatch && !parseFloat(numberMatch[0])) {
-                roleStr += 'withoutbar';
+                roleStr += "withoutbar";
             }
         }
         break;
       default:
         // Otherwise, do not output the actual role.
         roleStr = null;
         break;
     }
 
     // Get the math role based on the position in the parent accessible
     // (e.g. numerator for the first child of a mathmlfraction).
     let mathRole = Utils.getMathRole(aAccessible);
     if (mathRole) {
-      aOutput[this.outputOrder === OUTPUT_DESC_FIRST ? 'push' : 'unshift']({
+      aOutput[this.outputOrder === OUTPUT_DESC_FIRST ? "push" : "unshift"]({
         string: this._getOutputName(mathRole)});
     }
     if (roleStr) {
-      aOutput[this.outputOrder === OUTPUT_DESC_FIRST ? 'push' : 'unshift']({
+      aOutput[this.outputOrder === OUTPUT_DESC_FIRST ? "push" : "unshift"]({
         string: this._getOutputName(roleStr)});
     }
   },
 
   /**
    * Adds MathML menclose notations to the output.
    * @param {Array} aOutput Output array.
    * @param {nsIAccessible} aAccessible current accessible object.
    */
   _addMencloseNotations: function _addMencloseNotations(aOutput, aAccessible) {
-    let notations = Utils.getAttributes(aAccessible).notation || 'longdiv';
-    aOutput[this.outputOrder === OUTPUT_DESC_FIRST ? 'push' : 'unshift'].apply(
-      aOutput, notations.split(' ').map(notation => {
-        return { string: this._getOutputName('notation-' + notation) };
+    let notations = Utils.getAttributes(aAccessible).notation || "longdiv";
+    aOutput[this.outputOrder === OUTPUT_DESC_FIRST ? "push" : "unshift"].apply(
+      aOutput, notations.split(" ").map(notation => {
+        return { string: this._getOutputName("notation-" + notation) };
       }));
   },
 
   /**
    * Adds an entry type attribute to the description if available.
    * @param {Array} aOutput Output array.
    * @param {nsIAccessible} aAccessible current accessible object.
    * @param {String} aRoleStr aAccessible's role string.
    */
   _addType: function _addType(aOutput, aAccessible, aRoleStr) {
-    if (aRoleStr !== 'entry') {
+    if (aRoleStr !== "entry") {
       return;
     }
 
-    let typeName = Utils.getAttributes(aAccessible)['text-input-type'];
+    let typeName = Utils.getAttributes(aAccessible)["text-input-type"];
     // Ignore the the input type="text" case.
-    if (!typeName || typeName === 'text') {
+    if (!typeName || typeName === "text") {
       return;
     }
-    aOutput.push({string: 'textInputType_' + typeName});
+    aOutput.push({string: "textInputType_" + typeName});
   },
 
   _addState: function _addState(aOutput, aState, aRoleStr) {}, // jshint ignore:line
 
   _addRole: function _addRole(aOutput, aAccessible, aRoleStr) {}, // jshint ignore:line
 
   get outputOrder() {
     if (!this._utteranceOrder) {
-      this._utteranceOrder = new PrefCache('accessibility.accessfu.utterance');
+      this._utteranceOrder = new PrefCache("accessibility.accessfu.utterance");
     }
-    return typeof this._utteranceOrder.value === 'number' ?
+    return typeof this._utteranceOrder.value === "number" ?
       this._utteranceOrder.value : this.defaultOutputOrder;
   },
 
   _getOutputName: function _getOutputName(aName) {
-    return aName.replace(/\s/g, '');
+    return aName.replace(/\s/g, "");
   },
 
   roleRuleMap: {
-    'menubar': INCLUDE_DESC,
-    'scrollbar': INCLUDE_DESC,
-    'grip': INCLUDE_DESC,
-    'alert': INCLUDE_DESC | INCLUDE_NAME,
-    'menupopup': INCLUDE_DESC,
-    'menuitem': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'tooltip': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'columnheader': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'rowheader': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'column': NAME_FROM_SUBTREE_RULE,
-    'row': NAME_FROM_SUBTREE_RULE,
-    'cell': INCLUDE_DESC | INCLUDE_NAME,
-    'application': INCLUDE_NAME,
-    'document': INCLUDE_NAME,
-    'grouping': INCLUDE_DESC | INCLUDE_NAME,
-    'toolbar': INCLUDE_DESC,
-    'table': INCLUDE_DESC | INCLUDE_NAME,
-    'link': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'helpballoon': NAME_FROM_SUBTREE_RULE,
-    'list': INCLUDE_DESC | INCLUDE_NAME,
-    'listitem': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'outline': INCLUDE_DESC,
-    'outlineitem': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'pagetab': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'graphic': INCLUDE_DESC,
-    'switch': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'pushbutton': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'checkbutton': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'radiobutton': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'buttondropdown': NAME_FROM_SUBTREE_RULE,
-    'combobox': INCLUDE_DESC | INCLUDE_VALUE,
-    'droplist': INCLUDE_DESC,
-    'progressbar': INCLUDE_DESC | INCLUDE_VALUE,
-    'slider': INCLUDE_DESC | INCLUDE_VALUE,
-    'spinbutton': INCLUDE_DESC | INCLUDE_VALUE,
-    'diagram': INCLUDE_DESC,
-    'animation': INCLUDE_DESC,
-    'equation': INCLUDE_DESC,
-    'buttonmenu': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'buttondropdowngrid': NAME_FROM_SUBTREE_RULE,
-    'pagetablist': INCLUDE_DESC,
-    'canvas': INCLUDE_DESC,
-    'check menu item': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'label': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'password text': INCLUDE_DESC,
-    'popup menu': INCLUDE_DESC,
-    'radio menu item': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'table column header': NAME_FROM_SUBTREE_RULE,
-    'table row header': NAME_FROM_SUBTREE_RULE,
-    'tear off menu item': NAME_FROM_SUBTREE_RULE,
-    'toggle button': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'parent menuitem': NAME_FROM_SUBTREE_RULE,
-    'header': INCLUDE_DESC,
-    'footer': INCLUDE_DESC,
-    'entry': INCLUDE_DESC | INCLUDE_NAME | INCLUDE_VALUE,
-    'caption': INCLUDE_DESC,
-    'document frame': INCLUDE_DESC,
-    'heading': INCLUDE_DESC,
-    'calendar': INCLUDE_DESC | INCLUDE_NAME,
-    'combobox option': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'listbox option': INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
-    'listbox rich option': NAME_FROM_SUBTREE_RULE,
-    'gridcell': NAME_FROM_SUBTREE_RULE,
-    'check rich option': NAME_FROM_SUBTREE_RULE,
-    'term': NAME_FROM_SUBTREE_RULE,
-    'definition': NAME_FROM_SUBTREE_RULE,
-    'key': NAME_FROM_SUBTREE_RULE,
-    'image map': INCLUDE_DESC,
-    'option': INCLUDE_DESC,
-    'listbox': INCLUDE_DESC,
-    'definitionlist': INCLUDE_DESC | INCLUDE_NAME,
-    'dialog': INCLUDE_DESC | INCLUDE_NAME,
-    'chrome window': IGNORE_EXPLICIT_NAME,
-    'app root': IGNORE_EXPLICIT_NAME,
-    'statusbar': NAME_FROM_SUBTREE_RULE,
-    'mathml table': INCLUDE_DESC | INCLUDE_NAME,
-    'mathml labeled row': NAME_FROM_SUBTREE_RULE,
-    'mathml table row': NAME_FROM_SUBTREE_RULE,
-    'mathml cell': INCLUDE_DESC | INCLUDE_NAME,
-    'mathml fraction': INCLUDE_DESC,
-    'mathml square root': INCLUDE_DESC,
-    'mathml root': INCLUDE_DESC,
-    'mathml enclosed': INCLUDE_DESC,
-    'mathml sub': INCLUDE_DESC,
-    'mathml sup': INCLUDE_DESC,
-    'mathml sub sup': INCLUDE_DESC,
-    'mathml under': INCLUDE_DESC,
-    'mathml over': INCLUDE_DESC,
-    'mathml under over': INCLUDE_DESC,
-    'mathml multiscripts': INCLUDE_DESC,
-    'mathml identifier': INCLUDE_DESC,
-    'mathml number': INCLUDE_DESC,
-    'mathml operator': INCLUDE_DESC,
-    'mathml text': INCLUDE_DESC,
-    'mathml string literal': INCLUDE_DESC,
-    'mathml row': INCLUDE_DESC,
-    'mathml style': INCLUDE_DESC,
-    'mathml error': INCLUDE_DESC },
+    "menubar": INCLUDE_DESC,
+    "scrollbar": INCLUDE_DESC,
+    "grip": INCLUDE_DESC,
+    "alert": INCLUDE_DESC | INCLUDE_NAME,
+    "menupopup": INCLUDE_DESC,
+    "menuitem": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "tooltip": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "columnheader": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "rowheader": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "column": NAME_FROM_SUBTREE_RULE,
+    "row": NAME_FROM_SUBTREE_RULE,
+    "cell": INCLUDE_DESC | INCLUDE_NAME,
+    "application": INCLUDE_NAME,
+    "document": INCLUDE_NAME,
+    "grouping": INCLUDE_DESC | INCLUDE_NAME,
+    "toolbar": INCLUDE_DESC,
+    "table": INCLUDE_DESC | INCLUDE_NAME,
+    "link": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "helpballoon": NAME_FROM_SUBTREE_RULE,
+    "list": INCLUDE_DESC | INCLUDE_NAME,
+    "listitem": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "outline": INCLUDE_DESC,
+    "outlineitem": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "pagetab": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "graphic": INCLUDE_DESC,
+    "switch": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "pushbutton": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "checkbutton": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "radiobutton": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "buttondropdown": NAME_FROM_SUBTREE_RULE,
+    "combobox": INCLUDE_DESC | INCLUDE_VALUE,
+    "droplist": INCLUDE_DESC,
+    "progressbar": INCLUDE_DESC | INCLUDE_VALUE,
+    "slider": INCLUDE_DESC | INCLUDE_VALUE,
+    "spinbutton": INCLUDE_DESC | INCLUDE_VALUE,
+    "diagram": INCLUDE_DESC,
+    "animation": INCLUDE_DESC,
+    "equation": INCLUDE_DESC,
+    "buttonmenu": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "buttondropdowngrid": NAME_FROM_SUBTREE_RULE,
+    "pagetablist": INCLUDE_DESC,
+    "canvas": INCLUDE_DESC,
+    "check menu item": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "label": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "password text": INCLUDE_DESC,
+    "popup menu": INCLUDE_DESC,
+    "radio menu item": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "table column header": NAME_FROM_SUBTREE_RULE,
+    "table row header": NAME_FROM_SUBTREE_RULE,
+    "tear off menu item": NAME_FROM_SUBTREE_RULE,
+    "toggle button": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "parent menuitem": NAME_FROM_SUBTREE_RULE,
+    "header": INCLUDE_DESC,
+    "footer": INCLUDE_DESC,
+    "entry": INCLUDE_DESC | INCLUDE_NAME | INCLUDE_VALUE,
+    "caption": INCLUDE_DESC,
+    "document frame": INCLUDE_DESC,
+    "heading": INCLUDE_DESC,
+    "calendar": INCLUDE_DESC | INCLUDE_NAME,
+    "combobox option": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "listbox option": INCLUDE_DESC | NAME_FROM_SUBTREE_RULE,
+    "listbox rich option": NAME_FROM_SUBTREE_RULE,
+    "gridcell": NAME_FROM_SUBTREE_RULE,
+    "check rich option": NAME_FROM_SUBTREE_RULE,
+    "term": NAME_FROM_SUBTREE_RULE,
+    "definition": NAME_FROM_SUBTREE_RULE,
+    "key": NAME_FROM_SUBTREE_RULE,
+    "image map": INCLUDE_DESC,
+    "option": INCLUDE_DESC,
+    "listbox": INCLUDE_DESC,
+    "definitionlist": INCLUDE_DESC | INCLUDE_NAME,
+    "dialog": INCLUDE_DESC | INCLUDE_NAME,
+    "chrome window": IGNORE_EXPLICIT_NAME,
+    "app root": IGNORE_EXPLICIT_NAME,
+    "statusbar": NAME_FROM_SUBTREE_RULE,
+    "mathml table": INCLUDE_DESC | INCLUDE_NAME,
+    "mathml labeled row": NAME_FROM_SUBTREE_RULE,
+    "mathml table row": NAME_FROM_SUBTREE_RULE,
+    "mathml cell": INCLUDE_DESC | INCLUDE_NAME,
+    "mathml fraction": INCLUDE_DESC,
+    "mathml square root": INCLUDE_DESC,
+    "mathml root": INCLUDE_DESC,
+    "mathml enclosed": INCLUDE_DESC,
+    "mathml sub": INCLUDE_DESC,
+    "mathml sup": INCLUDE_DESC,
+    "mathml sub sup": INCLUDE_DESC,
+    "mathml under": INCLUDE_DESC,
+    "mathml over": INCLUDE_DESC,
+    "mathml under over": INCLUDE_DESC,
+    "mathml multiscripts": INCLUDE_DESC,
+    "mathml identifier": INCLUDE_DESC,
+    "mathml number": INCLUDE_DESC,
+    "mathml operator": INCLUDE_DESC,
+    "mathml text": INCLUDE_DESC,
+    "mathml string literal": INCLUDE_DESC,
+    "mathml row": INCLUDE_DESC,
+    "mathml style": INCLUDE_DESC,
+    "mathml error": INCLUDE_DESC },
 
   mathmlRolesSet: new Set([
     Roles.MATHML_MATH,
     Roles.MATHML_IDENTIFIER,
     Roles.MATHML_NUMBER,
     Roles.MATHML_OPERATOR,
     Roles.MATHML_TEXT,
     Roles.MATHML_STRING_LITERAL,
@@ -459,17 +459,17 @@ var OutputGenerator = {
 
         if (aFlags & INCLUDE_DESC) {
           this._addState(output, aState, aRoleStr);
           this._addType(output, aAccessible, aRoleStr);
           this._addRole(output, aAccessible, aRoleStr);
         }
 
         if (aFlags & INCLUDE_VALUE && aAccessible.value.trim()) {
-          output[this.outputOrder === OUTPUT_DESC_FIRST ? 'push' : 'unshift'](
+          output[this.outputOrder === OUTPUT_DESC_FIRST ? "push" : "unshift"](
             aAccessible.value);
         }
 
         this._addName(output, aAccessible, aFlags);
         this._addLandmark(output, aAccessible);
 
         return output;
       },
@@ -481,30 +481,30 @@ var OutputGenerator = {
         // we don't need the context.
         return [];
       }
 
       return this.objectOutputFunctions.defaultFunc.apply(this, arguments);
     },
 
     entry: function entry(aAccessible, aRoleStr, aState, aFlags) {
-      let rolestr = aState.contains(States.MULTI_LINE) ? 'textarea' : 'entry';
+      let rolestr = aState.contains(States.MULTI_LINE) ? "textarea" : "entry";
       return this.objectOutputFunctions.defaultFunc.apply(
         this, [aAccessible, rolestr, aState, aFlags]);
     },
 
     pagetab: function pagetab(aAccessible, aRoleStr, aState, aFlags) {
       let itemno = {};
       let itemof = {};
       aAccessible.groupPosition({}, itemof, itemno);
       let output = [];
       this._addState(output, aState);
       this._addRole(output, aAccessible, aRoleStr);
       output.push({
-        string: 'objItemOfN',
+        string: "objItemOfN",
         args: [itemno.value, itemof.value]
       });
 
       this._addName(output, aAccessible, aFlags);
       this._addLandmark(output, aAccessible);
 
       return output;
     },
@@ -520,20 +520,20 @@ var OutputGenerator = {
       } finally {
         // Check if it's a layout table, and bail out if true.
         // We don't want to speak any table information for layout tables.
         if (table.isProbablyForLayout()) {
           return output;
         }
         this._addRole(output, aAccessible, aRoleStr);
         output.push.call(output, {
-          string: this._getOutputName('tblColumnInfo'),
+          string: this._getOutputName("tblColumnInfo"),
           count: table.columnCount
         }, {
-          string: this._getOutputName('tblRowInfo'),
+          string: this._getOutputName("tblRowInfo"),
           count: table.rowCount
         });
         this._addName(output, aAccessible, aFlags);
         this._addLandmark(output, aAccessible);
         return output;
       }
     },
 
@@ -579,107 +579,107 @@ var OutputGenerator = {
  * For example {@link genForAction} might return ['button', 'clicked'] for a
  * clicked event. Speaking only 'clicked' makes sense. Speaking 'button' does
  * not.
  */
 this.UtteranceGenerator = {  // jshint ignore:line
   __proto__: OutputGenerator, // jshint ignore:line
 
   gActionMap: {
-    jump: 'jumpAction',
-    press: 'pressAction',
-    check: 'checkAction',
-    uncheck: 'uncheckAction',
-    on: 'onAction',
-    off: 'offAction',
-    select: 'selectAction',
-    unselect: 'unselectAction',
-    open: 'openAction',
-    close: 'closeAction',
-    switch: 'switchAction',
-    click: 'clickAction',
-    collapse: 'collapseAction',
-    expand: 'expandAction',
-    activate: 'activateAction',
-    cycle: 'cycleAction'
+    jump: "jumpAction",
+    press: "pressAction",
+    check: "checkAction",
+    uncheck: "uncheckAction",
+    on: "onAction",
+    off: "offAction",
+    select: "selectAction",
+    unselect: "unselectAction",
+    open: "openAction",
+    close: "closeAction",
+    switch: "switchAction",
+    click: "clickAction",
+    collapse: "collapseAction",
+    expand: "expandAction",
+    activate: "activateAction",
+    cycle: "cycleAction"
   },
 
   //TODO: May become more verbose in the future.
   genForAction: function genForAction(aObject, aActionName) {
     return [{string: this.gActionMap[aActionName]}];
   },
 
   genForLiveRegion:
     function genForLiveRegion(aContext, aIsHide, aModifiedText) {
       let utterance = [];
       if (aIsHide) {
-        utterance.push({string: 'hidden'});
+        utterance.push({string: "hidden"});
       }
       return utterance.concat(aModifiedText || this.genForContext(aContext));
     },
 
   genForAnnouncement: function genForAnnouncement(aAnnouncement) {
     return [{
       string: aAnnouncement
     }];
   },
 
   genForTabStateChange: function genForTabStateChange(aObject, aTabState) {
     switch (aTabState) {
-      case 'newtab':
-        return [{string: 'tabNew'}];
-      case 'loading':
-        return [{string: 'tabLoading'}];
-      case 'loaded':
-        return [aObject.name, {string: 'tabLoaded'}];
-      case 'loadstopped':
-        return [{string: 'tabLoadStopped'}];
-      case 'reload':
-        return [{string: 'tabReload'}];
+      case "newtab":
+        return [{string: "tabNew"}];
+      case "loading":
+        return [{string: "tabLoading"}];
+      case "loaded":
+        return [aObject.name, {string: "tabLoaded"}];
+      case "loadstopped":
+        return [{string: "tabLoadStopped"}];
+      case "reload":
+        return [{string: "tabReload"}];
       default:
         return [];
     }
   },
 
   genForEditingMode: function genForEditingMode(aIsEditing) {
-    return [{string: aIsEditing ? 'editingMode' : 'navigationMode'}];
+    return [{string: aIsEditing ? "editingMode" : "navigationMode"}];
   },
 
   objectOutputFunctions: {
 
     __proto__: OutputGenerator.objectOutputFunctions, // jshint ignore:line
 
     defaultFunc: function defaultFunc() {
       return this.objectOutputFunctions._generateBaseOutput.apply(
         this, arguments);
     },
 
     heading: function heading(aAccessible, aRoleStr, aState, aFlags) {
       let level = {};
       aAccessible.groupPosition(level, {}, {});
-      let utterance = [{string: 'headingLevel', args: [level.value]}];
+      let utterance = [{string: "headingLevel", args: [level.value]}];
 
       this._addName(utterance, aAccessible, aFlags);
       this._addLandmark(utterance, aAccessible);
 
       return utterance;
     },
 
     listitem: function listitem(aAccessible, aRoleStr, aState, aFlags) {
       let itemno = {};
       let itemof = {};
       aAccessible.groupPosition({}, itemof, itemno);
       let utterance = [];
       if (itemno.value == 1) {
         // Start of list
-        utterance.push({string: 'listStart'});
+        utterance.push({string: "listStart"});
       }
       else if (itemno.value == itemof.value) {
         // last item
-        utterance.push({string: 'listEnd'});
+        utterance.push({string: "listEnd"});
       }
 
       this._addName(utterance, aAccessible, aFlags);
       this._addLandmark(utterance, aAccessible);
 
       return utterance;
     },
 
@@ -720,22 +720,22 @@ this.UtteranceGenerator = {  // jshint i
           }
         };
         let addHeaders = function addHeaders(aUtterance, aHeaders) {
           if (aHeaders.length > 0) {
             aUtterance.push.apply(aUtterance, aHeaders);
           }
         };
 
-        addCellChanged(utterance, cell.columnChanged, 'columnInfo',
+        addCellChanged(utterance, cell.columnChanged, "columnInfo",
           cell.columnIndex);
-        addCellChanged(utterance, cell.rowChanged, 'rowInfo', cell.rowIndex);
+        addCellChanged(utterance, cell.rowChanged, "rowInfo", cell.rowIndex);
 
-        addExtent(utterance, cell.columnExtent, 'spansColumns');
-        addExtent(utterance, cell.rowExtent, 'spansRows');
+        addExtent(utterance, cell.columnExtent, "spansColumns");
+        addExtent(utterance, cell.rowExtent, "spansRows");
 
         addHeaders(utterance, cell.columnHeaders);
         addHeaders(utterance, cell.rowHeaders);
       }
 
       this._addName(utterance, aAccessible, aFlags);
       this._addLandmark(utterance, aAccessible);
 
@@ -769,72 +769,72 @@ this.UtteranceGenerator = {  // jshint i
     } else {
       aOutput.push({string: this._getOutputName(aRoleStr)});
     }
   },
 
   _addState: function _addState(aOutput, aState, aRoleStr) {
 
     if (aState.contains(States.UNAVAILABLE)) {
-      aOutput.push({string: 'stateUnavailable'});
+      aOutput.push({string: "stateUnavailable"});
     }
 
     if (aState.contains(States.READONLY)) {
-      aOutput.push({string: 'stateReadonly'});
+      aOutput.push({string: "stateReadonly"});
     }
 
     // Don't utter this in Jelly Bean, we let TalkBack do it for us there.
     // This is because we expose the checked information on the node itself.
     // XXX: this means the checked state is always appended to the end,
     // regardless of the utterance ordering preference.
-    if ((Utils.AndroidSdkVersion < 16 || Utils.MozBuildApp === 'browser') &&
+    if ((Utils.AndroidSdkVersion < 16 || Utils.MozBuildApp === "browser") &&
       aState.contains(States.CHECKABLE)) {
       let checked = aState.contains(States.CHECKED);
       let statetr;
-      if (aRoleStr === 'switch') {
-        statetr = checked ? 'stateOn' : 'stateOff';
+      if (aRoleStr === "switch") {
+        statetr = checked ? "stateOn" : "stateOff";
       } else {
-        statetr = checked ? 'stateChecked' : 'stateNotChecked';
+        statetr = checked ? "stateChecked" : "stateNotChecked";
       }
       aOutput.push({string: statetr});
     }
 
     if (aState.contains(States.PRESSED)) {
-      aOutput.push({string: 'statePressed'});
+      aOutput.push({string: "statePressed"});
     }
 
     if (aState.contains(States.EXPANDABLE)) {
       let statetr = aState.contains(States.EXPANDED) ?
-        'stateExpanded' : 'stateCollapsed';
+        "stateExpanded" : "stateCollapsed";
       aOutput.push({string: statetr});
     }
 
     if (aState.contains(States.REQUIRED)) {
-      aOutput.push({string: 'stateRequired'});
+      aOutput.push({string: "stateRequired"});
     }
 
     if (aState.contains(States.TRAVERSED)) {
-      aOutput.push({string: 'stateTraversed'});
+      aOutput.push({string: "stateTraversed"});
     }
 
     if (aState.contains(States.HASPOPUP)) {
-      aOutput.push({string: 'stateHasPopup'});
+      aOutput.push({string: "stateHasPopup"});
     }
 
     if (aState.contains(States.SELECTED)) {
-      aOutput.push({string: 'stateSelected'});
+      aOutput.push({string: "stateSelected"});
     }
   },
 
   _getListUtterance:
     function _getListUtterance(aAccessible, aRoleStr, aFlags, aItemCount) {
       let utterance = [];
       this._addRole(utterance, aAccessible, aRoleStr);
       utterance.push({
-        string: this._getOutputName('listItemsCount'),
+        string: this._getOutputName("listItemsCount"),
         count: aItemCount
       });
 
       this._addName(utterance, aAccessible, aFlags);
       this._addLandmark(utterance, aAccessible);
 
       return utterance;
     }
@@ -846,32 +846,32 @@ this.BrailleGenerator = {  // jshint ign
   genForContext: function genForContext(aContext) {
     let output = OutputGenerator.genForContext.apply(this, arguments);
 
     let acc = aContext.accessible;
 
     // add the static text indicating a list item; do this for both listitems or
     // direct first children of listitems, because these are both common
     // browsing scenarios
-    let addListitemIndicator = function addListitemIndicator(indicator = '*') {
+    let addListitemIndicator = function addListitemIndicator(indicator = "*") {
       output.unshift(indicator);
     };
 
     if (acc.indexInParent === 1 &&
         acc.parent.role == Roles.LISTITEM &&
         acc.previousSibling.role == Roles.STATICTEXT) {
       if (acc.parent.parent && acc.parent.parent.DOMNode &&
-          acc.parent.parent.DOMNode.nodeName == 'UL') {
+          acc.parent.parent.DOMNode.nodeName == "UL") {
         addListitemIndicator();
       } else {
         addListitemIndicator(acc.previousSibling.name.trim());
       }
     } else if (acc.role == Roles.LISTITEM && acc.firstChild &&
                acc.firstChild.role == Roles.STATICTEXT) {
-      if (acc.parent.DOMNode.nodeName == 'UL') {
+      if (acc.parent.DOMNode.nodeName == "UL") {
         addListitemIndicator();
       } else {
         addListitemIndicator(acc.firstChild.name.trim());
       }
     }
 
     return output;
   },
@@ -900,17 +900,17 @@ this.BrailleGenerator = {  // jshint ign
       if (cell) {
         let addHeaders = function addHeaders(aBraille, aHeaders) {
           if (aHeaders.length > 0) {
             aBraille.push.apply(aBraille, aHeaders);
           }
         };
 
         braille.push({
-          string: this._getOutputName('cellInfo'),
+          string: this._getOutputName("cellInfo"),
           args: [cell.columnIndex + 1, cell.rowIndex + 1]
         });
 
         addHeaders(braille, cell.columnHeaders);
         addHeaders(braille, cell.rowHeaders);
       }
 
       this._addName(braille, aAccessible, aFlags);
@@ -967,36 +967,36 @@ this.BrailleGenerator = {  // jshint ign
     if (aContext.accessible.parent.role == Roles.LINK) {
       return [aContext.accessible.parent];
     }
 
     return [];
   },
 
   _getOutputName: function _getOutputName(aName) {
-    return OutputGenerator._getOutputName(aName) + 'Abbr';
+    return OutputGenerator._getOutputName(aName) + "Abbr";
   },
 
   _addRole: function _addRole(aBraille, aAccessible, aRoleStr) {
     if (this.mathmlRolesSet.has(aAccessible.role)) {
       this._addMathRoles(aBraille, aAccessible, aRoleStr);
     } else {
       aBraille.push({string: this._getOutputName(aRoleStr)});
     }
   },
 
   _addState: function _addState(aBraille, aState, aRoleStr) {
     if (aState.contains(States.CHECKABLE)) {
       aBraille.push({
         string: aState.contains(States.CHECKED) ?
-          this._getOutputName('stateChecked') :
-          this._getOutputName('stateUnchecked')
+          this._getOutputName("stateChecked") :
+          this._getOutputName("stateUnchecked")
       });
     }
-    if (aRoleStr === 'toggle button') {
+    if (aRoleStr === "toggle button") {
       aBraille.push({
         string: aState.contains(States.PRESSED) ?
-          this._getOutputName('statePressed') :
-          this._getOutputName('stateUnpressed')
+          this._getOutputName("statePressed") :
+          this._getOutputName("stateUnpressed")
       });
     }
   }
 };
--- a/accessible/jsat/PointerAdapter.jsm
+++ b/accessible/jsat/PointerAdapter.jsm
@@ -1,130 +1,130 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* exported PointerRelay, PointerAdapter */
 
-'use strict';
+"use strict";
 
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
-this.EXPORTED_SYMBOLS = ['PointerRelay', 'PointerAdapter']; // jshint ignore:line
+this.EXPORTED_SYMBOLS = ["PointerRelay", "PointerAdapter"]; // jshint ignore:line
 
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
-XPCOMUtils.defineLazyModuleGetter(this, 'Utils', // jshint ignore:line
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Logger', // jshint ignore:line
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'GestureSettings', // jshint ignore:line
-  'resource://gre/modules/accessibility/Gestures.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'GestureTracker', // jshint ignore:line
-  'resource://gre/modules/accessibility/Gestures.jsm');
+XPCOMUtils.defineLazyModuleGetter(this, "Utils", // jshint ignore:line
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Logger", // jshint ignore:line
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "GestureSettings", // jshint ignore:line
+  "resource://gre/modules/accessibility/Gestures.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "GestureTracker", // jshint ignore:line
+  "resource://gre/modules/accessibility/Gestures.jsm");
 
 // The virtual touch ID generated by a mouse event.
-const MOUSE_ID = 'mouse';
+const MOUSE_ID = "mouse";
 // Synthesized touch ID.
 const SYNTH_ID = -1;
 
 var PointerRelay = { // jshint ignore:line
   /**
    * A mapping of events we should be intercepting. Entries with a value of
    * |true| are used for compiling high-level gesture events. Entries with a
    * value of |false| are cancelled and do not propogate to content.
    */
   get _eventsOfInterest() {
     delete this._eventsOfInterest;
 
     switch (Utils.widgetToolkit) {
-      case 'android':
+      case "android":
         this._eventsOfInterest = {
-          'touchstart': true,
-          'touchmove': true,
-          'touchend': true };
+          "touchstart": true,
+          "touchmove": true,
+          "touchend": true };
         break;
 
-      case 'gonk':
+      case "gonk":
         this._eventsOfInterest = {
-          'touchstart': true,
-          'touchmove': true,
-          'touchend': true,
-          'mousedown': false,
-          'mousemove': false,
-          'mouseup': false,
-          'click': false };
+          "touchstart": true,
+          "touchmove": true,
+          "touchend": true,
+          "mousedown": false,
+          "mousemove": false,
+          "mouseup": false,
+          "click": false };
         break;
 
       default:
         // Desktop.
         this._eventsOfInterest = {
-          'mousemove': true,
-          'mousedown': true,
-          'mouseup': true,
-          'click': false
+          "mousemove": true,
+          "mousedown": true,
+          "mouseup": true,
+          "click": false
         };
-        if ('ontouchstart' in Utils.win) {
-          for (let eventType of ['touchstart', 'touchmove', 'touchend']) {
+        if ("ontouchstart" in Utils.win) {
+          for (let eventType of ["touchstart", "touchmove", "touchend"]) {
             this._eventsOfInterest[eventType] = true;
           }
         }
         break;
     }
 
     return this._eventsOfInterest;
   },
 
   _eventMap: {
-    'touchstart': 'pointerdown',
-    'mousedown': 'pointerdown',
-    'touchmove': 'pointermove',
-    'mousemove': 'pointermove',
-    'touchend': 'pointerup',
-    'mouseup': 'pointerup'
+    "touchstart": "pointerdown",
+    "mousedown": "pointerdown",
+    "touchmove": "pointermove",
+    "mousemove": "pointermove",
+    "touchend": "pointerup",
+    "mouseup": "pointerup"
   },
 
   start: function PointerRelay_start(aOnPointerEvent) {
-    Logger.debug('PointerRelay.start');
+    Logger.debug("PointerRelay.start");
     this.onPointerEvent = aOnPointerEvent;
     for (let eventType in this._eventsOfInterest) {
       Utils.win.addEventListener(eventType, this, true, true);
     }
   },
 
   stop: function PointerRelay_stop() {
-    Logger.debug('PointerRelay.stop');
+    Logger.debug("PointerRelay.stop");
     delete this.lastPointerMove;
     delete this.onPointerEvent;
     for (let eventType in this._eventsOfInterest) {
       Utils.win.removeEventListener(eventType, this, true, true);
     }
   },
 
   handleEvent: function PointerRelay_handleEvent(aEvent) {
     // Don't bother with chrome mouse events.
-    if (Utils.MozBuildApp === 'browser' &&
+    if (Utils.MozBuildApp === "browser" &&
       aEvent.view.top instanceof Ci.nsIDOMChromeWindow) {
       return;
     }
     if (aEvent.mozInputSource === Ci.nsIDOMMouseEvent.MOZ_SOURCE_UNKNOWN ||
         aEvent.isSynthesized) {
       // Ignore events that are scripted or clicks from the a11y API.
       return;
     }
 
     let changedTouches = aEvent.changedTouches || [{
       identifier: MOUSE_ID,
       screenX: aEvent.screenX,
       screenY: aEvent.screenY,
       target: aEvent.target
     }];
 
-    if (Utils.widgetToolkit === 'android' &&
+    if (Utils.widgetToolkit === "android" &&
       changedTouches.length === 1 && changedTouches[0].identifier === 1) {
       return;
     }
 
     if (changedTouches.length === 1 &&
         changedTouches[0].identifier === SYNTH_ID) {
       return;
     }
@@ -149,23 +149,23 @@ var PointerRelay = { // jshint ignore:li
         }
       )
     });
   }
 };
 
 this.PointerAdapter = { // jshint ignore:line
   start: function PointerAdapter_start() {
-    Logger.debug('PointerAdapter.start');
+    Logger.debug("PointerAdapter.start");
     GestureTracker.reset();
     PointerRelay.start(this.handleEvent);
   },
 
   stop: function PointerAdapter_stop() {
-    Logger.debug('PointerAdapter.stop');
+    Logger.debug("PointerAdapter.stop");
     PointerRelay.stop();
     GestureTracker.reset();
   },
 
   handleEvent: function PointerAdapter_handleEvent(aDetail) {
     let timeStamp = Date.now();
     GestureTracker.handle(aDetail, timeStamp);
   }
--- a/accessible/jsat/Presentation.jsm
+++ b/accessible/jsat/Presentation.jsm
@@ -1,46 +1,46 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* exported Presentation */
 
-'use strict';
+"use strict";
 
 const {utils: Cu, interfaces: Ci} = Components;
 
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
-Cu.import('resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Logger', // jshint ignore:line
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'PivotContext', // jshint ignore:line
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'UtteranceGenerator', // jshint ignore:line
-  'resource://gre/modules/accessibility/OutputGenerator.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'BrailleGenerator', // jshint ignore:line
-  'resource://gre/modules/accessibility/OutputGenerator.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Roles', // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'States', // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+Cu.import("resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Logger", // jshint ignore:line
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "PivotContext", // jshint ignore:line
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "UtteranceGenerator", // jshint ignore:line
+  "resource://gre/modules/accessibility/OutputGenerator.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "BrailleGenerator", // jshint ignore:line
+  "resource://gre/modules/accessibility/OutputGenerator.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Roles", // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "States", // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
 
-this.EXPORTED_SYMBOLS = ['Presentation']; // jshint ignore:line
+this.EXPORTED_SYMBOLS = ["Presentation"]; // jshint ignore:line
 
 /**
  * The interface for all presenter classes. A presenter could be, for example,
  * a speech output module, or a visual cursor indicator.
  */
 function Presenter() {}
 
 Presenter.prototype = {
   /**
    * The type of presenter. Used for matching it with the appropriate output method.
    */
-  type: 'Base',
+  type: "Base",
 
   /**
    * The virtual cursor's position changed.
    * @param {PivotContext} aContext the context object for the new pivot
    *   position.
    * @param {int} aReason the reason for the pivot change.
    *   See nsIAccessiblePivot.
    * @param {bool} aIsFromUserInput the pivot change was invoked by the user
@@ -140,17 +140,17 @@ Presenter.prototype = {
 
 /**
  * Visual presenter. Draws a box around the virtual cursor's position.
  */
 function VisualPresenter() {}
 
 VisualPresenter.prototype = Object.create(Presenter.prototype);
 
-VisualPresenter.prototype.type = 'Visual';
+VisualPresenter.prototype.type = "Visual";
 
 /**
  * The padding in pixels between the object and the highlight border.
  */
 VisualPresenter.prototype.BORDER_PADDING = 2;
 
 VisualPresenter.prototype.viewportChanged =
   function VisualPresenter_viewportChanged(aWindow, aCurrentContext) {
@@ -163,17 +163,17 @@ VisualPresenter.prototype.viewportChange
     let end = aCurrentContext.endOffset;
     if (Utils.isAliveAndVisible(currentAcc)) {
       let bounds = (start === -1 && end === -1) ? Utils.getBounds(currentAcc) :
                    Utils.getTextBounds(currentAcc, start, end);
 
       return {
         type: this.type,
         details: {
-          eventType: 'viewport-change',
+          eventType: "viewport-change",
           bounds: bounds,
           padding: this.BORDER_PADDING
         }
       };
     }
 
     return null;
   };
@@ -192,49 +192,49 @@ VisualPresenter.prototype.pivotChanged =
       let bounds = (aContext.startOffset === -1 && aContext.endOffset === -1) ?
             aContext.bounds : Utils.getTextBounds(aContext.accessibleForBounds,
                                                   aContext.startOffset,
                                                   aContext.endOffset);
 
       return {
         type: this.type,
         details: {
-          eventType: 'vc-change',
+          eventType: "vc-change",
           bounds: bounds,
           padding: this.BORDER_PADDING
         }
       };
     } catch (e) {
-      Logger.logException(e, 'Failed to get bounds');
+      Logger.logException(e, "Failed to get bounds");
       return null;
     }
   };
 
 VisualPresenter.prototype.tabSelected =
   function VisualPresenter_tabSelected(aDocContext, aVCContext) {
     return this.pivotChanged(aVCContext, Ci.nsIAccessiblePivot.REASON_NONE);
   };
 
 VisualPresenter.prototype.tabStateChanged =
   function VisualPresenter_tabStateChanged(aDocObj, aPageState) {
-    if (aPageState == 'newdoc') {
-      return {type: this.type, details: {eventType: 'tabstate-change'}};
+    if (aPageState == "newdoc") {
+      return {type: this.type, details: {eventType: "tabstate-change"}};
     }
 
     return null;
   };
 
 /**
  * Android presenter. Fires Android a11y events.
  */
 function AndroidPresenter() {}
 
 AndroidPresenter.prototype = Object.create(Presenter.prototype);
 
-AndroidPresenter.prototype.type = 'Android';
+AndroidPresenter.prototype.type = "Android";
 
 // Android AccessibilityEvent type constants.
 AndroidPresenter.prototype.ANDROID_VIEW_CLICKED = 0x01;
 AndroidPresenter.prototype.ANDROID_VIEW_LONG_CLICKED = 0x02;
 AndroidPresenter.prototype.ANDROID_VIEW_SELECTED = 0x04;
 AndroidPresenter.prototype.ANDROID_VIEW_FOCUSED = 0x08;
 AndroidPresenter.prototype.ANDROID_VIEW_TEXT_CHANGED = 0x10;
 AndroidPresenter.prototype.ANDROID_WINDOW_STATE_CHANGED = 0x20;
@@ -436,17 +436,17 @@ AndroidPresenter.prototype.viewportChang
 
 AndroidPresenter.prototype.editingModeChanged =
   function AndroidPresenter_editingModeChanged(aIsEditing) {
     return this.announce(UtteranceGenerator.genForEditingMode(aIsEditing));
   };
 
 AndroidPresenter.prototype.announce =
   function AndroidPresenter_announce(aAnnouncement) {
-    let localizedAnnouncement = Utils.localize(aAnnouncement).join(' ');
+    let localizedAnnouncement = Utils.localize(aAnnouncement).join(" ");
     return {
       type: this.type,
       details: [{
         eventType: (Utils.AndroidSdkVersion >= 16) ?
           this.ANDROID_ANNOUNCEMENT : this.ANDROID_VIEW_TEXT_CHANGED,
         text: [localizedAnnouncement],
         addedCount: localizedAnnouncement.length,
         removedCount: 0,
@@ -464,60 +464,60 @@ AndroidPresenter.prototype.liveRegion =
 
 AndroidPresenter.prototype.noMove =
   function AndroidPresenter_noMove(aMoveMethod) {
     return {
       type: this.type,
       details: [
       { eventType: this.ANDROID_VIEW_ACCESSIBILITY_FOCUSED,
         exitView: aMoveMethod,
-        text: ['']
+        text: [""]
       }]
     };
   };
 
 /**
  * A B2G presenter for Gaia.
  */
 function B2GPresenter() {}
 
 B2GPresenter.prototype = Object.create(Presenter.prototype);
 
-B2GPresenter.prototype.type = 'B2G';
+B2GPresenter.prototype.type = "B2G";
 
 B2GPresenter.prototype.keyboardEchoSetting =
-  new PrefCache('accessibility.accessfu.keyboard_echo');
+  new PrefCache("accessibility.accessfu.keyboard_echo");
 B2GPresenter.prototype.NO_ECHO = 0;
 B2GPresenter.prototype.CHARACTER_ECHO = 1;
 B2GPresenter.prototype.WORD_ECHO = 2;
 B2GPresenter.prototype.CHARACTER_AND_WORD_ECHO = 3;
 
 /**
  * A pattern used for haptic feedback.
  * @type {Array}
  */
 B2GPresenter.prototype.PIVOT_CHANGE_HAPTIC_PATTERN = [40];
 
 /**
  * Pivot move reasons.
  * @type {Array}
  */
-B2GPresenter.prototype.pivotChangedReasons = ['none', 'next', 'prev', 'first',
-                                              'last', 'text', 'point'];
+B2GPresenter.prototype.pivotChangedReasons = ["none", "next", "prev", "first",
+                                              "last", "text", "point"];
 
 B2GPresenter.prototype.pivotChanged =
   function B2GPresenter_pivotChanged(aContext, aReason, aIsUserInput) {
     if (!aContext.accessible) {
       return null;
     }
 
     return {
       type: this.type,
       details: {
-        eventType: 'vc-change',
+        eventType: "vc-change",
         data: UtteranceGenerator.genForContext(aContext),
         options: {
           pattern: this.PIVOT_CHANGE_HAPTIC_PATTERN,
           isKey: Utils.isActivatableOnFingerUp(aContext.accessible),
           reason: this.pivotChangedReasons[aReason],
           isUserInput: aIsUserInput,
           hints: aContext.interactionHints
         }
@@ -525,17 +525,17 @@ B2GPresenter.prototype.pivotChanged =
     };
   };
 
 B2GPresenter.prototype.nameChanged =
   function B2GPresenter_nameChanged(aAccessible, aIsPolite = true) {
     return {
       type: this.type,
       details: {
-        eventType: 'name-change',
+        eventType: "name-change",
         data: aAccessible.name,
         options: {enqueue: aIsPolite}
       }
     };
   };
 
 B2GPresenter.prototype.valueChanged =
   function B2GPresenter_valueChanged(aAccessible, aIsPolite = true) {
@@ -543,27 +543,27 @@ B2GPresenter.prototype.valueChanged =
     // the editable value changes are handled in the text changed presenter
     if (Utils.getState(aAccessible).contains(States.EDITABLE)) {
       return null;
     }
 
     return {
       type: this.type,
       details: {
-        eventType: 'value-change',
+        eventType: "value-change",
         data: aAccessible.value,
         options: {enqueue: aIsPolite}
       }
     };
   };
 
 B2GPresenter.prototype.textChanged = function B2GPresenter_textChanged(
   aAccessible, aIsInserted, aStart, aLength, aText, aModifiedText) {
     let echoSetting = this.keyboardEchoSetting.value;
-    let text = '';
+    let text = "";
 
     if (echoSetting == this.CHARACTER_ECHO ||
         echoSetting == this.CHARACTER_AND_WORD_ECHO) {
       text = aModifiedText;
     }
 
     // add word if word boundary is added
     if ((echoSetting == this.WORD_ECHO ||
@@ -579,89 +579,89 @@ B2GPresenter.prototype.textChanged = fun
       if (endBefore.value !== endAfter.value) {
         text += maybeWord;
       }
     }
 
     return {
       type: this.type,
       details: {
-        eventType: 'text-change',
+        eventType: "text-change",
         data: text
       }
     };
 
   };
 
 B2GPresenter.prototype.actionInvoked =
   function B2GPresenter_actionInvoked(aObject, aActionName) {
     return {
       type: this.type,
       details: {
-        eventType: 'action',
+        eventType: "action",
         data: UtteranceGenerator.genForAction(aObject, aActionName)
       }
     };
   };
 
 B2GPresenter.prototype.liveRegion = function B2GPresenter_liveRegion(aContext,
   aIsPolite, aIsHide, aModifiedText) {
     return {
       type: this.type,
       details: {
-        eventType: 'liveregion-change',
+        eventType: "liveregion-change",
         data: UtteranceGenerator.genForLiveRegion(aContext, aIsHide,
           aModifiedText),
         options: {enqueue: aIsPolite}
       }
     };
   };
 
 B2GPresenter.prototype.announce =
   function B2GPresenter_announce(aAnnouncement) {
     return {
       type: this.type,
       details: {
-        eventType: 'announcement',
+        eventType: "announcement",
         data: aAnnouncement
       }
     };
   };
 
 B2GPresenter.prototype.noMove =
   function B2GPresenter_noMove(aMoveMethod) {
     return {
       type: this.type,
       details: {
-        eventType: 'no-move',
+        eventType: "no-move",
         data: aMoveMethod
       }
     };
   };
 
 /**
  * A braille presenter
  */
 function BraillePresenter() {}
 
 BraillePresenter.prototype = Object.create(Presenter.prototype);
 
-BraillePresenter.prototype.type = 'Braille';
+BraillePresenter.prototype.type = "Braille";
 
 BraillePresenter.prototype.pivotChanged =
   function BraillePresenter_pivotChanged(aContext) {
     if (!aContext.accessible) {
       return null;
     }
 
     return {
       type: this.type,
       details: {
         output: Utils.localize(BrailleGenerator.genForContext(aContext)).join(
-          ' '),
+          " "),
         selectionStart: 0,
         selectionEnd: 0
       }
     };
   };
 
 BraillePresenter.prototype.textSelectionChanged =
   function BraillePresenter_textSelectionChanged(aText, aStart, aEnd) {
@@ -673,19 +673,19 @@ BraillePresenter.prototype.textSelection
       }
     };
   };
 
 this.Presentation = { // jshint ignore:line
   get presenters() {
     delete this.presenters;
     let presenterMap = {
-      'mobile/android': [VisualPresenter, AndroidPresenter],
-      'b2g': [VisualPresenter, B2GPresenter],
-      'browser': [VisualPresenter, B2GPresenter, AndroidPresenter]
+      "mobile/android": [VisualPresenter, AndroidPresenter],
+      "b2g": [VisualPresenter, B2GPresenter],
+      "browser": [VisualPresenter, B2GPresenter, AndroidPresenter]
     };
     this.presenters = presenterMap[Utils.MozBuildApp].map(P => new P());
     return this.presenters;
   },
 
   get displayedAccessibles() {
     delete this.displayedAccessibles;
     this.displayedAccessibles = new WeakMap();
--- a/accessible/jsat/Traversal.jsm
+++ b/accessible/jsat/Traversal.jsm
@@ -1,33 +1,33 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* exported TraversalRules, TraversalHelper */
 
-'use strict';
+"use strict";
 
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
-this.EXPORTED_SYMBOLS = ['TraversalRules', 'TraversalHelper']; // jshint ignore:line
+this.EXPORTED_SYMBOLS = ["TraversalRules", "TraversalHelper"]; // jshint ignore:line
 
-Cu.import('resource://gre/modules/accessibility/Utils.jsm');
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Roles',  // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Filters',  // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'States',  // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Prefilters',  // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
+Cu.import("resource://gre/modules/accessibility/Utils.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Roles",  // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Filters",  // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "States",  // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Prefilters",  // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
 
-var gSkipEmptyImages = new PrefCache('accessibility.accessfu.skip_empty_images');
+var gSkipEmptyImages = new PrefCache("accessibility.accessfu.skip_empty_images");
 
 function BaseTraversalRule(aRoles, aMatchFunc, aPreFilter, aContainerRule) {
   this._explicitMatchRoles = new Set(aRoles);
   this._matchRoles = aRoles;
   if (aRoles.length) {
     if (aRoles.indexOf(Roles.LABEL) < 0) {
       this._matchRoles.push(Roles.LABEL);
     }
@@ -227,23 +227,23 @@ this.TraversalRules = { // jshint ignore
   Section: new BaseTraversalRule(
     [],
     function Section_match(aAccessible) {
       if (aAccessible.role === Roles.HEADING) {
         return Filters.MATCH;
       }
 
       let matchedRole = Utils.matchRoles(aAccessible, [
-        'banner',
-        'complementary',
-        'contentinfo',
-        'main',
-        'navigation',
-        'search',
-        'region'
+        "banner",
+        "complementary",
+        "contentinfo",
+        "main",
+        "navigation",
+        "search",
+        "region"
         ]);
 
       return matchedRole ? Filters.MATCH : Filters.IGNORE;
     }, null, true),
 
   Entry: new BaseTraversalRule(
     [Roles.ENTRY,
      Roles.PASSWORD_TEXT]),
@@ -356,17 +356,17 @@ this.TraversalRules = { // jshint ignore
     [Roles.TABLE]),
 
   Checkbox: new BaseTraversalRule(
     [Roles.CHECKBUTTON,
      Roles.CHECK_MENU_ITEM,
      Roles.SWITCH /* A type of checkbox that represents on/off values */]),
 
   _shouldSkipImage: function _shouldSkipImage(aAccessible) {
-    if (gSkipEmptyImages.value && aAccessible.name === '') {
+    if (gSkipEmptyImages.value && aAccessible.name === "") {
       return Filters.IGNORE;
     }
     return Filters.MATCH;
   }
 };
 
 this.TraversalHelper = {
   _helperPivotCache: null,
--- a/accessible/jsat/Utils.jsm
+++ b/accessible/jsat/Utils.jsm
@@ -1,49 +1,49 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* exported Utils, Logger, PivotContext, PrefCache */
 
-'use strict';
+"use strict";
 
 const {classes: Cc, utils: Cu, interfaces: Ci} = Components;
 
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Services', // jshint ignore:line
-  'resource://gre/modules/Services.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Rect', // jshint ignore:line
-  'resource://gre/modules/Geometry.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Roles', // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Events', // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Relations', // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'States', // jshint ignore:line
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'PluralForm', // jshint ignore:line
-  'resource://gre/modules/PluralForm.jsm');
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Services", // jshint ignore:line
+  "resource://gre/modules/Services.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Rect", // jshint ignore:line
+  "resource://gre/modules/Geometry.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Roles", // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Events", // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Relations", // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "States", // jshint ignore:line
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "PluralForm", // jshint ignore:line
+  "resource://gre/modules/PluralForm.jsm");
 
-this.EXPORTED_SYMBOLS = ['Utils', 'Logger', 'PivotContext', 'PrefCache']; // jshint ignore:line
+this.EXPORTED_SYMBOLS = ["Utils", "Logger", "PivotContext", "PrefCache"]; // jshint ignore:line
 
 this.Utils = { // jshint ignore:line
   _buildAppMap: {
-    '{3c2e2abc-06d4-11e1-ac3b-374f68613e61}': 'b2g',
-    '{d1bfe7d9-c01e-4237-998b-7b5f960a4314}': 'graphene',
-    '{ec8030f7-c20a-464f-9b0e-13a3a9e97384}': 'browser',
-    '{aa3c5121-dab2-40e2-81ca-7ea25febc110}': 'mobile/android',
-    '{a23983c0-fd0e-11dc-95ff-0800200c9a66}': 'mobile/xul'
+    "{3c2e2abc-06d4-11e1-ac3b-374f68613e61}": "b2g",
+    "{d1bfe7d9-c01e-4237-998b-7b5f960a4314}": "graphene",
+    "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}": "browser",
+    "{aa3c5121-dab2-40e2-81ca-7ea25febc110}": "mobile/android",
+    "{a23983c0-fd0e-11dc-95ff-0800200c9a66}": "mobile/xul"
   },
 
   init: function Utils_init(aWindow) {
     if (this._win) {
       // XXX: only supports attaching to one window now.
-      throw new Error('Only one top-level window could used with AccessFu');
+      throw new Error("Only one top-level window could used with AccessFu");
     }
     this._win = Cu.getWeakReference(aWindow);
   },
 
   uninit: function Utils_uninit() {
     if (!this._win) {
       return;
     }
@@ -63,17 +63,17 @@ this.Utils = { // jshint ignore:line
       return null;
     }
     return win.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(
       Ci.nsIDOMWindowUtils);
   },
 
   get AccService() {
     if (!this._AccService) {
-      this._AccService = Cc['@mozilla.org/accessibilityService;1'].
+      this._AccService = Cc["@mozilla.org/accessibilityService;1"].
         getService(Ci.nsIAccessibilityService);
     }
 
     return this._AccService;
   },
 
   set MozBuildApp(value) {
     this._buildApp = value;
@@ -98,26 +98,26 @@ this.Utils = { // jshint ignore:line
       this._widgetToolkit = Services.appinfo.widgetToolkit;
     }
     return this._widgetToolkit;
   },
 
   get ScriptName() {
     if (!this._ScriptName) {
       this._ScriptName =
-        (Services.appinfo.processType == 2) ? 'AccessFuContent' : 'AccessFu';
+        (Services.appinfo.processType == 2) ? "AccessFuContent" : "AccessFu";
     }
     return this._ScriptName;
   },
 
   get AndroidSdkVersion() {
     if (!this._AndroidSdkVersion) {
-      if (Services.appinfo.OS == 'Android') {
+      if (Services.appinfo.OS == "Android") {
         this._AndroidSdkVersion = Services.sysinfo.getPropertyAsInt32(
-          'version');
+          "version");
       } else {
         // Most useful in desktop debugging.
         this._AndroidSdkVersion = 16;
       }
     }
     return this._AndroidSdkVersion;
   },
 
@@ -126,32 +126,32 @@ this.Utils = { // jshint ignore:line
     this._AndroidSdkVersion = value;
   },
 
   get BrowserApp() {
     if (!this.win) {
       return null;
     }
     switch (this.MozBuildApp) {
-      case 'mobile/android':
+      case "mobile/android":
         return this.win.BrowserApp;
-      case 'browser':
+      case "browser":
         return this.win.gBrowser;
-      case 'b2g':
+      case "b2g":
         return this.win.shell;
       default:
         return null;
     }
   },
 
   get CurrentBrowser() {
     if (!this.BrowserApp) {
       return null;
     }
-    if (this.MozBuildApp == 'b2g') {
+    if (this.MozBuildApp == "b2g") {
       return this.BrowserApp.contentBrowser;
     }
     return this.BrowserApp.selectedBrowser;
   },
 
   get CurrentContentDoc() {
     let browser = this.CurrentBrowser;
     return browser ? browser.contentDocument : null;
@@ -159,37 +159,37 @@ this.Utils = { // jshint ignore:line
 
   get AllMessageManagers() {
     let messageManagers = new Set();
 
     function collectLeafMessageManagers(mm) {
       for (let i = 0; i < mm.childCount; i++) {
         let childMM = mm.getChildAt(i);
 
-        if ('sendAsyncMessage' in childMM) {
+        if ("sendAsyncMessage" in childMM) {
           messageManagers.add(childMM);
         } else {
           collectLeafMessageManagers(childMM);
         }
       }
     }
 
     collectLeafMessageManagers(this.win.messageManager);
 
     let document = this.CurrentContentDoc;
 
     if (document) {
-      if (document.location.host === 'b2g') {
+      if (document.location.host === "b2g") {
         // The document is a b2g app chrome (ie. Mulet).
         let contentBrowser = this.win.content.shell.contentBrowser;
         messageManagers.add(this.getMessageManager(contentBrowser));
         document = contentBrowser.contentDocument;
       }
 
-      let remoteframes = document.querySelectorAll('iframe');
+      let remoteframes = document.querySelectorAll("iframe");
 
       for (let i = 0; i < remoteframes.length; ++i) {
         let mm = this.getMessageManager(remoteframes[i]);
         if (mm) {
           messageManagers.add(mm);
         }
       }
 
@@ -212,41 +212,41 @@ this.Utils = { // jshint ignore:line
     // Clean up the white space.
     return localized.filter(word => word).map(word => word.trim()).
       filter(trimmed => trimmed);
   },
 
   get stringBundle() {
     delete this.stringBundle;
     let bundle = Services.strings.createBundle(
-      'chrome://global/locale/AccessFu.properties');
+      "chrome://global/locale/AccessFu.properties");
     this.stringBundle = {
       get: function stringBundle_get(aDetails = {}) {
-        if (!aDetails || typeof aDetails === 'string') {
+        if (!aDetails || typeof aDetails === "string") {
           return aDetails;
         }
-        let str = '';
+        let str = "";
         let string = aDetails.string;
         if (!string) {
           return str;
         }
         try {
           let args = aDetails.args;
           let count = aDetails.count;
           if (args) {
             str = bundle.formatStringFromName(string, args, args.length);
           } else {
             str = bundle.GetStringFromName(string);
           }
           if (count) {
             str = PluralForm.get(count, str);
-            str = str.replace('#1', count);
+            str = str.replace("#1", count);
           }
         } catch (e) {
-          Logger.debug('Failed to get a string from a bundle for', string);
+          Logger.debug("Failed to get a string from a bundle for", string);
         } finally {
           return str;
         }
       }
     };
     return this.stringBundle;
   },
 
@@ -359,29 +359,29 @@ this.Utils = { // jshint ignore:line
     while (acc) {
       if (acc == aSubTreeRoot) {
         return true;
       }
 
       try {
         acc = acc.parent;
       } catch (x) {
-        Logger.debug('Failed to get parent:', x);
+        Logger.debug("Failed to get parent:", x);
         acc = null;
       }
     }
 
     return false;
   },
 
   isHidden: function isHidden(aAccessible) {
     // Need to account for aria-hidden, so can't just check for INVISIBLE
     // state.
     let hidden = Utils.getAttributes(aAccessible).hidden;
-    return hidden && hidden === 'true';
+    return hidden && hidden === "true";
   },
 
   visibleChildCount: function visibleChildCount(aAccessible) {
     let count = 0;
     for (let child = aAccessible.firstChild; child; child = child.nextSibling) {
       if (!this.isHidden(child)) {
         ++count;
       }
@@ -413,54 +413,54 @@ this.Utils = { // jshint ignore:line
     } catch (x) {
       return false;
     }
 
     return true;
   },
 
   matchAttributeValue: function matchAttributeValue(aAttributeValue, values) {
-    let attrSet = new Set(aAttributeValue.split(' '));
+    let attrSet = new Set(aAttributeValue.split(" "));
     for (let value of values) {
       if (attrSet.has(value)) {
         return value;
       }
     }
   },
 
   getLandmarkName: function getLandmarkName(aAccessible) {
     return this.matchRoles(aAccessible, [
-      'banner',
-      'complementary',
-      'contentinfo',
-      'main',
-      'navigation',
-      'search'
+      "banner",
+      "complementary",
+      "contentinfo",
+      "main",
+      "navigation",
+      "search"
     ]);
   },
 
   getMathRole: function getMathRole(aAccessible) {
     return this.matchRoles(aAccessible, [
-      'base',
-      'close-fence',
-      'denominator',
-      'numerator',
-      'open-fence',
-      'overscript',
-      'presubscript',
-      'presuperscript',
-      'root-index',
-      'subscript',
-      'superscript',
-      'underscript'
+      "base",
+      "close-fence",
+      "denominator",
+      "numerator",
+      "open-fence",
+      "overscript",
+      "presubscript",
+      "presuperscript",
+      "root-index",
+      "subscript",
+      "superscript",
+      "underscript"
     ]);
   },
 
   matchRoles: function matchRoles(aAccessible, aRoles) {
-    let roles = this.getAttributes(aAccessible)['xml-roles'];
+    let roles = this.getAttributes(aAccessible)["xml-roles"];
     if (!roles) {
       return;
     }
 
     // Looking up a role that would match any in the provided roles.
     return this.matchAttributeValue(roles, aRoles);
   },
 
@@ -476,29 +476,29 @@ this.Utils = { // jshint ignore:line
     }
 
     return null;
   },
 
   isListItemDecorator: function isListItemDecorator(aStaticText,
                                                     aExcludeOrdered) {
     let parent = aStaticText.parent;
-    if (aExcludeOrdered && parent.parent.DOMNode.nodeName === 'OL') {
+    if (aExcludeOrdered && parent.parent.DOMNode.nodeName === "OL") {
       return false;
     }
 
     return parent.role === Roles.LISTITEM && parent.childCount > 1 &&
       aStaticText.indexInParent === 0;
   },
 
   dispatchChromeEvent: function dispatchChromeEvent(aType, aDetails) {
     let details = {
       type: aType,
       details: JSON.stringify(
-        typeof aDetails === 'string' ? { eventType: aDetails } : aDetails)
+        typeof aDetails === "string" ? { eventType: aDetails } : aDetails)
     };
     let window = this.win;
     let shell = window.shell || window.content.shell;
     if (shell) {
       // On B2G device.
       shell.sendChromeEvent(details);
     } else {
       // Dispatch custom event to have support for desktop and screen reader
@@ -511,17 +511,17 @@ this.Utils = { // jshint ignore:line
     }
 
   },
 
   isActivatableOnFingerUp: function isActivatableOnFingerUp(aAccessible) {
     if (aAccessible.role === Roles.KEY) {
       return true;
     }
-    let quick_activate = this.getAttributes(aAccessible)['moz-quick-activate'];
+    let quick_activate = this.getAttributes(aAccessible)["moz-quick-activate"];
     return quick_activate && JSON.parse(quick_activate);
   }
 };
 
 /**
  * State object used internally to process accessible's states.
  * @param {Number} aBase     Base state.
  * @param {Number} aExtended Extended state.
@@ -537,41 +537,41 @@ State.prototype = {
   },
   toString: function State_toString() {
     let stateStrings = Utils.AccService.
       getStringStates(this.base, this.extended);
     let statesArray = new Array(stateStrings.length);
     for (let i = 0; i < statesArray.length; i++) {
       statesArray[i] = stateStrings.item(i);
     }
-    return '[' + statesArray.join(', ') + ']';
+    return "[" + statesArray.join(", ") + "]";
   }
 };
 
 this.Logger = { // jshint ignore:line
   GESTURE: -1,
   DEBUG: 0,
   INFO: 1,
   WARNING: 2,
   ERROR: 3,
-  _LEVEL_NAMES: ['GESTURE', 'DEBUG', 'INFO', 'WARNING', 'ERROR'],
+  _LEVEL_NAMES: ["GESTURE", "DEBUG", "INFO", "WARNING", "ERROR"],
 
   logLevel: 1, // INFO;
 
   test: false,
 
   log: function log(aLogLevel) {
     if (aLogLevel < this.logLevel) {
       return;
     }
 
     let args = Array.prototype.slice.call(arguments, 1);
-    let message = (typeof(args[0]) === 'function' ? args[0]() : args).join(' ');
-    message = '[' + Utils.ScriptName + '] ' + this._LEVEL_NAMES[aLogLevel + 1] +
-      ' ' + message + '\n';
+    let message = (typeof(args[0]) === "function" ? args[0]() : args).join(" ");
+    message = "[" + Utils.ScriptName + "] " + this._LEVEL_NAMES[aLogLevel + 1] +
+      " " + message + "\n";
     dump(message);
     // Note: used for testing purposes. If |this.test| is true, also log to
     // the console service.
     if (this.test) {
       try {
         Services.console.logStringMessage(message);
       } catch (ex) {
         // There was an exception logging to the console service.
@@ -600,72 +600,72 @@ this.Logger = { // jshint ignore:line
   },
 
   error: function error() {
     this.log.apply(
       this, [this.ERROR].concat(Array.prototype.slice.call(arguments)));
   },
 
   logException: function logException(
-    aException, aErrorMessage = 'An exception has occured') {
+    aException, aErrorMessage = "An exception has occured") {
     try {
-      let stackMessage = '';
+      let stackMessage = "";
       if (aException.stack) {
-        stackMessage = '  ' + aException.stack.replace(/\n/g, '\n  ');
+        stackMessage = "  " + aException.stack.replace(/\n/g, "\n  ");
       } else if (aException.location) {
         let frame = aException.location;
         let stackLines = [];
         while (frame && frame.lineNumber) {
           stackLines.push(
-            '  ' + frame.name + '@' + frame.filename + ':' + frame.lineNumber);
+            "  " + frame.name + "@" + frame.filename + ":" + frame.lineNumber);
           frame = frame.caller;
         }
-        stackMessage = stackLines.join('\n');
+        stackMessage = stackLines.join("\n");
       } else {
         stackMessage =
-          '(' + aException.fileName + ':' + aException.lineNumber + ')';
+          "(" + aException.fileName + ":" + aException.lineNumber + ")";
       }
-      this.error(aErrorMessage + ':\n ' +
-                 aException.message + '\n' +
+      this.error(aErrorMessage + ":\n " +
+                 aException.message + "\n" +
                  stackMessage);
     } catch (x) {
       this.error(x);
     }
   },
 
   accessibleToString: function accessibleToString(aAccessible) {
     if (!aAccessible) {
-      return '[ null ]';
+      return "[ null ]";
     }
 
     try {
-      return '[ ' + Utils.AccService.getStringRole(aAccessible.role) +
-        ' | ' + aAccessible.name + ' ]';
+      return "[ " + Utils.AccService.getStringRole(aAccessible.role) +
+        " | " + aAccessible.name + " ]";
     } catch (x) {
-      return '[ defunct ]';
+      return "[ defunct ]";
     }
   },
 
   eventToString: function eventToString(aEvent) {
     let str = Utils.AccService.getStringEventType(aEvent.eventType);
     if (aEvent.eventType == Events.STATE_CHANGE) {
       let event = aEvent.QueryInterface(Ci.nsIAccessibleStateChangeEvent);
       let stateStrings = event.isExtraState ?
         Utils.AccService.getStringStates(0, event.state) :
         Utils.AccService.getStringStates(event.state, 0);
-      str += ' (' + stateStrings.item(0) + ')';
+      str += " (" + stateStrings.item(0) + ")";
     }
 
     if (aEvent.eventType == Events.VIRTUALCURSOR_CHANGED) {
       let event = aEvent.QueryInterface(
         Ci.nsIAccessibleVirtualCursorChangeEvent);
       let pivot = aEvent.accessible.QueryInterface(
         Ci.nsIAccessibleDocument).virtualCursor;
-      str += ' (' + this.accessibleToString(event.oldAccessible) + ' -> ' +
-        this.accessibleToString(pivot.position) + ')';
+      str += " (" + this.accessibleToString(event.oldAccessible) + " -> " +
+        this.accessibleToString(pivot.position) + ")";
     }
 
     return str;
   },
 
   statesToString: function statesToString(aAccessible) {
     return Utils.getState(aAccessible).toString();
   },
@@ -675,23 +675,23 @@ this.Logger = { // jshint ignore:line
       return;
     }
 
     this._dumpTreeInternal(aLogLevel, aRootAccessible, 0);
   },
 
   _dumpTreeInternal:
     function _dumpTreeInternal(aLogLevel, aAccessible, aIndent) {
-      let indentStr = '';
+      let indentStr = "";
       for (let i = 0; i < aIndent; i++) {
-        indentStr += ' ';
+        indentStr += " ";
       }
       this.log(aLogLevel, indentStr,
                this.accessibleToString(aAccessible),
-               '(' + this.statesToString(aAccessible) + ')');
+               "(" + this.statesToString(aAccessible) + ")");
       for (let i = 0; i < aAccessible.childCount; i++) {
         this._dumpTreeInternal(aLogLevel, aAccessible.getChildAt(i),
           aIndent + 1);
       }
     }
 };
 
 /**
@@ -749,26 +749,26 @@ PivotContext.prototype = {
                             Ci.nsIAccessibleText.TEXT_OFFSET_END_OF_TEXT)};
       let hypertextAcc = this._accessible.QueryInterface(
         Ci.nsIAccessibleHyperText);
 
       // Iterate through the links in backwards order so text replacements don't
       // affect the offsets of links yet to be processed.
       for (let i = hypertextAcc.linkCount - 1; i >= 0; i--) {
         let link = hypertextAcc.getLinkAt(i);
-        let linkText = '';
+        let linkText = "";
         if (link instanceof Ci.nsIAccessibleText) {
           linkText = link.QueryInterface(Ci.nsIAccessibleText).
                           getText(0,
                             Ci.nsIAccessibleText.TEXT_OFFSET_END_OF_TEXT);
         }
 
         let start = link.startIndex;
         let end = link.endIndex;
-        for (let offset of ['startOffset', 'endOffset']) {
+        for (let offset of ["startOffset", "endOffset"]) {
           if (this[offset] >= end) {
             result[offset] += linkText.length - (end - start);
           }
         }
         result.text = result.text.substring(0, start) + linkText +
                       result.text.substring(end);
       }
 
@@ -787,17 +787,17 @@ PivotContext.prototype = {
     let ancestry = [];
     let parent = aAccessible;
     try {
       while (parent && (parent = parent.parent)) {
        ancestry.push(parent);
       }
     } catch (x) {
       // A defunct accessible will raise an exception geting parent.
-      Logger.debug('Failed to get parent:', x);
+      Logger.debug("Failed to get parent:", x);
     }
     return ancestry.reverse();
   },
 
   /**
    * A list of the old accessible's ancestry.
    */
   get oldAncestry() {
@@ -874,23 +874,23 @@ PivotContext.prototype = {
 
   /**
    * Get interaction hints for the context ancestry.
    * @return {Array} Array of interaction hints.
    */
   get interactionHints() {
     let hints = [];
     this.newAncestry.concat(this.accessible).reverse().forEach(aAccessible => {
-      let hint = Utils.getAttributes(aAccessible)['moz-hint'];
+      let hint = Utils.getAttributes(aAccessible)["moz-hint"];
       if (hint) {
         hints.push(hint);
       } else if (aAccessible.actionCount > 0) {
         hints.push({
           string: Utils.AccService.getStringRole(
-            aAccessible.role).replace(/\s/g, '') + '-hint'
+            aAccessible.role).replace(/\s/g, "") + "-hint"
         });
       }
     });
     return hints;
   },
 
   /*
    * A subtree generator function, used to generate a flattened
@@ -941,17 +941,17 @@ PivotContext.prototype = {
         yield enumerator.getNext().QueryInterface(Ci.nsIAccessible).name;
       }
     };
 
     cellInfo.current = getAccessibleCell(aAccessible);
 
     if (!cellInfo.current) {
       Logger.warning(aAccessible,
-        'does not support nsIAccessibleTableCell interface.');
+        "does not support nsIAccessibleTableCell interface.");
       this._cells.set(domNode, null);
       return null;
     }
 
     let table = cellInfo.current.table;
     if (table.isProbablyForLayout()) {
       this._cells.set(domNode, null);
       return null;
@@ -1053,17 +1053,17 @@ PrefCache.prototype = {
     } catch (x) {
       // Pref does not exist.
       return null;
     }
   },
 
   observe: function observe(aSubject) {
     this.value = this._getValue(aSubject.QueryInterface(Ci.nsIPrefBranch));
-    Logger.info('pref changed', this.name, this.value);
+    Logger.info("pref changed", this.name, this.value);
     if (this.callback) {
       try {
         this.callback(this.name, this.value, false);
       } catch (x) {
         Logger.logException(x);
       }
     }
   },
--- a/accessible/jsat/content-script.js
+++ b/accessible/jsat/content-script.js
@@ -2,152 +2,152 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* eslint-env mozilla/frame-script */
 
 var Ci = Components.interfaces;
 var Cu = Components.utils;
 
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Logger',
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Presentation',
-  'resource://gre/modules/accessibility/Presentation.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Utils',
-  'resource://gre/modules/accessibility/Utils.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'EventManager',
-  'resource://gre/modules/accessibility/EventManager.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'ContentControl',
-  'resource://gre/modules/accessibility/ContentControl.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'Roles',
-  'resource://gre/modules/accessibility/Constants.jsm');
-XPCOMUtils.defineLazyModuleGetter(this, 'States',
-  'resource://gre/modules/accessibility/Constants.jsm');
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Logger",
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Presentation",
+  "resource://gre/modules/accessibility/Presentation.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Utils",
+  "resource://gre/modules/accessibility/Utils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "EventManager",
+  "resource://gre/modules/accessibility/EventManager.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "ContentControl",
+  "resource://gre/modules/accessibility/ContentControl.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Roles",
+  "resource://gre/modules/accessibility/Constants.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "States",
+  "resource://gre/modules/accessibility/Constants.jsm");
 
-Logger.info('content-script.js', content.document.location);
+Logger.info("content-script.js", content.document.location);
 
 var eventManager = null;
 var contentControl = null;
 
 function forwardToParent(aMessage) {
   // XXX: This is a silly way to make a deep copy
   let newJSON = JSON.parse(JSON.stringify(aMessage.json));
-  newJSON.origin = 'child';
+  newJSON.origin = "child";
   sendAsyncMessage(aMessage.name, newJSON);
 }
 
 function forwardToChild(aMessage, aListener, aVCPosition) {
   let acc = aVCPosition || Utils.getVirtualCursor(content.document).position;
 
   if (!Utils.isAliveAndVisible(acc) || acc.role != Roles.INTERNAL_FRAME) {
     return false;
   }
 
   Logger.debug(() => {
-    return ['forwardToChild', Logger.accessibleToString(acc),
-            aMessage.name, JSON.stringify(aMessage.json, null, '  ')];
+    return ["forwardToChild", Logger.accessibleToString(acc),
+            aMessage.name, JSON.stringify(aMessage.json, null, "  ")];
   });
 
   let mm = Utils.getMessageManager(acc.DOMNode);
 
   if (aListener) {
     mm.addMessageListener(aMessage.name, aListener);
   }
 
   // XXX: This is a silly way to make a deep copy
   let newJSON = JSON.parse(JSON.stringify(aMessage.json));
-  newJSON.origin = 'parent';
+  newJSON.origin = "parent";
   if (Utils.isContentProcess) {
     // XXX: OOP content's screen offset is 0,
     // so we remove the real screen offset here.
     newJSON.x -= content.mozInnerScreenX;
     newJSON.y -= content.mozInnerScreenY;
   }
   mm.sendAsyncMessage(aMessage.name, newJSON);
   return true;
 }
 
 function activateContextMenu(aMessage) {
   let position = Utils.getVirtualCursor(content.document).position;
   if (!forwardToChild(aMessage, activateContextMenu, position)) {
     let center = Utils.getBounds(position, true).center();
 
-    let evt = content.document.createEvent('HTMLEvents');
-    evt.initEvent('contextmenu', true, true);
+    let evt = content.document.createEvent("HTMLEvents");
+    evt.initEvent("contextmenu", true, true);
     evt.clientX = center.x;
     evt.clientY = center.y;
     position.DOMNode.dispatchEvent(evt);
   }
 }
 
 function presentCaretChange(aText, aOldOffset, aNewOffset) {
   if (aOldOffset !== aNewOffset) {
     let msg = Presentation.textSelectionChanged(aText, aNewOffset, aNewOffset,
                                                 aOldOffset, aOldOffset, true);
-    sendAsyncMessage('AccessFu:Present', msg);
+    sendAsyncMessage("AccessFu:Present", msg);
   }
 }
 
 function scroll(aMessage) {
   let position = Utils.getVirtualCursor(content.document).position;
   if (!forwardToChild(aMessage, scroll, position)) {
-    sendAsyncMessage('AccessFu:DoScroll',
+    sendAsyncMessage("AccessFu:DoScroll",
                      { bounds: Utils.getBounds(position, true),
                        page: aMessage.json.page,
                        horizontal: aMessage.json.horizontal });
   }
 }
 
 addMessageListener(
-  'AccessFu:Start',
+  "AccessFu:Start",
   function(m) {
     if (m.json.logLevel) {
       Logger.logLevel = Logger[m.json.logLevel];
     }
 
-    Logger.debug('AccessFu:Start');
+    Logger.debug("AccessFu:Start");
     if (m.json.buildApp)
       Utils.MozBuildApp = m.json.buildApp;
 
-    addMessageListener('AccessFu:ContextMenu', activateContextMenu);
-    addMessageListener('AccessFu:Scroll', scroll);
+    addMessageListener("AccessFu:ContextMenu", activateContextMenu);
+    addMessageListener("AccessFu:Scroll", scroll);
 
     if (!contentControl) {
       contentControl = new ContentControl(this);
     }
     contentControl.start();
 
     if (!eventManager) {
       eventManager = new EventManager(this, contentControl);
     }
     eventManager.inTest = m.json.inTest;
     eventManager.start();
 
     function contentStarted() {
       let accDoc = Utils.AccService.getAccessibleFor(content.document);
       if (accDoc && !Utils.getState(accDoc).contains(States.BUSY)) {
-        sendAsyncMessage('AccessFu:ContentStarted');
+        sendAsyncMessage("AccessFu:ContentStarted");
       } else {
         content.setTimeout(contentStarted, 0);
       }
     }
 
     if (m.json.inTest) {
       // During a test we want to wait for the document to finish loading for
       // consistency.
       contentStarted();
     }
   });
 
 addMessageListener(
-  'AccessFu:Stop',
+  "AccessFu:Stop",
   function(m) {
-    Logger.debug('AccessFu:Stop');
+    Logger.debug("AccessFu:Stop");
 
-    removeMessageListener('AccessFu:ContextMenu', activateContextMenu);
-    removeMessageListener('AccessFu:Scroll', scroll);
+    removeMessageListener("AccessFu:ContextMenu", activateContextMenu);
+    removeMessageListener("AccessFu:Scroll", scroll);
 
     eventManager.stop();
     contentControl.stop();
   });
 
-sendAsyncMessage('AccessFu:Ready');
+sendAsyncMessage("AccessFu:Ready");
--- a/accessible/tests/browser/bounds/browser_test_zoom.js
+++ b/accessible/tests/browser/bounds/browser_test_zoom.js
@@ -21,17 +21,17 @@ async function testContentBounds(browser
   let prettyAccName = prettyName(acc);
   is(x, expectedX, "Wrong x coordinate of " + prettyAccName);
   is(y, expectedY, "Wrong y coordinate of " + prettyAccName);
   is(width, expectedWidth, "Wrong width of " + prettyAccName);
   is(height, expectedHeight, "Wrong height of " + prettyAccName);
 }
 
 async function runTests(browser, accDoc) {
-  loadFrameScripts(browser, { name: 'layout.js', dir: MOCHITESTS_DIR });
+  loadFrameScripts(browser, { name: "layout.js", dir: MOCHITESTS_DIR });
 
   let p1 = findAccessibleChildByID(accDoc, "p1");
   let p2 = findAccessibleChildByID(accDoc, "p2");
   let imgmap = findAccessibleChildByID(accDoc, "imgmap");
   if (!imgmap.childCount) {
     // An image map may not be available even after the doc and image load
     // is complete. We don't recieve any DOM events for this change either,
     // so we need to wait for a REORDER.
--- a/accessible/tests/browser/bounds/browser_test_zoom_text.js
+++ b/accessible/tests/browser/bounds/browser_test_zoom_text.js
@@ -11,17 +11,17 @@ async function runTests(browser, accDoc)
     let hyperTextNode = findAccessibleChildByID(accDoc, id);
     let textNode = hyperTextNode.firstChild;
 
     let [x, y, width, height] = getBounds(textNode);
     testTextBounds(hyperTextNode, 0, -1, [x, y, width, height],
                    COORDTYPE_SCREEN_RELATIVE);
   }
 
-  loadFrameScripts(browser, { name: 'layout.js', dir: MOCHITESTS_DIR });
+  loadFrameScripts(browser, { name: "layout.js", dir: MOCHITESTS_DIR });
 
   testTextNode("p1");
   testTextNode("p2");
 
   await ContentTask.spawn(browser, {}, () => {
     zoomDocument(document, 2.0);
   });
 
--- a/accessible/tests/browser/bounds/head.js
+++ b/accessible/tests/browser/bounds/head.js
@@ -1,16 +1,16 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 // Load the shared-head file first.
 /* import-globals-from ../shared-head.js */
 Services.scriptloader.loadSubScript(
-  'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js',
+  "chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js",
   this);
 
 // Loading and common.js from accessible/tests/mochitest/ for all tests, as
 // well as events.js.
-loadScripts({ name: 'common.js', dir: MOCHITESTS_DIR },
-            { name: 'layout.js', dir: MOCHITESTS_DIR }, 'events.js');
+loadScripts({ name: "common.js", dir: MOCHITESTS_DIR },
+            { name: "layout.js", dir: MOCHITESTS_DIR }, "events.js");
--- a/accessible/tests/browser/browser_shutdown_acc_reference.js
+++ b/accessible/tests/browser/browser_shutdown_acc_reference.js
@@ -1,55 +1,55 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Create a11y service.
   let a11yInit = initPromise();
-  let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
 
   await a11yInit;
-  ok(accService, 'Service initialized');
+  ok(accService, "Service initialized");
 
   // Accessible object reference will live longer than the scope of this
   // function.
   let acc = await new Promise(resolve => {
     let intervalId = setInterval(() => {
       let tabAcc = accService.getAccessibleFor(gBrowser.mCurrentTab);
       if (tabAcc) {
         clearInterval(intervalId);
         resolve(tabAcc);
       }
     }, 10);
   });
-  ok(acc, 'Accessible object is created');
+  ok(acc, "Accessible object is created");
 
   let canShutdown = false;
   // This promise will resolve only if canShutdown flag is set to true. If
   // 'a11y-init-or-shutdown' event with '0' flag comes before it can be shut
   // down, the promise will reject.
   let a11yShutdown = new Promise((resolve, reject) =>
     shutdownPromise().then(flag => canShutdown ? resolve() :
-      reject('Accessible service was shut down incorrectly')));
+      reject("Accessible service was shut down incorrectly")));
 
   accService = null;
-  ok(!accService, 'Service is removed');
+  ok(!accService, "Service is removed");
 
   // Force garbage collection that should not trigger shutdown because there is
   // a reference to an accessible object.
   forceGC();
   // Have some breathing room when removing a11y service references.
   await new Promise(resolve => executeSoon(resolve));
 
   // Now allow a11y service to shutdown.
   canShutdown = true;
   // Remove a reference to an accessible object.
   acc = null;
-  ok(!acc, 'Accessible object is removed');
+  ok(!acc, "Accessible object is removed");
 
   // Force garbage collection that should now trigger shutdown.
   forceGC();
   await a11yShutdown;
 });
--- a/accessible/tests/browser/browser_shutdown_doc_acc_reference.js
+++ b/accessible/tests/browser/browser_shutdown_doc_acc_reference.js
@@ -1,47 +1,47 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Create a11y service.
   let a11yInit = initPromise();
-  let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
 
   await a11yInit;
-  ok(accService, 'Service initialized');
+  ok(accService, "Service initialized");
 
   // Accessible document reference will live longer than the scope of this
   // function.
   let docAcc = accService.getAccessibleFor(document);
-  ok(docAcc, 'Accessible document is created');
+  ok(docAcc, "Accessible document is created");
 
   let canShutdown = false;
   // This promise will resolve only if canShutdown flag is set to true. If
   // 'a11y-init-or-shutdown' event with '0' flag comes before it can be shut
   // down, the promise will reject.
   let a11yShutdown = new Promise((resolve, reject) =>
     shutdownPromise().then(flag => canShutdown ? resolve() :
-      reject('Accessible service was shut down incorrectly')));
+      reject("Accessible service was shut down incorrectly")));
 
   accService = null;
-  ok(!accService, 'Service is removed');
+  ok(!accService, "Service is removed");
 
   // Force garbage collection that should not trigger shutdown because there is
   // a reference to an accessible document.
   forceGC();
   // Have some breathing room when removing a11y service references.
   await new Promise(resolve => executeSoon(resolve));
 
   // Now allow a11y service to shutdown.
   canShutdown = true;
   // Remove a reference to an accessible document.
   docAcc = null;
-  ok(!docAcc, 'Accessible document is removed');
+  ok(!docAcc, "Accessible document is removed");
 
   // Force garbage collection that should now trigger shutdown.
   forceGC();
   await a11yShutdown;
 });
--- a/accessible/tests/browser/browser_shutdown_multi_acc_reference_doc.js
+++ b/accessible/tests/browser/browser_shutdown_multi_acc_reference_doc.js
@@ -1,67 +1,67 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Create a11y service.
   let a11yInit = initPromise();
-  let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
 
   await a11yInit;
-  ok(accService, 'Service initialized');
+  ok(accService, "Service initialized");
 
   let docAcc = accService.getAccessibleFor(document);
-  ok(docAcc, 'Accessible document is created');
+  ok(docAcc, "Accessible document is created");
 
   // Accessible object reference will live longer than the scope of this
   // function.
   let acc = await new Promise(resolve => {
     let intervalId = setInterval(() => {
       let tabAcc = accService.getAccessibleFor(gBrowser.mCurrentTab);
       if (tabAcc) {
         clearInterval(intervalId);
         resolve(tabAcc);
       }
     }, 10);
   });
-  ok(acc, 'Accessible object is created');
+  ok(acc, "Accessible object is created");
 
   let canShutdown = false;
   // This promise will resolve only if canShutdown flag is set to true. If
   // 'a11y-init-or-shutdown' event with '0' flag comes before it can be shut
   // down, the promise will reject.
   let a11yShutdown = new Promise((resolve, reject) =>
     shutdownPromise().then(flag => canShutdown ? resolve() :
-      reject('Accessible service was shut down incorrectly')));
+      reject("Accessible service was shut down incorrectly")));
 
   accService = null;
-  ok(!accService, 'Service is removed');
+  ok(!accService, "Service is removed");
 
   // Force garbage collection that should not trigger shutdown because there are
   // references to accessible objects.
   forceGC();
   // Have some breathing room when removing a11y service references.
   await new Promise(resolve => executeSoon(resolve));
 
   // Remove a reference to an accessible object.
   acc = null;
-  ok(!acc, 'Accessible object is removed');
+  ok(!acc, "Accessible object is removed");
   // Force garbage collection that should not trigger shutdown because there is
   // a reference to an accessible document.
   forceGC();
   // Have some breathing room when removing a11y service references.
   await new Promise(resolve => executeSoon(resolve));
 
   // Now allow a11y service to shutdown.
   canShutdown = true;
   // Remove a reference to an accessible document.
   docAcc = null;
-  ok(!docAcc, 'Accessible document is removed');
+  ok(!docAcc, "Accessible document is removed");
 
   // Force garbage collection that should now trigger shutdown.
   forceGC();
   await a11yShutdown;
 });
--- a/accessible/tests/browser/browser_shutdown_multi_acc_reference_obj.js
+++ b/accessible/tests/browser/browser_shutdown_multi_acc_reference_obj.js
@@ -1,67 +1,67 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Create a11y service.
   let a11yInit = initPromise();
-  let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
 
   await a11yInit;
-  ok(accService, 'Service initialized');
+  ok(accService, "Service initialized");
 
   let docAcc = accService.getAccessibleFor(document);
-  ok(docAcc, 'Accessible document is created');
+  ok(docAcc, "Accessible document is created");
 
   // Accessible object reference will live longer than the scope of this
   // function.
   let acc = await new Promise(resolve => {
     let intervalId = setInterval(() => {
       let tabAcc = accService.getAccessibleFor(gBrowser.mCurrentTab);
       if (tabAcc) {
         clearInterval(intervalId);
         resolve(tabAcc);
       }
     }, 10);
   });
-  ok(acc, 'Accessible object is created');
+  ok(acc, "Accessible object is created");
 
   let canShutdown = false;
   // This promise will resolve only if canShutdown flag is set to true. If
   // 'a11y-init-or-shutdown' event with '0' flag comes before it can be shut
   // down, the promise will reject.
   let a11yShutdown = new Promise((resolve, reject) =>
     shutdownPromise().then(flag => canShutdown ? resolve() :
-      reject('Accessible service was shut down incorrectly')));
+      reject("Accessible service was shut down incorrectly")));
 
   accService = null;
-  ok(!accService, 'Service is removed');
+  ok(!accService, "Service is removed");
 
   // Force garbage collection that should not trigger shutdown because there are
   // references to accessible objects.
   forceGC();
   // Have some breathing room when removing a11y service references.
   await new Promise(resolve => executeSoon(resolve));
 
   // Remove a reference to an accessible document.
   docAcc = null;
-  ok(!docAcc, 'Accessible document is removed');
+  ok(!docAcc, "Accessible document is removed");
   // Force garbage collection that should not trigger shutdown because there is
   // a reference to an accessible object.
   forceGC();
   // Have some breathing room when removing a11y service references.
   await new Promise(resolve => executeSoon(resolve));
 
   // Now allow a11y service to shutdown.
   canShutdown = true;
   // Remove a reference to an accessible object.
   acc = null;
-  ok(!acc, 'Accessible object is removed');
+  ok(!acc, "Accessible object is removed");
 
   // Force garbage collection that should now trigger shutdown.
   forceGC();
   await a11yShutdown;
 });
--- a/accessible/tests/browser/browser_shutdown_multi_proxy_acc_reference_doc.js
+++ b/accessible/tests/browser/browser_shutdown_multi_proxy_acc_reference_doc.js
@@ -1,75 +1,75 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Making sure that the e10s is enabled on Windows for testing.
   await setE10sPrefs();
 
   let docLoaded = waitForEvent(
-    Ci.nsIAccessibleEvent.EVENT_DOCUMENT_LOAD_COMPLETE, 'body');
+    Ci.nsIAccessibleEvent.EVENT_DOCUMENT_LOAD_COMPLETE, "body");
   let a11yInit = initPromise();
-  let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
-  ok(accService, 'Service initialized');
+  ok(accService, "Service initialized");
   await a11yInit;
 
   await BrowserTestUtils.withNewTab({
     gBrowser,
     url: `data:text/html,
       <html>
         <head>
           <meta charset="utf-8"/>
           <title>Accessibility Test</title>
         </head>
         <body id="body"><div id="div"></div></body>
       </html>`
   }, async function(browser) {
     let docLoadedEvent = await docLoaded;
     let docAcc = docLoadedEvent.accessibleDocument;
-    ok(docAcc, 'Accessible document proxy is created');
+    ok(docAcc, "Accessible document proxy is created");
     // Remove unnecessary dangling references
     docLoaded = null;
     docLoadedEvent = null;
     forceGC();
 
     let acc = docAcc.getChildAt(0);
-    ok(acc, 'Accessible proxy is created');
+    ok(acc, "Accessible proxy is created");
 
     let canShutdown = false;
     let a11yShutdown = new Promise((resolve, reject) =>
     shutdownPromise().then(flag => canShutdown ? resolve() :
-      reject('Accessible service was shut down incorrectly')));
+      reject("Accessible service was shut down incorrectly")));
 
     accService = null;
-    ok(!accService, 'Service is removed');
+    ok(!accService, "Service is removed");
     // Force garbage collection that should not trigger shutdown because there
     // is a reference to an accessible proxy.
     forceGC();
     // Have some breathing room when removing a11y service references.
     await new Promise(resolve => executeSoon(resolve));
 
     // Remove a reference to an accessible proxy.
     acc = null;
-    ok(!acc, 'Accessible proxy is removed');
+    ok(!acc, "Accessible proxy is removed");
     // Force garbage collection that should not trigger shutdown because there is
     // a reference to an accessible document proxy.
     forceGC();
     // Have some breathing room when removing a11y service references.
     await new Promise(resolve => executeSoon(resolve));
 
     // Now allow a11y service to shutdown.
     canShutdown = true;
     // Remove a last reference to an accessible document proxy.
     docAcc = null;
-    ok(!docAcc, 'Accessible document proxy is removed');
+    ok(!docAcc, "Accessible document proxy is removed");
 
     // Force garbage collection that should now trigger shutdown.
     forceGC();
     await a11yShutdown;
   });
 
   // Unsetting e10s related preferences.
   await unsetE10sPrefs();
--- a/accessible/tests/browser/browser_shutdown_multi_proxy_acc_reference_obj.js
+++ b/accessible/tests/browser/browser_shutdown_multi_proxy_acc_reference_obj.js
@@ -1,75 +1,75 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Making sure that the e10s is enabled on Windows for testing.
   await setE10sPrefs();
 
   let docLoaded = waitForEvent(
-    Ci.nsIAccessibleEvent.EVENT_DOCUMENT_LOAD_COMPLETE, 'body');
+    Ci.nsIAccessibleEvent.EVENT_DOCUMENT_LOAD_COMPLETE, "body");
   let a11yInit = initPromise();
-  let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
-  ok(accService, 'Service initialized');
+  ok(accService, "Service initialized");
   await a11yInit;
 
   await BrowserTestUtils.withNewTab({
     gBrowser,
     url: `data:text/html,
       <html>
         <head>
           <meta charset="utf-8"/>
           <title>Accessibility Test</title>
         </head>
         <body id="body"><div id="div"></div></body>
       </html>`
   }, async function(browser) {
     let docLoadedEvent = await docLoaded;
     let docAcc = docLoadedEvent.accessibleDocument;
-    ok(docAcc, 'Accessible document proxy is created');
+    ok(docAcc, "Accessible document proxy is created");
     // Remove unnecessary dangling references
     docLoaded = null;
     docLoadedEvent = null;
     forceGC();
 
     let acc = docAcc.getChildAt(0);
-    ok(acc, 'Accessible proxy is created');
+    ok(acc, "Accessible proxy is created");
 
     let canShutdown = false;
     let a11yShutdown = new Promise((resolve, reject) =>
     shutdownPromise().then(flag => canShutdown ? resolve() :
-      reject('Accessible service was shut down incorrectly')));
+      reject("Accessible service was shut down incorrectly")));
 
     accService = null;
-    ok(!accService, 'Service is removed');
+    ok(!accService, "Service is removed");
     // Force garbage collection that should not trigger shutdown because there
     // is a reference to an accessible proxy.
     forceGC();
     // Have some breathing room when removing a11y service references.
     await new Promise(resolve => executeSoon(resolve));
 
     // Remove a reference to an accessible document proxy.
     docAcc = null;
-    ok(!docAcc, 'Accessible document proxy is removed');
+    ok(!docAcc, "Accessible document proxy is removed");
     // Force garbage collection that should not trigger shutdown because there is
     // a reference to an accessible proxy.
     forceGC();
     // Have some breathing room when removing a11y service references.
     await new Promise(resolve => executeSoon(resolve));
 
     // Now allow a11y service to shutdown.
     canShutdown = true;
     // Remove a last reference to an accessible proxy.
     acc = null;
-    ok(!acc, 'Accessible proxy is removed');
+    ok(!acc, "Accessible proxy is removed");
 
     // Force garbage collection that should now trigger shutdown.
     forceGC();
     await a11yShutdown;
   });
 
   // Unsetting e10s related preferences.
   await unsetE10sPrefs();
--- a/accessible/tests/browser/browser_shutdown_multi_reference.js
+++ b/accessible/tests/browser/browser_shutdown_multi_reference.js
@@ -1,48 +1,48 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
-  info('Creating a service');
+  info("Creating a service");
   // Create a11y service.
   let a11yInit = initPromise();
-  let accService1 = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService1 = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
   await a11yInit;
-  ok(accService1, 'Service initialized');
+  ok(accService1, "Service initialized");
 
   // Add another reference to a11y service. This will not trigger
   // 'a11y-init-or-shutdown' event
-  let accService2 = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService2 = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
-  ok(accService2, 'Service initialized');
+  ok(accService2, "Service initialized");
 
-  info('Removing all service references');
+  info("Removing all service references");
   let canShutdown = false;
   // This promise will resolve only if canShutdown flag is set to true. If
   // 'a11y-init-or-shutdown' event with '0' flag comes before it can be shut
   // down, the promise will reject.
   let a11yShutdown = new Promise((resolve, reject) =>
     shutdownPromise().then(flag => canShutdown ?
-      resolve() : reject('Accessible service was shut down incorrectly')));
+      resolve() : reject("Accessible service was shut down incorrectly")));
   // Remove first a11y service reference.
   accService1 = null;
-  ok(!accService1, 'Service is removed');
+  ok(!accService1, "Service is removed");
   // Force garbage collection that should not trigger shutdown because there is
   // another reference.
   forceGC();
 
   // Have some breathing room when removing a11y service references.
   await new Promise(resolve => executeSoon(resolve));
 
   // Now allow a11y service to shutdown.
   canShutdown = true;
   // Remove last a11y service reference.
   accService2 = null;
-  ok(!accService2, 'Service is removed');
+  ok(!accService2, "Service is removed");
   // Force garbage collection that should trigger shutdown.
   forceGC();
   await a11yShutdown;
 });
--- a/accessible/tests/browser/browser_shutdown_parent_own_reference.js
+++ b/accessible/tests/browser/browser_shutdown_parent_own_reference.js
@@ -1,71 +1,71 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Making sure that the e10s is enabled on Windows for testing.
   await setE10sPrefs();
 
   await BrowserTestUtils.withNewTab({
     gBrowser,
     url: `data:text/html,
       <html>
         <head>
           <meta charset="utf-8"/>
           <title>Accessibility Test</title>
         </head>
         <body></body>
       </html>`
   }, async function(browser) {
-    info('Creating a service in parent and waiting for service to be created ' +
-      'in content');
+    info("Creating a service in parent and waiting for service to be created " +
+      "in content");
     // Create a11y service in the main process. This will trigger creating of
     // the a11y service in parent as well.
     let parentA11yInit = initPromise();
     let contentA11yInit = initPromise(browser);
-    let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+    let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
       Ci.nsIAccessibilityService);
-    ok(accService, 'Service initialized in parent');
+    ok(accService, "Service initialized in parent");
     await Promise.all([parentA11yInit, contentA11yInit]);
 
-    info('Adding additional reference to accessibility service in content ' +
-      'process');
+    info("Adding additional reference to accessibility service in content " +
+      "process");
     // Add a new reference to the a11y service inside the content process.
     loadFrameScripts(browser, `let accService = Components.classes[
       '@mozilla.org/accessibilityService;1'].getService(
         Components.interfaces.nsIAccessibilityService);`);
 
-    info('Trying to shut down a service in content and making sure it stays ' +
-      'alive as it was started by parent');
+    info("Trying to shut down a service in content and making sure it stays " +
+      "alive as it was started by parent");
     let contentCanShutdown = false;
     // This promise will resolve only if contentCanShutdown flag is set to true.
     // If 'a11y-init-or-shutdown' event with '0' flag (in content) comes before
     // it can be shut down, the promise will reject.
     let contentA11yShutdown = new Promise((resolve, reject) =>
       shutdownPromise(browser).then(flag => contentCanShutdown ?
-        resolve() : reject('Accessible service was shut down incorrectly')));
+        resolve() : reject("Accessible service was shut down incorrectly")));
     // Remove a11y service reference in content and force garbage collection.
     // This should not trigger shutdown since a11y was originally initialized by
     // the main process.
     loadFrameScripts(browser, `accService = null; Components.utils.forceGC();`);
 
     // Have some breathing room between a11y service shutdowns.
     await new Promise(resolve => executeSoon(resolve));
 
-    info('Removing a service in parent');
+    info("Removing a service in parent");
     // Now allow a11y service to shutdown in content.
     contentCanShutdown = true;
     // Remove the a11y service reference in the main process.
     let parentA11yShutdown = shutdownPromise();
     accService = null;
-    ok(!accService, 'Service is removed in parent');
+    ok(!accService, "Service is removed in parent");
     // Force garbage collection that should trigger shutdown in both parent and
     // content.
     forceGC();
     await Promise.all([parentA11yShutdown, contentA11yShutdown]);
 
     // Unsetting e10s related preferences.
     await unsetE10sPrefs();
   });
--- a/accessible/tests/browser/browser_shutdown_proxy_acc_reference.js
+++ b/accessible/tests/browser/browser_shutdown_proxy_acc_reference.js
@@ -1,63 +1,63 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Making sure that the e10s is enabled on Windows for testing.
   await setE10sPrefs();
 
   let a11yInit = initPromise();
-  let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
-  ok(accService, 'Service initialized');
+  ok(accService, "Service initialized");
   await a11yInit;
 
   await BrowserTestUtils.withNewTab({
     gBrowser,
     url: `data:text/html,
       <html>
         <head>
           <meta charset="utf-8"/>
           <title>Accessibility Test</title>
         </head>
         <body><div id="div" style="visibility: hidden;"></div></body>
       </html>`
   }, async function(browser) {
-    let onShow = waitForEvent(Ci.nsIAccessibleEvent.EVENT_SHOW, 'div');
-    await invokeSetStyle(browser, 'div', 'visibility', 'visible');
+    let onShow = waitForEvent(Ci.nsIAccessibleEvent.EVENT_SHOW, "div");
+    await invokeSetStyle(browser, "div", "visibility", "visible");
     let showEvent = await onShow;
     let divAcc = showEvent.accessible;
-    ok(divAcc, 'Accessible proxy is created');
+    ok(divAcc, "Accessible proxy is created");
     // Remove unnecessary dangling references
     onShow = null;
     showEvent = null;
     forceGC();
 
     let canShutdown = false;
     let a11yShutdown = new Promise((resolve, reject) =>
     shutdownPromise().then(flag => canShutdown ? resolve() :
-      reject('Accessible service was shut down incorrectly')));
+      reject("Accessible service was shut down incorrectly")));
 
     accService = null;
-    ok(!accService, 'Service is removed');
+    ok(!accService, "Service is removed");
     // Force garbage collection that should not trigger shutdown because there
     // is a reference to an accessible proxy.
     forceGC();
     // Have some breathing room when removing a11y service references.
     await new Promise(resolve => executeSoon(resolve));
 
     // Now allow a11y service to shutdown.
     canShutdown = true;
     // Remove a last reference to an accessible proxy.
     divAcc = null;
-    ok(!divAcc, 'Accessible proxy is removed');
+    ok(!divAcc, "Accessible proxy is removed");
 
     // Force garbage collection that should now trigger shutdown.
     forceGC();
     await a11yShutdown;
   });
 
   // Unsetting e10s related preferences.
   await unsetE10sPrefs();
--- a/accessible/tests/browser/browser_shutdown_proxy_doc_acc_reference.js
+++ b/accessible/tests/browser/browser_shutdown_proxy_doc_acc_reference.js
@@ -1,63 +1,63 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Making sure that the e10s is enabled on Windows for testing.
   await setE10sPrefs();
 
   let docLoaded = waitForEvent(
-    Ci.nsIAccessibleEvent.EVENT_DOCUMENT_LOAD_COMPLETE, 'body');
+    Ci.nsIAccessibleEvent.EVENT_DOCUMENT_LOAD_COMPLETE, "body");
   let a11yInit = initPromise();
-  let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
-  ok(accService, 'Service initialized');
+  ok(accService, "Service initialized");
   await a11yInit;
 
   await BrowserTestUtils.withNewTab({
     gBrowser,
     url: `data:text/html,
       <html>
         <head>
           <meta charset="utf-8"/>
           <title>Accessibility Test</title>
         </head>
         <body id="body"></body>
       </html>`
   }, async function(browser) {
     let docLoadedEvent = await docLoaded;
     let docAcc = docLoadedEvent.accessibleDocument;
-    ok(docAcc, 'Accessible document proxy is created');
+    ok(docAcc, "Accessible document proxy is created");
     // Remove unnecessary dangling references
     docLoaded = null;
     docLoadedEvent = null;
     forceGC();
 
     let canShutdown = false;
     let a11yShutdown = new Promise((resolve, reject) =>
     shutdownPromise().then(flag => canShutdown ? resolve() :
-      reject('Accessible service was shut down incorrectly')));
+      reject("Accessible service was shut down incorrectly")));
 
     accService = null;
-    ok(!accService, 'Service is removed');
+    ok(!accService, "Service is removed");
     // Force garbage collection that should not trigger shutdown because there
     // is a reference to an accessible proxy.
     forceGC();
     // Have some breathing room when removing a11y service references.
     await new Promise(resolve => executeSoon(resolve));
 
     // Now allow a11y service to shutdown.
     canShutdown = true;
     // Remove a last reference to an accessible document proxy.
     docAcc = null;
-    ok(!docAcc, 'Accessible document proxy is removed');
+    ok(!docAcc, "Accessible document proxy is removed");
 
     // Force garbage collection that should now trigger shutdown.
     forceGC();
     await a11yShutdown;
   });
 
   // Unsetting e10s related preferences.
   await unsetE10sPrefs();
--- a/accessible/tests/browser/browser_shutdown_remote_no_reference.js
+++ b/accessible/tests/browser/browser_shutdown_remote_no_reference.js
@@ -1,47 +1,47 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Making sure that the e10s is enabled on Windows for testing.
   await setE10sPrefs();
 
   await BrowserTestUtils.withNewTab({
     gBrowser,
     url: `data:text/html,
       <html>
         <head>
           <meta charset="utf-8"/>
           <title>Accessibility Test</title>
         </head>
         <body></body>
       </html>`
   }, async function(browser) {
-    info('Creating a service in parent and waiting for service to be created ' +
-      'in content');
+    info("Creating a service in parent and waiting for service to be created " +
+      "in content");
     // Create a11y service in the main process. This will trigger creating of
     // the a11y service in parent as well.
     let parentA11yInit = initPromise();
     let contentA11yInit = initPromise(browser);
-    let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+    let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
       Ci.nsIAccessibilityService);
-    ok(accService, 'Service initialized in parent');
+    ok(accService, "Service initialized in parent");
     await Promise.all([parentA11yInit, contentA11yInit]);
 
-    info('Removing a service in parent and waiting for service to be shut ' +
-      'down in content');
+    info("Removing a service in parent and waiting for service to be shut " +
+      "down in content");
     // Remove a11y service reference in the main process.
     let parentA11yShutdown = shutdownPromise();
     let contentA11yShutdown = shutdownPromise(browser);
     accService = null;
-    ok(!accService, 'Service is removed in parent');
+    ok(!accService, "Service is removed in parent");
     // Force garbage collection that should trigger shutdown in both main and
     // content process.
     forceGC();
     await Promise.all([parentA11yShutdown, contentA11yShutdown]);
   });
 
   // Unsetting e10s related preferences.
   await unsetE10sPrefs();
--- a/accessible/tests/browser/browser_shutdown_remote_only.js
+++ b/accessible/tests/browser/browser_shutdown_remote_only.js
@@ -1,38 +1,38 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Making sure that the e10s is enabled on Windows for testing.
   await setE10sPrefs();
 
   await BrowserTestUtils.withNewTab({
     gBrowser,
     url: `data:text/html,
       <html>
         <head>
           <meta charset="utf-8"/>
           <title>Accessibility Test</title>
         </head>
         <body></body>
       </html>`
   }, async function(browser) {
-    info('Creating a service in content');
+    info("Creating a service in content");
     // Create a11y service in the content process.
     let a11yInit = initPromise(browser);
     loadFrameScripts(browser, `let accService = Components.classes[
       '@mozilla.org/accessibilityService;1'].getService(
         Components.interfaces.nsIAccessibilityService);`);
     await a11yInit;
 
-    info('Removing a service in content');
+    info("Removing a service in content");
     // Remove a11y service reference from the content process.
     let a11yShutdown = shutdownPromise(browser);
     // Force garbage collection that should trigger shutdown.
     loadFrameScripts(browser, `accService = null; Components.utils.forceGC();`);
     await a11yShutdown;
 
     // Unsetting e10s related preferences.
     await unsetE10sPrefs();
--- a/accessible/tests/browser/browser_shutdown_remote_own_reference.js
+++ b/accessible/tests/browser/browser_shutdown_remote_own_reference.js
@@ -1,72 +1,72 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Making sure that the e10s is enabled on Windows for testing.
   await setE10sPrefs();
 
   await BrowserTestUtils.withNewTab({
     gBrowser,
     url: `data:text/html,
       <html>
         <head>
           <meta charset="utf-8"/>
           <title>Accessibility Test</title>
         </head>
         <body></body>
       </html>`
   }, async function(browser) {
-    info('Creating a service in parent and waiting for service to be created ' +
-      'in content');
+    info("Creating a service in parent and waiting for service to be created " +
+      "in content");
     // Create a11y service in the main process. This will trigger creating of
     // the a11y service in parent as well.
     let parentA11yInit = initPromise();
     let contentA11yInit = initPromise(browser);
-    let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+    let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
       Ci.nsIAccessibilityService);
-    ok(accService, 'Service initialized in parent');
+    ok(accService, "Service initialized in parent");
     await Promise.all([parentA11yInit, contentA11yInit]);
 
-    info('Adding additional reference to accessibility service in content ' +
-      'process');
+    info("Adding additional reference to accessibility service in content " +
+      "process");
     // Add a new reference to the a11y service inside the content process.
     loadFrameScripts(browser, `let accService = Components.classes[
       '@mozilla.org/accessibilityService;1'].getService(
         Components.interfaces.nsIAccessibilityService);`);
 
-    info('Shutting down a service in parent and making sure the one in ' +
-      'content stays alive');
+    info("Shutting down a service in parent and making sure the one in " +
+      "content stays alive");
     let contentCanShutdown = false;
     let parentA11yShutdown = shutdownPromise();
     // This promise will resolve only if contentCanShutdown flag is set to true.
     // If 'a11y-init-or-shutdown' event with '0' flag (in content) comes before
     // it can be shut down, the promise will reject.
     let contentA11yShutdown = new Promise((resolve, reject) =>
       shutdownPromise(browser).then(flag => contentCanShutdown ?
-        resolve() : reject('Accessible service was shut down incorrectly')));
+        resolve() : reject("Accessible service was shut down incorrectly")));
     // Remove a11y service reference in the main process and force garbage
     // collection. This should not trigger shutdown in content since a11y
     // service is used by XPCOM.
     accService = null;
-    ok(!accService, 'Service is removed in parent');
+    ok(!accService, "Service is removed in parent");
     // Force garbage collection that should not trigger shutdown because there
     // is a reference in a content process.
     forceGC();
     loadFrameScripts(browser, `Components.utils.forceGC();`);
     await parentA11yShutdown;
 
     // Have some breathing room between a11y service shutdowns.
     await new Promise(resolve => executeSoon(resolve));
 
-    info('Removing a service in content');
+    info("Removing a service in content");
     // Now allow a11y service to shutdown in content.
     contentCanShutdown = true;
     // Remove last reference to a11y service in content and force garbage
     // collection that should trigger shutdown.
     loadFrameScripts(browser, `accService = null; Components.utils.forceGC();`);
     await contentA11yShutdown;
 
     // Unsetting e10s related preferences.
--- a/accessible/tests/browser/browser_shutdown_scope_lifecycle.js
+++ b/accessible/tests/browser/browser_shutdown_scope_lifecycle.js
@@ -1,21 +1,21 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
   // Create a11y service inside of the function scope. Its reference should be
   // released once the anonimous function is called.
   let a11yInitThenShutdown = initPromise().then(shutdownPromise);
 
   (function() {
-    let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+    let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
       Ci.nsIAccessibilityService);
-    ok(accService, 'Service initialized');
+    ok(accService, "Service initialized");
   })();
 
   // Force garbage collection that should trigger shutdown.
   forceGC();
   await a11yInitThenShutdown;
 });
--- a/accessible/tests/browser/browser_shutdown_start_restart.js
+++ b/accessible/tests/browser/browser_shutdown_start_restart.js
@@ -1,41 +1,41 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 add_task(async function () {
-  info('Creating a service');
+  info("Creating a service");
   // Create a11y service.
   let a11yInit = initPromise();
-  let accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+  let accService = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
   await a11yInit;
-  ok(accService, 'Service initialized');
+  ok(accService, "Service initialized");
 
-  info('Removing a service');
+  info("Removing a service");
   // Remove the only reference to an a11y service.
   let a11yShutdown = shutdownPromise();
   accService = null;
-  ok(!accService, 'Service is removed');
+  ok(!accService, "Service is removed");
   // Force garbage collection that should trigger shutdown.
   forceGC();
   await a11yShutdown;
 
-  info('Recreating a service');
+  info("Recreating a service");
   // Re-create a11y service.
   a11yInit = initPromise();
-  accService = Cc['@mozilla.org/accessibilityService;1'].getService(
+  accService = Cc["@mozilla.org/accessibilityService;1"].getService(
     Ci.nsIAccessibilityService);
   await a11yInit;
-  ok(accService, 'Service initialized again');
+  ok(accService, "Service initialized again");
 
-  info('Removing a service again');
+  info("Removing a service again");
   // Remove the only reference to an a11y service again.
   a11yShutdown = shutdownPromise();
   accService = null;
-  ok(!accService, 'Service is removed again');
+  ok(!accService, "Service is removed again");
   // Force garbage collection that should trigger shutdown.
   forceGC();
   await a11yShutdown;
 });
--- a/accessible/tests/browser/e10s/browser_caching_attributes.js
+++ b/accessible/tests/browser/e10s/browser_caching_attributes.js
@@ -1,115 +1,115 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/attributes.js */
-loadScripts({ name: 'attributes.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "attributes.js", dir: MOCHITESTS_DIR });
 
 /**
  * Default textbox accessible attributes.
  */
 const defaultAttributes = {
-  'margin-top': '0px',
-  'margin-right': '0px',
-  'margin-bottom': '0px',
-  'margin-left': '0px',
-  'text-align': 'start',
-  'text-indent': '0px',
-  'id': 'textbox',
-  'tag': 'input',
-  'display': 'inline'
+  "margin-top": "0px",
+  "margin-right": "0px",
+  "margin-bottom": "0px",
+  "margin-left": "0px",
+  "text-align": "start",
+  "text-indent": "0px",
+  "id": "textbox",
+  "tag": "input",
+  "display": "inline"
 };
 
 /**
  * Test data has the format of:
  * {
  *   desc        {String}         description for better logging
  *   expected    {Object}         expected attributes for given accessibles
  *   unexpected  {Object}         unexpected attributes for given accessibles
  *
  *   action      {?AsyncFunction} an optional action that awaits a change in
  *                                attributes
  *   attrs       {?Array}         an optional list of attributes to update
  *   waitFor     {?Number}        an optional event to wait for
  * }
  */
 const attributesTests = [{
-  desc: 'Initiall accessible attributes',
+  desc: "Initiall accessible attributes",
   expected: defaultAttributes,
   unexpected: {
-    'line-number': '1',
-    'explicit-name': 'true',
-    'container-live': 'polite',
-    'live': 'polite'
+    "line-number": "1",
+    "explicit-name": "true",
+    "container-live": "polite",
+    "live": "polite"
   }
 }, {
-  desc: '@line-number attribute is present when textbox is focused',
+  desc: "@line-number attribute is present when textbox is focused",
   action: async function(browser) {
-    await invokeFocus(browser, 'textbox');
+    await invokeFocus(browser, "textbox");
   },
   waitFor: EVENT_FOCUS,
-  expected: Object.assign({}, defaultAttributes, { 'line-number': '1' }),
+  expected: Object.assign({}, defaultAttributes, { "line-number": "1" }),
   unexpected: {
-    'explicit-name': 'true',
-    'container-live': 'polite',
-    'live': 'polite'
+    "explicit-name": "true",
+    "container-live": "polite",
+    "live": "polite"
   }
 }, {
-  desc: '@aria-live sets container-live and live attributes',
+  desc: "@aria-live sets container-live and live attributes",
   attrs: [{
-    attr: 'aria-live',
-    value: 'polite'
+    attr: "aria-live",
+    value: "polite"
   }],
   expected: Object.assign({}, defaultAttributes, {
-    'line-number': '1',
-    'container-live': 'polite',
-    'live': 'polite'
+    "line-number": "1",
+    "container-live": "polite",
+    "live": "polite"
   }),
   unexpected: {
-    'explicit-name': 'true'
+    "explicit-name": "true"
   }
 }, {
-  desc: '@title attribute sets explicit-name attribute to true',
+  desc: "@title attribute sets explicit-name attribute to true",
   attrs: [{
-    attr: 'title',
-    value: 'textbox'
+    attr: "title",
+    value: "textbox"
   }],
   expected: Object.assign({}, defaultAttributes, {
-    'line-number': '1',
-    'explicit-name': 'true',
-    'container-live': 'polite',
-    'live': 'polite'
+    "line-number": "1",
+    "explicit-name": "true",
+    "container-live": "polite",
+    "live": "polite"
   }),
   unexpected: {}
 }];
 
 /**
  * Test caching of accessible object attributes
  */
 addAccessibleTask(`
   <input id="textbox" value="hello">`,
   async function (browser, accDoc) {
-    let textbox = findAccessibleChildByID(accDoc, 'textbox');
+    let textbox = findAccessibleChildByID(accDoc, "textbox");
     for (let { desc, action, attrs, expected, waitFor, unexpected } of attributesTests) {
       info(desc);
       let onUpdate;
 
       if (waitFor) {
-        onUpdate = waitForEvent(waitFor, 'textbox');
+        onUpdate = waitForEvent(waitFor, "textbox");
       }
 
       if (action) {
         await action(browser);
       } else if (attrs) {
         for (let { attr, value } of attrs) {
-          await invokeSetAttribute(browser, 'textbox', attr, value);
+          await invokeSetAttribute(browser, "textbox", attr, value);
         }
       }
 
       await onUpdate;
       testAttrs(textbox, expected);
       testAbsentAttrs(textbox, unexpected);
     }
   }
--- a/accessible/tests/browser/e10s/browser_caching_description.js
+++ b/accessible/tests/browser/e10s/browser_caching_description.js
@@ -1,163 +1,163 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/name.js */
-loadScripts({ name: 'name.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "name.js", dir: MOCHITESTS_DIR });
 
 /**
  * Test data has the format of:
  * {
  *   desc      {String}   description for better logging
  *   expected  {String}   expected description value for a given accessible
  *   attrs     {?Array}   an optional list of attributes to update
  *   waitFor   {?Array}   an optional list of accessible events to wait for when
  *                        attributes are updated
  * }
  */
 const tests = [{
-  desc: 'No description when there are no @alt, @title and @aria-describedby',
-  expected: ''
+  desc: "No description when there are no @alt, @title and @aria-describedby",
+  expected: ""
 }, {
-  desc: 'Description from @aria-describedby attribute',
+  desc: "Description from @aria-describedby attribute",
   attrs: [{
-    attr: 'aria-describedby',
-    value: 'description'
+    attr: "aria-describedby",
+    value: "description"
   }],
-  waitFor: [[EVENT_DESCRIPTION_CHANGE, 'image']],
-  expected: 'aria description'
+  waitFor: [[EVENT_DESCRIPTION_CHANGE, "image"]],
+  expected: "aria description"
 }, {
-  desc: 'No description from @aria-describedby since it is the same as the ' +
-        '@alt attribute which is used as the name',
+  desc: "No description from @aria-describedby since it is the same as the " +
+        "@alt attribute which is used as the name",
   attrs: [{
-    attr: 'alt',
-    value: 'aria description'
+    attr: "alt",
+    value: "aria description"
   }],
-  waitFor: [[EVENT_REORDER, 'body']],
-  expected: ''
+  waitFor: [[EVENT_REORDER, "body"]],
+  expected: ""
 }, {
-  desc: 'Description from @aria-describedby attribute when @alt and ' +
-        '@aria-describedby are not the same',
+  desc: "Description from @aria-describedby attribute when @alt and " +
+        "@aria-describedby are not the same",
   attrs: [{
-    attr: 'aria-describedby',
-    value: 'description2'
+    attr: "aria-describedby",
+    value: "description2"
   }],
-  waitFor: [[EVENT_DESCRIPTION_CHANGE, 'image']],
-  expected: 'another description'
+  waitFor: [[EVENT_DESCRIPTION_CHANGE, "image"]],
+  expected: "another description"
 }, {
-  desc: 'Description from @aria-describedby attribute when @title (used for ' +
-        'name) and @aria-describedby are not the same',
+  desc: "Description from @aria-describedby attribute when @title (used for " +
+        "name) and @aria-describedby are not the same",
   attrs: [{
-    attr: 'alt'
+    attr: "alt"
   }, {
-    attr: 'title',
-    value: 'title'
+    attr: "title",
+    value: "title"
   }],
-  waitFor: [[EVENT_REORDER, 'body']],
-  expected: 'another description'
+  waitFor: [[EVENT_REORDER, "body"]],
+  expected: "another description"
 }, {
-  desc: 'No description from @aria-describedby since it is the same as the ' +
-        '@title attribute which is used as the name',
+  desc: "No description from @aria-describedby since it is the same as the " +
+        "@title attribute which is used as the name",
   attrs: [{
-    attr: 'title',
-    value: 'another description'
+    attr: "title",
+    value: "another description"
   }],
-  waitFor: [[EVENT_NAME_CHANGE, 'image']],
-  expected: ''
+  waitFor: [[EVENT_NAME_CHANGE, "image"]],
+  expected: ""
 }, {
-  desc: 'No description with only @title attribute which is used as the name',
+  desc: "No description with only @title attribute which is used as the name",
   attrs: [{
-    attr: 'aria-describedby'
+    attr: "aria-describedby"
   }],
-  waitFor: [[EVENT_DESCRIPTION_CHANGE, 'image']],
-  expected: ''
+  waitFor: [[EVENT_DESCRIPTION_CHANGE, "image"]],
+  expected: ""
 }, {
-  desc: 'Description from @title attribute when @alt and @atitle are not the ' +
-        'same',
+  desc: "Description from @title attribute when @alt and @atitle are not the " +
+        "same",
   attrs: [{
-    attr: 'alt',
-    value: 'aria description'
+    attr: "alt",
+    value: "aria description"
   }],
-  waitFor: [[EVENT_REORDER, 'body']],
-  expected: 'another description'
+  waitFor: [[EVENT_REORDER, "body"]],
+  expected: "another description"
 }, {
-  desc: 'No description from @title since it is the same as the @alt ' +
-        'attribute which is used as the name',
+  desc: "No description from @title since it is the same as the @alt " +
+        "attribute which is used as the name",
   attrs: [{
-    attr: 'alt',
-    value: 'another description'
+    attr: "alt",
+    value: "another description"
   }],
-  waitFor: [[EVENT_NAME_CHANGE, 'image']],
-  expected: ''
+  waitFor: [[EVENT_NAME_CHANGE, "image"]],
+  expected: ""
 }, {
-  desc: 'No description from @aria-describedby since it is the same as the ' +
-        '@alt (used for name) and @title attributes',
+  desc: "No description from @aria-describedby since it is the same as the " +
+        "@alt (used for name) and @title attributes",
   attrs: [{
-    attr: 'aria-describedby',
-    value: 'description2'
+    attr: "aria-describedby",
+    value: "description2"
   }],
-  waitFor: [[EVENT_DESCRIPTION_CHANGE, 'image']],
-  expected: ''
+  waitFor: [[EVENT_DESCRIPTION_CHANGE, "image"]],
+  expected: ""
 }, {
-  desc: 'Description from @aria-describedby attribute when it is different ' +
-        'from @alt (used for name) and @title attributes',
+  desc: "Description from @aria-describedby attribute when it is different " +
+        "from @alt (used for name) and @title attributes",
   attrs: [{
-    attr: 'aria-describedby',
-    value: 'description'
+    attr: "aria-describedby",
+    value: "description"
   }],
-  waitFor: [[EVENT_DESCRIPTION_CHANGE, 'image']],
-  expected: 'aria description'
+  waitFor: [[EVENT_DESCRIPTION_CHANGE, "image"]],
+  expected: "aria description"
 }, {
-  desc: 'No description from @aria-describedby since it is the same as the ' +
-        '@alt attribute (used for name) but different from title',
+  desc: "No description from @aria-describedby since it is the same as the " +
+        "@alt attribute (used for name) but different from title",
   attrs: [{
-    attr: 'alt',
-    value: 'aria description'
+    attr: "alt",
+    value: "aria description"
   }],
-  waitFor: [[EVENT_NAME_CHANGE, 'image']],
-  expected: ''
+  waitFor: [[EVENT_NAME_CHANGE, "image"]],
+  expected: ""
 }, {
-  desc: 'Description from @aria-describedby attribute when @alt (used for ' +
-        'name) and @aria-describedby are not the same but @title and ' +
-        'aria-describedby are',
+  desc: "Description from @aria-describedby attribute when @alt (used for " +
+        "name) and @aria-describedby are not the same but @title and " +
+        "aria-describedby are",
   attrs: [{
-    attr: 'aria-describedby',
-    value: 'description2'
+    attr: "aria-describedby",
+    value: "description2"
   }],
-  waitFor: [[EVENT_DESCRIPTION_CHANGE, 'image']],
-  expected: 'another description'
+  waitFor: [[EVENT_DESCRIPTION_CHANGE, "image"]],
+  expected: "another description"
 }];
 
 /**
  * Test caching of accessible object description
  */
 addAccessibleTask(`
   <p id="description">aria description</p>
   <p id="description2">another description</p>
   <img id="image" />`,
   async function(browser, accDoc) {
-    let imgAcc = findAccessibleChildByID(accDoc, 'image');
+    let imgAcc = findAccessibleChildByID(accDoc, "image");
 
     for (let { desc, waitFor, attrs, expected } of tests) {
       info(desc);
       let onUpdate;
       if (waitFor) {
         onUpdate = waitForOrderedEvents(waitFor);
       }
       if (attrs) {
         for (let { attr, value } of attrs) {
-          await invokeSetAttribute(browser, 'image', attr, value);
+          await invokeSetAttribute(browser, "image", attr, value);
         }
       }
       await onUpdate;
       // When attribute change (alt) triggers reorder event, accessible will
       // become defunct.
       if (isDefunct(imgAcc)) {
-        imgAcc = findAccessibleChildByID(accDoc, 'image');
+        imgAcc = findAccessibleChildByID(accDoc, "image");
       }
       testDescr(imgAcc, expected);
     }
   }
 );
--- a/accessible/tests/browser/e10s/browser_caching_name.js
+++ b/accessible/tests/browser/e10s/browser_caching_name.js
@@ -1,16 +1,16 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/name.js */
-loadScripts({ name: 'name.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "name.js", dir: MOCHITESTS_DIR });
 
 /**
  * Rules for name tests that are inspired by
  *   accessible/tests/mochitest/name/markuprules.xul
  *
  * Each element in the list of rules represents a name calculation rule for a
  * particular test case.
  *
@@ -21,187 +21,187 @@ loadScripts({ name: 'name.js', dir: MOCH
  *
  *
  * Options include:
  *   * recreated   - subrtee is recreated and the test should only continue
  *                   after a reorder event
  *   * textchanged - text is inserted into a subtree and the test should only
  *                   continue after a text inserted event
  */
-const ARIARule = [{ attr: 'aria-labelledby' }, { attr: 'aria-label' }];
-const HTMLControlHeadRule = [...ARIARule, { elm: 'label', isSibling: true }];
+const ARIARule = [{ attr: "aria-labelledby" }, { attr: "aria-label" }];
+const HTMLControlHeadRule = [...ARIARule, { elm: "label", isSibling: true }];
 const rules = {
-  CSSContent: [{ elm: 'style', isSibling: true }, { fromsubtree: true }],
-  HTMLARIAGridCell: [...ARIARule, { fromsubtree: true }, { attr: 'title' }],
+  CSSContent: [{ elm: "style", isSibling: true }, { fromsubtree: true }],
+  HTMLARIAGridCell: [...ARIARule, { fromsubtree: true }, { attr: "title" }],
   HTMLControl: [...HTMLControlHeadRule, { fromsubtree: true },
-    { attr: 'title' }],
-  HTMLElm: [...ARIARule, { attr: 'title' }],
-  HTMLImg: [...ARIARule, { attr: 'alt', recreated: true }, { attr: 'title' }],
-  HTMLImgEmptyAlt: [...ARIARule, { attr: 'title' }, { attr: 'alt' }],
-  HTMLInputButton: [...HTMLControlHeadRule, { attr: 'value' },
-    { attr: 'title' }],
-  HTMLInputImage: [...HTMLControlHeadRule, { attr: 'alt', recreated: true },
-    { attr: 'value', recreated: true }, { attr: 'title' }],
+    { attr: "title" }],
+  HTMLElm: [...ARIARule, { attr: "title" }],
+  HTMLImg: [...ARIARule, { attr: "alt", recreated: true }, { attr: "title" }],
+  HTMLImgEmptyAlt: [...ARIARule, { attr: "title" }, { attr: "alt" }],
+  HTMLInputButton: [...HTMLControlHeadRule, { attr: "value" },
+    { attr: "title" }],
+  HTMLInputImage: [...HTMLControlHeadRule, { attr: "alt", recreated: true },
+    { attr: "value", recreated: true }, { attr: "title" }],
   HTMLInputImageNoValidSrc: [...HTMLControlHeadRule,
-    { attr: 'alt', recreated: true }, { attr: 'value', recreated: true }],
+    { attr: "alt", recreated: true }, { attr: "value", recreated: true }],
   HTMLInputReset: [...HTMLControlHeadRule,
-    { attr: 'value', textchanged: true }],
+    { attr: "value", textchanged: true }],
   HTMLInputSubmit: [...HTMLControlHeadRule,
-    { attr: 'value', textchanged: true }],
-  HTMLLink: [...ARIARule, { fromsubtree: true }, { attr: 'title' }],
-  HTMLLinkImage: [...ARIARule, { elm: 'img' }, { attr: 'title' }],
-  HTMLOption: [...ARIARule, { attr: 'label' }, { fromsubtree: true },
-    { attr: 'title' }],
-  HTMLTable: [...ARIARule, { elm: 'caption' }, { attr: 'summary' },
-    { attr: 'title' }]
+    { attr: "value", textchanged: true }],
+  HTMLLink: [...ARIARule, { fromsubtree: true }, { attr: "title" }],
+  HTMLLinkImage: [...ARIARule, { elm: "img" }, { attr: "title" }],
+  HTMLOption: [...ARIARule, { attr: "label" }, { fromsubtree: true },
+    { attr: "title" }],
+  HTMLTable: [...ARIARule, { elm: "caption" }, { attr: "summary" },
+    { attr: "title" }]
 };
 
 const markupTests = [{
-  id: 'btn',
-  ruleset: 'HTMLControl',
+  id: "btn",
+  ruleset: "HTMLControl",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <label for="btn">test4</label>
     <button id="btn"
             aria-label="test1"
             aria-labelledby="l1 l2"
             title="test5">press me</button>`,
-  expected: ['test2 test3', 'test1', 'test4', 'press me', 'test5']
+  expected: ["test2 test3", "test1", "test4", "press me", "test5"]
 }, {
-  id: 'btn',
-  ruleset: 'HTMLInputButton',
+  id: "btn",
+  ruleset: "HTMLInputButton",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <label for="btn">test4</label>
     <input id="btn"
            type="button"
            aria-label="test1"
            aria-labelledby="l1 l2"
            value="name from value"
            alt="no name from al"
            src="no name from src"
            data="no name from data"
            title="name from title"/>`,
-  expected: ['test2 test3', 'test1', 'test4', 'name from value',
-    'name from title']
+  expected: ["test2 test3", "test1", "test4", "name from value",
+    "name from title"]
 }, {
-  id: 'btn-submit',
-  ruleset: 'HTMLInputSubmit',
+  id: "btn-submit",
+  ruleset: "HTMLInputSubmit",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <label for="btn-submit">test4</label>
     <input id="btn-submit"
            type="submit"
            aria-label="test1"
            aria-labelledby="l1 l2"
            value="name from value"
            alt="no name from atl"
            src="no name from src"
            data="no name from data"
            title="no name from title"/>`,
-  expected: ['test2 test3', 'test1', 'test4', 'name from value']
+  expected: ["test2 test3", "test1", "test4", "name from value"]
 }, {
-  id: 'btn-reset',
-  ruleset: 'HTMLInputReset',
+  id: "btn-reset",
+  ruleset: "HTMLInputReset",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <label for="btn-reset">test4</label>
     <input id="btn-reset"
            type="reset"
            aria-label="test1"
            aria-labelledby="l1 l2"
            value="name from value"
            alt="no name from alt"
            src="no name from src"
            data="no name from data"
            title="no name from title"/>`,
-  expected: ['test2 test3', 'test1', 'test4', 'name from value']
+  expected: ["test2 test3", "test1", "test4", "name from value"]
 }, {
-  id: 'btn-image',
-  ruleset: 'HTMLInputImage',
+  id: "btn-image",
+  ruleset: "HTMLInputImage",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <label for="btn-image">test4</label>
     <input id="btn-image"
            type="image"
            aria-label="test1"
            aria-labelledby="l1 l2"
            alt="name from alt"
            value="name from value"
            src="http://example.com/a11y/accessible/tests/mochitest/moz.png"
            data="no name from data"
            title="name from title"/>`,
-  expected: ['test2 test3', 'test1', 'test4', 'name from alt',
-    'name from value', 'name from title']
+  expected: ["test2 test3", "test1", "test4", "name from alt",
+    "name from value", "name from title"]
 }, {
-  id: 'btn-image',
-  ruleset: 'HTMLInputImageNoValidSrc',
+  id: "btn-image",
+  ruleset: "HTMLInputImageNoValidSrc",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <label for="btn-image">test4</label>
     <input id="btn-image"
            type="image"
            aria-label="test1"
            aria-labelledby="l1 l2"
            alt="name from alt"
            value="name from value"
            data="no name from data"
            title="no name from title"/>`,
-  expected: ['test2 test3', 'test1', 'test4', 'name from alt',
-    'name from value']
+  expected: ["test2 test3", "test1", "test4", "name from alt",
+    "name from value"]
 }, {
-  id: 'opt',
-  ruleset: 'HTMLOption',
+  id: "opt",
+  ruleset: "HTMLOption",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <select>
       <option id="opt"
               aria-label="test1"
               aria-labelledby="l1 l2"
               label="test4"
               title="test5">option1</option>
       <option>option2</option>
     </select>`,
-  expected: ['test2 test3', 'test1', 'test4', 'option1', 'test5']
+  expected: ["test2 test3", "test1", "test4", "option1", "test5"]
 }, {
-  id: 'img',
-  ruleset: 'HTMLImg',
+  id: "img",
+  ruleset: "HTMLImg",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <img id="img"
          aria-label="Logo of Mozilla"
          aria-labelledby="l1 l2"
          alt="Mozilla logo"
          title="This is a logo"
          src="http://example.com/a11y/accessible/tests/mochitest/moz.png"/>`,
-  expected: ['test2 test3', 'Logo of Mozilla', 'Mozilla logo', 'This is a logo']
+  expected: ["test2 test3", "Logo of Mozilla", "Mozilla logo", "This is a logo"]
 }, {
-  id: 'imgemptyalt',
-  ruleset: 'HTMLImgEmptyAlt',
+  id: "imgemptyalt",
+  ruleset: "HTMLImgEmptyAlt",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <img id="imgemptyalt"
          aria-label="Logo of Mozilla"
          aria-labelledby="l1 l2"
          title="This is a logo"
          alt=""
          src="http://example.com/a11y/accessible/tests/mochitest/moz.png"/>`,
-  expected: ['test2 test3', 'Logo of Mozilla', 'This is a logo', '']
+  expected: ["test2 test3", "Logo of Mozilla", "This is a logo", ""]
 }, {
-  id: 'tc',
-  ruleset: 'HTMLElm',
+  id: "tc",
+  ruleset: "HTMLElm",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <label for="tc">test4</label>
     <table>
       <tr>
         <td id="tc"
             aria-label="test1"
@@ -210,20 +210,20 @@ const markupTests = [{
           <p>This is a paragraph</p>
           <a href="#">This is a link</a>
           <ul>
             <li>This is a list</li>
           </ul>
         </td>
       </tr>
     </table>`,
-  expected: ['test2 test3', 'test1', 'test5']
+  expected: ["test2 test3", "test1", "test5"]
 }, {
-  id: 'gc',
-  ruleset: 'HTMLARIAGridCell',
+  id: "gc",
+  ruleset: "HTMLARIAGridCell",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <label for="gc">test4</label>
     <table>
       <tr>
         <td id="gc"
             role="gridcell"
@@ -234,86 +234,86 @@ const markupTests = [{
           <a href="#">This is a link</a>
           <ul>
             <li>Listitem1</li>
             <li>Listitem2</li>
           </ul>
         </td>
       </tr>
     </table>`,
-  expected: ['test2 test3', 'test1',
-    'This is a paragraph This is a link \u2022 Listitem1 \u2022 Listitem2',
-    'This is a paragraph This is a link This is a list']
+  expected: ["test2 test3", "test1",
+    "This is a paragraph This is a link \u2022 Listitem1 \u2022 Listitem2",
+    "This is a paragraph This is a link This is a list"]
 }, {
-  id: 't',
-  ruleset: 'HTMLTable',
+  id: "t",
+  ruleset: "HTMLTable",
   markup: `
     <span id="l1">lby_tst6_1</span>
     <span id="l2">lby_tst6_2</span>
     <label for="t">label_tst6</label>
     <table id="t"
            aria-label="arialabel_tst6"
            aria-labelledby="l1 l2"
            summary="summary_tst6"
            title="title_tst6">
       <caption>caption_tst6</caption>
       <tr>
         <td>cell1</td>
         <td>cell2</td>
       </tr>
     </table>`,
-  expected: ['lby_tst6_1 lby_tst6_2', 'arialabel_tst6', 'caption_tst6',
-    'summary_tst6', 'title_tst6']
+  expected: ["lby_tst6_1 lby_tst6_2", "arialabel_tst6", "caption_tst6",
+    "summary_tst6", "title_tst6"]
 }, {
-  id: 'btn',
-  ruleset: 'CSSContent',
+  id: "btn",
+  ruleset: "CSSContent",
   markup: `
     <style>
       button::before {
         content: "do not ";
       }
     </style>
     <button id="btn">press me</button>`,
-  expected: ['do not press me', 'press me']
+  expected: ["do not press me", "press me"]
 }, {
   // TODO: uncomment when Bug-1256382 is resoved.
   // id: 'li',
   // ruleset: 'CSSContent',
   // markup: `
   //   <style>
   //     ul {
   //       list-style-type: decimal;
   //     }
   //   </style>
   //   <ul id="ul">
   //     <li id="li">Listitem</li>
   //   </ul>`,
   // expected: ['1. Listitem', `${String.fromCharCode(0x2022)} Listitem`]
 // }, {
-  id: 'a',
-  ruleset: 'HTMLLink',
+  id: "a",
+  ruleset: "HTMLLink",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <a id="a"
        aria-label="test1"
        aria-labelledby="l1 l2"
        title="test4">test5</a>`,
-  expected: ['test2 test3', 'test1', 'test5', 'test4']
+  expected: ["test2 test3", "test1", "test5", "test4"]
 }, {
-  id: 'a-img',
-  ruleset: 'HTMLLinkImage',
+  id: "a-img",
+  ruleset: "HTMLLinkImage",
   markup: `
     <span id="l1">test2</span>
     <span id="l2">test3</span>
     <a id="a-img"
        aria-label="test1"
        aria-labelledby="l1 l2"
        title="test4"><img alt="test5"/></a>`,
-  expected: ['test2 test3', 'test1', 'test5', 'test4']
+  expected: ["test2 test3", "test1", "test5", "test4"]
 }];
 
 /**
  * Wait for an accessible event to happen and, in case given accessible is
  * defunct, update it to one that is attached to the accessible event.
  * @param {Promise} onEvent      accessible event promise
  * @param {Object}  target       { acc, parent, id } structure that contains an
  *                                accessible, its parent and its content element
--- a/accessible/tests/browser/e10s/browser_caching_relations.js
+++ b/accessible/tests/browser/e10s/browser_caching_relations.js
@@ -1,69 +1,69 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/relations.js */
-loadScripts({ name: 'relations.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "relations.js", dir: MOCHITESTS_DIR });
 
 /**
  * A test specification that has the following format:
  * [
  *   attr                 relevant aria attribute
  *   hostRelation         corresponding host relation type
  *   dependantRelation    corresponding dependant relation type
  * ]
  */
 const attrRelationsSpec = [
-  ['aria-labelledby', RELATION_LABELLED_BY, RELATION_LABEL_FOR],
-  ['aria-describedby', RELATION_DESCRIBED_BY, RELATION_DESCRIPTION_FOR],
-  ['aria-controls', RELATION_CONTROLLER_FOR, RELATION_CONTROLLED_BY],
-  ['aria-flowto', RELATION_FLOWS_TO, RELATION_FLOWS_FROM]
+  ["aria-labelledby", RELATION_LABELLED_BY, RELATION_LABEL_FOR],
+  ["aria-describedby", RELATION_DESCRIBED_BY, RELATION_DESCRIPTION_FOR],
+  ["aria-controls", RELATION_CONTROLLER_FOR, RELATION_CONTROLLED_BY],
+  ["aria-flowto", RELATION_FLOWS_TO, RELATION_FLOWS_FROM]
 ];
 
 async function testRelated(browser, accDoc, attr, hostRelation, dependantRelation) {
-  let host = findAccessibleChildByID(accDoc, 'host');
-  let dependant1 = findAccessibleChildByID(accDoc, 'dependant1');
-  let dependant2 = findAccessibleChildByID(accDoc, 'dependant2');
+  let host = findAccessibleChildByID(accDoc, "host");
+  let dependant1 = findAccessibleChildByID(accDoc, "dependant1");
+  let dependant2 = findAccessibleChildByID(accDoc, "dependant2");
 
   /**
    * Test data has the format of:
    * {
    *   desc      {String}   description for better logging
    *   attrs     {?Array}   an optional list of attributes to update
    *   expected  {Array}    expected relation values for dependant1, dependant2
    *                        and host respectively.
    * }
    */
   const tests = [{
-    desc: 'No attribute',
+    desc: "No attribute",
     expected: [ null, null, null ]
   }, {
-    desc: 'Set attribute',
-    attrs: [{ key: attr, value: 'dependant1' }],
+    desc: "Set attribute",
+    attrs: [{ key: attr, value: "dependant1" }],
     expected: [ host, null, dependant1 ]
   }, {
-    desc: 'Change attribute',
-    attrs: [{ key: attr, value: 'dependant2' }],
+    desc: "Change attribute",
+    attrs: [{ key: attr, value: "dependant2" }],
     expected: [ null, host, dependant2 ]
   }, {
-    desc: 'Remove attribute',
+    desc: "Remove attribute",
     attrs: [{ key: attr }],
     expected: [ null, null, null ]
   }];
 
   for (let { desc, attrs, expected } of tests) {
     info(desc);
 
     if (attrs) {
       for (let { key, value } of attrs) {
-        await invokeSetAttribute(browser, 'host', key, value);
+        await invokeSetAttribute(browser, "host", key, value);
       }
     }
 
     testRelation(dependant1, dependantRelation, expected[0]);
     testRelation(dependant2, dependantRelation, expected[1]);
     testRelation(host, hostRelation, expected[2]);
   }
 }
--- a/accessible/tests/browser/e10s/browser_caching_states.js
+++ b/accessible/tests/browser/e10s/browser_caching_states.js
@@ -1,18 +1,18 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
 /* import-globals-from ../../mochitest/states.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR },
-            { name: 'states.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR },
+            { name: "states.js", dir: MOCHITESTS_DIR });
 
 /**
  * Test data has the format of:
  * {
  *   desc      {String}   description for better logging
  *   expected  {Array}    expected states for a given accessible that have the
  *                        following format:
  *                          [
@@ -22,76 +22,76 @@ loadScripts({ name: 'role.js', dir: MOCH
  *                            absent extra state
  *                          ]
  *   attrs     {?Array}   an optional list of attributes to update
  * }
  */
 
 // State caching tests for attribute changes
 const attributeTests = [{
-  desc: 'Checkbox with @checked attribute set to true should have checked ' +
-        'state',
+  desc: "Checkbox with @checked attribute set to true should have checked " +
+        "state",
   attrs: [{
-    attr: 'checked',
-    value: 'true'
+    attr: "checked",
+    value: "true"
   }],
   expected: [STATE_CHECKED, 0]
 }, {
-  desc: 'Checkbox with no @checked attribute should not have checked state',
+  desc: "Checkbox with no @checked attribute should not have checked state",
   attrs: [{
-    attr: 'checked'
+    attr: "checked"
   }],
   expected: [0, 0, STATE_CHECKED]
 }];
 
 // State caching tests for ARIA changes
 const ariaTests = [{
-  desc: 'File input has busy state when @aria-busy attribute is set to true',
+  desc: "File input has busy state when @aria-busy attribute is set to true",
   attrs: [{
-    attr: 'aria-busy',
-    value: 'true'
+    attr: "aria-busy",
+    value: "true"
   }],
   expected: [STATE_BUSY, 0, STATE_REQUIRED | STATE_INVALID]
 }, {
-  desc: 'File input has required state when @aria-required attribute is set ' +
-        'to true',
+  desc: "File input has required state when @aria-required attribute is set " +
+        "to true",
   attrs: [{
-    attr: 'aria-required',
-    value: 'true'
+    attr: "aria-required",
+    value: "true"
   }],
   expected: [STATE_REQUIRED, 0, STATE_INVALID]
 }, {
-  desc: 'File input has invalid state when @aria-invalid attribute is set to ' +
-        'true',
+  desc: "File input has invalid state when @aria-invalid attribute is set to " +
+        "true",
   attrs: [{
-    attr: 'aria-invalid',
-    value: 'true'
+    attr: "aria-invalid",
+    value: "true"
   }],
   expected: [STATE_INVALID, 0]
 }];
 
 // Extra state caching tests
 const extraStateTests = [{
-  desc: 'Input has no extra enabled state when aria and native disabled ' +
-        'attributes are set at once',
+  desc: "Input has no extra enabled state when aria and native disabled " +
+        "attributes are set at once",
   attrs: [{
-    attr: 'aria-disabled',
-    value: 'true'
+    attr: "aria-disabled",
+    value: "true"
   }, {
-    attr: 'disabled',
-    value: 'true'
+    attr: "disabled",
+    value: "true"
   }],
   expected: [0, 0, 0, EXT_STATE_ENABLED]
 }, {
-  desc: 'Input has an extra enabled state when aria and native disabled ' +
-        'attributes are unset at once',
+  desc: "Input has an extra enabled state when aria and native disabled " +
+        "attributes are unset at once",
   attrs: [{
-    attr: 'aria-disabled'
+    attr: "aria-disabled"
   }, {
-    attr: 'disabled'
+    attr: "disabled"
   }],
   expected: [0, EXT_STATE_ENABLED]
 }];
 
 async function runStateTests(browser, accDoc, id, tests) {
   let acc = findAccessibleChildByID(accDoc, id);
   for (let { desc, attrs, expected } of tests) {
     info(desc);
@@ -107,13 +107,13 @@ async function runStateTests(browser, ac
 /**
  * Test caching of accessible object states
  */
 addAccessibleTask(`
   <input id="checkbox" type="checkbox">
   <input id="file" type="file">
   <input id="text">`,
   async function (browser, accDoc) {
-    await runStateTests(browser, accDoc, 'checkbox', attributeTests);
-    await runStateTests(browser, accDoc, 'file', ariaTests);
-    await runStateTests(browser, accDoc, 'text', extraStateTests);
+    await runStateTests(browser, accDoc, "checkbox", attributeTests);
+    await runStateTests(browser, accDoc, "file", ariaTests);
+    await runStateTests(browser, accDoc, "text", extraStateTests);
   }
 );
--- a/accessible/tests/browser/e10s/browser_caching_value.js
+++ b/accessible/tests/browser/e10s/browser_caching_value.js
@@ -1,118 +1,118 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/value.js */
-loadScripts({ name: 'value.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "value.js", dir: MOCHITESTS_DIR });
 
 /**
  * Test data has the format of:
  * {
  *   desc      {String}            description for better logging
  *   id        {String}            given accessible DOMNode ID
  *   expected  {String}            expected value for a given accessible
  *   action    {?AsyncFunction}    an optional action that awaits a value change
  *   attrs     {?Array}            an optional list of attributes to update
  *   waitFor   {?Number}           an optional value change event to wait for
  * }
  */
 const valueTests = [{
-  desc: 'Initially value is set to 1st element of select',
-  id: 'select',
-  expected: '1st'
+  desc: "Initially value is set to 1st element of select",
+  id: "select",
+  expected: "1st"
 }, {
-  desc: 'Value should update to 3rd when 3 is pressed',
-  id: 'select',
+  desc: "Value should update to 3rd when 3 is pressed",
+  id: "select",
   action: async function(browser) {
-    await invokeFocus(browser, 'select');
-    await BrowserTestUtils.synthesizeKey('3', {}, browser);
+    await invokeFocus(browser, "select");
+    await BrowserTestUtils.synthesizeKey("3", {}, browser);
   },
   waitFor: EVENT_TEXT_VALUE_CHANGE,
-  expected: '3rd'
+  expected: "3rd"
 }, {
-  desc: 'Initially value is set to @aria-valuenow for slider',
-  id: 'slider',
-  expected: ['5', 5, 0, 7, 0]
+  desc: "Initially value is set to @aria-valuenow for slider",
+  id: "slider",
+  expected: ["5", 5, 0, 7, 0]
 }, {
-  desc: 'Value should change when @aria-valuenow is updated',
-  id: 'slider',
+  desc: "Value should change when @aria-valuenow is updated",
+  id: "slider",
   attrs: [{
-    attr: 'aria-valuenow',
-    value: '6'
+    attr: "aria-valuenow",
+    value: "6"
   }],
   waitFor: EVENT_VALUE_CHANGE,
-  expected: ['6', 6, 0, 7, 0]
+  expected: ["6", 6, 0, 7, 0]
 }, {
-  desc: 'Value should change when @aria-valuetext is set',
-  id: 'slider',
+  desc: "Value should change when @aria-valuetext is set",
+  id: "slider",
   attrs: [{
-    attr: 'aria-valuetext',
-    value: 'plain'
+    attr: "aria-valuetext",
+    value: "plain"
   }],
   waitFor: EVENT_TEXT_VALUE_CHANGE,
-  expected: ['plain', 6, 0, 7, 0]
+  expected: ["plain", 6, 0, 7, 0]
 }, {
-  desc: 'Value should change when @aria-valuetext is updated',
-  id: 'slider',
+  desc: "Value should change when @aria-valuetext is updated",
+  id: "slider",
   attrs: [{
-    attr: 'aria-valuetext',
-    value: 'hey!'
+    attr: "aria-valuetext",
+    value: "hey!"
   }],
   waitFor: EVENT_TEXT_VALUE_CHANGE,
-  expected: ['hey!', 6, 0, 7, 0]
+  expected: ["hey!", 6, 0, 7, 0]
 }, {
-  desc: 'Value should change to @aria-valuetext when @aria-valuenow is removed',
-  id: 'slider',
+  desc: "Value should change to @aria-valuetext when @aria-valuenow is removed",
+  id: "slider",
   attrs: [{
-    attr: 'aria-valuenow'
+    attr: "aria-valuenow"
   }],
-  expected: ['hey!', 0, 0, 7, 0]
+  expected: ["hey!", 0, 0, 7, 0]
 }, {
-  desc: 'Initially value is not set for combobox',
-  id: 'combobox',
-  expected: ''
+  desc: "Initially value is not set for combobox",
+  id: "combobox",
+  expected: ""
 }, {
-  desc: 'Value should change when @value attribute is updated',
-  id: 'combobox',
+  desc: "Value should change when @value attribute is updated",
+  id: "combobox",
   attrs: [{
-    attr: 'value',
-    value: 'hello'
+    attr: "value",
+    value: "hello"
   }],
   waitFor: EVENT_TEXT_VALUE_CHANGE,
-  expected: 'hello'
+  expected: "hello"
 }, {
-  desc: 'Initially value corresponds to @value attribute for progress',
-  id: 'progress',
-  expected: '22%'
+  desc: "Initially value corresponds to @value attribute for progress",
+  id: "progress",
+  expected: "22%"
 }, {
-  desc: 'Value should change when @value attribute is updated',
-  id: 'progress',
+  desc: "Value should change when @value attribute is updated",
+  id: "progress",
   attrs: [{
-    attr: 'value',
-    value: '50'
+    attr: "value",
+    value: "50"
   }],
   waitFor: EVENT_VALUE_CHANGE,
-  expected: '50%'
+  expected: "50%"
 }, {
-  desc: 'Initially value corresponds to @value attribute for range',
-  id: 'range',
-  expected: '6'
+  desc: "Initially value corresponds to @value attribute for range",
+  id: "range",
+  expected: "6"
 }, {
-  desc: 'Value should change when slider is moved',
-  id: 'range',
+  desc: "Value should change when slider is moved",
+  id: "range",
   action: async function(browser) {
-    await invokeFocus(browser, 'range');
-    await BrowserTestUtils.synthesizeKey('VK_LEFT', {}, browser);
+    await invokeFocus(browser, "range");
+    await BrowserTestUtils.synthesizeKey("VK_LEFT", {}, browser);
   },
   waitFor: EVENT_VALUE_CHANGE,
-  expected: '5'
+  expected: "5"
 }];
 
 /**
  * Test caching of accessible object values
  */
 addAccessibleTask(`
   <div id="slider" role="slider" aria-valuenow="5"
        aria-valuemin="0" aria-valuemax="7">slider</div>
--- a/accessible/tests/browser/e10s/browser_events_caretmove.js
+++ b/accessible/tests/browser/e10s/browser_events_caretmove.js
@@ -1,19 +1,19 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /**
  * Test caret move event and its interface:
  *   - caretOffset
  */
 addAccessibleTask('<input id="textbox" value="hello"/>', async function(browser) {
-  let onCaretMoved = waitForEvent(EVENT_TEXT_CARET_MOVED, 'textbox');
-  await invokeFocus(browser, 'textbox');
+  let onCaretMoved = waitForEvent(EVENT_TEXT_CARET_MOVED, "textbox");
+  await invokeFocus(browser, "textbox");
   let event = await onCaretMoved;
 
   let caretMovedEvent = event.QueryInterface(nsIAccessibleCaretMoveEvent);
   is(caretMovedEvent.caretOffset, 5,
-    'Correct caret offset.');
+    "Correct caret offset.");
 });
--- a/accessible/tests/browser/e10s/browser_events_hide.js
+++ b/accessible/tests/browser/e10s/browser_events_hide.js
@@ -1,33 +1,33 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /**
  * Test hide event and its interface:
  *   - targetParent
  *   - targetNextSibling
  *   - targetPrevSibling
  */
 addAccessibleTask(`
   <div id="parent">
     <div id="previous"></div>
     <div id="to-hide"></div>
     <div id="next"></div>
   </div>`,
   async function(browser, accDoc) {
-    let acc = findAccessibleChildByID(accDoc, 'to-hide');
+    let acc = findAccessibleChildByID(accDoc, "to-hide");
     let onHide = waitForEvent(EVENT_HIDE, acc);
-    await invokeSetStyle(browser, 'to-hide', 'visibility', 'hidden');
+    await invokeSetStyle(browser, "to-hide", "visibility", "hidden");
     let event = await onHide;
     let hideEvent = event.QueryInterface(Ci.nsIAccessibleHideEvent);
 
-    is(getAccessibleDOMNodeID(hideEvent.targetParent), 'parent',
-      'Correct target parent.');
-    is(getAccessibleDOMNodeID(hideEvent.targetNextSibling), 'next',
-      'Correct target next sibling.');
-    is(getAccessibleDOMNodeID(hideEvent.targetPrevSibling), 'previous',
-      'Correct target previous sibling.');
+    is(getAccessibleDOMNodeID(hideEvent.targetParent), "parent",
+      "Correct target parent.");
+    is(getAccessibleDOMNodeID(hideEvent.targetNextSibling), "next",
+      "Correct target next sibling.");
+    is(getAccessibleDOMNodeID(hideEvent.targetPrevSibling), "previous",
+      "Correct target previous sibling.");
   }
 );
--- a/accessible/tests/browser/e10s/browser_events_show.js
+++ b/accessible/tests/browser/e10s/browser_events_show.js
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /**
  * Test show event
  */
 addAccessibleTask('<div id="div" style="visibility: hidden;"></div>',
   async function(browser) {
-    let onShow = waitForEvent(EVENT_SHOW, 'div');
-    await invokeSetStyle(browser, 'div', 'visibility', 'visible');
+    let onShow = waitForEvent(EVENT_SHOW, "div");
+    await invokeSetStyle(browser, "div", "visibility", "visible");
     await onShow;
   });
--- a/accessible/tests/browser/e10s/browser_events_statechange.js
+++ b/accessible/tests/browser/e10s/browser_events_statechange.js
@@ -1,25 +1,25 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
 /* import-globals-from ../../mochitest/states.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR },
-            { name: 'states.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR },
+            { name: "states.js", dir: MOCHITESTS_DIR });
 
 function checkStateChangeEvent(event, state, isExtraState, isEnabled) {
   let scEvent = event.QueryInterface(nsIAccessibleStateChangeEvent);
-  is(scEvent.state, state, 'Correct state of the statechange event.');
+  is(scEvent.state, state, "Correct state of the statechange event.");
   is(scEvent.isExtraState, isExtraState,
-    'Correct extra state bit of the statechange event.');
-  is(scEvent.isEnabled, isEnabled, 'Correct state of statechange event state');
+    "Correct extra state bit of the statechange event.");
+  is(scEvent.isEnabled, isEnabled, "Correct state of statechange event state");
 }
 
 // Insert mock source into the iframe to be able to verify the right document
 // body id.
 let iframeSrc = `data:text/html,
   <html>
     <head>
       <meta charset='utf-8'/>
@@ -33,29 +33,29 @@ let iframeSrc = `data:text/html,
  *   - state
  *   - isExtraState
  *   - isEnabled
  */
 addAccessibleTask(`
   <iframe id="iframe" src="${iframeSrc}"></iframe>
   <input id="checkbox" type="checkbox" />`, async function(browser) {
   // Test state change
-  let onStateChange = waitForEvent(EVENT_STATE_CHANGE, 'checkbox');
+  let onStateChange = waitForEvent(EVENT_STATE_CHANGE, "checkbox");
   // Set checked for a checkbox.
   await ContentTask.spawn(browser, {}, () => {
-    content.document.getElementById('checkbox').checked = true;
+    content.document.getElementById("checkbox").checked = true;
   });
   let event = await onStateChange;
 
   checkStateChangeEvent(event, STATE_CHECKED, false, true);
   testStates(event.accessible, STATE_CHECKED, 0);
 
   // Test extra state
-  onStateChange = waitForEvent(EVENT_STATE_CHANGE, 'iframe');
+  onStateChange = waitForEvent(EVENT_STATE_CHANGE, "iframe");
   // Set design mode on.
   await ContentTask.spawn(browser, {}, () => {
-    content.document.getElementById('iframe').contentDocument.designMode = 'on';
+    content.document.getElementById("iframe").contentDocument.designMode = "on";
   });
   event = await onStateChange;
 
   checkStateChangeEvent(event, EXT_STATE_EDITABLE, true, true);
   testStates(event.accessible, 0, EXT_STATE_EDITABLE);
 });
--- a/accessible/tests/browser/e10s/browser_events_textchange.js
+++ b/accessible/tests/browser/e10s/browser_events_textchange.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 function checkTextChangeEvent(event, id, text, start, end, isInserted, isFromUserInput) {
   let tcEvent = event.QueryInterface(nsIAccessibleTextChangeEvent);
   is(tcEvent.start, start, `Correct start offset for ${prettyName(id)}`);
   is(tcEvent.length, end - start, `Correct length for ${prettyName(id)}`);
   is(tcEvent.isInserted, isInserted,
     `Correct isInserted flag for ${prettyName(id)}`);
   is(tcEvent.modifiedText, text, `Correct text for ${prettyName(id)}`);
@@ -35,17 +35,17 @@ async function changeText(browser, id, v
 async function removeTextFromInput(browser, id, value, start, end) {
   let onTextRemoved = waitForEvent(EVENT_TEXT_REMOVED, id);
   // Select text and delete it.
   await ContentTask.spawn(browser, [id, start, end], ([contentId, contentStart, contentEnd]) => {
     let el = content.document.getElementById(contentId);
     el.focus();
     el.setSelectionRange(contentStart, contentEnd);
   });
-  await BrowserTestUtils.sendChar('VK_DELETE', browser);
+  await BrowserTestUtils.sendChar("VK_DELETE", browser);
 
   let event = await onTextRemoved;
   checkTextChangeEvent(event, id, value, start, end, false, true);
 }
 
 /**
  * Test text change event and its interface:
  *   - start
@@ -53,19 +53,19 @@ async function removeTextFromInput(brows
  *   - isInserted
  *   - modifiedText
  *   - isFromUserInput
  */
 addAccessibleTask(`
   <p id="p">abc</p>
   <input id="input" value="input" />`, async function(browser) {
   let events = [
-    { isInserted: false, str: 'abc', offset: 0 },
-    { isInserted: true, str: 'def', offset: 0 }
+    { isInserted: false, str: "abc", offset: 0 },
+    { isInserted: true, str: "def", offset: 0 }
   ];
-  await changeText(browser, 'p', 'def', events);
+  await changeText(browser, "p", "def", events);
 
-  events = [{ isInserted: true, str: 'DEF', offset: 2 }];
-  await changeText(browser, 'p', 'deDEFf', events);
+  events = [{ isInserted: true, str: "DEF", offset: 2 }];
+  await changeText(browser, "p", "deDEFf", events);
 
   // Test isFromUserInput property.
-  await removeTextFromInput(browser, 'input', 'n', 1, 2);
+  await removeTextFromInput(browser, "input", "n", 1, 2);
 });
--- a/accessible/tests/browser/e10s/browser_treeupdate_ariadialog.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_ariadialog.js
@@ -1,28 +1,28 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 // Test ARIA Dialog
-addAccessibleTask('doc_treeupdate_ariadialog.html', async function(browser, accDoc) {
+addAccessibleTask("doc_treeupdate_ariadialog.html", async function(browser, accDoc) {
   testAccessibleTree(accDoc, {
     role: ROLE_DOCUMENT,
     children: [ ]
   });
 
   // Make dialog visible and update its inner content.
-  let onShow = waitForEvent(EVENT_SHOW, 'dialog');
+  let onShow = waitForEvent(EVENT_SHOW, "dialog");
   await ContentTask.spawn(browser, {}, () => {
-    content.document.getElementById('dialog').style.display = 'block';
+    content.document.getElementById("dialog").style.display = "block";
   });
   await onShow;
 
   testAccessibleTree(accDoc, {
     role: ROLE_DOCUMENT,
     children: [
       {
         role: ROLE_DIALOG,
--- a/accessible/tests/browser/e10s/browser_treeupdate_ariaowns.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_ariaowns.js
@@ -1,19 +1,19 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 async function testContainer1(browser, accDoc) {
-  const id = 't1_container';
+  const id = "t1_container";
   const docID = getAccessibleDOMNodeID(accDoc);
   const acc = findAccessibleChildByID(accDoc, id);
 
   /* ================= Initial tree test ==================================== */
   // children are swapped by ARIA owns
   let tree = {
     SECTION: [
       { CHECKBUTTON: [
@@ -21,66 +21,66 @@ async function testContainer1(browser, a
       ] },
       { PUSHBUTTON: [ ] }
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================ Change ARIA owns ====================================== */
   let onReorder = waitForEvent(EVENT_REORDER, id);
-  await invokeSetAttribute(browser, id, 'aria-owns', 't1_button t1_subdiv');
+  await invokeSetAttribute(browser, id, "aria-owns", "t1_button t1_subdiv");
   await onReorder;
 
   // children are swapped again, button and subdiv are appended to
   // the children.
   tree = {
     SECTION: [
       { CHECKBUTTON: [ ] }, // checkbox, native order
       { PUSHBUTTON: [ ] }, // button, rearranged by ARIA own
       { SECTION: [ ] } // subdiv from the subtree, ARIA owned
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================ Remove ARIA owns ====================================== */
   onReorder = waitForEvent(EVENT_REORDER, id);
-  await invokeSetAttribute(browser, id, 'aria-owns');
+  await invokeSetAttribute(browser, id, "aria-owns");
   await onReorder;
 
   // children follow the DOM order
   tree = {
     SECTION: [
       { PUSHBUTTON: [ ] },
       { CHECKBUTTON: [
           { SECTION: [] }
       ] }
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================ Set ARIA owns ========================================= */
   onReorder = waitForEvent(EVENT_REORDER, id);
-  await invokeSetAttribute(browser, id, 'aria-owns', 't1_button t1_subdiv');
+  await invokeSetAttribute(browser, id, "aria-owns", "t1_button t1_subdiv");
   await onReorder;
 
   // children are swapped again, button and subdiv are appended to
   // the children.
   tree = {
     SECTION: [
       { CHECKBUTTON: [ ] }, // checkbox
       { PUSHBUTTON: [ ] }, // button, rearranged by ARIA own
       { SECTION: [ ] } // subdiv from the subtree, ARIA owned
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================ Add ID to ARIA owns =================================== */
   onReorder = waitForEvent(EVENT_REORDER, docID);
-  await invokeSetAttribute(browser, id, 'aria-owns',
-    't1_button t1_subdiv t1_group');
+  await invokeSetAttribute(browser, id, "aria-owns",
+    "t1_button t1_subdiv t1_group");
   await onReorder;
 
   // children are swapped again, button and subdiv are appended to
   // the children.
   tree = {
     SECTION: [
       { CHECKBUTTON: [ ] }, // t1_checkbox
       { PUSHBUTTON: [ ] }, // button, t1_button
@@ -88,19 +88,19 @@ async function testContainer1(browser, a
       { GROUPING: [ ] } // group from outside, t1_group
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================ Append element ======================================== */
   onReorder = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
-    let div = content.document.createElement('div');
-    div.setAttribute('id', 't1_child3');
-    div.setAttribute('role', 'radio');
+    let div = content.document.createElement("div");
+    div.setAttribute("id", "t1_child3");
+    div.setAttribute("role", "radio");
     content.document.getElementById(contentId).appendChild(div);
   });
   await onReorder;
 
   // children are invalidated, they includes aria-owns swapped kids and
   // newly inserted child.
   tree = {
     SECTION: [
@@ -111,92 +111,92 @@ async function testContainer1(browser, a
       { GROUPING: [ ] } // ARIA owned, t1_group
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================ Remove element ======================================== */
   onReorder = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, {}, () =>
-    content.document.getElementById('t1_span').remove());
+    content.document.getElementById("t1_span").remove());
   await onReorder;
 
   // subdiv should go away
   tree = {
     SECTION: [
       { CHECKBUTTON: [ ] }, // explicit, t1_checkbox
       { RADIOBUTTON: [ ] }, // explicit, t1_child3
       { PUSHBUTTON: [ ] }, // ARIA owned, t1_button
       { GROUPING: [ ] } // ARIA owned, t1_group
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================ Remove ID ============================================= */
   onReorder = waitForEvent(EVENT_REORDER, docID);
-  await invokeSetAttribute(browser, 't1_group', 'id');
+  await invokeSetAttribute(browser, "t1_group", "id");
   await onReorder;
 
   tree = {
     SECTION: [
       { CHECKBUTTON: [ ] },
       { RADIOBUTTON: [ ] },
       { PUSHBUTTON: [ ] } // ARIA owned, t1_button
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================ Set ID ================================================ */
   onReorder = waitForEvent(EVENT_REORDER, docID);
-  await invokeSetAttribute(browser, 't1_grouptmp', 'id', 't1_group');
+  await invokeSetAttribute(browser, "t1_grouptmp", "id", "t1_group");
   await onReorder;
 
   tree = {
     SECTION: [
       { CHECKBUTTON: [ ] },
       { RADIOBUTTON: [ ] },
       { PUSHBUTTON: [ ] }, // ARIA owned, t1_button
       { GROUPING: [ ] } // ARIA owned, t1_group, previously t1_grouptmp
     ]
   };
   testAccessibleTree(acc, tree);
 }
 
 async function removeContainer(browser, accDoc) {
-  const id = 't2_container1';
+  const id = "t2_container1";
   const acc = findAccessibleChildByID(accDoc, id);
 
   let tree = {
     SECTION: [
       { CHECKBUTTON: [ ] } // ARIA owned, 't2_owned'
     ]
   };
   testAccessibleTree(acc, tree);
 
   let onReorder = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, {}, () =>
-    content.document.getElementById('t2_container2').removeChild(
-      content.document.getElementById('t2_container3')));
+    content.document.getElementById("t2_container2").removeChild(
+      content.document.getElementById("t2_container3")));
   await onReorder;
 
   tree = {
     SECTION: [ ]
   };
   testAccessibleTree(acc, tree);
 }
 
 async function stealAndRecacheChildren(browser, accDoc) {
-  const id1 = 't3_container1';
-  const id2 = 't3_container2';
+  const id1 = "t3_container1";
+  const id2 = "t3_container2";
   const acc1 = findAccessibleChildByID(accDoc, id1);
   const acc2 = findAccessibleChildByID(accDoc, id2);
 
   /* ================ Steal from other ARIA owns ============================ */
   let onReorder = waitForEvent(EVENT_REORDER, id2);
-  await invokeSetAttribute(browser, id2, 'aria-owns', 't3_child');
+  await invokeSetAttribute(browser, id2, "aria-owns", "t3_child");
   await onReorder;
 
   let tree = {
     SECTION: [ ]
   };
   testAccessibleTree(acc1, tree);
 
   tree = {
@@ -204,18 +204,18 @@ async function stealAndRecacheChildren(b
       { CHECKBUTTON: [ ] }
     ]
   };
   testAccessibleTree(acc2, tree);
 
   /* ================ Append element to recache children ==================== */
   onReorder = waitForEvent(EVENT_REORDER, id2);
   await ContentTask.spawn(browser, id2, id => {
-    let div = content.document.createElement('div');
-    div.setAttribute('role', 'radio');
+    let div = content.document.createElement("div");
+    div.setAttribute("role", "radio");
     content.document.getElementById(id).appendChild(div);
   });
   await onReorder;
 
   tree = {
     SECTION: [ ]
   };
   testAccessibleTree(acc1, tree);
@@ -225,92 +225,92 @@ async function stealAndRecacheChildren(b
       { RADIOBUTTON: [ ] },
       { CHECKBUTTON: [ ] } // ARIA owned
     ]
   };
   testAccessibleTree(acc2, tree);
 }
 
 async function showHiddenElement(browser, accDoc) {
-  const id = 't4_container1';
+  const id = "t4_container1";
   const acc = findAccessibleChildByID(accDoc, id);
 
   let tree = {
     SECTION: [
       { RADIOBUTTON: [] }
     ]
   };
   testAccessibleTree(acc, tree);
 
   let onReorder = waitForEvent(EVENT_REORDER, id);
-  await invokeSetStyle(browser, 't4_child1', 'display', 'block');
+  await invokeSetStyle(browser, "t4_child1", "display", "block");
   await onReorder;
 
   tree = {
     SECTION: [
       { CHECKBUTTON: [] },
       { RADIOBUTTON: [] }
     ]
   };
   testAccessibleTree(acc, tree);
 }
 
 async function rearrangeARIAOwns(browser, accDoc) {
-  const id = 't5_container';
+  const id = "t5_container";
   const acc = findAccessibleChildByID(accDoc, id);
   const tests = [{
-    val: 't5_checkbox t5_radio t5_button',
-    roleList: [ 'CHECKBUTTON', 'RADIOBUTTON', 'PUSHBUTTON' ]
+    val: "t5_checkbox t5_radio t5_button",
+    roleList: [ "CHECKBUTTON", "RADIOBUTTON", "PUSHBUTTON" ]
   }, {
-    val: 't5_radio t5_button t5_checkbox',
-    roleList: [ 'RADIOBUTTON', 'PUSHBUTTON', 'CHECKBUTTON' ]
+    val: "t5_radio t5_button t5_checkbox",
+    roleList: [ "RADIOBUTTON", "PUSHBUTTON", "CHECKBUTTON" ]
   }];
 
   for (let { val, roleList } of tests) {
     let onReorder = waitForEvent(EVENT_REORDER, id);
-    await invokeSetAttribute(browser, id, 'aria-owns', val);
+    await invokeSetAttribute(browser, id, "aria-owns", val);
     await onReorder;
 
     let tree = { SECTION: [ ] };
     for (let role of roleList) {
       let ch = {};
       ch[role] = [];
       tree.SECTION.push(ch);
     }
     testAccessibleTree(acc, tree);
   }
 }
 
 async function removeNotARIAOwnedEl(browser, accDoc) {
-  const id = 't6_container';
+  const id = "t6_container";
   const acc = findAccessibleChildByID(accDoc, id);
 
   let tree = {
     SECTION: [
       { TEXT_LEAF: [ ] },
       { GROUPING: [ ] }
     ]
   };
   testAccessibleTree(acc, tree);
 
   let onReorder = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
     content.document.getElementById(contentId).removeChild(
-      content.document.getElementById('t6_span'));
+      content.document.getElementById("t6_span"));
   });
   await onReorder;
 
   tree = {
     SECTION: [
       { GROUPING: [ ] }
     ]
   };
   testAccessibleTree(acc, tree);
 }
 
-addAccessibleTask('doc_treeupdate_ariaowns.html', async function(browser, accDoc) {
+addAccessibleTask("doc_treeupdate_ariaowns.html", async function(browser, accDoc) {
   await testContainer1(browser, accDoc);
   await removeContainer(browser, accDoc);
   await stealAndRecacheChildren(browser, accDoc);
   await showHiddenElement(browser, accDoc);
   await rearrangeARIAOwns(browser, accDoc);
   await removeNotARIAOwnedEl(browser, accDoc);
 });
--- a/accessible/tests/browser/e10s/browser_treeupdate_canvas.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_canvas.js
@@ -1,24 +1,24 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 addAccessibleTask(`
   <canvas id="canvas">
     <div id="dialog" role="dialog" style="display: none;"></div>
   </canvas>`, async function(browser, accDoc) {
-  let canvas = findAccessibleChildByID(accDoc, 'canvas');
-  let dialog = findAccessibleChildByID(accDoc, 'dialog');
+  let canvas = findAccessibleChildByID(accDoc, "canvas");
+  let dialog = findAccessibleChildByID(accDoc, "dialog");
 
   testAccessibleTree(canvas, { CANVAS: [] });
 
-  let onShow = waitForEvent(EVENT_SHOW, 'dialog');
-  await invokeSetStyle(browser, 'dialog', 'display', 'block');
+  let onShow = waitForEvent(EVENT_SHOW, "dialog");
+  await invokeSetStyle(browser, "dialog", "display", "block");
   await onShow;
 
   testAccessibleTree(dialog, { DIALOG: [] });
 });
--- a/accessible/tests/browser/e10s/browser_treeupdate_cssoverflow.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_cssoverflow.js
@@ -1,42 +1,42 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 addAccessibleTask(`
   <div id="container"><div id="scrollarea" style="overflow:auto;"><input>
   </div></div>
   <div id="container2"><div id="scrollarea2" style="overflow:hidden;">
   </div></div>`, async function(browser, accDoc) {
-  const id1 = 'container';
-  const id2 = 'container2';
+  const id1 = "container";
+  const id2 = "container2";
   const container = findAccessibleChildByID(accDoc, id1);
   const container2 = findAccessibleChildByID(accDoc, id2);
 
   /* ================= Change scroll range ================================== */
   let tree = {
     SECTION: [ {// container
       SECTION: [ {// scroll area
         ENTRY: [ ] // child content
       } ]
     } ]
   };
   testAccessibleTree(container, tree);
 
   let onReorder = waitForEvent(EVENT_REORDER, id1);
   await ContentTask.spawn(browser, id1, id => {
     let doc = content.document;
-    doc.getElementById('scrollarea').style.width = '20px';
-    doc.getElementById(id).appendChild(doc.createElement('input'));
+    doc.getElementById("scrollarea").style.width = "20px";
+    doc.getElementById(id).appendChild(doc.createElement("input"));
   });
   await onReorder;
 
   tree = {
     SECTION: [ {// container
       SECTION: [ {// scroll area
         ENTRY: [ ] // child content
       } ]
@@ -46,17 +46,17 @@ addAccessibleTask(`
   };
   testAccessibleTree(container, tree);
 
   /* ================= Change scrollbar styles ============================== */
   tree = { SECTION: [ ] };
   testAccessibleTree(container2, tree);
 
   onReorder = waitForEvent(EVENT_REORDER, id2);
-  await invokeSetStyle(browser, 'scrollarea2', 'overflow', 'auto');
+  await invokeSetStyle(browser, "scrollarea2", "overflow", "auto");
   await onReorder;
 
   tree = {
     SECTION: [ // container
       { SECTION: [] } // scroll area
     ]
   };
   testAccessibleTree(container2, tree);
--- a/accessible/tests/browser/e10s/browser_treeupdate_doc.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_doc.js
@@ -1,121 +1,121 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 const iframeSrc = `data:text/html,
   <html>
     <head>
       <meta charset='utf-8'/>
       <title>Inner Iframe</title>
     </head>
     <body id='inner-iframe'></body>
   </html>`;
 
 addAccessibleTask(`
   <iframe id="iframe" src="${iframeSrc}"></iframe>`, async function(browser, accDoc) {
   // ID of the iframe that is being tested
-  const id = 'inner-iframe';
+  const id = "inner-iframe";
 
   let iframe = findAccessibleChildByID(accDoc, id);
 
   /* ================= Initial tree check =================================== */
   let tree = {
     role: ROLE_DOCUMENT,
     children: [ ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================= Write iframe document ================================ */
   let reorderEventPromise = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
-    let docNode = content.document.getElementById('iframe').contentDocument;
-    let newHTMLNode = docNode.createElement('html');
-    let newBodyNode = docNode.createElement('body');
-    let newTextNode = docNode.createTextNode('New Wave');
+    let docNode = content.document.getElementById("iframe").contentDocument;
+    let newHTMLNode = docNode.createElement("html");
+    let newBodyNode = docNode.createElement("body");
+    let newTextNode = docNode.createTextNode("New Wave");
     newBodyNode.id = contentId;
     newBodyNode.appendChild(newTextNode);
     newHTMLNode.appendChild(newBodyNode);
     docNode.replaceChild(newHTMLNode, docNode.documentElement);
   });
   await reorderEventPromise;
 
   tree = {
     role: ROLE_DOCUMENT,
     children: [
       {
         role: ROLE_TEXT_LEAF,
-        name: 'New Wave'
+        name: "New Wave"
       }
     ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================= Replace iframe HTML element ========================== */
   reorderEventPromise = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
-    let docNode = content.document.getElementById('iframe').contentDocument;
+    let docNode = content.document.getElementById("iframe").contentDocument;
     // We can't use open/write/close outside of iframe document because of
     // security error.
-    let script = docNode.createElement('script');
+    let script = docNode.createElement("script");
     script.textContent = `
       document.open();
       document.write('<body id="${contentId}">hello</body>');
       document.close();`;
     docNode.body.appendChild(script);
   });
   await reorderEventPromise;
 
   tree = {
     role: ROLE_DOCUMENT,
     children: [
       {
         role: ROLE_TEXT_LEAF,
-        name: 'hello'
+        name: "hello"
       }
     ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================= Replace iframe body ================================== */
   reorderEventPromise = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
-    let docNode = content.document.getElementById('iframe').contentDocument;
-    let newBodyNode = docNode.createElement('body');
-    let newTextNode = docNode.createTextNode('New Hello');
+    let docNode = content.document.getElementById("iframe").contentDocument;
+    let newBodyNode = docNode.createElement("body");
+    let newTextNode = docNode.createTextNode("New Hello");
     newBodyNode.id = contentId;
     newBodyNode.appendChild(newTextNode);
-    newBodyNode.setAttribute('role', 'button');
+    newBodyNode.setAttribute("role", "button");
     docNode.documentElement.replaceChild(newBodyNode, docNode.body);
   });
   await reorderEventPromise;
 
   tree = {
     role: ROLE_PUSHBUTTON,
     children: [
       {
         role: ROLE_TEXT_LEAF,
-        name: 'New Hello'
+        name: "New Hello"
       }
     ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================= Open iframe document ================================= */
   reorderEventPromise = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
     // Open document.
-    let docNode = content.document.getElementById('iframe').contentDocument;
-    let script = docNode.createElement('script');
+    let docNode = content.document.getElementById("iframe").contentDocument;
+    let script = docNode.createElement("script");
     script.textContent = `
       function closeMe() {
         document.write('Works?');
         document.close();
       }
       window.closeMe = closeMe;
       document.open();
       document.write('<body id="${contentId}"></body>');`;
@@ -128,183 +128,183 @@ addAccessibleTask(`
     children: [ ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================= Close iframe document ================================ */
   reorderEventPromise = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, {}, () => {
     // Write and close document.
-    let docNode = content.document.getElementById('iframe').contentDocument;
-    docNode.write('Works?');
+    let docNode = content.document.getElementById("iframe").contentDocument;
+    docNode.write("Works?");
     docNode.close();
   });
   await reorderEventPromise;
 
   tree = {
     role: ROLE_DOCUMENT,
     children: [
       {
         role: ROLE_TEXT_LEAF,
-        name: 'Works?'
+        name: "Works?"
       }
     ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================= Remove HTML from iframe document ===================== */
   reorderEventPromise = waitForEvent(EVENT_REORDER, iframe);
   await ContentTask.spawn(browser, {}, () => {
     // Remove HTML element.
-    let docNode = content.document.getElementById('iframe').contentDocument;
+    let docNode = content.document.getElementById("iframe").contentDocument;
     docNode.firstChild.remove();
   });
   let event = await reorderEventPromise;
 
   ok(event.accessible instanceof nsIAccessibleDocument,
-    'Reorder should happen on the document');
+    "Reorder should happen on the document");
   tree = {
     role: ROLE_DOCUMENT,
     children: [ ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================= Insert HTML to iframe document ======================= */
   reorderEventPromise = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
     // Insert HTML element.
-    let docNode = content.document.getElementById('iframe').contentDocument;
-    let html = docNode.createElement('html');
-    let body = docNode.createElement('body');
-    let text = docNode.createTextNode('Haha');
+    let docNode = content.document.getElementById("iframe").contentDocument;
+    let html = docNode.createElement("html");
+    let body = docNode.createElement("body");
+    let text = docNode.createTextNode("Haha");
     body.appendChild(text);
     body.id = contentId;
     html.appendChild(body);
     docNode.appendChild(html);
   });
   await reorderEventPromise;
 
   tree = {
     role: ROLE_DOCUMENT,
     children: [
       {
         role: ROLE_TEXT_LEAF,
-        name: 'Haha'
+        name: "Haha"
       }
     ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================= Remove body from iframe document ===================== */
   reorderEventPromise = waitForEvent(EVENT_REORDER, iframe);
   await ContentTask.spawn(browser, {}, () => {
     // Remove body element.
-    let docNode = content.document.getElementById('iframe').contentDocument;
+    let docNode = content.document.getElementById("iframe").contentDocument;
     docNode.documentElement.removeChild(docNode.body);
   });
   event = await reorderEventPromise;
 
   ok(event.accessible instanceof nsIAccessibleDocument,
-    'Reorder should happen on the document');
+    "Reorder should happen on the document");
   tree = {
     role: ROLE_DOCUMENT,
     children: [ ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================ Insert element under document element while body missed */
   reorderEventPromise = waitForEvent(EVENT_REORDER, iframe);
   await ContentTask.spawn(browser, {}, () => {
-    let docNode = content.document.getElementById('iframe').contentDocument;
-    let inputNode = content.window.inputNode = docNode.createElement('input');
+    let docNode = content.document.getElementById("iframe").contentDocument;
+    let inputNode = content.window.inputNode = docNode.createElement("input");
     docNode.documentElement.appendChild(inputNode);
   });
   event = await reorderEventPromise;
 
   ok(event.accessible instanceof nsIAccessibleDocument,
-    'Reorder should happen on the document');
+    "Reorder should happen on the document");
   tree = {
     DOCUMENT: [
       { ENTRY: [ ] }
     ]
   };
   testAccessibleTree(iframe, tree);
 
   reorderEventPromise = waitForEvent(EVENT_REORDER, iframe);
   await ContentTask.spawn(browser, {}, () => {
     let docEl =
-      content.document.getElementById('iframe').contentDocument.documentElement;
+      content.document.getElementById("iframe").contentDocument.documentElement;
     // Remove aftermath of this test before next test starts.
     docEl.firstChild.remove();
   });
   // Make sure reorder event was fired and that the input was removed.
   await reorderEventPromise;
   tree = {
     role: ROLE_DOCUMENT,
     children: [ ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================= Insert body to iframe document ======================= */
   reorderEventPromise = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
     // Write and close document.
-    let docNode = content.document.getElementById('iframe').contentDocument;
+    let docNode = content.document.getElementById("iframe").contentDocument;
     // Insert body element.
-    let body = docNode.createElement('body');
-    let text = docNode.createTextNode('Yo ho ho i butylka roma!');
+    let body = docNode.createElement("body");
+    let text = docNode.createTextNode("Yo ho ho i butylka roma!");
     body.appendChild(text);
     body.id = contentId;
     docNode.documentElement.appendChild(body);
   });
   await reorderEventPromise;
 
   tree = {
     role: ROLE_DOCUMENT,
     children: [
       {
         role: ROLE_TEXT_LEAF,
-        name: 'Yo ho ho i butylka roma!'
+        name: "Yo ho ho i butylka roma!"
       }
     ]
   };
   testAccessibleTree(iframe, tree);
 
   /* ================= Change source ======================================== */
-  reorderEventPromise = waitForEvent(EVENT_REORDER, 'iframe');
-  await invokeSetAttribute(browser, 'iframe', 'src',
+  reorderEventPromise = waitForEvent(EVENT_REORDER, "iframe");
+  await invokeSetAttribute(browser, "iframe", "src",
     `data:text/html,<html><body id="${id}"><input></body></html>`);
   event = await reorderEventPromise;
 
   tree = {
     INTERNAL_FRAME: [
       { DOCUMENT: [
         { ENTRY: [ ] }
       ] }
     ]
   };
   testAccessibleTree(event.accessible, tree);
   iframe = findAccessibleChildByID(event.accessible, id);
 
   /* ================= Replace iframe body on ARIA role body ================ */
   reorderEventPromise = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
-    let docNode = content.document.getElementById('iframe').contentDocument;
-    let newBodyNode = docNode.createElement('body');
-    let newTextNode = docNode.createTextNode('New Hello');
+    let docNode = content.document.getElementById("iframe").contentDocument;
+    let newBodyNode = docNode.createElement("body");
+    let newTextNode = docNode.createTextNode("New Hello");
     newBodyNode.appendChild(newTextNode);
-    newBodyNode.setAttribute('role', 'button');
+    newBodyNode.setAttribute("role", "button");
     newBodyNode.id = contentId;
     docNode.documentElement.replaceChild(newBodyNode, docNode.body);
   });
   await reorderEventPromise;
 
   tree = {
     role: ROLE_PUSHBUTTON,
     children: [
       {
         role: ROLE_TEXT_LEAF,
-        name: 'New Hello'
+        name: "New Hello"
       }
     ]
   };
   testAccessibleTree(iframe, tree);
 });
--- a/accessible/tests/browser/e10s/browser_treeupdate_gencontent.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_gencontent.js
@@ -1,31 +1,31 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 addAccessibleTask(`
   <style>
     .gentext:before {
       content: "START"
     }
     .gentext:after {
       content: "END"
     }
   </style>
   <div id="container1"></div>
   <div id="container2"><div id="container2_child">text</div></div>`,
   async function(browser, accDoc) {
-    const id1 = 'container1';
-    const id2 = 'container2';
+    const id1 = "container1";
+    const id2 = "container2";
     let container1 = findAccessibleChildByID(accDoc, id1);
     let container2 = findAccessibleChildByID(accDoc, id2);
 
     let tree = {
       SECTION: [ ] // container
     };
     testAccessibleTree(container1, tree);
 
@@ -36,19 +36,19 @@ addAccessibleTask(`
         } ]
       } ]
     };
     testAccessibleTree(container2, tree);
 
     let onReorder = waitForEvent(EVENT_REORDER, id1);
     // Create and add an element with CSS generated content to container1
     await ContentTask.spawn(browser, id1, id => {
-      let node = content.document.createElement('div');
-      node.textContent = 'text';
-      node.setAttribute('class', 'gentext');
+      let node = content.document.createElement("div");
+      node.textContent = "text";
+      node.setAttribute("class", "gentext");
       content.document.getElementById(id).appendChild(node);
     });
     await onReorder;
 
     tree = {
       SECTION: [ // container
         { SECTION: [ // inserted node
           { STATICTEXT: [] }, // :before
@@ -56,17 +56,17 @@ addAccessibleTask(`
           { STATICTEXT: [] } // :after
         ] }
       ]
     };
     testAccessibleTree(container1, tree);
 
     onReorder = waitForEvent(EVENT_REORDER, id2);
     // Add CSS generated content to an element in container2's subtree
-    await invokeSetAttribute(browser, 'container2_child', 'class', 'gentext');
+    await invokeSetAttribute(browser, "container2_child", "class", "gentext");
     await onReorder;
 
     tree = {
       SECTION: [ // container2
         { SECTION: [ // container2 child
           { STATICTEXT: [] }, // :before
           { TEXT_LEAF: [] }, // primary text
           { STATICTEXT: [] } // :after
--- a/accessible/tests/browser/e10s/browser_treeupdate_hidden.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_hidden.js
@@ -1,29 +1,29 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 async function setHidden(browser, value) {
-  let onReorder = waitForEvent(EVENT_REORDER, 'container');
-  await invokeSetAttribute(browser, 'child', 'hidden', value);
+  let onReorder = waitForEvent(EVENT_REORDER, "container");
+  await invokeSetAttribute(browser, "child", "hidden", value);
   await onReorder;
 }
 
 addAccessibleTask('<div id="container"><input id="child"></div>',
   async function(browser, accDoc) {
-    let container = findAccessibleChildByID(accDoc, 'container');
+    let container = findAccessibleChildByID(accDoc, "container");
 
     testAccessibleTree(container, { SECTION: [ { ENTRY: [ ] } ] });
 
     // Set @hidden attribute
-    await setHidden(browser, 'true');
+    await setHidden(browser, "true");
     testAccessibleTree(container, { SECTION: [ ] });
 
     // Remove @hidden attribute
     await setHidden(browser);
     testAccessibleTree(container, { SECTION: [ { ENTRY: [ ] } ] });
   });
--- a/accessible/tests/browser/e10s/browser_treeupdate_imagemap.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_imagemap.js
@@ -1,153 +1,153 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 async function testImageMap(browser, accDoc) {
-  const id = 'imgmap';
+  const id = "imgmap";
   const acc = findAccessibleChildByID(accDoc, id);
 
   /* ================= Initial tree test ==================================== */
   let tree = {
     IMAGE_MAP: [
-      { role: ROLE_LINK, name: 'b', children: [ ] }
+      { role: ROLE_LINK, name: "b", children: [ ] }
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================= Insert area ========================================== */
   let onReorder = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, {}, () => {
-    let areaElm = content.document.createElement('area');
-    let mapNode = content.document.getElementById('map');
-    areaElm.setAttribute('href',
-                         'http://www.bbc.co.uk/radio4/atoz/index.shtml#a');
-    areaElm.setAttribute('coords', '0,0,13,14');
-    areaElm.setAttribute('alt', 'a');
-    areaElm.setAttribute('shape', 'rect');
+    let areaElm = content.document.createElement("area");
+    let mapNode = content.document.getElementById("map");
+    areaElm.setAttribute("href",
+                         "http://www.bbc.co.uk/radio4/atoz/index.shtml#a");
+    areaElm.setAttribute("coords", "0,0,13,14");
+    areaElm.setAttribute("alt", "a");
+    areaElm.setAttribute("shape", "rect");
     mapNode.insertBefore(areaElm, mapNode.firstChild);
   });
   await onReorder;
 
   tree = {
     IMAGE_MAP: [
-      { role: ROLE_LINK, name: 'a', children: [ ] },
-      { role: ROLE_LINK, name: 'b', children: [ ] }
+      { role: ROLE_LINK, name: "a", children: [ ] },
+      { role: ROLE_LINK, name: "b", children: [ ] }
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================= Append area ========================================== */
   onReorder = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, {}, () => {
-    let areaElm = content.document.createElement('area');
-    let mapNode = content.document.getElementById('map');
-    areaElm.setAttribute('href',
-                         'http://www.bbc.co.uk/radio4/atoz/index.shtml#c');
-    areaElm.setAttribute('coords', '34,0,47,14');
-    areaElm.setAttribute('alt', 'c');
-    areaElm.setAttribute('shape', 'rect');
+    let areaElm = content.document.createElement("area");
+    let mapNode = content.document.getElementById("map");
+    areaElm.setAttribute("href",
+                         "http://www.bbc.co.uk/radio4/atoz/index.shtml#c");
+    areaElm.setAttribute("coords", "34,0,47,14");
+    areaElm.setAttribute("alt", "c");
+    areaElm.setAttribute("shape", "rect");
     mapNode.appendChild(areaElm);
   });
   await onReorder;
 
   tree = {
     IMAGE_MAP: [
-      { role: ROLE_LINK, name: 'a', children: [ ] },
-      { role: ROLE_LINK, name: 'b', children: [ ] },
-      { role: ROLE_LINK, name: 'c', children: [ ] }
+      { role: ROLE_LINK, name: "a", children: [ ] },
+      { role: ROLE_LINK, name: "b", children: [ ] },
+      { role: ROLE_LINK, name: "c", children: [ ] }
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================= Remove area ========================================== */
   onReorder = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, {}, () => {
-    let mapNode = content.document.getElementById('map');
+    let mapNode = content.document.getElementById("map");
     mapNode.removeChild(mapNode.firstElementChild);
   });
   await onReorder;
 
   tree = {
     IMAGE_MAP: [
-      { role: ROLE_LINK, name: 'b', children: [ ] },
-      { role: ROLE_LINK, name: 'c', children: [ ] }
+      { role: ROLE_LINK, name: "b", children: [ ] },
+      { role: ROLE_LINK, name: "c", children: [ ] }
     ]
   };
   testAccessibleTree(acc, tree);
 }
 
 async function testContainer(browser) {
-  const id = 'container';
+  const id = "container";
   /* ================= Remove name on map =================================== */
   let onReorder = waitForEvent(EVENT_REORDER, id);
-  await invokeSetAttribute(browser, 'map', 'name');
+  await invokeSetAttribute(browser, "map", "name");
   let event = await onReorder;
   const acc = event.accessible;
 
   let tree = {
     SECTION: [
       { GRAPHIC: [ ] }
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================= Restore name on map ================================== */
   onReorder = waitForEvent(EVENT_REORDER, id);
-  await invokeSetAttribute(browser, 'map', 'name', 'atoz_map');
+  await invokeSetAttribute(browser, "map", "name", "atoz_map");
   // XXX: force repainting of the image (see bug 745788 for details).
-  await BrowserTestUtils.synthesizeMouse('#imgmap', 10, 10,
-    { type: 'mousemove' }, browser);
+  await BrowserTestUtils.synthesizeMouse("#imgmap", 10, 10,
+    { type: "mousemove" }, browser);
   await onReorder;
 
   tree = {
     SECTION: [ {
       IMAGE_MAP: [
         { LINK: [ ] },
         { LINK: [ ] }
       ]
     } ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================= Remove map =========================================== */
   onReorder = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, {}, () => {
-    let mapNode = content.document.getElementById('map');
+    let mapNode = content.document.getElementById("map");
     mapNode.remove();
   });
   await onReorder;
 
   tree = {
     SECTION: [
       { GRAPHIC: [ ] }
     ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================= Insert map =========================================== */
   onReorder = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
-    let map = content.document.createElement('map');
-    let area = content.document.createElement('area');
+    let map = content.document.createElement("map");
+    let area = content.document.createElement("area");
 
-    map.setAttribute('name', 'atoz_map');
-    map.setAttribute('id', 'map');
+    map.setAttribute("name", "atoz_map");
+    map.setAttribute("id", "map");
 
-    area.setAttribute('href',
-                      'http://www.bbc.co.uk/radio4/atoz/index.shtml#b');
-    area.setAttribute('coords', '17,0,30,14');
-    area.setAttribute('alt', 'b');
-    area.setAttribute('shape', 'rect');
+    area.setAttribute("href",
+                      "http://www.bbc.co.uk/radio4/atoz/index.shtml#b");
+    area.setAttribute("coords", "17,0,30,14");
+    area.setAttribute("alt", "b");
+    area.setAttribute("shape", "rect");
 
     map.appendChild(area);
     content.document.getElementById(contentId).appendChild(map);
   });
   await onReorder;
 
   tree = {
     SECTION: [ {
@@ -155,36 +155,36 @@ async function testContainer(browser) {
         { LINK: [ ] }
       ]
     } ]
   };
   testAccessibleTree(acc, tree);
 
   /* ================= Hide image map ======================================= */
   onReorder = waitForEvent(EVENT_REORDER, id);
-  await invokeSetStyle(browser, 'imgmap', 'display', 'none');
+  await invokeSetStyle(browser, "imgmap", "display", "none");
   await onReorder;
 
   tree = {
     SECTION: [ ]
   };
   testAccessibleTree(acc, tree);
 }
 
 async function waitForImageMap(browser, accDoc) {
-  const id = 'imgmap';
+  const id = "imgmap";
   const acc = findAccessibleChildByID(accDoc, id);
   if (acc.firstChild) {
     return;
   }
 
   const onReorder = waitForEvent(EVENT_REORDER, id);
   // Wave over image map
   await BrowserTestUtils.synthesizeMouse(`#${id}`, 10, 10,
-                                         { type: 'mousemove' }, browser);
+                                         { type: "mousemove" }, browser);
   await onReorder;
 }
 
-addAccessibleTask('doc_treeupdate_imagemap.html', async function(browser, accDoc) {
+addAccessibleTask("doc_treeupdate_imagemap.html", async function(browser, accDoc) {
   await waitForImageMap(browser, accDoc);
   await testImageMap(browser, accDoc);
   await testContainer(browser);
 });
--- a/accessible/tests/browser/e10s/browser_treeupdate_list.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_list.js
@@ -1,42 +1,42 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 async function setDisplayAndWaitForReorder(browser, value) {
-  let onReorder = waitForEvent(EVENT_REORDER, 'ul');
-  await invokeSetStyle(browser, 'li', 'display', value);
+  let onReorder = waitForEvent(EVENT_REORDER, "ul");
+  await invokeSetStyle(browser, "li", "display", value);
   return onReorder;
 }
 
 addAccessibleTask(`
   <ul id="ul">
     <li id="li">item1</li>
   </ul>`, async function(browser, accDoc) {
-  let li = findAccessibleChildByID(accDoc, 'li');
+  let li = findAccessibleChildByID(accDoc, "li");
   let bullet = li.firstChild;
   let accTree = {
     role: ROLE_LISTITEM,
     children: [ {
       role: ROLE_STATICTEXT,
       children: []
     }, {
       role: ROLE_TEXT_LEAF,
       children: []
     } ]
   };
   testAccessibleTree(li, accTree);
 
-  await setDisplayAndWaitForReorder(browser, 'none');
+  await setDisplayAndWaitForReorder(browser, "none");
 
-  ok(isDefunct(li), 'Check that li is defunct.');
-  ok(isDefunct(bullet), 'Check that bullet is defunct.');
+  ok(isDefunct(li), "Check that li is defunct.");
+  ok(isDefunct(bullet), "Check that bullet is defunct.");
 
-  let event = await setDisplayAndWaitForReorder(browser, 'list-item');
+  let event = await setDisplayAndWaitForReorder(browser, "list-item");
 
-  testAccessibleTree(findAccessibleChildByID(event.accessible, 'li'), accTree);
+  testAccessibleTree(findAccessibleChildByID(event.accessible, "li"), accTree);
 });
--- a/accessible/tests/browser/e10s/browser_treeupdate_list_editabledoc.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_list_editabledoc.js
@@ -1,31 +1,31 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 addAccessibleTask('<ol id="list"></ol>', async function(browser, accDoc) {
-  let list = findAccessibleChildByID(accDoc, 'list');
+  let list = findAccessibleChildByID(accDoc, "list");
 
   testAccessibleTree(list, {
     role: ROLE_LIST,
     children: [ ]
   });
 
-  await invokeSetAttribute(browser, 'body', 'contentEditable', 'true');
-  let onReorder = waitForEvent(EVENT_REORDER, 'list');
+  await invokeSetAttribute(browser, "body", "contentEditable", "true");
+  let onReorder = waitForEvent(EVENT_REORDER, "list");
   await ContentTask.spawn(browser, {}, () => {
-    let li = content.document.createElement('li');
-    li.textContent = 'item';
-    content.document.getElementById('list').appendChild(li);
+    let li = content.document.createElement("li");
+    li.textContent = "item";
+    content.document.getElementById("list").appendChild(li);
   });
   await onReorder;
 
   testAccessibleTree(list, {
     role: ROLE_LIST,
     children: [ {
       role: ROLE_LISTITEM,
       children: [
--- a/accessible/tests/browser/e10s/browser_treeupdate_listener.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_listener.js
@@ -1,28 +1,28 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 addAccessibleTask('<span id="parent"><span id="child"></span></span>',
   async function(browser, accDoc) {
-    is(findAccessibleChildByID(accDoc, 'parent'), null,
-      'Check that parent is not accessible.');
-    is(findAccessibleChildByID(accDoc, 'child'), null,
-      'Check that child is not accessible.');
+    is(findAccessibleChildByID(accDoc, "parent"), null,
+      "Check that parent is not accessible.");
+    is(findAccessibleChildByID(accDoc, "child"), null,
+      "Check that child is not accessible.");
 
-    let onReorder = waitForEvent(EVENT_REORDER, 'body');
+    let onReorder = waitForEvent(EVENT_REORDER, "body");
     // Add an event listener to parent.
     await ContentTask.spawn(browser, {}, () => {
       content.window.dummyListener = () => {};
-      content.document.getElementById('parent').addEventListener(
-        'click', content.window.dummyListener);
+      content.document.getElementById("parent").addEventListener(
+        "click", content.window.dummyListener);
     });
     await onReorder;
 
     let tree = { TEXT: [] };
-    testAccessibleTree(findAccessibleChildByID(accDoc, 'parent'), tree);
+    testAccessibleTree(findAccessibleChildByID(accDoc, "parent"), tree);
   });
--- a/accessible/tests/browser/e10s/browser_treeupdate_optgroup.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_optgroup.js
@@ -1,85 +1,85 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 addAccessibleTask('<select id="select"></select>', async function(browser, accDoc) {
-  let select = findAccessibleChildByID(accDoc, 'select');
+  let select = findAccessibleChildByID(accDoc, "select");
 
-  let onEvent = waitForEvent(EVENT_REORDER, 'select');
+  let onEvent = waitForEvent(EVENT_REORDER, "select");
   // Create a combobox with grouping and 2 standalone options
   await ContentTask.spawn(browser, {}, () => {
     let doc = content.document;
-    let contentSelect = doc.getElementById('select');
-    let optGroup = doc.createElement('optgroup');
+    let contentSelect = doc.getElementById("select");
+    let optGroup = doc.createElement("optgroup");
 
     for (let i = 0; i < 2; i++) {
-      let opt = doc.createElement('option');
+      let opt = doc.createElement("option");
       opt.value = i;
-      opt.text = 'Option: Value ' + i;
+      opt.text = "Option: Value " + i;
       optGroup.appendChild(opt);
     }
     contentSelect.add(optGroup, null);
 
     for (let i = 0; i < 2; i++) {
-      let opt = doc.createElement('option');
+      let opt = doc.createElement("option");
       contentSelect.add(opt, null);
     }
-    contentSelect.firstChild.firstChild.id = 'option1Node';
+    contentSelect.firstChild.firstChild.id = "option1Node";
   });
   let event = await onEvent;
-  let option1Node = findAccessibleChildByID(event.accessible, 'option1Node');
+  let option1Node = findAccessibleChildByID(event.accessible, "option1Node");
 
   let tree = {
     COMBOBOX: [ {
       COMBOBOX_LIST: [ {
         GROUPING: [
           { COMBOBOX_OPTION: [ { TEXT_LEAF: [] } ] },
           { COMBOBOX_OPTION: [ { TEXT_LEAF: [] } ] }
         ]
       }, {
         COMBOBOX_OPTION: []
       }, {
         COMBOBOX_OPTION: []
       } ]
     } ]
   };
   testAccessibleTree(select, tree);
-  ok(!isDefunct(option1Node), 'option shouldn\'t be defunct');
+  ok(!isDefunct(option1Node), "option shouldn't be defunct");
 
-  onEvent = waitForEvent(EVENT_REORDER, 'select');
+  onEvent = waitForEvent(EVENT_REORDER, "select");
   // Remove grouping from combobox
   await ContentTask.spawn(browser, {}, () => {
-    let contentSelect = content.document.getElementById('select');
+    let contentSelect = content.document.getElementById("select");
     contentSelect.firstChild.remove();
   });
   await onEvent;
 
   tree = {
     COMBOBOX: [ {
       COMBOBOX_LIST: [
         { COMBOBOX_OPTION: [] },
         { COMBOBOX_OPTION: [] }
       ]
     } ]
   };
   testAccessibleTree(select, tree);
   ok(isDefunct(option1Node),
-    'removed option shouldn\'t be accessible anymore!');
+    "removed option shouldn't be accessible anymore!");
 
-  onEvent = waitForEvent(EVENT_REORDER, 'select');
+  onEvent = waitForEvent(EVENT_REORDER, "select");
   // Remove all options from combobox
   await ContentTask.spawn(browser, {}, () => {
-    let contentSelect = content.document.getElementById('select');
+    let contentSelect = content.document.getElementById("select");
     while (contentSelect.length) {
       contentSelect.remove(0);
     }
   });
   await onEvent;
 
   tree = {
     COMBOBOX: [ {
--- a/accessible/tests/browser/e10s/browser_treeupdate_removal.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_removal.js
@@ -1,38 +1,38 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
-addAccessibleTask('doc_treeupdate_removal.xhtml', async function(browser, accDoc) {
-  ok(isAccessible(findAccessibleChildByID(accDoc, 'the_table')),
-    'table should be accessible');
+addAccessibleTask("doc_treeupdate_removal.xhtml", async function(browser, accDoc) {
+  ok(isAccessible(findAccessibleChildByID(accDoc, "the_table")),
+    "table should be accessible");
 
   // Move the_table element into hidden subtree.
-  let onReorder = waitForEvent(EVENT_REORDER, 'body');
+  let onReorder = waitForEvent(EVENT_REORDER, "body");
   await ContentTask.spawn(browser, {}, () => content.document.getElementById(
-    'the_displaynone').appendChild(content.document.getElementById(
-      'the_table')));
+    "the_displaynone").appendChild(content.document.getElementById(
+      "the_table")));
   await onReorder;
 
-  ok(!isAccessible(findAccessibleChildByID(accDoc, 'the_table')),
-    'table in display none tree shouldn\'t be accessible');
-  ok(!isAccessible(findAccessibleChildByID(accDoc, 'the_row')),
-    'row shouldn\'t be accessible');
+  ok(!isAccessible(findAccessibleChildByID(accDoc, "the_table")),
+    "table in display none tree shouldn't be accessible");
+  ok(!isAccessible(findAccessibleChildByID(accDoc, "the_row")),
+    "row shouldn't be accessible");
 
   // Remove the_row element (since it did not have accessible, no event needed).
   await ContentTask.spawn(browser, {}, () =>
     content.document.body.removeChild(
-      content.document.getElementById('the_row')));
+      content.document.getElementById("the_row")));
 
   // make sure no accessibles have stuck around.
-  ok(!isAccessible(findAccessibleChildByID(accDoc, 'the_row')),
-    'row shouldn\'t be accessible');
-  ok(!isAccessible(findAccessibleChildByID(accDoc, 'the_table')),
-    'table shouldn\'t be accessible');
-  ok(!isAccessible(findAccessibleChildByID(accDoc, 'the_displayNone')),
-    'display none things shouldn\'t be accessible');
+  ok(!isAccessible(findAccessibleChildByID(accDoc, "the_row")),
+    "row shouldn't be accessible");
+  ok(!isAccessible(findAccessibleChildByID(accDoc, "the_table")),
+    "table shouldn't be accessible");
+  ok(!isAccessible(findAccessibleChildByID(accDoc, "the_displayNone")),
+    "display none things shouldn't be accessible");
 });
--- a/accessible/tests/browser/e10s/browser_treeupdate_table.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_table.js
@@ -1,44 +1,44 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 addAccessibleTask(`
   <table id="table">
     <tr>
       <td>cell1</td>
       <td>cell2</td>
     </tr>
   </table>`, async function(browser, accDoc) {
-  let table = findAccessibleChildByID(accDoc, 'table');
+  let table = findAccessibleChildByID(accDoc, "table");
 
   let tree = {
     TABLE: [
       { ROW: [
         { CELL: [ {TEXT_LEAF: [] }]},
         { CELL: [ {TEXT_LEAF: [] }]}
       ] }
     ]
   };
   testAccessibleTree(table, tree);
 
-  let onReorder = waitForEvent(EVENT_REORDER, 'table');
+  let onReorder = waitForEvent(EVENT_REORDER, "table");
   await ContentTask.spawn(browser, {}, () => {
     // append a caption, it should appear as a first element in the
     // accessible tree.
     let doc = content.document;
-    let caption = doc.createElement('caption');
-    caption.textContent = 'table caption';
-    doc.getElementById('table').appendChild(caption);
+    let caption = doc.createElement("caption");
+    caption.textContent = "table caption";
+    doc.getElementById("table").appendChild(caption);
   });
   await onReorder;
 
   tree = {
     TABLE: [
       { CAPTION: [ { TEXT_LEAF: [] } ] },
       { ROW: [
         { CELL: [ {TEXT_LEAF: [] }]},
--- a/accessible/tests/browser/e10s/browser_treeupdate_textleaf.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_textleaf.js
@@ -1,34 +1,34 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 async function removeTextData(browser, accessible, id, role) {
   let tree = {
     role: role,
     children: [ { role: ROLE_TEXT_LEAF, name: "text" } ]
   };
   testAccessibleTree(accessible, tree);
 
   let onReorder = waitForEvent(EVENT_REORDER, id);
   await ContentTask.spawn(browser, id, contentId => {
-    content.document.getElementById(contentId).firstChild.textContent = '';
+    content.document.getElementById(contentId).firstChild.textContent = "";
   });
   await onReorder;
 
   tree = { role: role, children: [] };
   testAccessibleTree(accessible, tree);
 }
 
 addAccessibleTask(`
   <p id="p">text</p>
   <pre id="pre">text</pre>`, async function(browser, accDoc) {
-  let p = findAccessibleChildByID(accDoc, 'p');
-  let pre = findAccessibleChildByID(accDoc, 'pre');
-  await removeTextData(browser, p, 'p', ROLE_PARAGRAPH);
-  await removeTextData(browser, pre, 'pre', ROLE_TEXT_CONTAINER);
+  let p = findAccessibleChildByID(accDoc, "p");
+  let pre = findAccessibleChildByID(accDoc, "pre");
+  await removeTextData(browser, p, "p", ROLE_PARAGRAPH);
+  await removeTextData(browser, pre, "pre", ROLE_TEXT_CONTAINER);
 });
--- a/accessible/tests/browser/e10s/browser_treeupdate_visibility.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_visibility.js
@@ -1,23 +1,23 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
 async function testTreeOnHide(browser, accDoc, containerID, id, before, after) {
   let acc = findAccessibleChildByID(accDoc, containerID);
   testAccessibleTree(acc, before);
 
   let onReorder = waitForEvent(EVENT_REORDER, containerID);
-  await invokeSetStyle(browser, id, 'visibility', 'hidden');
+  await invokeSetStyle(browser, id, "visibility", "hidden");
   await onReorder;
 
   testAccessibleTree(acc, after);
 }
 
 async function test3(browser, accessible) {
   let tree = {
     SECTION: [ // container
@@ -29,22 +29,22 @@ async function test3(browser, accessible
       { SECTION: [ // parent2
         { SECTION: [ // child2
           { TEXT_LEAF: [] }
         ] }
       ] }
     ] };
   testAccessibleTree(accessible, tree);
 
-  let onReorder = waitForEvent(EVENT_REORDER, 't3_container');
+  let onReorder = waitForEvent(EVENT_REORDER, "t3_container");
   await ContentTask.spawn(browser, {}, () => {
     let doc = content.document;
-    doc.getElementById('t3_container').style.color = 'red';
-    doc.getElementById('t3_parent').style.visibility = 'hidden';
-    doc.getElementById('t3_parent2').style.visibility = 'hidden';
+    doc.getElementById("t3_container").style.color = "red";
+    doc.getElementById("t3_parent").style.visibility = "hidden";
+    doc.getElementById("t3_parent2").style.visibility = "hidden";
   });
   await onReorder;
 
   tree = {
     SECTION: [ // container
       { SECTION: [ // child
         { TEXT_LEAF: [] }
       ] },
@@ -61,21 +61,21 @@ async function test4(browser, accessible
       { TABLE: [
         { ROW: [
           { CELL: [ ] }
         ] }
       ] }
     ] };
   testAccessibleTree(accessible, tree);
 
-  let onReorder = waitForEvent(EVENT_REORDER, 't4_parent');
+  let onReorder = waitForEvent(EVENT_REORDER, "t4_parent");
   await ContentTask.spawn(browser, {}, () => {
     let doc = content.document;
-    doc.getElementById('t4_container').style.color = 'red';
-    doc.getElementById('t4_child').style.visibility = 'visible';
+    doc.getElementById("t4_container").style.color = "red";
+    doc.getElementById("t4_child").style.visibility = "visible";
   });
   await onReorder;
 
   tree = {
     SECTION: [{
       TABLE: [{
         ROW: [{
           CELL: [{
@@ -85,33 +85,33 @@ async function test4(browser, accessible
           }]
         }]
       }]
     }]
   };
   testAccessibleTree(accessible, tree);
 }
 
-addAccessibleTask('doc_treeupdate_visibility.html', async function(browser, accDoc) {
-  let t3Container = findAccessibleChildByID(accDoc, 't3_container');
-  let t4Container = findAccessibleChildByID(accDoc, 't4_container');
+addAccessibleTask("doc_treeupdate_visibility.html", async function(browser, accDoc) {
+  let t3Container = findAccessibleChildByID(accDoc, "t3_container");
+  let t4Container = findAccessibleChildByID(accDoc, "t4_container");
 
-  await testTreeOnHide(browser, accDoc, 't1_container', 't1_parent', {
+  await testTreeOnHide(browser, accDoc, "t1_container", "t1_parent", {
     SECTION: [{
       SECTION: [{
         SECTION: [ { TEXT_LEAF: [] } ]
       }]
     }]
   }, {
     SECTION: [ {
       SECTION: [ { TEXT_LEAF: [] } ]
     } ]
   });
 
-  await testTreeOnHide(browser, accDoc, 't2_container', 't2_grandparent', {
+  await testTreeOnHide(browser, accDoc, "t2_container", "t2_grandparent", {
     SECTION: [{ // container
       SECTION: [{ // grand parent
         SECTION: [{
           SECTION: [{ // child
             TEXT_LEAF: []
           }]
         }, {
           SECTION: [{ // child2
@@ -130,17 +130,17 @@ addAccessibleTask('doc_treeupdate_visibi
         TEXT_LEAF: []
       }]
     }]
   });
 
   await test3(browser, t3Container);
   await test4(browser, t4Container);
 
-  await testTreeOnHide(browser, accDoc, 't5_container', 't5_subcontainer', {
+  await testTreeOnHide(browser, accDoc, "t5_container", "t5_subcontainer", {
     SECTION: [{ // container
       SECTION: [{ // subcontainer
         TABLE: [{
           ROW: [{
             CELL: [{
               SECTION: [{ // child
                 TEXT_LEAF: []
               }]
@@ -152,17 +152,17 @@ addAccessibleTask('doc_treeupdate_visibi
   }, {
     SECTION: [{ // container
       SECTION: [{ // child
         TEXT_LEAF: []
       }]
     }]
   });
 
-  await testTreeOnHide(browser, accDoc, 't6_container', 't6_subcontainer', {
+  await testTreeOnHide(browser, accDoc, "t6_container", "t6_subcontainer", {
     SECTION: [{ // container
       SECTION: [{ // subcontainer
         TABLE: [{
           ROW: [{
             CELL: [{
               TABLE: [{ // nested table
                 ROW: [{
                   CELL: [{
--- a/accessible/tests/browser/e10s/browser_treeupdate_whitespace.js
+++ b/accessible/tests/browser/e10s/browser_treeupdate_whitespace.js
@@ -1,38 +1,38 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR });
 
-addAccessibleTask('doc_treeupdate_whitespace.html', async function(browser, accDoc) {
-  let container1 = findAccessibleChildByID(accDoc, 'container1');
-  let container2Parent = findAccessibleChildByID(accDoc, 'container2-parent');
+addAccessibleTask("doc_treeupdate_whitespace.html", async function(browser, accDoc) {
+  let container1 = findAccessibleChildByID(accDoc, "container1");
+  let container2Parent = findAccessibleChildByID(accDoc, "container2-parent");
 
   let tree = {
     SECTION: [
       { GRAPHIC: [] },
       { TEXT_LEAF: [] },
       { GRAPHIC: [] },
       { TEXT_LEAF: [] },
       { GRAPHIC: [] }
     ]
   };
   testAccessibleTree(container1, tree);
 
-  let onReorder = waitForEvent(EVENT_REORDER, 'container1');
+  let onReorder = waitForEvent(EVENT_REORDER, "container1");
   // Remove img1 from container1
   await ContentTask.spawn(browser, {}, () => {
     let doc = content.document;
-    doc.getElementById('container1').removeChild(
-      doc.getElementById('img1'));
+    doc.getElementById("container1").removeChild(
+      doc.getElementById("img1"));
   });
   await onReorder;
 
   tree = {
     SECTION: [
       { GRAPHIC: [] },
       { TEXT_LEAF: [] },
       { GRAPHIC: [] }
@@ -43,24 +43,24 @@ addAccessibleTask('doc_treeupdate_whites
   tree = {
     SECTION: [
       { LINK: [] },
       { LINK: [ { GRAPHIC: [] } ] }
     ]
   };
   testAccessibleTree(container2Parent, tree);
 
-  onReorder = waitForEvent(EVENT_REORDER, 'container2-parent');
+  onReorder = waitForEvent(EVENT_REORDER, "container2-parent");
   // Append an img with valid src to container2
   await ContentTask.spawn(browser, {}, () => {
     let doc = content.document;
-    let img = doc.createElement('img');
-    img.setAttribute('src',
-      'http://example.com/a11y/accessible/tests/mochitest/moz.png');
-    doc.getElementById('container2').appendChild(img);
+    let img = doc.createElement("img");
+    img.setAttribute("src",
+      "http://example.com/a11y/accessible/tests/mochitest/moz.png");
+    doc.getElementById("container2").appendChild(img);
   });
   await onReorder;
 
   tree = {
     SECTION: [
       { LINK: [ { GRAPHIC: [ ] } ] },
       { TEXT_LEAF: [ ] },
       { LINK: [ { GRAPHIC: [ ] } ] }
--- a/accessible/tests/browser/e10s/head.js
+++ b/accessible/tests/browser/e10s/head.js
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 // Load the shared-head file first.
 /* import-globals-from ../shared-head.js */
 Services.scriptloader.loadSubScript(
-  'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js',
+  "chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js",
   this);
 
 // Loading and common.js from accessible/tests/mochitest/ for all tests, as
 // well as events.js.
-loadScripts({ name: 'common.js', dir: MOCHITESTS_DIR }, 'events.js');
+loadScripts({ name: "common.js", dir: MOCHITESTS_DIR }, "events.js");
--- a/accessible/tests/browser/events.js
+++ b/accessible/tests/browser/events.js
@@ -1,13 +1,13 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 // This is loaded by head.js, so has the same globals, hence we import the
 // globals from there.
 /* import-globals-from shared-head.js */
 /* import-globals-from ../mochitest/common.js */
 
 /* exported EVENT_REORDER, EVENT_SHOW, EVENT_TEXT_INSERTED, EVENT_TEXT_REMOVED,
             EVENT_DOCUMENT_LOAD_COMPLETE, EVENT_HIDE, EVENT_TEXT_CARET_MOVED,
@@ -39,17 +39,17 @@ function eventToString(event) {
   let type = eventTypeToString(event.eventType);
   let info = `Event type: ${type}`;
 
   if (event instanceof nsIAccessibleStateChangeEvent) {
     let stateStr = statesToString(event.isExtraState ? 0 : event.state,
                                   event.isExtraState ? event.state : 0);
     info += `, state: ${stateStr}, is enabled: ${event.isEnabled}`;
   } else if (event instanceof nsIAccessibleTextChangeEvent) {
-    let tcType = event.isInserted ? 'inserted' : 'removed';
+    let tcType = event.isInserted ? "inserted" : "removed";
     info += `, start: ${event.start}, length: ${event.length}, ${tcType} text: ${event.modifiedText}`;
   }
 
   info += `. Target: ${prettyName(event.accessible)}`;
   return info;
 }
 
 function matchEvent(event, matchCriteria) {
@@ -89,17 +89,17 @@ function matchEvent(event, matchCriteria
  *                                                  type
  * @return {Promise}                                promise that resolves to an
  *                                                  event
  */
 function waitForEvent(eventType, matchCriteria) {
   return new Promise(resolve => {
     let eventObserver = {
       observe(subject, topic, data) {
-        if (topic !== 'accessible-event') {
+        if (topic !== "accessible-event") {
           return;
         }
 
         let event = subject.QueryInterface(nsIAccessibleEvent);
         if (Logger.enabled) {
           // Avoid calling eventToString if the logger isn't enabled in order
           // to avoid an intermittent crash (bug 1307645).
           Logger.log(eventToString(event));
@@ -108,53 +108,53 @@ function waitForEvent(eventType, matchCr
         // If event type does not match expected type, skip the event.
         if (event.eventType !== eventType) {
           return;
         }
 
         if (matchEvent(event, matchCriteria)) {
           Logger.log(`Correct event type: ${eventTypeToString(eventType)}`);
           ok(event.accessibleDocument instanceof nsIAccessibleDocument,
-            'Accessible document present.');
+            "Accessible document present.");
 
-          Services.obs.removeObserver(this, 'accessible-event');
+          Services.obs.removeObserver(this, "accessible-event");
           resolve(event);
         }
       }
     };
-    Services.obs.addObserver(eventObserver, 'accessible-event');
+    Services.obs.addObserver(eventObserver, "accessible-event");
   });
 }
 
 class UnexpectedEvents {
   constructor(unexpected) {
     if (unexpected.length) {
       this.unexpected = unexpected;
-      Services.obs.addObserver(this, 'accessible-event');
+      Services.obs.addObserver(this, "accessible-event");
     }
   }
 
   observe(subject, topic, data) {
-    if (topic !== 'accessible-event') {
+    if (topic !== "accessible-event") {
       return;
     }
 
     let event = subject.QueryInterface(nsIAccessibleEvent);
 
     let unexpectedEvent = this.unexpected.find(([etype, criteria]) =>
       etype === event.eventType && matchEvent(event, criteria));
 
     if (unexpectedEvent) {
       ok(false, `Got unexpected event: ${eventToString(event)}`);
     }
   }
 
   stop() {
     if (this.unexpected) {
-      Services.obs.removeObserver(this, 'accessible-event');
+      Services.obs.removeObserver(this, "accessible-event");
     }
   }
 }
 
 /**
  * A helper function that waits for a sequence of accessible events in
  * specified order.
  * @param {Array} events        a list of events to wait (same format as
--- a/accessible/tests/browser/events/browser_test_docload.js
+++ b/accessible/tests/browser/events/browser_test_docload.js
@@ -28,17 +28,17 @@ function urlChecker(url) {
     info(`${event.accessibleDocument.URL} == ${url}`);
     return event.accessibleDocument.URL == url;
   };
 }
 
 async function runTests(browser, accDoc) {
   let onLoadEvents = waitForEvents([
     [EVENT_REORDER, getAccessible(browser)],
-    [EVENT_DOCUMENT_LOAD_COMPLETE, 'body2'],
+    [EVENT_DOCUMENT_LOAD_COMPLETE, "body2"],
     [EVENT_STATE_CHANGE, busyChecker(false)]
   ], [ // unexpected
     [EVENT_DOCUMENT_LOAD_COMPLETE, inIframeChecker("iframe1")],
     [EVENT_STATE_CHANGE, inIframeChecker("iframe1")]
   ]);
 
   browser.loadURI(`data:text/html;charset=utf-8,
     <html><body id="body2">
--- a/accessible/tests/browser/events/browser_test_focus_browserui.js
+++ b/accessible/tests/browser/events/browser_test_focus_browserui.js
@@ -1,18 +1,18 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
 /* import-globals-from ../../mochitest/states.js */
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'states.js', dir: MOCHITESTS_DIR },
-            { name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "states.js", dir: MOCHITESTS_DIR },
+            { name: "role.js", dir: MOCHITESTS_DIR });
 
 async function runTests(browser, accDoc) {
   let onFocus = waitForEvent(EVENT_FOCUS, "input");
   EventUtils.synthesizeKey("VK_TAB", {}, browser.ownerGlobal);
   let evt = await onFocus;
   testStates(evt.accessible, STATE_FOCUSED);
 
   onFocus = waitForEvent(EVENT_FOCUS, "buttonInputDoc");
--- a/accessible/tests/browser/events/browser_test_focus_dialog.js
+++ b/accessible/tests/browser/events/browser_test_focus_dialog.js
@@ -1,18 +1,18 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 "use strict";
 
 /* import-globals-from ../../mochitest/states.js */
 /* import-globals-from ../../mochitest/role.js */
-loadScripts({ name: 'states.js', dir: MOCHITESTS_DIR },
-            { name: 'role.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "states.js", dir: MOCHITESTS_DIR },
+            { name: "role.js", dir: MOCHITESTS_DIR });
 
 async function runTests(browser, accDoc) {
   let onFocus = waitForEvent(EVENT_FOCUS, "button");
   await ContentTask.spawn(browser, {}, () => {
     content.document.getElementById("button").focus();
   });
   let button = (await onFocus).accessible;
   testStates(button, STATE_FOCUSED);
--- a/accessible/tests/browser/events/head.js
+++ b/accessible/tests/browser/events/head.js
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 // Load the shared-head file first.
 /* import-globals-from ../shared-head.js */
 Services.scriptloader.loadSubScript(
-  'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js',
+  "chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js",
   this);
 
 // Loading and common.js from accessible/tests/mochitest/ for all tests, as
 // well as events.js.
-loadScripts({ name: 'common.js', dir: MOCHITESTS_DIR }, 'events.js', 'layout.js');
+loadScripts({ name: "common.js", dir: MOCHITESTS_DIR }, "events.js", "layout.js");
--- a/accessible/tests/browser/head.js
+++ b/accessible/tests/browser/head.js
@@ -1,28 +1,28 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* exported initPromise, shutdownPromise, waitForEvent, setE10sPrefs,
             unsetE10sPrefs, forceGC */
 
 /**
  * Set e10s related preferences in the test environment.
  * @return {Promise} promise that resolves when preferences are set.
  */
 function setE10sPrefs() {
   return new Promise(resolve =>
     SpecialPowers.pushPrefEnv({
       set: [
-        ['browser.tabs.remote.autostart', true],
-        ['browser.tabs.remote.force-enable', true],
-        ['extensions.e10sBlocksEnabling', false]
+        ["browser.tabs.remote.autostart", true],
+        ["browser.tabs.remote.force-enable", true],
+        ["extensions.e10sBlocksEnabling", false]
       ]
     }, resolve));
 }
 
 /**
  * Unset e10s related preferences in the test environment.
  * @return {Promise} promise that resolves when preferences are unset.
  */
@@ -30,30 +30,30 @@ function unsetE10sPrefs() {
   return new Promise(resolve => {
     SpecialPowers.popPrefEnv(resolve);
   });
 }
 
 // Load the shared-head file first.
 /* import-globals-from shared-head.js */
 Services.scriptloader.loadSubScript(
-  'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js',
+  "chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js",
   this);
 
 /**
  * Returns a promise that resolves when 'a11y-init-or-shutdown' event is fired.
  * @return {Promise} event promise evaluating to event's data
  */
 function a11yInitOrShutdownPromise() {
   return new Promise(resolve => {
     let observe = (subject, topic, data) => {
-      Services.obs.removeObserver(observe, 'a11y-init-or-shutdown');
+      Services.obs.removeObserver(observe, "a11y-init-or-shutdown");
       resolve(data);
     };
-    Services.obs.addObserver(observe, 'a11y-init-or-shutdown');
+    Services.obs.addObserver(observe, "a11y-init-or-shutdown");
   });
 }
 
 /**
  * Returns a promise that resolves when 'a11y-init-or-shutdown' event is fired
  * in content.
  * @param  {Object}   browser  current "tabbrowser" element
  * @return {Promise}  event    promise evaluating to event's data
@@ -80,56 +80,56 @@ function promiseOK(promise, expected) {
  *                                  initialized in content process.
  * @return {Promise}                promise that resolves when the accessibility
  *                                  service initialized correctly.
  */
 function initPromise(contentBrowser) {
   let a11yInitPromise = contentBrowser ?
     contentA11yInitOrShutdownPromise(contentBrowser) :
     a11yInitOrShutdownPromise();
-  return promiseOK(a11yInitPromise, '1').then(
-    () => ok(true, 'Service initialized correctly'),
-    () => ok(false, 'Service shutdown incorrectly'));
+  return promiseOK(a11yInitPromise, "1").then(
+    () => ok(true, "Service initialized correctly"),
+    () => ok(false, "Service shutdown incorrectly"));
 }
 
 /**
  * Checks and returns a promise that resolves when accessibility service is
  * shut down with the correct flag.
  * @param  {?Object} contentBrowser optinal remove browser object that indicates
  *                                  that accessibility service is expected to be
  *                                  shut down in content process.
  * @return {Promise}                promise that resolves when the accessibility
  *                                  service shuts down correctly.
  */
 function shutdownPromise(contentBrowser) {
   let a11yShutdownPromise = contentBrowser ?
     contentA11yInitOrShutdownPromise(contentBrowser) :
     a11yInitOrShutdownPromise();
-  return promiseOK(a11yShutdownPromise, '0').then(
-    () => ok(true, 'Service shutdown correctly'),
-    () => ok(false, 'Service initialized incorrectly'));
+  return promiseOK(a11yShutdownPromise, "0").then(
+    () => ok(true, "Service shutdown correctly"),
+    () => ok(false, "Service initialized incorrectly"));
 }
 
 /**
  * Simpler verions of waitForEvent defined in
  * accessible/tests/browser/events.js
  */
 function waitForEvent(eventType, expectedId) {
   return new Promise(resolve => {
     let eventObserver = {
       observe(subject) {
         let event = subject.QueryInterface(Ci.nsIAccessibleEvent);
         if (event.eventType === eventType &&
             event.accessible.id === expectedId) {
-          Services.obs.removeObserver(this, 'accessible-event');
+          Services.obs.removeObserver(this, "accessible-event");
           resolve(event);
         }
       }
     };
-    Services.obs.addObserver(eventObserver, 'accessible-event');
+    Services.obs.addObserver(eventObserver, "accessible-event");
   });
 }
 
 /**
  * Force garbage collection.
  */
 function forceGC() {
   SpecialPowers.gc();
--- a/accessible/tests/browser/scroll/browser_test_zoom_text.js
+++ b/accessible/tests/browser/scroll/browser_test_zoom_text.js
@@ -1,19 +1,19 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/layout.js */
-loadScripts({ name: 'layout.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "layout.js", dir: MOCHITESTS_DIR });
 
 async function runTests(browser, accDoc) {
-  loadFrameScripts(browser, { name: 'layout.js', dir: MOCHITESTS_DIR });
+  loadFrameScripts(browser, { name: "layout.js", dir: MOCHITESTS_DIR });
 
   let paragraph = findAccessibleChildByID(accDoc, "paragraph", [nsIAccessibleText]);
   let offset = 64; // beginning of 4th stanza
 
   let [x /*,y*/] = getPos(paragraph);
   let [docX, docY] = getPos(accDoc);
 
   paragraph.scrollSubstringToPoint(offset, offset,
--- a/accessible/tests/browser/scroll/head.js
+++ b/accessible/tests/browser/scroll/head.js
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 // Load the shared-head file first.
 /* import-globals-from ../shared-head.js */
 Services.scriptloader.loadSubScript(
-  'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js',
+  "chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js",
   this);
 
 // Loading and common.js from accessible/tests/mochitest/ for all tests, as
 // well as events.js.
-loadScripts({ name: 'common.js', dir: MOCHITESTS_DIR }, 'events.js');
+loadScripts({ name: "common.js", dir: MOCHITESTS_DIR }, "events.js");
--- a/accessible/tests/browser/shared-head.js
+++ b/accessible/tests/browser/shared-head.js
@@ -1,41 +1,41 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../mochitest/common.js */
 /* import-globals-from events.js */
 
 /* exported Logger, MOCHITESTS_DIR, invokeSetAttribute, invokeFocus,
             invokeSetStyle, getAccessibleDOMNodeID, getAccessibleTagName,
             addAccessibleTask, findAccessibleChildByID, isDefunct,
             CURRENT_CONTENT_DIR, loadScripts, loadFrameScripts, snippetToURL,
             Cc, Cu, arrayFromChildren */
 
 const { interfaces: Ci, utils: Cu, classes: Cc } = Components;
 
 /**
  * Current browser test directory path used to load subscripts.
  */
 const CURRENT_DIR =
-  'chrome://mochitests/content/browser/accessible/tests/browser/';
+  "chrome://mochitests/content/browser/accessible/tests/browser/";
 /**
  * A11y mochitest directory where we find common files used in both browser and
  * plain tests.
  */
 const MOCHITESTS_DIR =
-  'chrome://mochitests/content/a11y/accessible/tests/mochitest/';
+  "chrome://mochitests/content/a11y/accessible/tests/mochitest/";
 /**
  * A base URL for test files used in content.
  */
 const CURRENT_CONTENT_DIR =
-  'http://example.com/browser/accessible/tests/browser/';
+  "http://example.com/browser/accessible/tests/browser/";
 
 const LOADED_FRAMESCRIPTS = new Map();
 
 /**
  * Used to dump debug information.
  */
 let Logger = {
   /**
@@ -158,33 +158,33 @@ function invokeFocus(browser, id) {
 }
 
 /**
  * Load a list of scripts into the test
  * @param {Array} scripts  a list of scripts to load
  */
 function loadScripts(...scripts) {
   for (let script of scripts) {
-    let path = typeof script === 'string' ? `${CURRENT_DIR}${script}` :
+    let path = typeof script === "string" ? `${CURRENT_DIR}${script}` :
       `${script.dir}${script.name}`;
     Services.scriptloader.loadSubScript(path, this);
   }
 }
 
 /**
  * Load a list of frame scripts into test's content.
  * @param {Object} browser   browser element that content belongs to
  * @param {Array}  scripts   a list of scripts to load into content
  */
 function loadFrameScripts(browser, ...scripts) {
   let mm = browser.messageManager;
   for (let script of scripts) {
     let frameScript;
-    if (typeof script === 'string') {
-      if (script.includes('.js')) {
+    if (typeof script === "string") {
+      if (script.includes(".js")) {
         // If script string includes a .js extention, assume it is a script
         // path.
         frameScript = `${CURRENT_DIR}${script}`;
       } else {
         // Otherwise it is a serealized script.
         frameScript = `data:,${script}`;
       }
     } else {
@@ -237,32 +237,32 @@ function snippetToURL(snippet, bodyAttrs
  *                                       data URL or markup snippet that is used
  *                                       to test content with
  * @param  {Function|AsyncFunction} task a generator or a function with tests to
  *                                       run
  */
 function addAccessibleTask(doc, task) {
   add_task(async function() {
     let url;
-    if (doc.includes('doc_')) {
+    if (doc.includes("doc_")) {
       url = `${CURRENT_CONTENT_DIR}e10s/${doc}`;
     } else {
       url = snippetToURL(doc);
     }
 
     registerCleanupFunction(() => {
-      let observers = Services.obs.enumerateObservers('accessible-event');
+      let observers = Services.obs.enumerateObservers("accessible-event");
       while (observers.hasMoreElements()) {
         Services.obs.removeObserver(
           observers.getNext().QueryInterface(Ci.nsIObserver),
-          'accessible-event');
+          "accessible-event");
       }
     });
 
-    let onDocLoad = waitForEvent(EVENT_DOCUMENT_LOAD_COMPLETE, 'body');
+    let onDocLoad = waitForEvent(EVENT_DOCUMENT_LOAD_COMPLETE, "body");
 
     await BrowserTestUtils.withNewTab({
       gBrowser,
       url: url
     }, async function(browser) {
       registerCleanupFunction(() => {
         if (browser) {
           let tab = gBrowser.getTabForBrowser(browser);
@@ -270,18 +270,18 @@ function addAccessibleTask(doc, task) {
             gBrowser.removeTab(tab);
           }
         }
       });
 
       await SimpleTest.promiseFocus(browser);
 
       loadFrameScripts(browser,
-        'let { document, window, navigator } = content;',
-        { name: 'common.js', dir: MOCHITESTS_DIR });
+        "let { document, window, navigator } = content;",
+        { name: "common.js", dir: MOCHITESTS_DIR });
 
       Logger.log(
         `e10s enabled: ${Services.appinfo.browserTabsRemoteAutostart}`);
       Logger.log(`Actually remote browser: ${browser.isRemoteBrowser}`);
 
       let event = await onDocLoad;
       await task(browser, event.accessible);
     });
--- a/accessible/tests/browser/states/browser_test_link.js
+++ b/accessible/tests/browser/states/browser_test_link.js
@@ -1,29 +1,29 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
 /* import-globals-from ../../mochitest/states.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR },
-            { name: 'states.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR },
+            { name: "states.js", dir: MOCHITESTS_DIR });
 
 async function runTests(browser, accDoc) {
   let getAcc = id => findAccessibleChildByID(accDoc, id);
 
   // a: no traversed state
   testStates(getAcc("link_traversed"), 0, 0, STATE_TRAVERSED);
 
   let onStateChanged = waitForEvent(EVENT_STATE_CHANGE, "link_traversed");
   let newWinOpened = BrowserTestUtils.waitForNewWindow();
 
-  await BrowserTestUtils.synthesizeMouse('#link_traversed',
+  await BrowserTestUtils.synthesizeMouse("#link_traversed",
     1, 1, { shiftKey: true }, browser);
 
   await onStateChanged;
   testStates(getAcc("link_traversed"), STATE_TRAVERSED);
 
   let newWin = await newWinOpened;
   await BrowserTestUtils.closeWindow(newWin);
 }
--- a/accessible/tests/browser/states/browser_test_visibility.js
+++ b/accessible/tests/browser/states/browser_test_visibility.js
@@ -1,34 +1,34 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 /* import-globals-from ../../mochitest/role.js */
 /* import-globals-from ../../mochitest/states.js */
-loadScripts({ name: 'role.js', dir: MOCHITESTS_DIR },
-            { name: 'states.js', dir: MOCHITESTS_DIR });
+loadScripts({ name: "role.js", dir: MOCHITESTS_DIR },
+            { name: "states.js", dir: MOCHITESTS_DIR });
 
 async function runTest(browser, accDoc) {
   let getAcc = id => findAccessibleChildByID(accDoc, id);
 
   testStates(getAcc("div"), 0, 0, STATE_INVISIBLE | STATE_OFFSCREEN);
 
   let input = getAcc("input_scrolledoff");
   testStates(input, STATE_OFFSCREEN, 0, STATE_INVISIBLE);
 
   // scrolled off item (twice)
   let lastLi = getAcc("li_last");
   testStates(lastLi, STATE_OFFSCREEN, 0, STATE_INVISIBLE);
 
   // scroll into view the item
   await ContentTask.spawn(browser, {}, () => {
-    content.document.getElementById('li_last').scrollIntoView(true);
+    content.document.getElementById("li_last").scrollIntoView(true);
   });
   testStates(lastLi, 0, 0, STATE_OFFSCREEN | STATE_INVISIBLE);
 
   // first item is scrolled off now (testcase for bug 768786)
   let firstLi = getAcc("li_first");
   testStates(firstLi, STATE_OFFSCREEN, 0, STATE_INVISIBLE);
 
   let newTab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
--- a/accessible/tests/browser/states/head.js
+++ b/accessible/tests/browser/states/head.js
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 // Load the shared-head file first.
 /* import-globals-from ../shared-head.js */
 Services.scriptloader.loadSubScript(
-  'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js',
+  "chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js",
   this);
 
 // Loading and common.js from accessible/tests/mochitest/ for all tests, as
 // well as events.js.
-loadScripts({ name: 'common.js', dir: MOCHITESTS_DIR }, 'events.js');
+loadScripts({ name: "common.js", dir: MOCHITESTS_DIR }, "events.js");
--- a/accessible/tests/browser/tree/head.js
+++ b/accessible/tests/browser/tree/head.js
@@ -1,15 +1,15 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-'use strict';
+"use strict";
 
 // Load the shared-head file first.
 /* import-globals-from ../shared-head.js */
 Services.scriptloader.loadSubScript(
-  'chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js',
+  "chrome://mochitests/content/browser/accessible/tests/browser/shared-head.js",
   this);
 
 // Loading and common.js from accessible/tests/mochitest/ for all tests, as
 // well as events.js.
-loadScripts({ name: 'common.js', dir: MOCHITESTS_DIR }, 'events.js', 'layout.js');
+loadScripts({ name: "common.js", dir: MOCHITESTS_DIR }, "events.js", "layout.js");
--- a/accessible/tests/crashtests/448064.xhtml
+++ b/accessible/tests/crashtests/448064.xhtml
@@ -22,49 +22,49 @@ function dumpAccessibleNode(aNode, level
   var msg = "";
 
   try {
     msg += "name=\"" + aNode.name + "\" ";
   } catch (e) {
     msg += " noName ";
   }
 
-  dump(msg + '\n');
+  dump(msg + "\n");
 }
 
 
 function dumpAccessibleTree(aNode, level) {
   level = level || 0;
 
   dumpAccessibleNode(aNode, level);
   try {
     var child = aNode.firstChild;
     while (child) {
       dumpAccessibleTree(child, level + 1);
       child = child.nextSibling;
     }
   } catch (e) {
-    dump("Error visiting child nodes: " + e + '\n');
+    dump("Error visiting child nodes: " + e + "\n");
   }
 }
 
 function A(o) {
-  var acc = SpecialPowers.Cc['@mozilla.org/accessibilityService;1']
+  var acc = SpecialPowers.Cc["@mozilla.org/accessibilityService;1"]
                          .getService(SpecialPowers.Ci.nsIAccessibilityService);
   return acc.getAccessibleFor(o);
 }
 
 function beginAccessible() {
   dumpAccessibleTree(A(document), 0);
 }
 setTimeout(beginAccessible, 100);
 
 
 setTimeout(doe, 200);
 function doe() {
-   document.getElementById('mw_a').appendChild(document.getElementById('mw_b'));
-   document.getElementById('mw_c').appendChild(document.getElementById('mw_d'));
-   document.getElementById('mw_e').appendChild(document.getElementById('mw_f'));
-   document.getElementById('mw_g').appendChild(document.getElementById('mw_b'));
+   document.getElementById("mw_a").appendChild(document.getElementById("mw_b"));
+   document.getElementById("mw_c").appendChild(document.getElementById("mw_d"));
+   document.getElementById("mw_e").appendChild(document.getElementById("mw_f"));
+   document.getElementById("mw_g").appendChild(document.getElementById("mw_b"));
 }
 </script>
 </body>
 </html>
--- a/accessible/tests/mochitest/aom/test_general.html
+++ b/accessible/tests/mochitest/aom/test_general.html
@@ -3,17 +3,17 @@
 <head>
   <meta charset="utf-8">
   <title>Accessibility API: generic</title>
   <link rel="stylesheet" type="text/css"
         href="chrome://mochikit/content/tests/SimpleTest/test.css">
   <script type="application/javascript"
           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
   <script>
-  'use strict';
+  "use strict";
 
   SimpleTest.waitForExplicitFinish();
   const finish = SimpleTest.finish.bind(SimpleTest);
   enablePref()
     .then(createIframe)
     .then(checkImplementation)
     .catch(err => {
       dump(`${err}: ${err.stack}`);
@@ -41,66 +41,66 @@
     });
   }
 
   // Check that the WebIDL is as expected.
   function checkImplementation(ifrDoc) {
     let anode = ifrDoc.accessibleNode;
     ok(anode, "DOM document has accessible node");
 
-    is(anode.role, 'document', 'correct role of a document accessible node');
-    is(anode.DOMNode, ifrDoc, 'correct DOM Node of a document accessible node');
+    is(anode.role, "document", "correct role of a document accessible node");
+    is(anode.DOMNode, ifrDoc, "correct DOM Node of a document accessible node");
 
     // States may differ depending on the document state, for example, if it is
     // loaded or is loading still.
     var states = null;
     switch (anode.states.length) {
       case 5:
         states = [
-          'readonly', 'focusable', 'opaque', 'enabled', 'sensitive'
+          "readonly", "focusable", "opaque", "enabled", "sensitive"
         ];
         break;
       case 6:
         states = [
-          'readonly', 'busy', 'focusable', 'opaque', 'enabled', 'sensitive'
+          "readonly", "busy", "focusable", "opaque", "enabled", "sensitive"
         ];
         break;
       case 7:
         states = [
-          'readonly', 'busy', 'focusable', 'opaque', 'stale', 'enabled', 'sensitive'
+          "readonly", "busy", "focusable", "opaque", "stale", "enabled", "sensitive"
         ];
         break;
       default:
-        ok(false, 'Unexpected amount of states');
+        ok(false, "Unexpected amount of states");
     }
     if (states) {
       for (var i = 0; i < states.length; i++) {
         is(anode.states[i], states[i], `${states[i]} state is expected at ${i}th index`);
       }
     }
 
-    ok(anode.is('document', 'focusable'),
-       'correct role and state on an accessible node');
+    ok(anode.is("document", "focusable"),
+       "correct role and state on an accessible node");
 
-    is(anode.get('explicit-name'), 'true',
-       'correct object attribute value on an accessible node');
+    is(anode.get("explicit-name"), "true",
+       "correct object attribute value on an accessible node");
 
-    ok(anode.has('explicit-name'),
-       'object attributes are present');
+    ok(anode.has("explicit-name"),
+       "object attributes are present");
 
-    var attrs = [ 'explicit-name' ];
+    var attrs = [ "explicit-name" ];
     if (anode.attributes.length > 1) {
       attrs = [
-        'margin-left', 'text-align', 'text-indent', 'margin-right',
-        'tag', 'margin-top', 'margin-bottom', 'display',
-        'explicit-name'
+        "margin-left", "text-align", "text-indent", "margin-right",
+        "tag", "margin-top", "margin-bottom", "display",
+        "explicit-name"
       ];
     }
 
-    is(anode.attributes.length, attrs.length, 'correct number of attributes');
+    is(anode.attributes.length, attrs.length, "correct number of attributes");
     for (var i = 0; i < attrs.length; i++) {
       ok(attrs.indexOf(anode.attributes[i]) >= 0,
          `${anode.attributes[i]} attribute is expected and found`);
     }
 
     finish();
   }
   </script>
--- a/accessible/tests/mochitest/attributes/test_dpub_aria_xml-roles.html
+++ b/accessible/tests/mochitest/attributes/test_dpub_aria_xml-roles.html
@@ -16,55 +16,55 @@
           src="../attributes.js"></script>
 
   <script type="application/javascript">
 
     function doTest()
     {
       // DPub ARIA roles should be exposed via the xml-roles object attribute.
       let dpub_attrs = [
-        'doc-abstract',
-        'doc-acknowledgments',
-        'doc-afterword',
-        'doc-appendix',
-        'doc-backlink',
-        'doc-biblioentry',
-        'doc-bibliography',
-        'doc-biblioref',
-        'doc-chapter',
-        'doc-colophon',
-        'doc-conclusion',
-        'doc-cover',
-        'doc-credit',
-        'doc-credits',
-        'doc-dedication',
-        'doc-endnote',
-        'doc-endnotes',
-        'doc-epigraph',
-        'doc-epilogue',
-        'doc-errata',
-        'doc-example',
-        'doc-footnote',
-        'doc-foreword',
-        'doc-glossary',
-        'doc-glossref',
-        'doc-index',
-        'doc-introduction',
-        'doc-noteref',
-        'doc-notice',
-        'doc-pagebreak',
-        'doc-pagelist',
-        'doc-part',
-        'doc-preface',
-        'doc-prologue',
-        'doc-pullquote',
-        'doc-qna',
-        'doc-subtitle',
-        'doc-tip',
-        'doc-toc'
+        "doc-abstract",
+        "doc-acknowledgments",
+        "doc-afterword",
+        "doc-appendix",
+        "doc-backlink",
+        "doc-biblioentry",
+        "doc-bibliography",
+        "doc-biblioref",
+        "doc-chapter",
+        "doc-colophon",
+        "doc-conclusion",
+        "doc-cover",
+        "doc-credit",
+        "doc-credits",
+        "doc-dedication",
+        "doc-endnote",
+        "doc-endnotes",
+        "doc-epigraph",
+        "doc-epilogue",
+        "doc-errata",
+        "doc-example",
+        "doc-footnote",
+        "doc-foreword",
+        "doc-glossary",
+        "doc-glossref",
+        "doc-index",
+        "doc-introduction",
+        "doc-noteref",
+        "doc-notice",
+        "doc-pagebreak",
+        "doc-pagelist",
+        "doc-part",
+        "doc-preface",
+        "doc-prologue",
+        "doc-pullquote",
+        "doc-qna",
+        "doc-subtitle",
+        "doc-tip",
+        "doc-toc"
       ];
       for (let attr of dpub_attrs) {
         testAttrs(attr, {"xml-roles": attr}, true);
       }
       SimpleTest.finish();
     }
     SimpleTest.waitForExplicitFinish();
     addA11yLoadEvent(doTest);
--- a/accessible/tests/mochitest/common.js
+++ b/accessible/tests/mochitest/common.js
@@ -86,17 +86,17 @@ const kDiscBulletText = kDiscBulletChar 
 const kCircleBulletText = String.fromCharCode(0x25e6) + " ";
 const kSquareBulletText = String.fromCharCode(0x25fe) + " ";
 
 const MAX_TRIM_LENGTH = 100;
 
 /**
  * Services to determine if e10s is enabled.
  */
-Components.utils.import('resource://gre/modules/Services.jsm');
+Components.utils.import("resource://gre/modules/Services.jsm");
 
 /**
  * nsIAccessibilityService service.
  */
 var gAccService = Components.classes["@mozilla.org/accessibilityService;1"].
   getService(nsIAccessibilityService);
 
 /**
--- a/accessible/tests/mochitest/elm/test_canvas.html
+++ b/accessible/tests/mochitest/elm/test_canvas.html
@@ -17,17 +17,17 @@
   <script type="application/javascript"
           src="../layout.js"></script>
 
   <script type="application/javascript">
     var kX = 10, kY = 10, kWidth = 150, kHeight = 100;
     function doTest()
     {
       var canv = document.getElementById("c");
-      var context = canv.getContext('2d');
+      var context = canv.getContext("2d");
       var element = document.getElementById("showA");
       context.beginPath();
       context.rect(kX, kY, kWidth, kHeight);
       context.addHitRegion({control: element});
 
       var input = getAccessible("showA");
       var [cnvX, cnvY, /*cnvWidth*/, /*cnvHeight*/] = getBoundsForDOMElm(canv);
       var [accX, accY, accWidth, accHeight] = getBounds(input);
@@ -38,17 +38,17 @@
       is(accWidth, w, "wrong accWidth");
       is(accHeight, h, "wrong accHeight");
 
       SimpleTest.finish();
     }
 
     SimpleTest.waitForExplicitFinish();
     addA11yLoadEvent(function() {
-      SpecialPowers.pushPrefEnv({"set": [['canvas.hitregions.enabled', true]]}, doTest);
+      SpecialPowers.pushPrefEnv({"set": [["canvas.hitregions.enabled", true]]}, doTest);
     });
 
     </script>
 </head>
 <body>
 
   <canvas id="c">
     <input id="showA" type="checkbox"><label for="showA"> Show As </label>
--- a/accessible/tests/mochitest/elm/test_shadowroot.html
+++ b/accessible/tests/mochitest/elm/test_shadowroot.html
@@ -44,17 +44,17 @@
   </a><br/>
   <p id="display"></p>
   <div id="content" style="display: none"></div>
   <pre id="test">
   </pre>
 
   <div role="group" id="component"></div>
   <script>
-    var component = document.getElementById('component');
+    var component = document.getElementById("component");
     var shadow = component.createShadowRoot();
 
-    shadow.innerHTML = '<button>Hello</button>' +
+    shadow.innerHTML = "<button>Hello</button>" +
       '<a href="#"> World</a>';
   </script>
 
 </body>
 </html>
--- a/accessible/tests/mochitest/events/docload_wnd.html
+++ b/accessible/tests/mochitest/events/docload_wnd.html
@@ -23,17 +23,17 @@
 
       hideIFrame();
     }
 
     function hideIFrame()
     {
       var iframe = document.getElementById("iframe");
       gService.getAccessibleFor(iframe.contentDocument);
-      iframe.style.display = 'none';
+      iframe.style.display = "none";
     }
   </script>
 </head>
 
 <body onload="waitForDocLoad();">
   <iframe id="iframe"></iframe>
 </body>
 </html>
--- a/accessible/tests/mochitest/events/test_coalescence.html
+++ b/accessible/tests/mochitest/events/test_coalescence.html
@@ -496,30 +496,30 @@
      * <div id="t7_c">
      *   <div id="t7_c_directchild">ha</div>
      *   <div><div id="t7_c_grandchild">ha</div></div>
      * </div>
      */
     function test7()
     {
       this.eventSeq = [
-        new invokerChecker(EVENT_HIDE, getNode('t7_c')),
-        new invokerChecker(EVENT_SHOW, getNode('t7_c')),
-        new invokerChecker(EVENT_REORDER, getNode('t7')),
-        new unexpectedInvokerChecker(EVENT_REORDER, getNode('t7_c_directchild')),
-        new unexpectedInvokerChecker(EVENT_REORDER, getNode('t7_c_grandchild')),
-        new unexpectedInvokerChecker(EVENT_SHOW, () => getNode('t7_c_directchild').firstChild),
-        new unexpectedInvokerChecker(EVENT_SHOW, () => getNode('t7_c_grandchild').firstChild)
+        new invokerChecker(EVENT_HIDE, getNode("t7_c")),
+        new invokerChecker(EVENT_SHOW, getNode("t7_c")),
+        new invokerChecker(EVENT_REORDER, getNode("t7")),
+        new unexpectedInvokerChecker(EVENT_REORDER, getNode("t7_c_directchild")),
+        new unexpectedInvokerChecker(EVENT_REORDER, getNode("t7_c_grandchild")),
+        new unexpectedInvokerChecker(EVENT_SHOW, () => getNode("t7_c_directchild").firstChild),
+        new unexpectedInvokerChecker(EVENT_SHOW, () => getNode("t7_c_grandchild").firstChild)
       ];
 
       this.invoke = function test7_invoke()
       {
-        getNode('t7_c_directchild').textContent = 'ha';
-        getNode('t7_c_grandchild').textContent = 'ha';
-        getNode('t7_moveplace').setAttribute('aria-owns', 't7_c');
+        getNode("t7_c_directchild").textContent = "ha";
+        getNode("t7_c_grandchild").textContent = "ha";
+        getNode("t7_moveplace").setAttribute("aria-owns", "t7_c");
       };
 
       this.getID = function test7_getID() {
         return "Show child accessibles and then hide their container";
       };
     }
 
     /**
@@ -531,31 +531,31 @@
      * reorder for 't8_c2'
      *   hide for 't8_c2_moved'
      *
      * The hide event should be delivered before the paired show event.
      */
     function test8()
     {
       this.eventSeq = [
-        new invokerChecker(EVENT_HIDE, getNode('t8_c1_child')),
-        new invokerChecker(EVENT_HIDE, 't8_c2_moved'),
-        new invokerChecker(EVENT_SHOW, 't8_c2_moved'),
-        new invokerChecker(EVENT_REORDER, 't8_c2'),
-        new invokerChecker(EVENT_REORDER, 't8_c1'),
+        new invokerChecker(EVENT_HIDE, getNode("t8_c1_child")),
+        new invokerChecker(EVENT_HIDE, "t8_c2_moved"),
+        new invokerChecker(EVENT_SHOW, "t8_c2_moved"),
+        new invokerChecker(EVENT_REORDER, "t8_c2"),
+        new invokerChecker(EVENT_REORDER, "t8_c1"),
       ];
 
       this.invoke = function test8_invoke()
       {
         // Remove a node from 't8_c1' container to give the event tree a
         // desired structure (the 't8_c1' container node goes first in the event
         // tree)
-        getNode('t8_c1_child').remove();
+        getNode("t8_c1_child").remove();
         // then move 't8_c2_moved' from 't8_c2' to 't8_c1'.
-        getNode('t8_c1').setAttribute('aria-owns', 't8_c2_moved');
+        getNode("t8_c1").setAttribute("aria-owns", "t8_c2_moved");
       };
 
       this.getID = function test8_getID() {
         return "Move a node by aria-owns to left within the tree";
       };
     }
 
     /**
@@ -572,37 +572,37 @@
      *   hide for 't9_c3_moved'
      *
      * The hide events for 't9_c2_moved' and 't9_c3_moved' should be delivered
      * before the show event for 't9_c2_moved'.
      */
     function test9()
     {
       this.eventSeq = [
-        new invokerChecker(EVENT_HIDE, getNode('t9_c1_child')),
-        new invokerChecker(EVENT_HIDE, getNode('t9_c2_child')),
-        new invokerChecker(EVENT_HIDE, 't9_c3_moved'),
-        new invokerChecker(EVENT_HIDE, 't9_c2_moved'),
-        new invokerChecker(EVENT_SHOW, 't9_c2_moved'),
-        new invokerChecker(EVENT_REORDER, 't9_c3'),
-        new invokerChecker(EVENT_REORDER, 't9_c2'),
-        new invokerChecker(EVENT_REORDER, 't9_c1'),
-        new unexpectedInvokerChecker(EVENT_SHOW, 't9_c3_moved')
+        new invokerChecker(EVENT_HIDE, getNode("t9_c1_child")),
+        new invokerChecker(EVENT_HIDE, getNode("t9_c2_child")),
+        new invokerChecker(EVENT_HIDE, "t9_c3_moved"),
+        new invokerChecker(EVENT_HIDE, "t9_c2_moved"),
+        new invokerChecker(EVENT_SHOW, "t9_c2_moved"),
+        new invokerChecker(EVENT_REORDER, "t9_c3"),
+        new invokerChecker(EVENT_REORDER, "t9_c2"),
+        new invokerChecker(EVENT_REORDER, "t9_c1"),
+        new unexpectedInvokerChecker(EVENT_SHOW, "t9_c3_moved")
       ];
 
       this.invoke = function test9_invoke()
       {
         // Remove child nodes from 't9_c1' and 't9_c2' containers to give
         // the event tree a needed structure ('t9_c1' and 't9_c2' nodes go
         // first in the event tree),
-        getNode('t9_c1_child').remove();
-        getNode('t9_c2_child').remove();
+        getNode("t9_c1_child").remove();
+        getNode("t9_c2_child").remove();
         // then do aria-owns magic.
-        getNode('t9_c2_moved').setAttribute('aria-owns', 't9_c3_moved');
-        getNode('t9_c1').setAttribute('aria-owns', 't9_c2_moved');
+        getNode("t9_c2_moved").setAttribute("aria-owns", "t9_c3_moved");
+        getNode("t9_c1").setAttribute("aria-owns", "t9_c2_moved");
       };
 
       this.getID = function test9_getID() {
         return "Move node #1 by aria-owns and then move node #2 into node #1";
       };
     }
 
     /**
@@ -618,74 +618,74 @@
      *   hide for 't10_c3_moved'
      *
      * The hide events for 't10_c2_moved' and 't10_c3_moved' should be delivered
      * before the show event for 't10_c2_moved'.
      */
     function test10()
     {
       this.eventSeq = [
-        new invokerChecker(EVENT_HIDE, getNode('t10_c1_child')),
-        new invokerChecker(EVENT_HIDE, getNode('t10_c2_child')),
-        new invokerChecker(EVENT_HIDE, getNode('t10_c2_moved')),
-        new invokerChecker(EVENT_HIDE, getNode('t10_c3_moved')),
-        new invokerChecker(EVENT_SHOW, getNode('t10_c2_moved')),
-        new invokerChecker(EVENT_REORDER, 't10_c2'),
-        new invokerChecker(EVENT_REORDER, 't10_c1'),
-        new invokerChecker(EVENT_REORDER, 't10_c3')
+        new invokerChecker(EVENT_HIDE, getNode("t10_c1_child")),
+        new invokerChecker(EVENT_HIDE, getNode("t10_c2_child")),
+        new invokerChecker(EVENT_HIDE, getNode("t10_c2_moved")),
+        new invokerChecker(EVENT_HIDE, getNode("t10_c3_moved")),
+        new invokerChecker(EVENT_SHOW, getNode("t10_c2_moved")),
+        new invokerChecker(EVENT_REORDER, "t10_c2"),
+        new invokerChecker(EVENT_REORDER, "t10_c1"),
+        new invokerChecker(EVENT_REORDER, "t10_c3")
       ];
 
       this.invoke = function test10_invoke()
       {
         // Remove child nodes from 't10_c1' and 't10_c2' containers to give
         // the event tree a needed structure ('t10_c1' and 't10_c2' nodes go first
         // in the event tree),
-        getNode('t10_c1_child').remove();
-        getNode('t10_c2_child').remove();
+        getNode("t10_c1_child").remove();
+        getNode("t10_c2_child").remove();
         // then do aria-owns stuff.
-        getNode('t10_c1').setAttribute('aria-owns', 't10_c2_moved');
-        getNode('t10_c2_moved').setAttribute('aria-owns', 't10_c3_moved');
+        getNode("t10_c1").setAttribute("aria-owns", "t10_c2_moved");
+        getNode("t10_c2_moved").setAttribute("aria-owns", "t10_c3_moved");
       };
 
       this.getID = function test10_getID() {
         return "Move a node by aria-owns into a node moved by aria-owns to left within the tree";
       };
     }
 
     /**
      * Move a node by aria-owns from right to left in the tree, and then
      * move its parent too by aria-owns. No hide event should be fired for
      * original node.
      */
     function test11()
     {
       this.eventSeq = [
-        new invokerChecker(EVENT_HIDE, getNode('t11_c1_child')),
-        new invokerChecker(EVENT_HIDE, getNode('t11_c2')),
+        new invokerChecker(EVENT_HIDE, getNode("t11_c1_child")),
+        new invokerChecker(EVENT_HIDE, getNode("t11_c2")),
         new orderChecker(),
-        new asyncInvokerChecker(EVENT_SHOW, 't11_c2_child'),
-        new asyncInvokerChecker(EVENT_SHOW, 't11_c2'),
+        new asyncInvokerChecker(EVENT_SHOW, "t11_c2_child"),
+        new asyncInvokerChecker(EVENT_SHOW, "t11_c2"),
         new orderChecker(),
-        new invokerChecker(EVENT_REORDER, 't11'),
-        new unexpectedInvokerChecker(EVENT_HIDE, 't11_c2_child'),
-        new unexpectedInvokerChecker(EVENT_REORDER, 't11_c1'),
-        new unexpectedInvokerChecker(EVENT_REORDER, 't11_c2'),
-        new unexpectedInvokerChecker(EVENT_REORDER, 't11_c3')
+        new invokerChecker(EVENT_REORDER, "t11"),
+        new unexpectedInvokerChecker(EVENT_HIDE, "t11_c2_child"),
+        new unexpectedInvokerChecker(EVENT_REORDER, "t11_c1"),
+        new unexpectedInvokerChecker(EVENT_REORDER, "t11_c2"),
+        new unexpectedInvokerChecker(EVENT_REORDER, "t11_c3")
       ];
 
       this.invoke = function test11_invoke()
       {
         // Remove a node from 't11_c1' container to give the event tree a
         // desired structure (the 't11_c1' container node goes first in
         // the event tree),
-        getNode('t11_c1_child').remove();
+        getNode("t11_c1_child").remove();
         // then move 't11_c2_moved' from 't11_c2' to 't11_c1', and then move
         // 't11_c2' to 't11_c3'.
-        getNode('t11_c1').setAttribute('aria-owns', 't11_c2_child');
-        getNode('t11_c3').setAttribute('aria-owns', 't11_c2');
+        getNode("t11_c1").setAttribute("aria-owns", "t11_c2_child");
+        getNode("t11_c3").setAttribute("aria-owns", "t11_c2");
       };
 
       this.getID = function test11_getID() {
         return "Move a node by aria-owns to left within the tree";
       };
     }
 
     ////////////////////////////////////////////////////////////////////////////
--- a/accessible/tests/mochitest/events/test_focus_general.html
+++ b/accessible/tests/mochitest/events/test_focus_general.html
@@ -90,18 +90,18 @@
     //gA11yEventDumpToConsole = true;
 
     var gQueue = null;
 
     function doTests()
     {
       var frameDoc = document.getElementById("iframe").contentDocument;
 
-      var editableDoc = document.getElementById('editabledoc').contentDocument;
-      editableDoc.designMode = 'on';
+      var editableDoc = document.getElementById("editabledoc").contentDocument;
+      editableDoc.designMode = "on";
 
       gQueue = new eventQueue();
 
       gQueue.push(new synthFocus("editablearea"));
       gQueue.push(new synthFocus("navarea"));
       gQueue.push(new synthTab("navarea", new focusChecker(frameDoc)));
       gQueue.push(new focusElmWhileSubdocIsFocused("link"));
 
--- a/accessible/tests/mochitest/events/test_mutation.html
+++ b/accessible/tests/mochitest/events/test_mutation.html
@@ -163,17 +163,17 @@
       var doNotExpectEvents = (aEventTypes == kNoEvents);
 
       this.__proto__ = new mutateA11yTree(aNodeOrID, eventTypes,
                                           doNotExpectEvents);
 
       this.invoke = function cloneAndAppendToDOM_invoke()
       {
         var newElm = this.DOMNode.cloneNode(true);
-        newElm.removeAttribute('id');
+        newElm.removeAttribute("id");
 
         var targets = aTargetsFunc ?
           aTargetsFunc.call(null, newElm) : [newElm];
         this.setTargets(kShowEvent, targets);
 
         if (aReorderTargetFunc) {
           var reorderTarget = aReorderTargetFunc.call(null, this.DOMNode);
           this.setTarget(kReorderEvent, reorderTarget);
@@ -232,17 +232,17 @@
       }
 
       this.getID = function cloneAndReplaceInDOM_getID()
       {
         return aNodeOrID + " clone and replace in DOM.";
       }
 
       this.newElm = this.DOMNode.cloneNode(true);
-      this.newElm.removeAttribute('id');
+      this.newElm.removeAttribute("id");
       this.setTarget(kShowEvent, this.newElm);
     }
 
     /**
      * Trigger content insertion (flush layout), removal and insertion of
      * the same element for the same parent.
      */
     function test1(aContainerID)
@@ -363,17 +363,17 @@
       this.eventSeq = [
         new invokerChecker(EVENT_HIDE, getNode("c4_child")),
         new invokerChecker(EVENT_SHOW, getNode("c4_middle")),
         new invokerChecker(EVENT_REORDER, getNode("c4"))
       ];
 
       this.invoke = function showHiddenParentOfVisibleChild_invoke()
       {
-        getNode("c4_middle").style.visibility = 'visible';
+        getNode("c4_middle").style.visibility = "visible";
       }
 
       this.getID = function showHiddenParentOfVisibleChild_getID()
       {
         return "show hidden parent of visible child";
       }
     }
 
@@ -381,23 +381,23 @@
     {
       this.txt = null;
       this.eventSeq = [
         new invokerChecker(EVENT_HIDE, () => { return this.txt; })
       ];
 
       this.invoke = function hideNDestroyDoc_invoke()
       {
-        this.txt = getAccessible('c5').firstChild.firstChild;
+        this.txt = getAccessible("c5").firstChild.firstChild;
         this.txt.DOMNode.remove();
       }
 
       this.check = function hideNDestroyDoc_check()
       {
-        getNode('c5').remove();
+        getNode("c5").remove();
       }
 
       this.getID = function hideNDestroyDoc_getID()
       {
         return "remove text node and destroy a document on hide event";
       }
     }
 
@@ -405,27 +405,27 @@
     {
       this.target = null;
       this.eventSeq = [
         new invokerChecker(EVENT_HIDE, () => { return this.target; })
       ];
 
       this.invoke = function hideHideNDestroyDoc_invoke()
       {
-        var doc = getAccessible('c6').firstChild;
+        var doc = getAccessible("c6").firstChild;
         var l1 = doc.firstChild;
         this.target = l1.firstChild;
         var l2 = doc.lastChild;
         l1.DOMNode.firstChild.remove();
         l2.DOMNode.firstChild.remove();
       }
 
       this.check = function hideHideNDestroyDoc_check()
       {
-        getNode('c6').remove();
+        getNode("c6").remove();
       }
 
       this.getID = function hideHideNDestroyDoc_getID()
       {
         return "remove text nodes (2 events in the queue) and destroy a document on first hide event";
       }
     }
 
--- a/accessible/tests/mochitest/events/test_statechange.html
+++ b/accessible/tests/mochitest/events/test_statechange.html
@@ -23,17 +23,17 @@
     // Invokers
 
     function makeEditableDoc(aDocNode, aIsEnabled)
     {
       this.DOMNode = aDocNode;
 
       this.invoke = function editabledoc_invoke() {
         // Note: this should fire an EVENT_STATE_CHANGE
-        this.DOMNode.designMode = 'on';
+        this.DOMNode.designMode = "on";
       };
 
       this.check = function editabledoc_check(aEvent) {
 
         testStates(aDocNode, 0, EXT_STATE_EDITABLE);
 
         var event = null;
         try {
--- a/accessible/tests/mochitest/hittest/test_canvas_hitregion.html
+++ b/accessible/tests/mochitest/hittest/test_canvas_hitregion.html
@@ -11,26 +11,26 @@
           src="../common.js"></script>
   <script type="application/javascript"
           src="../layout.js"></script>
 
   <script type="application/javascript">
     function redrawCheckbox(context, element, x, y)
     {
       context.save();
-      context.font = '10px sans-serif';
-      context.textAlign = 'left';
-      context.textBaseline = 'middle';
+      context.font = "10px sans-serif";
+      context.textAlign = "left";
+      context.textBaseline = "middle";
       var metrics = context.measureText(element.parentNode.textContent);
       context.beginPath();
-      context.strokeStyle = 'black';
+      context.strokeStyle = "black";
       context.rect(x-5, y-5, 10, 10);
       context.stroke();
       if (element.checked) {
-        context.fillStyle = 'black';
+        context.fillStyle = "black";
         context.fill();
       }
       context.fillText(element.parentNode.textContent, x+5, y);
 
       context.beginPath();
       context.rect(x-7, y-7, 12 + metrics.width+2, 14);
 
       if (document.activeElement == element)
@@ -39,18 +39,18 @@
       context.restore();
     }
 
     function doTest()
     {
       var offsetX = 20, offsetY = 40;
       getNode("hitcanvas").scrollIntoView(true);
 
-      var context = document.getElementById("hitcanvas").getContext('2d');
-      redrawCheckbox(context, document.getElementById('hitcheck'),
+      var context = document.getElementById("hitcanvas").getContext("2d");
+      redrawCheckbox(context, document.getElementById("hitcheck"),
                      offsetX, offsetY);
 
       var hitcanvas = getAccessible("hitcanvas");
       var hitcheck = getAccessible("hitcheck");
 
       var [hitX, hitY, /*hitWidth, hitHeight */] = getBounds(hitcanvas);
       var [deltaX, deltaY] = CSSToDevicePixels(window, offsetX, offsetY);
 
@@ -66,17 +66,17 @@
       tgtY = hitY + deltaY * 2;
       hitAcc = docAcc.getDeepestChildAtPoint(tgtX, tgtY);
       isObject(hitAcc, hitcanvas, `Hit match at (${tgtX}, ${tgtY}`);
 
       SimpleTest.finish();
     }
     SimpleTest.waitForExplicitFinish();
     addA11yLoadEvent(function() {
-      SpecialPowers.pushPrefEnv({"set": [['canvas.hitregions.enabled', true]]}, doTest);
+      SpecialPowers.pushPrefEnv({"set": [["canvas.hitregions.enabled", true]]}, doTest);
     });
  </script>
 </head>
 <body>
 
   <a target="_blank"
      href="https://bugzilla.mozilla.org/show_bug.cgi?id=966591"
      title="nsIAccessible::childAtPoint() for canvas hit regions from browser tests">Mozilla Bug 966591</a>
--- a/accessible/tests/mochitest/hittest/test_shadowroot.html
+++ b/accessible/tests/mochitest/hittest/test_shadowroot.html
@@ -11,21 +11,21 @@
   <script type="application/javascript"
           src="../common.js"></script>
   <script type="application/javascript"
           src="../layout.js"></script>
 
   <script type="application/javascript">
     function doTest()
     {
-      var componentAcc = getAccessible('component1');
+      var componentAcc = getAccessible("component1");
       testChildAtPoint(componentAcc, 1, 1, componentAcc.firstChild,
                        componentAcc.firstChild);
 
-      componentAcc = getAccessible('component2');
+      componentAcc = getAccessible("component2");
       testChildAtPoint(componentAcc, 1, 1, componentAcc.firstChild,
                        componentAcc.firstChild);
       SimpleTest.finish();
     }
 
     SimpleTest.waitForExplicitFinish();
     addA11yLoadEvent(doTest);
   </script>
@@ -52,17 +52,17 @@
   <div role="group" class="components"  id="component2" style="display: inline-block;">
   <!--
     <button>Hello world</button>
   -->
   </div>
   <script>
     // This routine adds the comment children of each 'component' to its
     // shadow root.
-    var components = document.querySelectorAll('.components');
+    var components = document.querySelectorAll(".components");
     for (var i = 0; i < components.length; i++) {
       var component = components[i];
       var shadow = component.createShadowRoot();
       for (var child = component.firstChild; child; child = child.nextSibling) {
         if (child.nodeType === 8)
           // eslint-disable-next-line no-unsanitized/property
           shadow.innerHTML = child.data;
       }
--- a/accessible/tests/mochitest/jsat/doc_content_integration.html
+++ b/accessible/tests/mochitest/jsat/doc_content_integration.html
@@ -1,69 +1,69 @@
 <!DOCTYPE html>
 <html>
 <head>
   <title>Traversal Rule test document</title>
   <meta charset="utf-8" />
   <script>
-    var frameContents = '<html>' +
-      '<head><title>such app</title></head>' +
-      '<body>' +
-      '<h1>wow</h1>' +
-      '<ul>' +
+    var frameContents = "<html>" +
+      "<head><title>such app</title></head>" +
+      "<body>" +
+      "<h1>wow</h1>" +
+      "<ul>" +
       '<li><label><input type="checkbox">many option</label></li>' +
-      '</ul>' +
+      "</ul>" +
       '<label for="r">much range</label>' +
       '<input min="0" max="10" value="5" type="range" id="r">' +
-      '</body>' +
-      '</html>';
+      "</body>" +
+      "</html>";
 
     function showAlert() {
-      document.getElementById('alert').hidden = false;
+      document.getElementById("alert").hidden = false;
     }
 
     function hideAlert() {
-      document.getElementById('alert').hidden = true;
+      document.getElementById("alert").hidden = true;
     }
 
     function ariaShowBack() {
-      document.getElementById('back').setAttribute('aria-hidden', false);
+      document.getElementById("back").setAttribute("aria-hidden", false);
     }
 
     function ariaHideBack() {
-      document.getElementById('back').setAttribute('aria-hidden', true);
+      document.getElementById("back").setAttribute("aria-hidden", true);
     }
 
     function ariaShowIframe() {
-      document.getElementById('iframe').setAttribute('aria-hidden', false);
+      document.getElementById("iframe").setAttribute("aria-hidden", false);
     }
 
     function ariaHideIframe() {
-      document.getElementById('iframe').setAttribute('aria-hidden', true);
+      document.getElementById("iframe").setAttribute("aria-hidden", true);
     }
 
     function renameFruit() {
-      document.getElementById('fruit').setAttribute('aria-label', 'banana');
+      document.getElementById("fruit").setAttribute("aria-label", "banana");
     }
 
     function renameSlider() {
-      document.getElementById('slider').setAttribute(
-        'aria-label', 'mover');
+      document.getElementById("slider").setAttribute(
+        "aria-label", "mover");
     }
 
     function changeSliderValue() {
-      document.getElementById('slider').setAttribute('aria-valuenow', '5');
-      document.getElementById('slider').setAttribute(
-        'aria-valuetext', 'medium');
+      document.getElementById("slider").setAttribute("aria-valuenow", "5");
+      document.getElementById("slider").setAttribute(
+        "aria-valuetext", "medium");
     }
 
     function toggleLight() {
-      var lightSwitch = document.getElementById('light');
-      lightSwitch.setAttribute('aria-checked',
-        lightSwitch.getAttribute('aria-checked') === 'true' ? 'false' : 'true');
+      var lightSwitch = document.getElementById("light");
+      lightSwitch.setAttribute("aria-checked",
+        lightSwitch.getAttribute("aria-checked") === "true" ? "false" : "true");
     }
 
   </script>
   <style>
     #windows {
       position: relative;
       width: 320px;
       height: 480px;
--- a/accessible/tests/mochitest/jsat/dom_helper.js
+++ b/accessible/tests/mochitest/jsat/dom_helper.js
@@ -1,16 +1,16 @@
-'use strict';
+"use strict";
 
 /* exported loadJSON, eventMap */
 
 var Ci = Components.interfaces;
 var Cu = Components.utils;
 
-Cu.import('resource://gre/modules/Geometry.jsm');
+Cu.import("resource://gre/modules/Geometry.jsm");
 
 var win = getMainChromeWindow(window);
 
 /**
  * Convert inch based point coordinates into pixels.
  * @param  {Array} aPoints Array of coordinates in inches.
  * @return {Array} Array of coordinates in pixels.
  */
@@ -36,17 +36,17 @@ function convertPointCoordinates(aPoints
  *                   // centre.
  * }
  * @return {JSON} An array of {x, y} coordinations.
  */
 function calculateTouchListCoordinates(aTouchPoints) {
   var coords = [];
   for (var i = 0, target = aTouchPoints[i]; i < aTouchPoints.length; ++i) {
     var bounds = getBoundsForDOMElm(target.base);
-    var parentBounds = getBoundsForDOMElm('root');
+    var parentBounds = getBoundsForDOMElm("root");
     var point = new Point(target.x || 0, target.y || 0);
     point.scale(Utils.dpi);
     point.add(bounds[0], bounds[1]);
     point.add(bounds[2] / 2, bounds[3] / 2);
     point.subtract(parentBounds[0], parentBounds[0]);
     coords.push({
       x: point.x,
       y: point.y
@@ -58,32 +58,32 @@ function calculateTouchListCoordinates(a
 /**
  * Send a touch event with specified touchPoints.
  * @param  {Array} aTouchPoints An array of points to be associated with
  * touches.
  * @param  {String} aName A name of the touch event.
  */
 function sendTouchEvent(aTouchPoints, aName) {
   var touchList = sendTouchEvent.touchList;
-  if (aName === 'touchend') {
+  if (aName === "touchend") {
     sendTouchEvent.touchList = null;
   } else {
     var coords = calculateTouchListCoordinates(aTouchPoints);
     var touches = [];
     for (var i = 0; i < coords.length; ++i) {
       var {x, y} = coords[i];
       var node = document.elementFromPoint(x, y);
-      var touch = document.createTouch(window, node, aName === 'touchstart' ?
+      var touch = document.createTouch(window, node, aName === "touchstart" ?
         1 : touchList.item(i).identifier, x, y, x, y);
       touches.push(touch);
     }
     touchList = document.createTouchList(touches);
     sendTouchEvent.touchList = touchList;
   }
-  var evt = document.createEvent('TouchEvent');
+  var evt = document.createEvent("TouchEvent");
   evt.initTouchEvent(aName, true, true, window, 0, false, false, false, false,
     touchList, touchList, touchList);
   document.dispatchEvent(evt);
 }
 
 sendTouchEvent.touchList = null;
 
 /**
@@ -102,34 +102,34 @@ var eventMap = {
  * @param  {Array} aExpectedGestures A stack of expected event types.
  * @param  {String} aTitle Title of this sequence, if any.
  * Note: the listener is removed once the stack reaches 0.
  */
 function testMozAccessFuGesture(aExpectedGestures, aTitle) {
   var types = aExpectedGestures;
   function handleGesture(aEvent) {
     if (aEvent.detail.type !== types[0].type) {
-      info('Got ' + aEvent.detail.type + ' waiting for ' + types[0].type);
+      info("Got " + aEvent.detail.type + " waiting for " + types[0].type);
       // The is not the event of interest.
       return;
     }
     is(!!aEvent.detail.edge, !!types[0].edge);
     is(aEvent.detail.touches.length, types[0].fingers || 1,
-      'failed to count fingers: ' + types[0].type);
-    ok(true, 'Received correct mozAccessFuGesture: ' +
-      JSON.stringify(types.shift()) + '. (' + aTitle + ')');
+      "failed to count fingers: " + types[0].type);
+    ok(true, "Received correct mozAccessFuGesture: " +
+      JSON.stringify(types.shift()) + ". (" + aTitle + ")");
     if (types.length === 0) {
-      win.removeEventListener('mozAccessFuGesture', handleGesture);
+      win.removeEventListener("mozAccessFuGesture", handleGesture);
       if (AccessFuTest.sequenceCleanup) {
         AccessFuTest.sequenceCleanup();
       }
       AccessFuTest.nextTest();
     }
   }
-  win.addEventListener('mozAccessFuGesture', handleGesture);
+  win.addEventListener("mozAccessFuGesture", handleGesture);
 }
 
 /**
  * Reset the thresholds and max delays that affect gesture rejection.
  * @param {Number} aTimeStamp Gesture time stamp.
  * @param {Boolean} aRemoveDwellThreshold An optional flag to reset dwell
  * threshold.
  * @param {Boolean} aRemoveSwipeMaxDuration An optional flag to reset swipe max
@@ -193,15 +193,15 @@ AccessFuTest.addSequence = function Acce
 
 /**
  * A helper function that loads JSON files.
  * @param {String} aPath A path to a JSON file.
  * @param {Function} aCallback A callback to be called on success.
  */
 function loadJSON(aPath, aCallback) {
   var request = new XMLHttpRequest();
-  request.open('GET', aPath, true);
-  request.responseType = 'json';
+  request.open("GET", aPath, true);
+  request.responseType = "json";
   request.onload = function onload() {
     aCallback(request.response);
   };
   request.send();
 }
--- a/accessible/tests/mochitest/jsat/jsatcommon.js
+++ b/accessible/tests/mochitest/jsat/jsatcommon.js
@@ -1,25 +1,25 @@
 // A common module to run tests on the AccessFu module
 
-'use strict';
+"use strict";
 
 /*global isDeeply, getMainChromeWindow, SimpleTest, SpecialPowers, Logger,
   AccessFu, Utils, addMessageListener, currentTabDocument, currentBrowser*/
 
 /**
   * A global variable holding an array of test functions.
   */
 var gTestFuncs = [];
 /**
   * A global Iterator for the array of test functions.
   */
 var gIterator;
 
-Components.utils.import('resource://gre/modules/Services.jsm');
+Components.utils.import("resource://gre/modules/Services.jsm");
 Components.utils.import("resource://gre/modules/accessibility/Utils.jsm");
 Components.utils.import("resource://gre/modules/accessibility/EventManager.jsm");
 Components.utils.import("resource://gre/modules/accessibility/Gestures.jsm");
 
 var AccessFuTest = {
 
   addFunc: function AccessFuTest_addFunc(aFunc) {
     if (aFunc) {
@@ -65,31 +65,31 @@ var AccessFuTest = {
       var data = JSON.parse(aData)[1];
       // Ignore non-relevant outputs.
       if (!data) {
         return;
       }
       isDeeply(data.details, aWaitForData, "Data is correct");
       aListener.apply(listener);
     };
-    Services.obs.addObserver(listener, 'accessibility-output');
+    Services.obs.addObserver(listener, "accessibility-output");
     return listener;
   },
 
   on: function AccessFuTest_on(aWaitForData, aListener) {
     return this._addObserver(aWaitForData, aListener);
   },
 
   off: function AccessFuTest_off(aListener) {
-    Services.obs.removeObserver(aListener, 'accessibility-output');
+    Services.obs.removeObserver(aListener, "accessibility-output");
   },
 
   once: function AccessFuTest_once(aWaitForData, aListener) {
     return this._addObserver(aWaitForData, function observerAndRemove() {
-      Services.obs.removeObserver(this, 'accessibility-output');
+      Services.obs.removeObserver(this, "accessibility-output");
       aListener();
     });
   },
 
   _waitForExplicitFinish: false,
 
   waitForExplicitFinish: function AccessFuTest_waitForExplicitFinish() {
     this._waitForExplicitFinish = true;
@@ -144,34 +144,34 @@ var AccessFuTest = {
     AccessFu.attach(getMainChromeWindow(window));
 
     AccessFu.readyCallback = function readyCallback() {
       // Enable logging to the console service.
       Logger.test = true;
       Logger.logLevel = Logger.DEBUG;
     };
 
-    var prefs = [['accessibility.accessfu.notify_output', 1]];
+    var prefs = [["accessibility.accessfu.notify_output", 1]];
     prefs.push.apply(prefs, aAdditionalPrefs);
 
     this.originalDwellThreshold = GestureSettings.dwellThreshold;
     this.originalSwipeMaxDuration = GestureSettings.swipeMaxDuration;
     this.originalMaxGestureResolveTimeout =
       GestureSettings.maxGestureResolveTimeout;
     // https://bugzilla.mozilla.org/show_bug.cgi?id=1001945 - sometimes
     // SimpleTest.executeSoon timeout is bigger than the timer settings in
     // GestureSettings that causes intermittents.
     this.dwellThreshold = GestureSettings.dwellThreshold =
       GestureSettings.dwellThreshold * 10;
     this.swipeMaxDuration = GestureSettings.swipeMaxDuration =
       GestureSettings.swipeMaxDuration * 10;
     this.maxGestureResolveTimeout = GestureSettings.maxGestureResolveTimeout =
       GestureSettings.maxGestureResolveTimeout * 10;
 
-    SpecialPowers.pushPrefEnv({ 'set': prefs }, function () {
+    SpecialPowers.pushPrefEnv({ "set": prefs }, function () {
       if (AccessFuTest._waitForExplicitFinish) {
         // Run all test functions asynchronously.
         AccessFuTest.nextTest();
       } else {
         // Run all test functions synchronously.
         gTestFuncs.forEach(testFunc => testFunc());
         AccessFuTest.finish();
       }
@@ -192,17 +192,17 @@ AccessFuContentTest.prototype = {
     Logger.logLevel = Logger.DEBUG;
     this.finishedCallback = aFinishedCallback;
     var self = this;
 
     // Get top content message manager, and set it up.
     this.mms = [Utils.getMessageManager(currentBrowser())];
     this.setupMessageManager(this.mms[0], function () {
       // Get child message managers and set them up
-      var frames = currentTabDocument().querySelectorAll('iframe');
+      var frames = currentTabDocument().querySelectorAll("iframe");
       if (frames.length === 0) {
         self.pump();
         return;
       }
 
       var toSetup = 0;
       for (var i = 0; i < frames.length; i++ ) {
         var mm = Utils.getMessageManager(frames[i]);
@@ -218,76 +218,76 @@ AccessFuContentTest.prototype = {
         }
       }
     });
   },
 
   finish: function() {
     Logger.logLevel = Logger.INFO;
     for (var mm of this.mms) {
-        mm.sendAsyncMessage('AccessFu:Stop');
-        mm.removeMessageListener('AccessFu:Present', this);
-        mm.removeMessageListener('AccessFu:Input', this);
-        mm.removeMessageListener('AccessFu:CursorCleared', this);
-        mm.removeMessageListener('AccessFu:Focused', this);
-        mm.removeMessageListener('AccessFu:AriaHidden', this);
-        mm.removeMessageListener('AccessFu:Ready', this);
-        mm.removeMessageListener('AccessFu:ContentStarted', this);
+        mm.sendAsyncMessage("AccessFu:Stop");
+        mm.removeMessageListener("AccessFu:Present", this);
+        mm.removeMessageListener("AccessFu:Input", this);
+        mm.removeMessageListener("AccessFu:CursorCleared", this);
+        mm.removeMessageListener("AccessFu:Focused", this);
+        mm.removeMessageListener("AccessFu:AriaHidden", this);
+        mm.removeMessageListener("AccessFu:Ready", this);
+        mm.removeMessageListener("AccessFu:ContentStarted", this);
       }
     if (this.finishedCallback) {
       this.finishedCallback();
     }
   },
 
   setupMessageManager:  function (aMessageManager, aCallback) {
     function contentScript() {
-      addMessageListener('AccessFuTest:Focus', function (aMessage) {
+      addMessageListener("AccessFuTest:Focus", function (aMessage) {
         var elem = content.document.querySelector(aMessage.json.selector);
         if (elem) {
           if (aMessage.json.blur) {
             elem.blur();
           } else {
             elem.focus();
           }
         }
       });
     }
 
-    aMessageManager.addMessageListener('AccessFu:Present', this);
-    aMessageManager.addMessageListener('AccessFu:Input', this);
-    aMessageManager.addMessageListener('AccessFu:CursorCleared', this);
-    aMessageManager.addMessageListener('AccessFu:Focused', this);
-    aMessageManager.addMessageListener('AccessFu:AriaHidden', this);
-    aMessageManager.addMessageListener('AccessFu:Ready', function () {
-      aMessageManager.addMessageListener('AccessFu:ContentStarted', aCallback);
-      aMessageManager.sendAsyncMessage('AccessFu:Start',
-        { buildApp: 'browser',
+    aMessageManager.addMessageListener("AccessFu:Present", this);
+    aMessageManager.addMessageListener("AccessFu:Input", this);
+    aMessageManager.addMessageListener("AccessFu:CursorCleared", this);
+    aMessageManager.addMessageListener("AccessFu:Focused", this);
+    aMessageManager.addMessageListener("AccessFu:AriaHidden", this);
+    aMessageManager.addMessageListener("AccessFu:Ready", function () {
+      aMessageManager.addMessageListener("AccessFu:ContentStarted", aCallback);
+      aMessageManager.sendAsyncMessage("AccessFu:Start",
+        { buildApp: "browser",
           androidSdkVersion: Utils.AndroidSdkVersion,
-          logLevel: 'DEBUG',
+          logLevel: "DEBUG",
           inTest: true });
     });
 
     aMessageManager.loadFrameScript(
-      'chrome://global/content/accessibility/content-script.js', false);
+      "chrome://global/content/accessibility/content-script.js", false);
     aMessageManager.loadFrameScript(
-      'data:,(' + contentScript.toString() + ')();', false);
+      "data:,(" + contentScript.toString() + ")();", false);
   },
 
   pump: function() {
     this.expected.shift();
     if (this.expected.length) {
       return;
     }
 
     var currentPair = this.queue.shift();
 
     if (currentPair) {
       this.actionNum++;
       this.currentAction = currentPair[0];
-      if (typeof this.currentAction === 'function') {
+      if (typeof this.currentAction === "function") {
         this.currentAction(this.mms[0]);
       } else if (this.currentAction) {
         this.mms[0].sendAsyncMessage(this.currentAction.name,
          this.currentAction.json);
       }
 
       this.expected = currentPair.slice(1, currentPair.length);
 
@@ -301,268 +301,268 @@ AccessFuContentTest.prototype = {
 
   receiveMessage: function(aMessage) {
     var expected = this.expected[0];
 
     if (!expected) {
       return;
     }
 
-    var actionsString = typeof this.currentAction === 'function' ?
-      this.currentAction.name + '()' : JSON.stringify(this.currentAction);
+    var actionsString = typeof this.currentAction === "function" ?
+      this.currentAction.name + "()" : JSON.stringify(this.currentAction);
 
-    if (typeof expected === 'string') {
-      ok(true, 'Got ' + expected + ' after ' + actionsString);
+    if (typeof expected === "string") {
+      ok(true, "Got " + expected + " after " + actionsString);
       this.pump();
     } else if (expected.ignore && !expected.ignore(aMessage)) {
-      expected.is(aMessage.json, 'after ' + actionsString +
-        ' (' + this.actionNum + ')');
+      expected.is(aMessage.json, "after " + actionsString +
+        " (" + this.actionNum + ")");
       expected.is_correct_focus();
       this.pump();
     }
   }
 };
 
 // Common content messages
 
 var ContentMessages = {
   simpleMoveFirst: {
-    name: 'AccessFu:MoveCursor',
+    name: "AccessFu:MoveCursor",
     json: {
-      action: 'moveFirst',
-      rule: 'Simple',
-      inputType: 'gesture',
-      origin: 'top'
+      action: "moveFirst",
+      rule: "Simple",
+      inputType: "gesture",
+      origin: "top"
     }
   },
 
   simpleMoveLast: {
-    name: 'AccessFu:MoveCursor',
+    name: "AccessFu:MoveCursor",
     json: {
-      action: 'moveLast',
-      rule: 'Simple',
-      inputType: 'gesture',
-      origin: 'top'
+      action: "moveLast",
+      rule: "Simple",
+      inputType: "gesture",
+      origin: "top"
     }
   },
 
   simpleMoveNext: {
-    name: 'AccessFu:MoveCursor',
+    name: "AccessFu:MoveCursor",
     json: {
-      action: 'moveNext',
-      rule: 'Simple',
-      inputType: 'gesture',
-      origin: 'top'
+      action: "moveNext",
+      rule: "Simple",
+      inputType: "gesture",
+      origin: "top"
     }
   },
 
   simpleMovePrevious: {
-    name: 'AccessFu:MoveCursor',
+    name: "AccessFu:MoveCursor",
     json: {
-      action: 'movePrevious',
-      rule: 'Simple',
-      inputType: 'gesture',
-      origin: 'top'
+      action: "movePrevious",
+      rule: "Simple",
+      inputType: "gesture",
+      origin: "top"
     }
   },
 
   clearCursor: {
-    name: 'AccessFu:ClearCursor',
+    name: "AccessFu:ClearCursor",
     json: {
-      origin: 'top'
+      origin: "top"
     }
   },
 
   moveOrAdjustUp: function moveOrAdjustUp(aRule) {
     return {
-      name: 'AccessFu:MoveCursor',
+      name: "AccessFu:MoveCursor",
       json: {
-        origin: 'top',
-        action: 'movePrevious',
-        inputType: 'gesture',
-        rule: (aRule || 'Simple'),
+        origin: "top",
+        action: "movePrevious",
+        inputType: "gesture",
+        rule: (aRule || "Simple"),
         adjustRange: true
       }
     }
   },
 
   moveOrAdjustDown: function moveOrAdjustUp(aRule) {
     return {
-      name: 'AccessFu:MoveCursor',
+      name: "AccessFu:MoveCursor",
       json: {
-        origin: 'top',
-        action: 'moveNext',
-        inputType: 'gesture',
-        rule: (aRule || 'Simple'),
+        origin: "top",
+        action: "moveNext",
+        inputType: "gesture",
+        rule: (aRule || "Simple"),
         adjustRange: true
       }
     }
   },
 
   androidScrollForward: function adjustUp() {
     return {
-      name: 'AccessFu:AndroidScroll',
-      json: { origin: 'top', direction: 'forward' }
+      name: "AccessFu:AndroidScroll",
+      json: { origin: "top", direction: "forward" }
     };
   },
 
   androidScrollBackward: function adjustDown() {
     return {
-      name: 'AccessFu:AndroidScroll',
-      json: { origin: 'top', direction: 'backward' }
+      name: "AccessFu:AndroidScroll",
+      json: { origin: "top", direction: "backward" }
     };
   },
 
   focusSelector: function focusSelector(aSelector, aBlur) {
     return {
-      name: 'AccessFuTest:Focus',
+      name: "AccessFuTest:Focus",
       json: {
         selector: aSelector,
         blur: aBlur
       }
     };
   },
 
   activateCurrent: function activateCurrent(aOffset) {
     return {
-      name: 'AccessFu:Activate',
+      name: "AccessFu:Activate",
       json: {
-        origin: 'top',
+        origin: "top",
         offset: aOffset
       }
     };
   },
 
   moveNextBy: function moveNextBy(aGranularity) {
     return {
-      name: 'AccessFu:MoveByGranularity',
+      name: "AccessFu:MoveByGranularity",
       json: {
-        direction: 'Next',
+        direction: "Next",
         granularity: this._granularityMap[aGranularity]
       }
     };
   },
 
   movePreviousBy: function movePreviousBy(aGranularity) {
     return {
-      name: 'AccessFu:MoveByGranularity',
+      name: "AccessFu:MoveByGranularity",
       json: {
-        direction: 'Previous',
+        direction: "Previous",
         granularity: this._granularityMap[aGranularity]
       }
     };
   },
 
   moveCaretNextBy: function moveCaretNextBy(aGranularity) {
     return {
-      name: 'AccessFu:MoveCaret',
+      name: "AccessFu:MoveCaret",
       json: {
-        direction: 'Next',
+        direction: "Next",
         granularity: this._granularityMap[aGranularity]
       }
     };
   },
 
   moveCaretPreviousBy: function moveCaretPreviousBy(aGranularity) {
     return {
-      name: 'AccessFu:MoveCaret',
+      name: "AccessFu:MoveCaret",
       json: {
-        direction: 'Previous',
+        direction: "Previous",
         granularity: this._granularityMap[aGranularity]
       }
     };
   },
 
   _granularityMap: {
-    'character': 1, // MOVEMENT_GRANULARITY_CHARACTER
-    'word': 2, // MOVEMENT_GRANULARITY_WORD
-    'paragraph': 8 // MOVEMENT_GRANULARITY_PARAGRAPH
+    "character": 1, // MOVEMENT_GRANULARITY_CHARACTER
+    "word": 2, // MOVEMENT_GRANULARITY_WORD
+    "paragraph": 8 // MOVEMENT_GRANULARITY_PARAGRAPH
   }
 };
 
 function ExpectedMessage (aName, aOptions) {
   this.name = aName;
   this.options = aOptions || {};
   this.json = {};
 }
 
 ExpectedMessage.prototype.lazyCompare = function(aReceived, aExpected, aInfo) {
   if (aExpected && !aReceived) {
-    return [false, 'Expected something but got nothing -- ' + aInfo];
+    return [false, "Expected something but got nothing -- " + aInfo];
   }
 
   var matches = true;
   var delta = [];
   for (var attr in aExpected) {
     var expected = aExpected[attr];
     var received = aReceived[attr];
-    if (typeof expected === 'object') {
+    if (typeof expected === "object") {
       var [childMatches, childDelta] = this.lazyCompare(received, expected);
       if (!childMatches) {
-        delta.push(attr + ' [ ' + childDelta + ' ]');
+        delta.push(attr + " [ " + childDelta + " ]");
         matches = false;
       }
     } else {
       if (received !== expected) {
         delta.push(
-          attr + ' [ expected ' + JSON.stringify(expected) +
-          ' got ' + JSON.stringify(received) + ' ]');
+          attr + " [ expected " + JSON.stringify(expected) +
+          " got " + JSON.stringify(received) + " ]");
         matches = false;
       }
     }
   }
 
-  var msg = delta.length ? delta.join(' ') : 'Structures lazily match';
-  return [matches, msg + ' -- ' + aInfo];
+  var msg = delta.length ? delta.join(" ") : "Structures lazily match";
+  return [matches, msg + " -- " + aInfo];
 };
 
 ExpectedMessage.prototype.is = function(aReceived, aInfo) {
-  var checkFunc = this.options.todo ? 'todo' : 'ok';
+  var checkFunc = this.options.todo ? "todo" : "ok";
   SimpleTest[checkFunc].apply(
     SimpleTest, this.lazyCompare(aReceived, this.json, aInfo));
 };
 
 ExpectedMessage.prototype.is_correct_focus = function(aInfo) {
   if (!this.options.focused) {
     return;
   }
 
-  var checkFunc = this.options.focused_todo ? 'todo_is' : 'is';
+  var checkFunc = this.options.focused_todo ? "todo_is" : "is";
   var doc = currentTabDocument();
   SimpleTest[checkFunc].apply(SimpleTest,
     [ doc.activeElement, doc.querySelector(this.options.focused),
-      'Correct element is focused: ' + this.options.focused + ' -- ' + aInfo ]);
+      "Correct element is focused: " + this.options.focused + " -- " + aInfo ]);
 };
 
 ExpectedMessage.prototype.ignore = function(aMessage) {
   return aMessage.name !== this.name;
 };
 
 function ExpectedPresent(aB2g, aAndroid, aOptions) {
-  ExpectedMessage.call(this, 'AccessFu:Present', aOptions);
+  ExpectedMessage.call(this, "AccessFu:Present", aOptions);
   if (aB2g) {
     this.json.b2g = aB2g;
   }
 
   if (aAndroid) {
     this.json.android = aAndroid;
   }
 }
 
 ExpectedPresent.prototype = Object.create(ExpectedMessage.prototype);
 
 ExpectedPresent.prototype.is = function(aReceived, aInfo) {
   var received = this.extract_presenters(aReceived);
 
-  for (var presenter of ['b2g', 'android']) {
-    if (!this.options['no_' + presenter]) {
-      var todo = this.options.todo || this.options[presenter + '_todo']
-      SimpleTest[todo ? 'todo' : 'ok'].apply(
+  for (var presenter of ["b2g", "android"]) {
+    if (!this.options["no_" + presenter]) {
+      var todo = this.options.todo || this.options[presenter + "_todo"]
+      SimpleTest[todo ? "todo" : "ok"].apply(
         SimpleTest, this.lazyCompare(received[presenter],
-          this.json[presenter], aInfo + ' (' + presenter + ')'));
+          this.json[presenter], aInfo + " (" + presenter + ")"));
     }
   }
 };
 
 ExpectedPresent.prototype.extract_presenters = function(aReceived) {
   var received = { count: 0 };
   for (var presenter of aReceived) {
     if (presenter) {
@@ -576,113 +576,113 @@ ExpectedPresent.prototype.extract_presen
 
 ExpectedPresent.prototype.ignore = function(aMessage) {
   if (ExpectedMessage.prototype.ignore.call(this, aMessage)) {
     return true;
   }
 
   var received = this.extract_presenters(aMessage.json);
   return received.count === 0 ||
-    (received.visual && received.visual.eventType === 'viewport-change') ||
+    (received.visual && received.visual.eventType === "viewport-change") ||
     (received.android &&
       received.android[0].eventType === AndroidEvent.VIEW_SCROLLED);
 };
 
 function ExpectedCursorChange(aSpeech, aOptions) {
   ExpectedPresent.call(this, {
-    eventType: 'vc-change',
+    eventType: "vc-change",
     data: aSpeech
   }, [{
     eventType: 0x8000, // VIEW_ACCESSIBILITY_FOCUSED
   }], aOptions);
 }
 
 ExpectedCursorChange.prototype = Object.create(ExpectedPresent.prototype);
 
 function ExpectedCursorTextChange(aSpeech, aStartOffset, aEndOffset, aOptions) {
   ExpectedPresent.call(this, {
-    eventType: 'vc-change',
+    eventType: "vc-change",
     data: aSpeech
   }, [{
     eventType: AndroidEvent.VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY,
     fromIndex: aStartOffset,
     toIndex: aEndOffset
   }], aOptions);
 
   // bug 980509
   this.options.b2g_todo = true;
 }
 
 ExpectedCursorTextChange.prototype =
   Object.create(ExpectedCursorChange.prototype);
 
 function ExpectedClickAction(aOptions) {
   ExpectedPresent.call(this, {
-    eventType: 'action',
-    data: [{ string: 'clickAction' }]
+    eventType: "action",
+    data: [{ string: "clickAction" }]
   }, [{
     eventType: AndroidEvent.VIEW_CLICKED
   }], aOptions);
 }
 
 ExpectedClickAction.prototype = Object.create(ExpectedPresent.prototype);
 
 function ExpectedCheckAction(aChecked, aOptions) {
   ExpectedPresent.call(this, {
-    eventType: 'action',
-    data: [{ string: aChecked ? 'checkAction' : 'uncheckAction' }]
+    eventType: "action",
+    data: [{ string: aChecked ? "checkAction" : "uncheckAction" }]
   }, [{
     eventType: AndroidEvent.VIEW_CLICKED,
     checked: aChecked
   }], aOptions);
 }
 
 ExpectedCheckAction.prototype = Object.create(ExpectedPresent.prototype);
 
 function ExpectedSwitchAction(aSwitched, aOptions) {
   ExpectedPresent.call(this, {
-    eventType: 'action',
-    data: [{ string: aSwitched ? 'onAction' : 'offAction' }]
+    eventType: "action",
+    data: [{ string: aSwitched ? "onAction" : "offAction" }]
   }, [{
     eventType: AndroidEvent.VIEW_CLICKED,
     checked: aSwitched
   }], aOptions);
 }
 
 ExpectedSwitchAction.prototype = Object.create(ExpectedPresent.prototype);
 
 function ExpectedNameChange(aName, aOptions) {
   ExpectedPresent.call(this, {
-    eventType: 'name-change',
+    eventType: "name-change",
     data: aName
   }, null, aOptions);
 }
 
 ExpectedNameChange.prototype = Object.create(ExpectedPresent.prototype);
 
 function ExpectedValueChange(aValue, aOptions) {
   ExpectedPresent.call(this, {
-    eventType: 'value-change',
+    eventType: "value-change",
     data: aValue
   }, null, aOptions);
 }
 
 ExpectedValueChange.prototype = Object.create(ExpectedPresent.prototype);
 
 function ExpectedTextChanged(aValue, aOptions) {
   ExpectedPresent.call(this, {
-    eventType: 'text-change',
+    eventType: "text-change",
     data: aValue
   }, null, aOptions);
 }
 
 ExpectedTextChanged.prototype = Object.create(ExpectedPresent.prototype);
 
 function ExpectedEditState(aEditState, aOptions) {
-  ExpectedMessage.call(this, 'AccessFu:Input', aOptions);
+  ExpectedMessage.call(this, "AccessFu:Input", aOptions);
   this.json = aEditState;
 }
 
 ExpectedEditState.prototype = Object.create(ExpectedMessage.prototype);
 
 function ExpectedTextSelectionChanged(aStart, aEnd, aOptions) {
   ExpectedPresent.call(this, null, [{
     eventType: AndroidEvent.VIEW_TEXT_SELECTION_CHANGED,
@@ -711,17 +711,17 @@ function ExpectedAnnouncement(aAnnouncem
     text: [ aAnnouncement],
     addedCount: aAnnouncement.length
   }], aOptions);
 }
 
 ExpectedAnnouncement.prototype = Object.create(ExpectedPresent.prototype);
 
 function ExpectedNoMove(aOptions) {
-  ExpectedPresent.call(this, {eventType: 'no-move' }, null, aOptions);
+  ExpectedPresent.call(this, {eventType: "no-move" }, null, aOptions);
 }
 
 ExpectedNoMove.prototype = Object.create(ExpectedPresent.prototype);
 
 var AndroidEvent = {
   VIEW_CLICKED: 0x01,
   VIEW_LONG_CLICKED: 0x02,
   VIEW_SELECTED: 0x04,
--- a/accessible/tests/mochitest/jsat/output.js
+++ b/accessible/tests/mochitest/jsat/output.js
@@ -1,12 +1,12 @@
 var Cu = Components.utils;
 const PREF_UTTERANCE_ORDER = "accessibility.accessfu.utterance";
 
-Cu.import('resource://gre/modules/accessibility/Utils.jsm');
+Cu.import("resource://gre/modules/accessibility/Utils.jsm");
 Cu.import("resource://gre/modules/accessibility/OutputGenerator.jsm", this);
 
 /**
  * Test context output generation.
  *
  * @param expected {Array} expected output.
  * @param aAccOrElmOrID    identifier to get an accessible to test.
  * @param aOldAccOrElmOrID optional identifier to get an accessible relative to
@@ -15,17 +15,17 @@ Cu.import("resource://gre/modules/access
  *                         output
  *
  * Note: if |aOldAccOrElmOrID| is not provided, the |aAccOrElmOrID| must be
  * scoped to the "root" element in markup.
  */
 function testContextOutput(expected, aAccOrElmOrID, aOldAccOrElmOrID, aGenerator) {
   var accessible = getAccessible(aAccOrElmOrID);
   var oldAccessible = aOldAccOrElmOrID !== null ?
-    getAccessible(aOldAccOrElmOrID || 'root') : null;
+    getAccessible(aOldAccOrElmOrID || "root") : null;
   var context = new PivotContext(accessible, oldAccessible);
   var output = aGenerator.genForContext(context);
 
   // Create a version of the output that has null members where we have
   // null members in the expected output. Those are indexes that are not testable
   // because of the changing nature of the test (different window names), or strings
   // that are inaccessible to us, like the title of parent documents.
   var masked_output = [];
@@ -99,17 +99,17 @@ function testOutput(expected, aAccOrElmO
     return;
   }
   testObjectOutput(aAccOrElmOrID, generator);
 }
 
 function testHints(expected, aAccOrElmOrID, aOldAccOrElmOrID) {
   var accessible = getAccessible(aAccOrElmOrID);
   var oldAccessible = aOldAccOrElmOrID !== null ?
-  getAccessible(aOldAccOrElmOrID || 'root') : null;
+  getAccessible(aOldAccOrElmOrID || "root") : null;
   var context = new PivotContext(accessible, oldAccessible);
   var hints = context.interactionHints;
 
   isDeeply(hints, expected,
            "Context hitns are correct for " + aAccOrElmOrID +
            " (hints: " + JSON.stringify(hints) + ") ==" +
            " (expected: " + JSON.stringify(expected) + ")");
 }
--- a/accessible/tests/mochitest/jsat/test_alive.html
+++ b/accessible/tests/mochitest/jsat/test_alive.html
@@ -13,17 +13,17 @@
           src="./jsatcommon.js"></script>
   <script type="application/javascript">
 
     function prefStart() {
       AccessFuTest.once_log("AccessFu:Enabled", () =>
         ok(AccessFu._enabled, "AccessFu was enabled again."));
       AccessFuTest.once_log("EventManager.start", AccessFuTest.nextTest);
       // Start AccessFu via pref.
-      SpecialPowers.pushPrefEnv({"set": [['accessibility.accessfu.activate', 1]]});
+      SpecialPowers.pushPrefEnv({"set": [["accessibility.accessfu.activate", 1]]});
     }
 
     // Listen for 'EventManager.stop' and enable AccessFu again.
     function settingsStart() {
       isnot(AccessFu._enabled, true, "AccessFu was disabled.");
       // XXX: Bug 978076 - test start with SettingsManager.
       //navigator.mozSettings.createLock().set(
       //  {'accessibility.screenreader': false});
@@ -49,17 +49,17 @@
 
     // Listen for initial 'EventManager.start' and disable AccessFu.
     function prefStop() {
       ok(AccessFu._enabled, "AccessFu was started via preference.");
       AccessFuTest.once_log("AccessFu:Disabled", () =>
         isnot(AccessFu._enabled, true, "AccessFu was disabled."));
       AccessFuTest.once_log("EventManager.stop", AccessFuTest.nextTest);
 
-      SpecialPowers.pushPrefEnv({"set": [['accessibility.accessfu.activate', 0]]});
+      SpecialPowers.pushPrefEnv({"set": [["accessibility.accessfu.activate", 0]]});
     }
 
     function doTest() {
       AccessFuTest.addFunc(prefStart);
       AccessFuTest.addFunc(prefStop);
       AccessFuTest.addFunc(settingsStart);
       AccessFuTest.addFunc(settingsStop);
       AccessFuTest.waitForExplicitFinish();
--- a/accessible/tests/mochitest/jsat/test_content_integration.html
+++ b/accessible/tests/mochitest/jsat/test_content_integration.html
@@ -18,320 +18,320 @@
   <script type="application/javascript" src="../role.js"></script>
   <script type="application/javascript" src="../states.js"></script>
   <script type="application/javascript" src="../layout.js"></script>
   <script type="application/javascript" src="jsatcommon.js"></script>
 
   <script type="application/javascript">
     function doTest() {
       var doc = currentTabDocument();
-      var iframe = doc.createElement('iframe');
-      iframe.id = 'iframe';
+      var iframe = doc.createElement("iframe");
+      iframe.id = "iframe";
       iframe.mozbrowser = true;
-      iframe.addEventListener('mozbrowserloadend', function () {
+      iframe.addEventListener("mozbrowserloadend", function () {
       var contentTest = new AccessFuContentTest(
         [
           // Simple traversal forward
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(
-            ['Traversal Rule test document', 'Phone status bar'],
-            { focused: 'body' })],
+            ["Traversal Rule test document", "Phone status bar"],
+            { focused: "body" })],
           [ContentMessages.simpleMovePrevious, new ExpectedNoMove()],
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
           [ContentMessages.simpleMoveNext, new ExpectedCursorChange(
-            ['such app', 'wow', {'string': 'headingLevel', 'args': [1]}],
-            { focused: 'iframe' })],
+            ["such app", "wow", {"string": "headingLevel", "args": [1]}],
+            { focused: "iframe" })],
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['many option', {'string': 'stateNotChecked'},
-            {'string': 'checkbutton'}, {'string': 'listStart'},
-            {'string': 'list'}, {'string': 'listItemsCount', 'count': 1}])],
+           new ExpectedCursorChange(["many option", {"string": "stateNotChecked"},
+            {"string": "checkbutton"}, {"string": "listStart"},
+            {"string": "list"}, {"string": "listItemsCount", "count": 1}])],
 
           // check checkbox
           [ContentMessages.activateCurrent(),
            new ExpectedClickAction({ no_android: true }),
            new ExpectedCheckAction(true)],
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['much range', {'string': 'label'}])],
+           new ExpectedCursorChange(["much range", {"string": "label"}])],
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['much range', '5', {'string': 'slider'}])],
-          [ContentMessages.moveOrAdjustUp(), new ExpectedValueChange('6')],
+           new ExpectedCursorChange(["much range", "5", {"string": "slider"}])],
+          [ContentMessages.moveOrAdjustUp(), new ExpectedValueChange("6")],
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Home', {'string': 'pushbutton'}])],
+           new ExpectedCursorChange(["Home", {"string": "pushbutton"}])],
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['apple', {'string': 'pushbutton'}])],
+           new ExpectedCursorChange(["apple", {"string": "pushbutton"}])],
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Light', {"string": "stateOff"}, {'string': 'switch'}])],
+           new ExpectedCursorChange(["Light", {"string": "stateOff"}, {"string": "switch"}])],
           // switch on
           [ContentMessages.activateCurrent(),
            new ExpectedClickAction({ no_android: true }),
            new ExpectedSwitchAction(true)],
            [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['slider', '0', {'string': 'slider'}])],
+           new ExpectedCursorChange(["slider", "0", {"string": "slider"}])],
 
           // Simple traversal backward
           [ContentMessages.simpleMovePrevious,
-           new ExpectedCursorChange(['Light', {"string": "stateOn"}, {'string': 'switch'}])],
+           new ExpectedCursorChange(["Light", {"string": "stateOn"}, {"string": "switch"}])],
           // switch off
           [ContentMessages.activateCurrent(),
            new ExpectedClickAction({ no_android: true }),
            new ExpectedSwitchAction(false)],
           [ContentMessages.simpleMovePrevious,
-           new ExpectedCursorChange(['apple', {'string': 'pushbutton'}])],
+           new ExpectedCursorChange(["apple", {"string": "pushbutton"}])],
           [ContentMessages.simpleMovePrevious,
-           new ExpectedCursorChange(['Home', {'string': 'pushbutton'}])],
+           new ExpectedCursorChange(["Home", {"string": "pushbutton"}])],
           [ContentMessages.simpleMovePrevious,
-           new ExpectedCursorChange(['such app', 'much range', '6', {'string': 'slider'}])],
-          [ContentMessages.moveOrAdjustDown(), new ExpectedValueChange('5')],
-          [ContentMessages.androidScrollForward(), new ExpectedValueChange('6')],
-          [ContentMessages.androidScrollBackward(), new ExpectedValueChange('5')],
+           new ExpectedCursorChange(["such app", "much range", "6", {"string": "slider"}])],
+          [ContentMessages.moveOrAdjustDown(), new ExpectedValueChange("5")],
+          [ContentMessages.androidScrollForward(), new ExpectedValueChange("6")],
+          [ContentMessages.androidScrollBackward(), new ExpectedValueChange("5")],
           [ContentMessages.simpleMovePrevious,
-           new ExpectedCursorChange(['much range', {'string': 'label'}])],
+           new ExpectedCursorChange(["much range", {"string": "label"}])],
           [ContentMessages.simpleMovePrevious,
-           new ExpectedCursorChange(['many option', {'string': 'stateChecked'},
-            {'string': 'checkbutton'}, {'string': 'listStart'},
-            {'string': 'list'}, {'string': 'listItemsCount', 'count': 1}])],
+           new ExpectedCursorChange(["many option", {"string": "stateChecked"},
+            {"string": "checkbutton"}, {"string": "listStart"},
+            {"string": "list"}, {"string": "listItemsCount", "count": 1}])],
           // uncheck checkbox
           [ContentMessages.activateCurrent(),
            new ExpectedClickAction({ no_android: true }),
            new ExpectedCheckAction(false)],
           [ContentMessages.simpleMovePrevious,
-           new ExpectedCursorChange(['wow', {'string': 'headingLevel', 'args': [1]}])],
+           new ExpectedCursorChange(["wow", {"string": "headingLevel", "args": [1]}])],
           [ContentMessages.simpleMovePrevious,
            new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
           [ContentMessages.simpleMovePrevious,
-           new ExpectedCursorChange(['Phone status bar'])],
+           new ExpectedCursorChange(["Phone status bar"])],
 
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
           // Moving to the absolute last item from an embedded document
           // fails. Bug 972035.
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(
-            ['such app', 'wow', {'string': 'headingLevel', 'args': [1]}])],
+            ["such app", "wow", {"string": "headingLevel", "args": [1]}])],
           // Move from an inner frame to the last element in the parent doc
           [ContentMessages.simpleMoveLast,
             new ExpectedCursorChange(
-              ['slider', '0', {'string': 'slider'}], { b2g_todo: true })],
+              ["slider", "0", {"string": "slider"}], { b2g_todo: true })],
 
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Traversal Rule test document', 'Phone status bar'])],
-          [ContentMessages.moveOrAdjustDown('FormElement'),
-           new ExpectedCursorChange(['Back', {"string": "pushbutton"}])],
-          [ContentMessages.moveOrAdjustDown('FormElement'),
-           new ExpectedCursorChange(['such app', 'many option', {'string': 'stateNotChecked'},
-            {'string': 'checkbutton'}, {'string': 'listStart'},
-            {'string': 'list'}, {'string': 'listItemsCount', 'count': 1}])],
-          [ContentMessages.moveOrAdjustDown('FormElement'),
-           new ExpectedCursorChange(['much range', '5', {'string': 'slider'}])],
+           new ExpectedCursorChange(["Traversal Rule test document", "Phone status bar"])],
+          [ContentMessages.moveOrAdjustDown("FormElement"),
+           new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
+          [ContentMessages.moveOrAdjustDown("FormElement"),
+           new ExpectedCursorChange(["such app", "many option", {"string": "stateNotChecked"},
+            {"string": "checkbutton"}, {"string": "listStart"},
+            {"string": "list"}, {"string": "listItemsCount", "count": 1}])],
+          [ContentMessages.moveOrAdjustDown("FormElement"),
+           new ExpectedCursorChange(["much range", "5", {"string": "slider"}])],
           // Calling AdjustOrMove should adjust the range.
-          [ContentMessages.moveOrAdjustDown('FormElement'),
-           new ExpectedValueChange('4')],
-          [ContentMessages.moveOrAdjustUp('FormElement'),
-           new ExpectedValueChange('5')],
+          [ContentMessages.moveOrAdjustDown("FormElement"),
+           new ExpectedValueChange("4")],
+          [ContentMessages.moveOrAdjustUp("FormElement"),
+           new ExpectedValueChange("5")],
           [ContentMessages.simpleMovePrevious,
-           new ExpectedCursorChange(['much range', {'string': 'label'}])],
-          [ContentMessages.moveOrAdjustUp('FormElement'),
-           new ExpectedCursorChange(['many option', {'string': 'stateNotChecked'},
-            {'string': 'checkbutton'}, {'string': 'listStart'},
-            {'string': 'list'}, {'string': 'listItemsCount', 'count': 1}])],
-          [ContentMessages.moveOrAdjustUp('FormElement'),
-           new ExpectedCursorChange(['Back', {"string": "pushbutton"}])],
+           new ExpectedCursorChange(["much range", {"string": "label"}])],
+          [ContentMessages.moveOrAdjustUp("FormElement"),
+           new ExpectedCursorChange(["many option", {"string": "stateNotChecked"},
+            {"string": "checkbutton"}, {"string": "listStart"},
+            {"string": "list"}, {"string": "listItemsCount", "count": 1}])],
+          [ContentMessages.moveOrAdjustUp("FormElement"),
+           new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
 
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           // Moving to the absolute first item from an embedded document
           // fails. Bug 972035.
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Traversal Rule test document', 'Phone status bar'])],
+           new ExpectedCursorChange(["Traversal Rule test document", "Phone status bar"])],
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['such app', 'wow', {'string': 'headingLevel', 'args': [1]}])],
+           new ExpectedCursorChange(["such app", "wow", {"string": "headingLevel", "args": [1]}])],
           [ContentMessages.simpleMoveNext, new ExpectedCursorChange(
-            ['many option', {'string': 'stateNotChecked'},
-             {'string': 'checkbutton'}, {'string': 'listStart'},
-             {'string': 'list'}, {'string': 'listItemsCount', 'count': 1}])],
+            ["many option", {"string": "stateNotChecked"},
+             {"string": "checkbutton"}, {"string": "listStart"},
+             {"string": "list"}, {"string": "listItemsCount", "count": 1}])],
           [ContentMessages.simpleMoveFirst,
-            new ExpectedCursorChange(['Phone status bar'], { b2g_todo: true })],
+            new ExpectedCursorChange(["Phone status bar"], { b2g_todo: true })],
 
           // Reset cursors
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           // Current virtual cursor's position's name changes
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Traversal Rule test document', 'Phone status bar'])],
-          [ContentMessages.focusSelector('button#fruit', false),
-           new ExpectedCursorChange(['apple', {'string': 'pushbutton'}])],
-          [doc.defaultView.renameFruit, new ExpectedNameChange('banana')],
+           new ExpectedCursorChange(["Traversal Rule test document", "Phone status bar"])],
+          [ContentMessages.focusSelector("button#fruit", false),
+           new ExpectedCursorChange(["apple", {"string": "pushbutton"}])],
+          [doc.defaultView.renameFruit, new ExpectedNameChange("banana")],
 
           // Name and value changes inside a live-region (no cursor present)
           [doc.defaultView.renameSlider,
-            new ExpectedNameChange('mover')],
+            new ExpectedNameChange("mover")],
           [doc.defaultView.changeSliderValue,
-            new ExpectedValueChange('medium')],
+            new ExpectedValueChange("medium")],
 
           // Blur button and reset cursor
-          [ContentMessages.focusSelector('button#fruit', true), null],
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.focusSelector("button#fruit", true), null],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           // Move cursor with focus in outside document
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Traversal Rule test document', 'Phone status bar'])],
-          [ContentMessages.focusSelector('button#home', false),
-           new ExpectedCursorChange(['Home', {'string': 'pushbutton'}])],
+           new ExpectedCursorChange(["Traversal Rule test document", "Phone status bar"])],
+          [ContentMessages.focusSelector("button#home", false),
+           new ExpectedCursorChange(["Home", {"string": "pushbutton"}])],
 
           // Blur button and reset cursor
-          [ContentMessages.focusSelector('button#home', true), null],
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.focusSelector("button#home", true), null],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           // Set focus on element outside of embedded frame while
           // cursor is in frame
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Traversal Rule test document', 'Phone status bar'])],
+           new ExpectedCursorChange(["Traversal Rule test document", "Phone status bar"])],
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['such app', 'wow', {'string': 'headingLevel', 'args': [1]}])],
-          [ContentMessages.focusSelector('button#home', false),
-           new ExpectedCursorChange(['Home', {'string': 'pushbutton'}])],
+           new ExpectedCursorChange(["such app", "wow", {"string": "headingLevel", "args": [1]}])],
+          [ContentMessages.focusSelector("button#home", false),
+           new ExpectedCursorChange(["Home", {"string": "pushbutton"}])],
 
           // Blur button and reset cursor
-          [ContentMessages.focusSelector('button#home', true), null],
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.focusSelector("button#home", true), null],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           // XXX: Set focus on iframe itself.
           // XXX: Set focus on element in iframe when cursor is outside of it.
           // XXX: Set focus on element in iframe when cursor is in iframe.
 
           // aria-hidden element that the virtual cursor is positioned on
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Traversal Rule test document', 'Phone status bar'])],
+           new ExpectedCursorChange(["Traversal Rule test document", "Phone status bar"])],
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
           [doc.defaultView.ariaHideBack,
            new ExpectedCursorChange(
             ["such app", "wow", {"string": "headingLevel","args": [1]}])],
           // Changing aria-hidden attribute twice and making sure that the event
           // is fired only once when the actual change happens.
           [doc.defaultView.ariaHideBack],
           [doc.defaultView.ariaShowBack],
           [ContentMessages.simpleMovePrevious,
            new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           // aria-hidden on the iframe that has the vc.
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Traversal Rule test document', 'Phone status bar'])],
+           new ExpectedCursorChange(["Traversal Rule test document", "Phone status bar"])],
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['such app', 'wow', {'string': 'headingLevel', 'args': [1]}])],
+           new ExpectedCursorChange(["such app", "wow", {"string": "headingLevel", "args": [1]}])],
           [doc.defaultView.ariaHideIframe,
-           new ExpectedCursorChange(['Home', {'string': 'pushbutton'}])],
+           new ExpectedCursorChange(["Home", {"string": "pushbutton"}])],
           [doc.defaultView.ariaShowIframe],
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           // aria-hidden element and auto Move
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Traversal Rule test document', 'Phone status bar'])],
+           new ExpectedCursorChange(["Traversal Rule test document", "Phone status bar"])],
           [doc.defaultView.ariaHideBack],
-          [ContentMessages.focusSelector('button#back', false),
+          [ContentMessages.focusSelector("button#back", false),
             // Must not speak Back button as it is aria-hidden
            new ExpectedCursorChange(
              ["such app", "wow", {"string": "headingLevel","args": [1]}])],
           [doc.defaultView.ariaShowBack],
-          [ContentMessages.focusSelector('button#back', true), null],
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.focusSelector("button#back", true), null],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           // Open dialog in outer doc, while cursor is also in outer doc
           [ContentMessages.simpleMoveLast,
-           new ExpectedCursorChange(['Traversal Rule test document', 'mover',
-             'medium', {'string': 'slider'}])],
+           new ExpectedCursorChange(["Traversal Rule test document", "mover",
+             "medium", {"string": "slider"}])],
           [doc.defaultView.showAlert,
-            new ExpectedCursorChange(['This is an alert!',
-              {'string': 'headingLevel', 'args': [1]},
-              {'string': 'dialog'}])],
+            new ExpectedCursorChange(["This is an alert!",
+              {"string": "headingLevel", "args": [1]},
+              {"string": "dialog"}])],
 
           [doc.defaultView.hideAlert,
-           new ExpectedCursorChange(['Traversal Rule test document', 'mover',
-             'medium', {'string': 'slider'}])],
+           new ExpectedCursorChange(["Traversal Rule test document", "mover",
+             "medium", {"string": "slider"}])],
 
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           // Open dialog in outer doc, while cursor is in inner frame
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Traversal Rule test document', 'Phone status bar'])],
+           new ExpectedCursorChange(["Traversal Rule test document", "Phone status bar"])],
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(["Back", {"string": "pushbutton"}])],
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(
-            ['such app', 'wow', {'string': 'headingLevel', 'args': [1]}])],
-          [doc.defaultView.showAlert, new ExpectedCursorChange(['This is an alert!',
-                    {'string': 'headingLevel', 'args': [1]},
-                    {'string': 'dialog'}])],
+            ["such app", "wow", {"string": "headingLevel", "args": [1]}])],
+          [doc.defaultView.showAlert, new ExpectedCursorChange(["This is an alert!",
+                    {"string": "headingLevel", "args": [1]},
+                    {"string": "dialog"}])],
 
           [ContentMessages.simpleMoveNext,
-            new ExpectedCursorChange(['Do you agree?'])],
+            new ExpectedCursorChange(["Do you agree?"])],
           [ContentMessages.simpleMoveNext,
-            new ExpectedCursorChange(['Yes', {'string': 'pushbutton'}])],
+            new ExpectedCursorChange(["Yes", {"string": "pushbutton"}])],
           [ContentMessages.activateCurrent(),
            new ExpectedClickAction(),
            new ExpectedCursorChange(
-            ['such app', 'wow', {'string': 'headingLevel', 'args': [1]}])],
+            ["such app", "wow", {"string": "headingLevel", "args": [1]}])],
 
-          [ContentMessages.clearCursor, 'AccessFu:CursorCleared'],
+          [ContentMessages.clearCursor, "AccessFu:CursorCleared"],
 
           // Open dialog, then focus on something when closing
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['Traversal Rule test document', 'Phone status bar'])],
+           new ExpectedCursorChange(["Traversal Rule test document", "Phone status bar"])],
           [doc.defaultView.showAlert,
-           new ExpectedCursorChange(['This is an alert!',
-            {'string': 'headingLevel', 'args': [1]}, {'string': 'dialog'}])],
+           new ExpectedCursorChange(["This is an alert!",
+            {"string": "headingLevel", "args": [1]}, {"string": "dialog"}])],
 
           [function hideAlertAndFocusHomeButton() {
             doc.defaultView.hideAlert();
-            doc.querySelector('button#home').focus();
-          }, new ExpectedCursorChange(['Traversal Rule test document',
-            'Home', {'string': 'pushbutton'}])],
+            doc.querySelector("button#home").focus();
+          }, new ExpectedCursorChange(["Traversal Rule test document",
+            "Home", {"string": "pushbutton"}])],
           [ContentMessages.simpleMoveNext,
-            new ExpectedCursorChange(['banana', {'string': 'pushbutton'}])]
+            new ExpectedCursorChange(["banana", {"string": "pushbutton"}])]
           [ContentMessages.simpleMoveNext, new ExpectedNoMove()]
         ]);
 
         addA11yLoadEvent(function() {
           contentTest.start(function () {
             closeBrowserWindow();
             SimpleTest.finish();
           });
         }, doc.defaultView)
       });
-      iframe.src = 'data:text/html;charset=utf-8,' + doc.defaultView.frameContents;
-      doc.getElementById('appframe').appendChild(iframe);
+      iframe.src = "data:text/html;charset=utf-8," + doc.defaultView.frameContents;
+      doc.getElementById("appframe").appendChild(iframe);
     }
 
     SimpleTest.waitForExplicitFinish();
     addLoadEvent(
       function () {
         openBrowserWindow(
           function () {
             SpecialPowers.pushPrefEnv({
-              'set': [
+              "set": [
                 // TODO: remove this as part of bug 820712
-                ['network.disable.ipc.security', true],
+                ["network.disable.ipc.security", true],
 
 
-                ['dom.ipc.browser_frames.oop_by_default', true],
-                ['dom.mozBrowserFramesEnabled', true],
-                ['browser.pagethumbnails.capturing_disabled', true]
+                ["dom.ipc.browser_frames.oop_by_default", true],
+                ["dom.mozBrowserFramesEnabled", true],
+                ["browser.pagethumbnails.capturing_disabled", true]
               ]
             }, doTest) },
-          getRootDirectory(window.location.href) + 'doc_content_integration.html');
+          getRootDirectory(window.location.href) + "doc_content_integration.html");
         });
   </script>
 </head>
 <body id="body">
 
   <a target="_blank"
      title="Add tests for OOP message handling and general integration"
      href="https://bugzilla.mozilla.org/show_bug.cgi?id=972047">Mozilla Bug 933808</a>
--- a/accessible/tests/mochitest/jsat/test_content_text.html
+++ b/accessible/tests/mochitest/jsat/test_content_text.html
@@ -26,242 +26,242 @@
   <script type="application/javascript">
     function doTest() {
       var doc = currentTabDocument();
       var textTest = new AccessFuContentTest(
         [
           // Read-only text tests
           [ContentMessages.simpleMoveFirst,
            new ExpectedCursorChange(
-            ['Text content test document', 'These are my awards, Mother. ' +
-             'From Army. The seal is for marksmanship, and the gorilla is ' +
-             'for sand racing.'])],
-          [ContentMessages.moveNextBy('word'),
-           new ExpectedCursorTextChange('These', 0, 5)],
-          [ContentMessages.moveNextBy('word'),
-           new ExpectedCursorTextChange('are', 6, 9)],
-          [ContentMessages.moveNextBy('word'),
-           new ExpectedCursorTextChange('my', 10, 12)],
-          [ContentMessages.moveNextBy('word'),
-           new ExpectedCursorTextChange('awards,', 13, 20)],
-          [ContentMessages.moveNextBy('word'),
-           new ExpectedCursorTextChange('Mother.', 21, 28)],
-          [ContentMessages.movePreviousBy('word'),
-           new ExpectedCursorTextChange('awards,', 13, 20)],
-          [ContentMessages.movePreviousBy('word'),
-           new ExpectedCursorTextChange('my', 10, 12)],
-          [ContentMessages.movePreviousBy('word'),
-           new ExpectedCursorTextChange('are', 6, 9)],
-          [ContentMessages.movePreviousBy('word'),
-           new ExpectedCursorTextChange('These', 0, 5)],
+            ["Text content test document", "These are my awards, Mother. " +
+             "From Army. The seal is for marksmanship, and the gorilla is " +
+             "for sand racing."])],
+          [ContentMessages.moveNextBy("word"),
+           new ExpectedCursorTextChange("These", 0, 5)],
+          [ContentMessages.moveNextBy("word"),
+           new ExpectedCursorTextChange("are", 6, 9)],
+          [ContentMessages.moveNextBy("word"),
+           new ExpectedCursorTextChange("my", 10, 12)],
+          [ContentMessages.moveNextBy("word"),
+           new ExpectedCursorTextChange("awards,", 13, 20)],
+          [ContentMessages.moveNextBy("word"),
+           new ExpectedCursorTextChange("Mother.", 21, 28)],
+          [ContentMessages.movePreviousBy("word"),
+           new ExpectedCursorTextChange("awards,", 13, 20)],
+          [ContentMessages.movePreviousBy("word"),
+           new ExpectedCursorTextChange("my", 10, 12)],
+          [ContentMessages.movePreviousBy("word"),
+           new ExpectedCursorTextChange("are", 6, 9)],
+          [ContentMessages.movePreviousBy("word"),
+           new ExpectedCursorTextChange("These", 0, 5)],
           [ContentMessages.simpleMoveNext,
-           new ExpectedCursorChange(['You\'re a good guy, mon frere. ' +
-              'That means brother in French. ' +
-              'I don\'t know how I know that. ' +
-              'I took four years of Spanish.'])],
+           new ExpectedCursorChange(["You're a good guy, mon frere. " +
+              "That means brother in French. " +
+              "I don't know how I know that. " +
+              "I took four years of Spanish."])],
           // XXX: Word boundary should be past the apostraphe.
-          [ContentMessages.moveNextBy('word'),
-           new ExpectedCursorTextChange('You\'re', 0, 6,
+          [ContentMessages.moveNextBy("word"),
+           new ExpectedCursorTextChange("You're", 0, 6,
              { android_todo: true /* Bug 980512 */})],
 
           // Editable text tests.
-          [ContentMessages.focusSelector('textarea'),
-           new ExpectedAnnouncement('editing'),
+          [ContentMessages.focusSelector("textarea"),
+           new ExpectedAnnouncement("editing"),
            new ExpectedEditState({
             editing: true,
             multiline: true,
             atStart: true,
             atEnd: false
            }),
            new ExpectedCursorChange(
-            ['Please refrain from Mayoneggs during this salmonella scare.',
-             {string: 'textarea'}]),
+            ["Please refrain from Mayoneggs during this salmonella scare.",
+             {string: "textarea"}]),
            new ExpectedTextSelectionChanged(0, 0)
           ],
           [ContentMessages.activateCurrent(10),
            new ExpectedTextCaretChanged(0, 10),
            new ExpectedEditState({ editing: true,
              multiline: true,
              atStart: false,
              atEnd: false }),
            new ExpectedTextSelectionChanged(10, 10)],
           [ContentMessages.activateCurrent(20),
            new ExpectedTextCaretChanged(10, 20),
            new ExpectedTextSelectionChanged(20, 20)
           ],
-          [ContentMessages.moveCaretNextBy('word'),
+          [ContentMessages.moveCaretNextBy("word"),
            new ExpectedTextCaretChanged(20, 29),
            new ExpectedTextSelectionChanged(29, 29)
           ],
-          [ContentMessages.moveCaretNextBy('word'),
+          [ContentMessages.moveCaretNextBy("word"),
            new ExpectedTextCaretChanged(29, 36),
            new ExpectedTextSelectionChanged(36, 36)
           ],
-          [ContentMessages.moveCaretNextBy('character'),
+          [ContentMessages.moveCaretNextBy("character"),
            new ExpectedTextCaretChanged(36, 37),
            new ExpectedTextSelectionChanged(37, 37)
           ],
-          [ContentMessages.moveCaretNextBy('character'),
+          [ContentMessages.moveCaretNextBy("character"),
            new ExpectedTextCaretChanged(37, 38),
            new ExpectedTextSelectionChanged(38, 38)
           ],
-          [ContentMessages.moveCaretNextBy('paragraph'),
+          [ContentMessages.moveCaretNextBy("paragraph"),
            new ExpectedTextCaretChanged(38, 59),
            new ExpectedTextSelectionChanged(59, 59)
           ],
-          [ContentMessages.moveCaretPreviousBy('word'),
+          [ContentMessages.moveCaretPreviousBy("word"),
            new ExpectedTextCaretChanged(53, 59),
            new ExpectedTextSelectionChanged(53, 53)
           ],
 
           // bug xxx
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(
-            ['So we don\'t get dessert?', {string: 'label'}],
-            { focused: 'html'}),
-           new ExpectedAnnouncement('navigating'),
+            ["So we don't get dessert?", {string: "label"}],
+            { focused: "html"}),
+           new ExpectedAnnouncement("navigating"),
            new ExpectedEditState({
             editing: false,
             multiline: false,
             atStart: true,
             atEnd: false })],
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(
-            [{ string: 'entry' }],
-            { focused: 'html'})],
+            [{ string: "entry" }],
+            { focused: "html"})],
           [ContentMessages.activateCurrent(0),
            new ExpectedClickAction(),
-           new ExpectedAnnouncement('editing'),
+           new ExpectedAnnouncement("editing"),
            new ExpectedEditState({
             editing: true,
             multiline: false,
             atStart: true,
             atEnd: true
-           }, { focused: 'input[type=text]' }),
+           }, { focused: "input[type=text]" }),
            new ExpectedTextSelectionChanged(0, 0)
            ],
           [ContentMessages.simpleMovePrevious,
            new ExpectedCursorChange(
-            ['So we don\'t get dessert?', {string: 'label'}]),
-           new ExpectedAnnouncement('navigating'),
+            ["So we don't get dessert?", {string: "label"}]),
+           new ExpectedAnnouncement("navigating"),
            new ExpectedEditState({
             editing: false,
             multiline: false,
             atStart: true,
             atEnd: false
-           },{ focused: 'html' })
+           },{ focused: "html" })
          ],
           [ContentMessages.simpleMoveNext,
            new ExpectedCursorChange(
-            [{ string: 'entry' }],
-            { focused: 'html'})],
+            [{ string: "entry" }],
+            { focused: "html"})],
           [ContentMessages.activateCurrent(0),
            new ExpectedClickAction(),
-           new ExpectedAnnouncement('editing'),
+           new ExpectedAnnouncement("editing"),
            new ExpectedEditState({
             editing: true,
             multiline: false,
             atStart: true,
             atEnd: true
            },
-           { focused: 'input[type=text]' }),
+           { focused: "input[type=text]" }),
            new ExpectedTextSelectionChanged(0, 0)],
           [ContentMessages.simpleMovePrevious,
            new ExpectedCursorChange(
-            [ 'So we don\'t get dessert?', {string: 'label'} ]),
-           new ExpectedAnnouncement('navigating'),
+            [ "So we don't get dessert?", {string: "label"} ]),
+           new ExpectedAnnouncement("navigating"),
            new ExpectedEditState({
             editing: false,
             multiline: false,
             atStart: true,
             atEnd: false
-           }, { focused: 'html' })],
+           }, { focused: "html" })],
 
-          [ContentMessages.focusSelector('input'),
-           new ExpectedAnnouncement('editing'),
+          [ContentMessages.focusSelector("input"),
+           new ExpectedAnnouncement("editing"),
            new ExpectedEditState({
             editing: true,
             multiline: false,
             atStart: true,
             atEnd: true
            }),
-           new ExpectedCursorChange([{string: 'entry'}]),
+           new ExpectedCursorChange([{string: "entry"}]),
            new ExpectedTextSelectionChanged(0, 0)
           ],
           [function() {
-             SpecialPowers.pushPrefEnv({"set": [[KEYBOARD_ECHO_SETTING, 3]]}, typeKey('a')());
+             SpecialPowers.pushPrefEnv({"set": [[KEYBOARD_ECHO_SETTING, 3]]}, typeKey("a")());
            },
-           new ExpectedTextChanged('a'),
+           new ExpectedTextChanged("a"),
            new ExpectedTextSelectionChanged(1, 1),
           ],
-          [typeKey('b'),
-           new ExpectedTextChanged('b'),
+          [typeKey("b"),
+           new ExpectedTextChanged("b"),
            new ExpectedTextSelectionChanged(2, 2),
           ],
-          [typeKey('c'),
-           new ExpectedTextChanged('c'),
+          [typeKey("c"),
+           new ExpectedTextChanged("c"),
            new ExpectedTextSelectionChanged(3, 3),
           ],
-          [typeKey('d'),
-           new ExpectedTextChanged('d'),
+          [typeKey("d"),
+           new ExpectedTextChanged("d"),
            new ExpectedTextSelectionChanged(4, 4),
           ],
-          [typeKey(' '),
-           new ExpectedTextChanged(' abcd'),
+          [typeKey(" "),
+           new ExpectedTextChanged(" abcd"),
            new ExpectedTextSelectionChanged(5, 5),
           ],
-          [typeKey('e'),
-           new ExpectedTextChanged('e'),
+          [typeKey("e"),
+           new ExpectedTextChanged("e"),
            new ExpectedTextSelectionChanged(6, 6),
           ],
           [function() {
-             SpecialPowers.pushPrefEnv({"set": [[KEYBOARD_ECHO_SETTING, 2]]}, typeKey('a')());
+             SpecialPowers.pushPrefEnv({"set": [[KEYBOARD_ECHO_SETTING, 2]]}, typeKey("a")());
            },
-           new ExpectedTextChanged(''),
+           new ExpectedTextChanged(""),
            new ExpectedTextSelectionChanged(7, 7),
           ],
-          [typeKey('d'),
-           new ExpectedTextChanged(''),
+          [typeKey("d"),
+           new ExpectedTextChanged(""),
            new ExpectedTextSelectionChanged(8, 8),
           ],
-          [typeKey(' '),
-           new ExpectedTextChanged(' ead'),
+          [typeKey(" "),
+           new ExpectedTextChanged(" ead"),
            new ExpectedTextSelectionChanged(9, 9),
           ],
           [function() {
-             SpecialPowers.pushPrefEnv({"set": [[KEYBOARD_ECHO_SETTING, 1]]}, typeKey('f')());
+             SpecialPowers.pushPrefEnv({"set": [[KEYBOARD_ECHO_SETTING, 1]]}, typeKey("f")());
            },
-           new ExpectedTextChanged('f'),
+           new ExpectedTextChanged("f"),
            new ExpectedTextSelectionChanged(10, 10),
           ],
-          [typeKey('g'),
-           new ExpectedTextChanged('g'),
+          [typeKey("g"),
+           new ExpectedTextChanged("g"),
            new ExpectedTextSelectionChanged(11, 11),
           ],
-          [typeKey(' '),
-           new ExpectedTextChanged(' '),
+          [typeKey(" "),
+           new ExpectedTextChanged(" "),
            new ExpectedTextSelectionChanged(12, 12),
           ],
           [function() {
-             SpecialPowers.pushPrefEnv({"set": [[KEYBOARD_ECHO_SETTING, 0]]}, typeKey('f')());
+             SpecialPowers.pushPrefEnv({"set": [[KEYBOARD_ECHO_SETTING, 0]]}, typeKey("f")());
            },
-           new ExpectedTextChanged(''),
+           new ExpectedTextChanged(""),
            new ExpectedTextSelectionChanged(13, 13),
           ],
-          [typeKey('g'),
-           new ExpectedTextChanged(''),
+          [typeKey("g"),
+           new ExpectedTextChanged(""),
            new ExpectedTextSelectionChanged(14, 14),
           ],
-          [typeKey(' '),
-           new ExpectedTextChanged(''),
+          [typeKey(" "),
+           new ExpectedTextChanged(""),
            new ExpectedTextSelectionChanged(15, 15),
           ],
         ]);
 
-      const KEYBOARD_ECHO_SETTING = 'accessibility.accessfu.keyboard_echo';
+      const KEYBOARD_ECHO_SETTING = "accessibility.accessfu.keyboard_echo";
       function typeKey(key) {
         return function() { synthesizeKey(key, {}, currentTabWindow()); };
       }
 
       addA11yLoadEvent(function() {
         textTest.start(function () {
           closeBrowserWindow();
           SimpleTest.finish();
--- a/accessible/tests/mochitest/jsat/test_hints.html
+++ b/accessible/tests/mochitest/jsat/test_hints.html
@@ -9,48 +9,48 @@
   <script type="application/javascript"
           src="../common.js"></script>
   <script type="application/javascript"
           src="output.js"></script>
   <script type="application/javascript">
 
     function doTest() {
       var tests = [{
-        accOrElmOrID: 'can_wheel',
-        expectedHints: ['Swipe with two fingers to move between pages']
+        accOrElmOrID: "can_wheel",
+        expectedHints: ["Swipe with two fingers to move between pages"]
       }, {
-        accOrElmOrID: 'nested_link',
-        expectedHints: [{string: 'link-hint'},
-          'Swipe with two fingers to move between pages']
+        accOrElmOrID: "nested_link",
+        expectedHints: [{string: "link-hint"},
+          "Swipe with two fingers to move between pages"]
       }, {
-        accOrElmOrID: 'nested_link',
-        oldAccOrElmOrID: 'can_wheel',
-        expectedHints: [{string: 'link-hint'}]
+        accOrElmOrID: "nested_link",
+        oldAccOrElmOrID: "can_wheel",
+        expectedHints: [{string: "link-hint"}]
       }, {
-        accOrElmOrID: 'link_with_default_hint',
-        expectedHints: [{string: 'link-hint'}]
+        accOrElmOrID: "link_with_default_hint",
+        expectedHints: [{string: "link-hint"}]
       }, {
-        accOrElmOrID: 'link_with_hint_override',
-        expectedHints: ['Tap and hold to get to menu']
+        accOrElmOrID: "link_with_hint_override",
+        expectedHints: ["Tap and hold to get to menu"]
       }, {
-        accOrElmOrID: 'button_with_default_hint',
-        expectedHints: [{string: 'pushbutton-hint'}]
+        accOrElmOrID: "button_with_default_hint",
+        expectedHints: [{string: "pushbutton-hint"}]
       }, {
-        accOrElmOrID: 'button_with_hint_override',
-        expectedHints: ['Tap and hold to activate']
+        accOrElmOrID: "button_with_hint_override",
+        expectedHints: ["Tap and hold to activate"]
       }, {
-        accOrElmOrID: 'nested_link2',
-        expectedHints: [{string: 'link-hint'}]
+        accOrElmOrID: "nested_link2",
+        expectedHints: [{string: "link-hint"}]
       }, {
-        accOrElmOrID: 'nested_link3',
-        expectedHints: [{string: 'link-hint'}, {string: 'pushbutton-hint'},
+        accOrElmOrID: "nested_link3",
+        expectedHints: [{string: "link-hint"}, {string: "pushbutton-hint"},
           "Double tap and hold to activate"]
       }, {
-        accOrElmOrID: 'menuitemradio',
-        expectedHints: [{string: 'radiomenuitem-hint'}]
+        accOrElmOrID: "menuitemradio",
+        expectedHints: [{string: "radiomenuitem-hint"}]
       }];
 
       // Test hints.
       tests.forEach(function run(test) {
         testHints(test.expectedHints, test.accOrElmOrID, test.oldAccOrElmOrID);
       });
 
       SimpleTest.finish();
--- a/accessible/tests/mochitest/jsat/test_live_regions.html
+++ b/accessible/tests/mochitest/jsat/test_live_regions.html
@@ -9,43 +9,43 @@
           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
   <script type="application/javascript"
           src="../common.js"></script>
   <script type="application/javascript"
           src="./jsatcommon.js"></script>
   <script type="application/javascript">
 
     function startAccessFu() {
-      SpecialPowers.pushPrefEnv({"set": [['accessibility.accessfu.activate', 1]]});
+      SpecialPowers.pushPrefEnv({"set": [["accessibility.accessfu.activate", 1]]});
       AccessFuTest.once_log("EventManager.start", AccessFuTest.nextTest);
     }
 
     function stopAccessFu() {
-      SpecialPowers.pushPrefEnv({"set": [['accessibility.accessfu.activate', 0]]});
+      SpecialPowers.pushPrefEnv({"set": [["accessibility.accessfu.activate", 0]]});
       AccessFuTest.once_log("EventManager.stop", () => AccessFuTest.finish());
     }
 
     function hide(id) {
       var element = document.getElementById(id);
       element.style.display = "none";
     }
 
     function show(id) {
       var element = document.getElementById(id);
       element.style.display = "block";
     }
 
     function ariaHide(id) {
       var element = document.getElementById(id);
-      element.setAttribute('aria-hidden', true);
+      element.setAttribute("aria-hidden", true);
     }
 
     function ariaShow(id) {
       var element = document.getElementById(id);
-      element.setAttribute('aria-hidden', false);
+      element.setAttribute("aria-hidden", false);
     }
 
     function udpate(id, text, property) {
       var element = document.getElementById(id);
       element[property] = text;
     }
 
     function updateText(id, text) {
--- a/accessible/tests/mochitest/jsat/test_pointer_relay.html
+++ b/accessible/tests/mochitest/jsat/test_pointer_relay.html
@@ -13,59 +13,59 @@
   <script type="application/javascript" src="./dom_helper.js"></script>
   <script type="application/javascript">
 
     Components.utils.import(
       "resource://gre/modules/accessibility/PointerAdapter.jsm");
 
     var tests = [
       {
-        type: 'touchstart', target: [{base: 'button'}],
-        expected: {type: 'pointerdown', length: 1}
+        type: "touchstart", target: [{base: "button"}],
+        expected: {type: "pointerdown", length: 1}
       },
       {
-        type: 'touchmove', target: [{base: 'button'}],
-        expected: {type: 'pointermove', length: 1}
+        type: "touchmove", target: [{base: "button"}],
+        expected: {type: "pointermove", length: 1}
       },
       {
-        type: 'touchend', target: [{base: 'button'}],
-        expected: {type: 'pointerup'}
+        type: "touchend", target: [{base: "button"}],
+        expected: {type: "pointerup"}
       },
       {
-        type: 'touchstart', target: [{base: 'button'},
-          {base: 'button', x: 0.5, y: 0.3}],
-          expected: {type: 'pointerdown', length: 2}
+        type: "touchstart", target: [{base: "button"},
+          {base: "button", x: 0.5, y: 0.3}],
+          expected: {type: "pointerdown", length: 2}
       },
       {
-        type: 'touchend', target: [{base: 'button'},
-          {base: 'button', x: 0.5, y: 0.3}],
-          expected: {type: 'pointerup'}
+        type: "touchend", target: [{base: "button"},
+          {base: "button", x: 0.5, y: 0.3}],
+          expected: {type: "pointerup"}
       },
       {
-        type: 'touchstart', target: [{base: 'button'},
-          {base: 'button', x: 0.5, y: 0.3},
-          {base: 'button', x: 0.5, y: -0.3}],
-          expected: {type: 'pointerdown', length: 3}
+        type: "touchstart", target: [{base: "button"},
+          {base: "button", x: 0.5, y: 0.3},
+          {base: "button", x: 0.5, y: -0.3}],
+          expected: {type: "pointerdown", length: 3}
       },
       {
-        type: 'touchend', target: [{base: 'button'},
-          {base: 'button', x: 0.5, y: 0.3},
-          {base: 'button', x: 0.5, y: -0.3}],
-          expected: {type: 'pointerup'}
+        type: "touchend", target: [{base: "button"},
+          {base: "button", x: 0.5, y: 0.3},
+          {base: "button", x: 0.5, y: -0.3}],
+          expected: {type: "pointerup"}
       }
     ];
 
     function makeTestFromSpec(test) {
       return function runTest() {
         PointerRelay.start(function onPointerEvent(aDetail) {
           is(aDetail.type, test.expected.type,
-            'mozAccessFuPointerEvent is correct.');
+            "mozAccessFuPointerEvent is correct.");
           if (test.expected.length) {
             is(aDetail.points.length, test.expected.length,
-            'mozAccessFuPointerEvent points length is correct.');
+            "mozAccessFuPointerEvent points length is correct.");
           }
           PointerRelay.stop();
           AccessFuTest.nextTest();
         });
         eventMap[test.type](test.target, test.type);
       };
     }
 
--- a/accessible/tests/mochitest/jsat/test_quicknav_modes.html
+++ b/accessible/tests/mochitest/jsat/test_quicknav_modes.html
@@ -10,91 +10,91 @@
   <script type="application/javascript"
           src="../common.js"></script>
   <script type="application/javascript"
           src="./jsatcommon.js"></script>
   <script type="application/javascript">
 
     function prefStart() {
       // Start AccessFu via pref.
-      SpecialPowers.pushPrefEnv({"set": [['accessibility.accessfu.activate', 1]]});
+      SpecialPowers.pushPrefEnv({"set": [["accessibility.accessfu.activate", 1]]});
       AccessFuTest.once_log("EventManager.start", AccessFuTest.nextTest);
     }
 
     function nextMode(aCurrentMode, aNextMode) {
       return function() {
         is(AccessFu.Input.quickNavMode.current, aCurrentMode,
-          'initial current mode is correct');
+          "initial current mode is correct");
         AccessFu.Input.quickNavMode.next();
         _expectMode(aNextMode, AccessFuTest.nextTest);
       }
     }
 
     function prevMode(aCurrentMode, aNextMode) {
       return function() {
         is(AccessFu.Input.quickNavMode.current, aCurrentMode,
-          'initial current mode is correct');
+          "initial current mode is correct");
         AccessFu.Input.quickNavMode.previous();
         _expectMode(aNextMode, AccessFuTest.nextTest);
       }
     }
 
     function setMode(aModeIndex, aExpectedMode) {
       return function() {
         SpecialPowers.pushPrefEnv(
-          {"set": [['accessibility.accessfu.quicknav_index', aModeIndex]]},
+          {"set": [["accessibility.accessfu.quicknav_index", aModeIndex]]},
           function() {
             _expectMode(aExpectedMode, AccessFuTest.nextTest);
         });
       }
     }
 
     function reconfigureModes() {
       SpecialPowers.pushPrefEnv(
-        {"set": [['accessibility.accessfu.quicknav_modes', 'Landmark,Button,Entry,Graphic']]},
+        {"set": [["accessibility.accessfu.quicknav_modes", "Landmark,Button,Entry,Graphic"]]},
         function() {
           // When the modes are reconfigured, the current mode should
           // be set to the first in the new list.
-          _expectMode('Landmark', AccessFuTest.nextTest);
+          _expectMode("Landmark", AccessFuTest.nextTest);
       });
     }
 
     function _expectMode(aExpectedMode, aCallback) {
       if (AccessFu.Input.quickNavMode.current === aExpectedMode) {
-        ok(true, 'correct mode');
+        ok(true, "correct mode");
         aCallback();
       } else {
-        AccessFuTest.once_log('Quicknav mode: ' + aExpectedMode, function() {
-          ok(true, 'correct mode');
+        AccessFuTest.once_log("Quicknav mode: " + aExpectedMode, function() {
+          ok(true, "correct mode");
           aCallback();
         });
       }
     }
 
     // Listen for initial 'EventManager.start' and disable AccessFu.
     function prefStop() {
       ok(AccessFu._enabled, "AccessFu was started via preference.");
       AccessFuTest.once_log("EventManager.stop", () => AccessFuTest.finish());
-      SpecialPowers.pushPrefEnv({"set": [['accessibility.accessfu.activate', 0]]});
+      SpecialPowers.pushPrefEnv({"set": [["accessibility.accessfu.activate", 0]]});
     }
 
     function doTest() {
       AccessFuTest.addFunc(prefStart);
-      AccessFuTest.addFunc(nextMode('Link', 'Heading'));
-      AccessFuTest.addFunc(nextMode('Heading', 'FormElement'));
-      AccessFuTest.addFunc(nextMode('FormElement', 'Link'));
-      AccessFuTest.addFunc(nextMode('Link', 'Heading'));
-      AccessFuTest.addFunc(prevMode('Heading', 'Link'));
-      AccessFuTest.addFunc(prevMode('Link', 'FormElement'));
-      AccessFuTest.addFunc(setMode(1, 'Heading'));
+      AccessFuTest.addFunc(nextMode("Link", "Heading"));
+      AccessFuTest.addFunc(nextMode("Heading", "FormElement"));
+      AccessFuTest.addFunc(nextMode("FormElement", "Link"));
+      AccessFuTest.addFunc(nextMode("Link", "Heading"));
+      AccessFuTest.addFunc(prevMode("Heading", "Link"));
+      AccessFuTest.addFunc(prevMode("Link", "FormElement"));
+      AccessFuTest.addFunc(setMode(1, "Heading"));
       AccessFuTest.addFunc(reconfigureModes);
       AccessFuTest.addFunc(prefStop);
       AccessFuTest.waitForExplicitFinish();
       AccessFuTest.runTests([   // Will call SimpleTest.finish();
-        ['accessibility.accessfu.quicknav_modes', 'Link,Heading,FormElement']]);
+        ["accessibility.accessfu.quicknav_modes", "Link,Heading,FormElement"]]);
     }
 
     SimpleTest.waitForExplicitFinish();
     addA11yLoadEvent(doTest);
   </script>
 
 </head>
 <body>
--- a/accessible/tests/mochitest/jsat/test_traversal.html
+++ b/accessible/tests/mochitest/jsat/test_traversal.html
@@ -33,118 +33,118 @@
       gQueue = new eventQueue();
 
       gQueue.onFinish = function onFinish()
       {
         closeBrowserWindow();
       }
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Heading, null,
-                             ['heading-1', 'heading-2', 'heading-3', 'heading-5']);
+                             ["heading-1", "heading-2", "heading-3", "heading-5"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Entry, null,
-                             ['input-1-1', 'label-1-2', 'input-1-3',
-                              'input-1-4', 'input-1-5']);
+                             ["input-1-1", "label-1-2", "input-1-3",
+                              "input-1-4", "input-1-5"]);
 
       // move back an element to hit all the form elements, because the VC is
       // currently at the first input element
       gQueue.push(new setVCPosInvoker(docAcc, "movePrevious",
                                       TraversalRules.Heading, "heading-1"));
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.FormElement, null,
-                             ['input-1-1', 'label-1-2', 'button-1-1',
-                              'radio-1-1', 'radio-1-2', 'input-1-3',
-                              'input-1-4', 'button-1-2', 'checkbox-1-1',
-                              'select-1-1', 'select-1-2', 'checkbox-1-2',
-                              'select-1-3', 'input-1-5', 'button-1-3',
-                              'button-2-1', 'button-2-2', 'button-2-3',
-                              'button-2-4', 'checkbox-1-5', 'switch-1']);
+                             ["input-1-1", "label-1-2", "button-1-1",
+                              "radio-1-1", "radio-1-2", "input-1-3",
+                              "input-1-4", "button-1-2", "checkbox-1-1",
+                              "select-1-1", "select-1-2", "checkbox-1-2",
+                              "select-1-3", "input-1-5", "button-1-3",
+                              "button-2-1", "button-2-2", "button-2-3",
+                              "button-2-4", "checkbox-1-5", "switch-1"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Button, null,
-                             ['button-1-1', 'button-1-2', 'button-1-3',
-                              'button-2-1', 'button-2-2', 'button-2-3',
-                              'button-2-4']);
+                             ["button-1-1", "button-1-2", "button-1-3",
+                              "button-2-1", "button-2-2", "button-2-3",
+                              "button-2-4"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.RadioButton, null,
-                             ['radio-1-1', 'radio-1-2']);
+                             ["radio-1-1", "radio-1-2"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Checkbox, null,
-                             ['checkbox-1-1', 'checkbox-1-2', 'checkbox-1-5',
-                              'switch-1']);
+                             ["checkbox-1-1", "checkbox-1-2", "checkbox-1-5",
+                              "switch-1"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Combobox, null,
-                             ['select-1-1', 'select-1-2', 'select-1-3']);
+                             ["select-1-1", "select-1-2", "select-1-3"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.List, null,
-                             ['list-1', 'list-2', 'list-3']);
+                             ["list-1", "list-2", "list-3"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.ListItem, null,
-                             ['listitem-1-1', 'listitem-2-1', 'listitem-2-2',
-                              'listitem-3-1', 'listitem-3-2', 'listitem-3-3',
-                              'listitem-3-4', 'listitem-3-5', 'listitem-3-6',
-                              'listitem-2-3']);
+                             ["listitem-1-1", "listitem-2-1", "listitem-2-2",
+                              "listitem-3-1", "listitem-3-2", "listitem-3-3",
+                              "listitem-3-4", "listitem-3-5", "listitem-3-6",
+                              "listitem-2-3"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Graphic, null,
-                             ['image-2', 'image-3']);
+                             ["image-2", "image-3"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Link, null,
-                             ['link-0', 'link-1', 'link-2', 'link-3']);
+                             ["link-0", "link-1", "link-2", "link-3"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Anchor, null,
-                             ['anchor-1', 'anchor-2']);
+                             ["anchor-1", "anchor-2"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Separator, null,
-                             ['separator-1', 'separator-2']);
+                             ["separator-1", "separator-2"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Table, null,
-                             ['table-1', 'grid', 'table-2']);
+                             ["table-1", "grid", "table-2"]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Simple, null,
-                             ['heading-1', 'Name:', 'input-1-1', 'label-1-2',
-                              'button-1-1', 'Radios are old: ', 'radio-1-1',
-                              'Radios are new: ', 'radio-1-2', 'Password:',
-                              'input-1-3', 'Unlucky number:', 'input-1-4',
-                              'button-1-2', 'Check me: ', 'checkbox-1-1',
-                              'select-1-1', 'Value 1', 'Value 2', 'Value 3',
-                              'Check me too: ', 'checkbox-1-2', 'But not me: ',
-                              'Or me! ', 'Value 1', 'Value 2', 'Value 3',
-                              'Electronic mailing address:', 'input-1-5',
-                              'button-1-3', 'heading-2', 'heading-3',
-                              'button-2-1', 'button-2-2', 'button-2-3',
-                              'button-2-4', 'Programming Language',
-                              'A esoteric weapon wielded by only the most ' +
-                              'formidable warriors, for its unrelenting strict' +
-                              ' power is unfathomable.',
-                              '• Lists of Programming Languages', 'Lisp ',
-                              '1. Scheme', '2. Racket', '3. Clojure',
-                              '4. Standard Lisp', 'link-0', ' Lisp',
-                              'checkbox-1-5', ' LeLisp', '• JavaScript',
-                              'heading-5', 'image-2', 'image-3',
-                              'Not actually an image', 'link-1', 'anchor-1',
-                              'link-2', 'anchor-2', 'link-3', '3', '1', '4',
-                              '1', 'Sunday', 'M', 'Week 1', '3', '4', '7', '2',
-                              '5 8', 'gridcell4', 'Just an innocuous separator',
-                              'Dirty Words', 'Meaning', 'Mud', 'Wet Dirt',
-                              'Dirt', 'Messy Stuff', 'statusbar-1', 'statusbar-2',
-                              'switch-1', 'This is a MathML formula ', 'math-1',
-                              'with some text after.']);
+                             ["heading-1", "Name:", "input-1-1", "label-1-2",
+                              "button-1-1", "Radios are old: ", "radio-1-1",
+                              "Radios are new: ", "radio-1-2", "Password:",
+                              "input-1-3", "Unlucky number:", "input-1-4",
+                              "button-1-2", "Check me: ", "checkbox-1-1",
+                              "select-1-1", "Value 1", "Value 2", "Value 3",
+                              "Check me too: ", "checkbox-1-2", "But not me: ",
+                              "Or me! ", "Value 1", "Value 2", "Value 3",
+                              "Electronic mailing address:", "input-1-5",
+                              "button-1-3", "heading-2", "heading-3",
+                              "button-2-1", "button-2-2", "button-2-3",
+                              "button-2-4", "Programming Language",
+                              "A esoteric weapon wielded by only the most " +
+                              "formidable warriors, for its unrelenting strict" +
+                              " power is unfathomable.",
+                              "• Lists of Programming Languages", "Lisp ",
+                              "1. Scheme", "2. Racket", "3. Clojure",
+                              "4. Standard Lisp", "link-0", " Lisp",
+                              "checkbox-1-5", " LeLisp", "• JavaScript",
+                              "heading-5", "image-2", "image-3",
+                              "Not actually an image", "link-1", "anchor-1",
+                              "link-2", "anchor-2", "link-3", "3", "1", "4",
+                              "1", "Sunday", "M", "Week 1", "3", "4", "7", "2",
+                              "5 8", "gridcell4", "Just an innocuous separator",
+                              "Dirty Words", "Meaning", "Mud", "Wet Dirt",
+                              "Dirt", "Messy Stuff", "statusbar-1", "statusbar-2",
+                              "switch-1", "This is a MathML formula ", "math-1",
+                              "with some text after."]);
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Landmark, null,
-                             ['header-1', 'main-1', 'footer-1']);
+                             ["header-1", "main-1", "footer-1"]);
 
 
       queueTraversalSequence(gQueue, docAcc, TraversalRules.Control, null,
-                             ['input-1-1', 'label-1-2', 'button-1-1',
-                              'radio-1-1', 'radio-1-2', 'input-1-3',
-                              'input-1-4', 'button-1-2', 'checkbox-1-1',
-                              'select-1-1', 'select-1-2', 'checkbox-1-2',
-                              'select-1-3', 'input-1-5', 'button-1-3',
-                              'button-2-1', 'button-2-2', 'button-2-3',
-                              'button-2-4', 'link-0', 'checkbox-1-5',
-                              'link-1', 'link-2', 'link-3', 'switch-1']);
+                             ["input-1-1", "label-1-2", "button-1-1",
+                              "radio-1-1", "radio-1-2", "input-1-3",
+                              "input-1-4", "button-1-2", "checkbox-1-1",
+                              "select-1-1", "select-1-2", "checkbox-1-2",
+                              "select-1-3", "input-1-5", "button-1-3",
+                              "button-2-1", "button-2-2", "button-2-3",
+                              "button-2-4", "link-0", "checkbox-1-5",
+                              "link-1", "link-2", "link-3", "switch-1"]);
 
       gQueue.invoke();
     }
 
     SimpleTest.waitForExplicitFinish();
     addLoadEvent(function () {
       /* We open a new browser because we need to test with a top-level content
          document. */
--- a/accessible/tests/mochitest/jsat/test_traversal_helper.html
+++ b/accessible/tests/mochitest/jsat/test_traversal_helper.html
@@ -41,56 +41,56 @@
           "successfully did " + aMethod + " with " + aRule);
         accessibleIs(vc.position, expected, "landed on correct accessible");
       }
     }
 
     function testTraversalHelper(aRule, aExpectedSequence) {
       vc.position = null;
 
-      walkSequence('moveNext', aRule, aExpectedSequence);
+      walkSequence("moveNext", aRule, aExpectedSequence);
 
-      ok(!TraversalHelper.move(vc, 'moveNext', aRule), "reached end");
+      ok(!TraversalHelper.move(vc, "moveNext", aRule), "reached end");
 
-      TraversalHelper.move(vc, 'moveLast', 'Simple');
+      TraversalHelper.move(vc, "moveLast", "Simple");
 
-      walkSequence('movePrevious', aRule,
+      walkSequence("movePrevious", aRule,
         Array.from(aExpectedSequence).reverse());
 
-      ok(!TraversalHelper.move(vc, 'movePrevious', aRule), "reached start");
+      ok(!TraversalHelper.move(vc, "movePrevious", aRule), "reached start");
 
       vc.position = null;
 
-      ok(TraversalHelper.move(vc, 'moveFirst', aRule), "moveFirst");
+      ok(TraversalHelper.move(vc, "moveFirst", aRule), "moveFirst");
 
       accessibleIs(vc.position, aExpectedSequence[0],
         "moveFirst to correct accessible");
 
-      ok(TraversalHelper.move(vc, 'moveLast', aRule), "moveLast");
+      ok(TraversalHelper.move(vc, "moveLast", aRule), "moveLast");
 
       accessibleIs(vc.position, aExpectedSequence[aExpectedSequence.length - 1],
         "moveLast to correct accessible");
     }
 
 
     function doTest()
     {
       var doc = currentTabDocument();
       var docAcc = getAccessible(doc, [nsIAccessibleDocument]);
       vc = docAcc.virtualCursor;
 
-      testTraversalHelper('Landmark',
-        ['heading-1', 'heading-2', 'statusbar-1']);
+      testTraversalHelper("Landmark",
+        ["heading-1", "heading-2", "statusbar-1"]);
 
-      testTraversalHelper('List',
-        ['Programming Language', 'listitem-2-1', 'listitem-3-1']);
+      testTraversalHelper("List",
+        ["Programming Language", "listitem-2-1", "listitem-3-1"]);
 
-      testTraversalHelper('Section',
-        ['heading-1', 'heading-2', 'heading-3',
-         'heading-5', 'link-1', 'statusbar-1']);
+      testTraversalHelper("Section",
+        ["heading-1", "heading-2", "heading-3",
+         "heading-5", "link-1", "statusbar-1"]);
 
       SimpleTest.finish();
     }
 
     SimpleTest.waitForExplicitFinish();
     addLoadEvent(function () {
       /* We open a new browser because we need to test with a top-level content
          document. */
--- a/accessible/tests/mochitest/name/markup.js
+++ b/accessible/tests/mochitest/name/markup.js
@@ -369,12 +369,12 @@ function evaluateXPath(aNode, aExpr, aRe
   while (res = result.iterateNext())
     found.push(res);
 
   return found;
 }
 
 function htmlDocResolver(aPrefix) {
   var ns = {
-    'html': 'http://www.w3.org/1999/xhtml'
+    "html": "http://www.w3.org/1999/xhtml"
   };
   return ns[aPrefix] || null;
 }
--- a/accessible/tests/mochitest/name/test_counterstyle.html
+++ b/accessible/tests/mochitest/name/test_counterstyle.html
@@ -135,17 +135,17 @@
   <script type="application/javascript">
     var list = getNode("list");
     var rules = getNode("counterstyles").sheet.cssRules;
     var values = [1, 7, 29];
     for (var i = 0; i < rules.length; i++) {
       var rule = rules[i];
       for (var j = 0; j < values.length; j++) {
         var item = document.createElement("li");
-        item.id = rule.name + '-' + values[j];
+        item.id = rule.name + "-" + values[j];
         item.value = values[j];
         item.textContent = values[j];
         item.setAttribute("style", "list-style-type: " + rule.name);
         list.appendChild(item);
       }
     }
   </script>
 
--- a/accessible/tests/mochitest/pivot.js
+++ b/accessible/tests/mochitest/pivot.js
@@ -111,17 +111,17 @@ function VCChangedChecker(aDocAcc, aIdOr
     var nameMatches = position && position.name == aIdOrNameOrAcc;
     var accMatches = position == aIdOrNameOrAcc;
 
     SimpleTest.ok(idMatches || nameMatches || accMatches, "id or name matches",
                   "expecting " + aIdOrNameOrAcc + ", got '" +
                   prettyName(position));
 
     SimpleTest.is(aEvent.isFromUserInput, aIsFromUserInput,
-                  "Expected user input is " + aIsFromUserInput + '\n');
+                  "Expected user input is " + aIsFromUserInput + "\n");
 
     if (aTextOffsets) {
       SimpleTest.is(aDocAcc.virtualCursor.startOffset, aTextOffsets[0],
                     "wrong start offset");
       SimpleTest.is(aDocAcc.virtualCursor.endOffset, aTextOffsets[1],
                     "wrong end offset");
     }
 
@@ -152,24 +152,24 @@ VCChangedChecker.storePreviousPosAndOffs
 
 VCChangedChecker.getPreviousPosAndOffset =
   function getPreviousPosAndOffset(aPivot)
 {
   return VCChangedChecker.prevPosAndOffset[aPivot];
 };
 
 VCChangedChecker.methodReasonMap = {
-  'moveNext': nsIAccessiblePivot.REASON_NEXT,
-  'movePrevious': nsIAccessiblePivot.REASON_PREV,
-  'moveFirst': nsIAccessiblePivot.REASON_FIRST,
-  'moveLast': nsIAccessiblePivot.REASON_LAST,
-  'setTextRange': nsIAccessiblePivot.REASON_TEXT,
-  'moveNextByText': nsIAccessiblePivot.REASON_TEXT,
-  'movePreviousByText': nsIAccessiblePivot.REASON_TEXT,
-  'moveToPoint': nsIAccessiblePivot.REASON_POINT
+  "moveNext": nsIAccessiblePivot.REASON_NEXT,
+  "movePrevious": nsIAccessiblePivot.REASON_PREV,
+  "moveFirst": nsIAccessiblePivot.REASON_FIRST,
+  "moveLast": nsIAccessiblePivot.REASON_LAST,
+  "setTextRange": nsIAccessiblePivot.REASON_TEXT,
+  "moveNextByText": nsIAccessiblePivot.REASON_TEXT,
+  "movePreviousByText": nsIAccessiblePivot.REASON_TEXT,
+  "moveToPoint": nsIAccessiblePivot.REASON_POINT
 };
 
 /**
  * Set a text range in the pivot and wait for virtual cursor change event.
  *
  * @param aDocAcc         [in] document that manages the virtual cursor
  * @param aTextAccessible [in] accessible to set to virtual cursor's position
  * @param aTextOffsets    [in] start and end offsets of text range to set in
@@ -216,23 +216,23 @@ function setVCPosInvoker(aDocAcc, aPivot
   var expectMove = (aIdOrNameOrAcc != false);
   this.invoke = function virtualCursorChangedInvoker_invoke()
   {
     VCChangedChecker.
       storePreviousPosAndOffset(aDocAcc.virtualCursor);
     if (aPivotMoveMethod && aRule) {
       var moved = false;
       switch (aPivotMoveMethod) {
-        case 'moveFirst':
-        case 'moveLast':
+        case "moveFirst":
+        case "moveLast":
           moved = aDocAcc.virtualCursor[aPivotMoveMethod](aRule,
             aIsFromUserInput === undefined ? true : aIsFromUserInput);
           break;
-        case 'moveNext':
-        case 'movePrevious':
+        case "moveNext":
+        case "movePrevious":
           moved = aDocAcc.virtualCursor[aPivotMoveMethod](aRule,
             aDocAcc.virtualCursor.position, false,
             aIsFromUserInput === undefined ? true : aIsFromUserInput);
           break;
       }
       SimpleTest.is(!!moved, !!expectMove,
                     "moved pivot with " + aPivotMoveMethod +
                     " to " + aIdOrNameOrAcc);
@@ -338,17 +338,17 @@ function moveVCCoordInvoker(aDocAcc, aX,
 
   this.getID = function setVCPosInvoker_getID()
   {
     return "Do " + (expectMove ? "" : "no-op ") + "moveToPoint " + aIdOrNameOrAcc;
   };
 
   if (expectMove) {
     this.eventSeq = [
-      new VCChangedChecker(aDocAcc, aIdOrNameOrAcc, null, 'moveToPoint', true)
+      new VCChangedChecker(aDocAcc, aIdOrNameOrAcc, null, "moveToPoint", true)
     ];
   } else {
     this.eventSeq = [];
     this.unexpectedEventSeq = [
       new invokerChecker(EVENT_VIRTUALCURSOR_CHANGED, aDocAcc)
     ];
   }
 }
--- a/accessible/tests/mochitest/pivot/test_virtualcursor.html
+++ b/accessible/tests/mochitest/pivot/test_virtualcursor.html
@@ -41,61 +41,61 @@
       gQueue = new eventQueue();
 
       gQueue.onFinish = function onFinish()
       {
         closeBrowserWindow();
       }
 
       queueTraversalSequence(gQueue, docAcc, HeadersTraversalRule, null,
-                             ['heading-1-1', 'heading-2-1', 'heading-2-2']);
+                             ["heading-1-1", "heading-2-1", "heading-2-2"]);
 
       queueTraversalSequence(
         gQueue, docAcc, ObjectTraversalRule, null,
-        ['Main Title', 'Lorem ipsum ',
-         'dolor', ' sit amet. Integer vitae urna leo, id ',
-         'semper', ' nulla. ', 'Second Section Title',
-         'Sed accumsan luctus lacus, vitae mollis arcu tristique vulputate.',
-         'An ', 'embedded', ' document.', 'Hide me', 'Link 1', 'Link 2',
-         'Link 3', 'Hello', 'World']);
+        ["Main Title", "Lorem ipsum ",
+         "dolor", " sit amet. Integer vitae urna leo, id ",
+         "semper", " nulla. ", "Second Section Title",
+         "Sed accumsan luctus lacus, vitae mollis arcu tristique vulputate.",
+         "An ", "embedded", " document.", "Hide me", "Link 1", "Link 2",
+         "Link 3", "Hello", "World"]);
 
       // Just a random smoke test to see if our setTextRange works.
       gQueue.push(
         new setVCRangeInvoker(
           docAcc,
-          getAccessible(doc.getElementById('paragraph-2'), nsIAccessibleText),
+          getAccessible(doc.getElementById("paragraph-2"), nsIAccessibleText),
           [2,6]));
 
       gQueue.push(new removeVCPositionInvoker(
-        docAcc, doc.getElementById('hide-me')));
+        docAcc, doc.getElementById("hide-me")));
 
       gQueue.push(new removeVCRootInvoker(
-        doc.getElementById('links')));
+        doc.getElementById("links")));
 
-      var [x, y] = getBounds(getAccessible(doc.getElementById('heading-1-1')));
+      var [x, y] = getBounds(getAccessible(doc.getElementById("heading-1-1")));
       gQueue.push(new moveVCCoordInvoker(docAcc, x + 1, y + 1, true,
-                                         HeadersTraversalRule, 'heading-1-1'));
+                                         HeadersTraversalRule, "heading-1-1"));
 
       // Already on the point, so we should not get a move event.
       gQueue.push(new moveVCCoordInvoker(docAcc, x + 1, y + 1, true,
                                          HeadersTraversalRule, false));
 
       // Attempting a coordinate outside any header, should not move.
       gQueue.push(new moveVCCoordInvoker(docAcc, x - 1, y - 1, true,
                                          HeadersTraversalRule, false));
 
       // Attempting a coordinate outside any header, should move to null
       gQueue.push(new moveVCCoordInvoker(docAcc, x - 1, y - 1, false,
                                          HeadersTraversalRule, null));
 
       queueTraversalSequence(
         gQueue, docAcc, ObjectTraversalRule,
-        getAccessible(doc.getElementById('paragraph-1')),
-        ['Lorem ipsum ', 'dolor', ' sit amet. Integer vitae urna leo, id ',
-         'semper', ' nulla. ']);
+        getAccessible(doc.getElementById("paragraph-1")),
+        ["Lorem ipsum ", "dolor", " sit amet. Integer vitae urna leo, id ",
+         "semper", " nulla. "]);
 
       gQueue.push(new setModalRootInvoker(docAcc, docAcc.parent,
                                           NS_ERROR_INVALID_ARG));
 
       // Put cursor in an ignored subtree
       // set isFromUserInput to false, just to test..
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
                                       getAccessible(doc.getElementById("hidden-link")),
--- a/accessible/tests/mochitest/pivot/test_virtualcursor_text.html
+++ b/accessible/tests/mochitest/pivot/test_virtualcursor_text.html
@@ -33,192 +33,192 @@
       gQueue = new eventQueue();
 
       gQueue.onFinish = function onFinish()
       {
         closeBrowserWindow();
       }
 
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('paragraph-1'))));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
-                  getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [4,5],
-                  getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [3,4],
-                  getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [5,7],
-                  getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,3],
-                  getAccessible(doc.getElementById('p1-link-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14],
-                  getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,3],
-                  getAccessible(doc.getElementById('p1-link-1'), nsIAccessibleText)));
+                                      getAccessible(doc.getElementById("paragraph-1"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,4],
+                  getAccessible(doc.getElementById("paragraph-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", CHAR_BOUNDARY, [4,5],
+                  getAccessible(doc.getElementById("paragraph-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", CHAR_BOUNDARY, [3,4],
+                  getAccessible(doc.getElementById("paragraph-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [5,7],
+                  getAccessible(doc.getElementById("paragraph-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,3],
+                  getAccessible(doc.getElementById("p1-link-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [10,14],
+                  getAccessible(doc.getElementById("paragraph-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,3],
+                  getAccessible(doc.getElementById("p1-link-1"), nsIAccessibleText)));
       // set user input to false, and see if it works
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [5,7],
-                  getAccessible(doc.getElementById('paragraph-1'), nsIAccessibleText)),
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [5,7],
+                  getAccessible(doc.getElementById("paragraph-1"), nsIAccessibleText)),
                   false);
 
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('section-1'))));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,1],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,9],
-                  getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
+                                      getAccessible(doc.getElementById("section-1"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,1],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,9],
+                  getAccessible(doc.getElementById("s1-link-1"), nsIAccessibleText)));
       // set user input to false, and see if it works
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14],
-                  getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText),
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [10,14],
+                  getAccessible(doc.getElementById("s1-link-1"), nsIAccessibleText),
                   false));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [4,6],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [7,12],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,2],
-                  getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [15,19],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [20,28],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,5],
-                  getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [6,10],
-                  getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,5],
-                  getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [20,28],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [15,19],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,2],
-                  getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [7,12],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [4,6],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [10,14],
-                  getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,9],
-                  getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,1],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [4,6],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [7,12],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,2],
+                  getAccessible(doc.getElementById("s1-link-2"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [15,19],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [20,28],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,5],
+                  getAccessible(doc.getElementById("section-2"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [6,10],
+                  getAccessible(doc.getElementById("section-2"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,5],
+                  getAccessible(doc.getElementById("section-2"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [20,28],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [15,19],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,2],
+                  getAccessible(doc.getElementById("s1-link-2"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [7,12],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [4,6],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [10,14],
+                  getAccessible(doc.getElementById("s1-link-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,9],
+                  getAccessible(doc.getElementById("s1-link-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,1],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
 
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('s1-link-1'))));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [1,2],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [0,1],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [1,2],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [0,1],
-                  getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [1,2],
-                  getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [2,9],
-                  getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [10,14],
-                  getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [3,4],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [13,14],
-                  getAccessible(doc.getElementById('s1-link-1'), nsIAccessibleText)));
+                                      getAccessible(doc.getElementById("s1-link-1"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", CHAR_BOUNDARY, [1,2],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", CHAR_BOUNDARY, [0,1],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", CHAR_BOUNDARY, [1,2],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", CHAR_BOUNDARY, [0,1],
+                  getAccessible(doc.getElementById("s1-link-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", CHAR_BOUNDARY, [1,2],
+                  getAccessible(doc.getElementById("s1-link-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [2,9],
+                  getAccessible(doc.getElementById("s1-link-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [10,14],
+                  getAccessible(doc.getElementById("s1-link-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", CHAR_BOUNDARY, [3,4],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", CHAR_BOUNDARY, [13,14],
+                  getAccessible(doc.getElementById("s1-link-1"), nsIAccessibleText)));
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('section-2'))));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', CHAR_BOUNDARY, [27,28],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', CHAR_BOUNDARY, [0,1],
-                  getAccessible(doc.getElementById('section-2'), nsIAccessibleText)));
+                                      getAccessible(doc.getElementById("section-2"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", CHAR_BOUNDARY, [27,28],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", CHAR_BOUNDARY, [0,1],
+                  getAccessible(doc.getElementById("section-2"), nsIAccessibleText)));
 
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('paragraph-2'))));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,12],
-                  getAccessible(doc.getElementById('paragraph-2'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
-                  getAccessible(doc.getElementById('cell-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,8],
-                  getAccessible(doc.getElementById('cell-2'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,3],
-                  getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [4,11],
-                  getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,6],
-                  getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [7,13],
-                  getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
-                  getAccessible(doc.getElementById('section-3'), nsIAccessibleText)));
+                                      getAccessible(doc.getElementById("paragraph-2"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,12],
+                  getAccessible(doc.getElementById("paragraph-2"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,7],
+                  getAccessible(doc.getElementById("cell-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,8],
+                  getAccessible(doc.getElementById("cell-2"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,3],
+                  getAccessible(doc.getElementById("cell-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [4,11],
+                  getAccessible(doc.getElementById("cell-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,6],
+                  getAccessible(doc.getElementById("cell-4"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [7,13],
+                  getAccessible(doc.getElementById("cell-4"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,7],
+                  getAccessible(doc.getElementById("section-3"), nsIAccessibleText)));
 
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('section-3'))));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
-                  getAccessible(doc.getElementById('section-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [7,13],
-                  getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,6],
-                  getAccessible(doc.getElementById('cell-4'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [4,11],
-                  getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,3],
-                  getAccessible(doc.getElementById('cell-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,8],
-                  getAccessible(doc.getElementById('cell-2'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,7],
-                  getAccessible(doc.getElementById('cell-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,12],
-                  getAccessible(doc.getElementById('paragraph-2'), nsIAccessibleText)));
+                                      getAccessible(doc.getElementById("section-3"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,7],
+                  getAccessible(doc.getElementById("section-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [7,13],
+                  getAccessible(doc.getElementById("cell-4"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,6],
+                  getAccessible(doc.getElementById("cell-4"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [4,11],
+                  getAccessible(doc.getElementById("cell-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,3],
+                  getAccessible(doc.getElementById("cell-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,8],
+                  getAccessible(doc.getElementById("cell-2"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,7],
+                  getAccessible(doc.getElementById("cell-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,12],
+                  getAccessible(doc.getElementById("paragraph-2"), nsIAccessibleText)));
 
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('paragraph-3'))));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,7],
-                  getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,8],
-                  getAccessible(doc.getElementById('p3-link-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [8,10],
-                  getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
-                  getAccessible(doc.getElementById('p3-link-2'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,5],
-                  getAccessible(doc.getElementById('p3-link-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [14,20],
-                  getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,5],
-                  getAccessible(doc.getElementById('p3-link-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,4],
-                  getAccessible(doc.getElementById('p3-link-2'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [8,10],
-                  getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,8],
-                  getAccessible(doc.getElementById('p3-link-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,7],
-                  getAccessible(doc.getElementById('paragraph-3'), nsIAccessibleText)));
+                                      getAccessible(doc.getElementById("paragraph-3"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,7],
+                  getAccessible(doc.getElementById("paragraph-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,8],
+                  getAccessible(doc.getElementById("p3-link-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [8,10],
+                  getAccessible(doc.getElementById("paragraph-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,4],
+                  getAccessible(doc.getElementById("p3-link-2"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,5],
+                  getAccessible(doc.getElementById("p3-link-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [14,20],
+                  getAccessible(doc.getElementById("paragraph-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,5],
+                  getAccessible(doc.getElementById("p3-link-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,4],
+                  getAccessible(doc.getElementById("p3-link-2"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [8,10],
+                  getAccessible(doc.getElementById("paragraph-3"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,8],
+                  getAccessible(doc.getElementById("p3-link-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,7],
+                  getAccessible(doc.getElementById("paragraph-3"), nsIAccessibleText)));
 
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('s1-link-2'))));
+                                      getAccessible(doc.getElementById("s1-link-2"))));
       // Start with the pivot in the middle of the paragraph
       gQueue.push(new setVCPosInvoker(docAcc, "moveNext", ObjectTraversalRule, " will traverse"));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [15,19],
-                  getAccessible(doc.getElementById('section-1'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, [0,2],
-                  getAccessible(doc.getElementById('s1-link-2'), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [15,19],
+                  getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [0,2],
+                  getAccessible(doc.getElementById("s1-link-2"), nsIAccessibleText)));
 
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('end-block'))));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
-                  getAccessible(doc.getElementById('end-block'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, null, false));
+                                      getAccessible(doc.getElementById("end-block"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,4],
+                  getAccessible(doc.getElementById("end-block"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, null, false));
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('start-block'))));
-      gQueue.push(new setVCTextInvoker(docAcc, 'moveNextByText', WORD_BOUNDARY, [0,4],
-                  getAccessible(doc.getElementById('start-block'), nsIAccessibleText)));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false));
+                                      getAccessible(doc.getElementById("start-block"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", WORD_BOUNDARY, [0,4],
+                  getAccessible(doc.getElementById("start-block"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, null, false));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, null, false));
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
-                                      getAccessible(doc.getElementById('start-block'))));
-      gQueue.push(new setVCTextInvoker(docAcc, 'movePreviousByText', WORD_BOUNDARY, null, false));
+                                      getAccessible(doc.getElementById("start-block"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, null, false));
 
       gQueue.invoke();
     }
 
     SimpleTest.waitForExplicitFinish();
     addLoadEvent(function () {
       /* We open a new browser because we need to test with a top-level content
          document. */
--- a/accessible/tests/mochitest/states/test_inputs.html
+++ b/accessible/tests/mochitest/states/test_inputs.html
@@ -80,24 +80,24 @@
       testStates(invalid[i], STATE_INVALID);
       testStates(invalid[i] + "2", 0, 0, STATE_INVALID);
     }
 
     ////////////////////////////////////////////////////////////////////////////
     // not 'invalid' state
     // (per spec, min/maxlength are always valid until interactively edited)
     var validInput = document.createElement("input");
-    validInput.maxLength = '0';
-    validInput.value = 'a';
+    validInput.maxLength = "0";
+    validInput.value = "a";
     ok(validInput.validity.valid,
        "input should be valid despite maxlength (no interactive edits)");
 
     var validInput2 = document.createElement("input");
-    validInput2.minLength = '1';
-    validInput2.value = '';
+    validInput2.minLength = "1";
+    validInput2.value = "";
     ok(validInput2.validity.valid,
        "input should be valid despite minlength (no interactive edits)");
 
     var valid = ["minlength","maxlength"];
     for (i in valid) {
       testStates(valid[i], 0, 0, STATE_INVALID);
       testStates(valid[i] + "2", 0, 0, STATE_INVALID);
     }
--- a/accessible/tests/mochitest/treeupdate/test_ariaowns.html
+++ b/accessible/tests/mochitest/treeupdate/test_ariaowns.html
@@ -576,25 +576,25 @@
         return `Set ARIA owns on inaccessible span element that contains accessible children`;
       }
     }
 
     function test9_prepare()
     {
       this.eventSeq = [
         new invokerChecker(EVENT_SHOW, () => {
-          let doc = getNode('t9_container').contentDocument;
-          return doc && doc.getElementById('container');
+          let doc = getNode("t9_container").contentDocument;
+          return doc && doc.getElementById("container");
         })
       ];
 
       this.invoke = () => {
         // The \ before the final /script avoids the script from being terminated
         // by the html parser.
-        getNode('t9_container').src = `data:text/html,
+        getNode("t9_container").src = `data:text/html,
           <html><body></body>
           <script>
             let el = document.createElement('div');
             el.id = 'container';
             el.innerHTML = "<input id='input'>";
             document.documentElement.appendChild(el);
           <\/script></html>`;
       }
@@ -603,36 +603,36 @@
         var tree =
           { INTERNAL_FRAME: [
             { DOCUMENT: [
               { SECTION: [
                 { ENTRY: [] }
               ] }
             ] }
           ] };
-        testAccessibleTree('t9_container', tree);
+        testAccessibleTree("t9_container", tree);
       }
 
       this.getID = () => {
         return `Set ARIA owns on a document (part1)`;
       }
     }
 
     function test9_setARIAOwns()
     {
       this.eventSeq = [
         new invokerChecker(EVENT_SHOW, () => {
-          let doc = getNode('t9_container').contentDocument;
-          return doc && doc.getElementById('input');
+          let doc = getNode("t9_container").contentDocument;
+          return doc && doc.getElementById("input");
         })
       ];
 
       this.invoke = () => {
-        let doc = getNode('t9_container').contentDocument;
-        doc.body.setAttribute('aria-owns', 'input');
+        let doc = getNode("t9_container").contentDocument;
+        doc.body.setAttribute("aria-owns", "input");
       }
 
       this.finalCheck = () => {
         var tree =
           { INTERNAL_FRAME: [
             { DOCUMENT: [
               { SECTION: [] },
               { ENTRY: [] }
@@ -645,24 +645,24 @@
         return `Set ARIA owns on a document (part2)`;
       }
     }
 
     function test9_finish()
     {
       this.eventSeq = [
         new invokerChecker(EVENT_REORDER, () => {
-          return getNode('t9_container').contentDocument;
+          return getNode("t9_container").contentDocument;
         })
       ];
 
       this.invoke = () => {
         // trigger a tree update.
-        let doc = getNode('t9_container').contentDocument;
-        doc.body.appendChild(document.createElement('p'));
+        let doc = getNode("t9_container").contentDocument;
+        doc.body.appendChild(document.createElement("p"));
       }
 
       this.finalCheck = () => {
         var tree =
           { INTERNAL_FRAME: [
             { DOCUMENT: [
               { PARAGRAPH: [] },
               { SECTION: [] },
@@ -678,55 +678,55 @@
     }
 
     /**
      * Put ARIA owned child back when ARIA owner removed.
      */
     function test10_removeARIAOwner()
     {
       this.eventSeq = [
-        new invokerChecker(EVENT_HIDE, getAccessible('t10_owner'))
+        new invokerChecker(EVENT_HIDE, getAccessible("t10_owner"))
       ];
 
       this.invoke = () => {
         let tree =
           { SECTION: [ // t10_container
             { SECTION: [ // t10_owner
               { ENTRY: [] } // t10_child
             ] }
           ] };
-        testAccessibleTree('t10_container', tree);
+        testAccessibleTree("t10_container", tree);
 
-        getNode('t10_owner').remove();
+        getNode("t10_owner").remove();
       }
 
       this.getID = () => {
-        return 'Put aria owned child back when aria owner removed';
+        return "Put aria owned child back when aria owner removed";
       }
     }
 
     function test10_finishTest()
     {
       this.eventSeq = [
-        new invokerChecker(EVENT_REORDER, 't10_container')
+        new invokerChecker(EVENT_REORDER, "t10_container")
       ];
 
       this.invoke = () => {
         // trigger a tree update.
-        getNode('t10_container').append(document.createElement('p'));
+        getNode("t10_container").append(document.createElement("p"));
       }
 
       this.finalCheck = () => {
         let tree =
           { SECTION: [ // t10_container
             // { ENTRY: [] }, // t10_child
             { PARAGRAPH: [] }
           ] };
-        testAccessibleTree('t10_container', tree);
-        todo(false, 'Input accessible has be moved back in the tree');
+        testAccessibleTree("t10_container", tree);
+        todo(false, "Input accessible has be moved back in the tree");
       }
 
       this.getID = () => {
         return `Put aria owned child back when aria owner removed (finish test)`;
       }
     }
 
     ////////////////////////////////////////////////////////////////////////////
--- a/accessible/tests/mochitest/treeupdate/test_bug1276857.html
+++ b/accessible/tests/mochitest/treeupdate/test_bug1276857.html
@@ -16,84 +16,84 @@
   <script type="application/javascript"
           src="../events.js"></script>
 
   <script type="application/javascript">
     function runTest()
     {
       // children change will recreate the table
       this.eventSeq = [
-        new invokerChecker(EVENT_REORDER, getNode('c1'))
+        new invokerChecker(EVENT_REORDER, getNode("c1"))
       ];
 
       this.invoke = function runTest_invoke() {
         var tree = {
           SECTION: [ // c1
             { TEXT_LEAF: [] }, // Some text
             { TEXT_CONTAINER: [
               { TEXT_LEAF: [] } // something with ..
             ] },
             { TEXT_LEAF: [] } // More text
           ]
         };
-        testAccessibleTree('c1', tree);
+        testAccessibleTree("c1", tree);
 
-        getNode('c1_t').querySelector('span').remove();
+        getNode("c1_t").querySelector("span").remove();
       };
 
       this.finalCheck = function runTest_finalCheck() {
         var tree = {
           SECTION: [ // c1
             { TEXT_LEAF: [] }, // Some text
             { TEXT_LEAF: [] } // More text
           ]
         };
-        testAccessibleTree('c1', tree);
+        testAccessibleTree("c1", tree);
       };
 
       this.getID = function runTest_getID()
       {
-        return 'child DOM node is removed before the layout notifies the a11y about parent removal/show';
+        return "child DOM node is removed before the layout notifies the a11y about parent removal/show";
       };
     }
 
     function runShadowTest()
     {
       // children change will recreate the table
       this.eventSeq = [
-        new invokerChecker(EVENT_REORDER, 'c2')
+        new invokerChecker(EVENT_REORDER, "c2")
       ];
 
       this.invoke = function runShadowTest_invoke() {
         var tree = {
           SECTION: [ // c2
             { TEXT_LEAF: [] }, // Some text
             { TEXT_CONTAINER: [
               { TEXT_LEAF: [] } // something with ..
             ] },
             { TEXT_LEAF: [] } // More text
           ]
         };
-        testAccessibleTree('c2', tree);
+        testAccessibleTree("c2", tree);
 
-        gShadowRoot.firstElementChild.querySelector('span').remove();
+        gShadowRoot.firstElementChild.querySelector("span").remove();
       };
 
       this.finalCheck = function runShadowTest_finalCheck() {
         var tree = {
           SECTION: [ // c2
             { TEXT_LEAF: [] }, // Some text
             { TEXT_LEAF: [] } // More text
           ]
         };
-        testAccessibleTree('c2', tree);
+        testAccessibleTree("c2", tree);
       };
 
       this.getID = function runShadowTest_getID() {
-        return 'child DOM node is removed before the layout notifies the a11y about parent removal/show in shadow DOM';
+        return "child DOM node is removed before the layout notifies the a11y about parent removal/show in shadow DOM";
       };
     }
 
     //enableLogging("tree");
     //gA11yEventDumpToConsole = true;
 
     var gQueue = null;
     function doTest()
@@ -130,14 +130,14 @@
     <span style="display: table-cell">something with accessibles goes here</span>
     More text
     </div>
   </template>
 
   <div id="c2"><div id="c2_c" role="presentation"></div></div>
 
   <script>
-    var gShadowRoot = document.getElementById('c2_c').createShadowRoot();
-    var tmpl = document.getElementById('tmpl');
+    var gShadowRoot = document.getElementById("c2_c").createShadowRoot();
+    var tmpl = document.getElementById("tmpl");
     gShadowRoot.appendChild(document.importNode(tmpl.content, true));
   </script>
 </body>
 </html>
--- a/accessible/tests/mochitest/treeupdate/test_doc.html
+++ b/accessible/tests/mochitest/treeupdate/test_doc.html
@@ -147,17 +147,17 @@
         var tree = {
           role: ROLE_DOCUMENT,
           children: [
             {
               role: ROLE_PARAGRAPH,
               children: [
                 {
                   role: ROLE_TEXT_LEAF,
-                  name: 'New Wave'
+                  name: "New Wave"
                 }
               ]
             }
           ]
         };
         testAccessibleTree(getDocNode(aID), tree);
       }
 
@@ -239,17 +239,17 @@
 
     function closeIFrameDoc(aID)
     {
       this.__proto__ = new rootContentInserted(aID, "Works?");
 
       this.invoke = function closeIFrameDoc_invoke()
       {
         // Write and close document.
-        getDocNode(aID).write('Works?'); getDocNode(aID).close();
+        getDocNode(aID).write("Works?"); getDocNode(aID).close();
       }
 
       this.getID = function closeIFrameDoc_getID()
       {
         return "close document";
       }
     }
 
--- a/accessible/tests/mochitest/treeupdate/test_general.html
+++ b/accessible/tests/mochitest/treeupdate/test_general.html
@@ -25,22 +25,22 @@
     function prependAppend(aContainer)
     {
       this.eventSeq = [
         new invokerChecker(EVENT_REORDER, aContainer)
       ];
 
       this.invoke = function prependAppend_invoke()
       {
-        var checkbox = document.createElement('input');
-        checkbox.setAttribute('type', 'checkbox');
+        var checkbox = document.createElement("input");
+        checkbox.setAttribute("type", "checkbox");
         getNode(aContainer).insertBefore(checkbox, getNode(aContainer).firstChild);
 
-        var button = document.createElement('input');
-        button.setAttribute('type', 'button');
+        var button = document.createElement("input");
+        button.setAttribute("type", "button");
         getNode(aContainer).appendChild(button);
       }
 
       this.finalCheck = function prependAppend_finalCheck()
       {
         var accTree =
           { SECTION: [ // container
             { CHECKBUTTON: [ ] },
--- a/accessible/tests/mochitest/treeupdate/test_select.html
+++ b/accessible/tests/mochitest/treeupdate/test_select.html
@@ -92,33 +92,33 @@
     }
 
     /**
      * Setting @href on option makes the accessible to recreate.
      */
     function setHrefOnOption()
     {
       this.eventSeq = [
-        new invokerChecker(EVENT_HIDE, 's2_o'),
-        new invokerChecker(EVENT_SHOW, 's2_o'),
+        new invokerChecker(EVENT_HIDE, "s2_o"),
+        new invokerChecker(EVENT_SHOW, "s2_o"),
       ];
 
       this.invoke = function setHrefOnOption_setHref()
       {
-        getNode('s2_o').setAttribute('href', '1');
+        getNode("s2_o").setAttribute("href", "1");
       }
 
       this.finalCheck = function() {
         var tree =
           { COMBOBOX: [
             { COMBOBOX_LIST: [
               { COMBOBOX_OPTION: [ ] }
             ] }
           ] };
-        testAccessibleTree('s2', tree);
+        testAccessibleTree("s2", tree);
       }
 
       this.getID = function removeptions_getID()
       {
         return "setting @href on select option";
       }
     }
 
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -534,30 +534,30 @@
       "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
       "requires": {
         "is-property": "1.0.2"
       }
     },
     "glob": {
       "version": "7.1.2",
       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
-      "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+      "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
       "requires": {
         "fs.realpath": "1.0.0",
         "inflight": "1.0.6",
         "inherits": "2.0.3",
         "minimatch": "3.0.4",
         "once": "1.4.0",
         "path-is-absolute": "1.0.1"
       }
     },
     "globals": {
       "version": "9.18.0",
       "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
-      "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
+      "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo="
     },
     "globby": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
       "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
       "requires": {
         "array-union": "1.0.2",
         "arrify": "1.0.1",
@@ -762,17 +762,17 @@
     "lodash": {
       "version": "4.17.4",
       "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
       "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
     },
     "minimatch": {
       "version": "3.0.4",
       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+      "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
       "requires": {
         "brace-expansion": "1.1.8"
       }
     },
     "minimist": {
       "version": "0.0.8",
       "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
       "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
@@ -892,17 +892,17 @@
     "progress": {
       "version": "1.1.8",
       "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
       "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74="
     },
     "readable-stream": {
       "version": "2.3.3",
       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
-      "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+      "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=",
       "requires": {
         "core-util-is": "1.0.2",
         "inherits": "2.0.3",
         "isarray": "1.0.0",
         "process-nextick-args": "1.0.7",
         "safe-buffer": "5.1.1",
         "string_decoder": "1.0.3",
         "util-deprecate": "1.0.2"
@@ -976,17 +976,17 @@
     "rx-lite": {
       "version": "3.1.2",
       "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
       "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI="
     },
     "safe-buffer": {
       "version": "5.1.1",
       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
-      "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
+      "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM="
     },
     "sax": {
       "version": "1.2.4",
       "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
       "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
     },
     "shelljs": {
       "version": "0.7.8",
@@ -1006,17 +1006,17 @@
     "sprintf-js": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
     },
     "string_decoder": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
-      "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+      "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=",
       "requires": {
         "safe-buffer": "5.1.1"
       }
     },
     "string-width": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
       "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",