Merge m-c to autoland. a=merge
authorRyan VanderMeulen <ryanvm@gmail.com>
Tue, 17 Jan 2017 11:32:39 -0500
changeset 374672 8cc222f36c0437bd594b6bc2d6eade707cd6838d
parent 374671 ec799efea60cbc4462ef8cc155b6bdb2a9789e91 (current diff)
parent 374657 6a23526fe5168087d7e4132c0705aefcaed5f571 (diff)
child 374673 6d632eefccb4fb46f2e157403a0790b916ff7e24
push id6996
push userjlorenzo@mozilla.com
push dateMon, 06 Mar 2017 20:48:21 +0000
treeherdermozilla-beta@d89512dab048 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone53.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge m-c to autoland. a=merge
testing/web-platform/meta/dom/nodes/rootNode.html.ini
--- a/accessible/tests/mochitest/events/test_focus_name.html
+++ b/accessible/tests/mochitest/events/test_focus_name.html
@@ -68,30 +68,30 @@
     var gTooltipElm = null;
 
     function doTests()
     {
       gButtonElm = getNode("button");
       gTextboxElm = getNode("textbox");
       gTooltipElm = getNode("tooltip");
 
-      gButtonElm.addEventListener("focus", gFocusHandler, false);
-      gButtonElm.addEventListener("blur", gBlurHandler, false);
-      gTextboxElm.addEventListener("focus", gFocusHandler, false);
-      gTextboxElm.addEventListener("blur", gBlurHandler, false);
+      gButtonElm.addEventListener("focus", gFocusHandler);
+      gButtonElm.addEventListener("blur", gBlurHandler);
+      gTextboxElm.addEventListener("focus", gFocusHandler);
+      gTextboxElm.addEventListener("blur", gBlurHandler);
 
       // The aria-describedby is changed on DOM focus. Accessible description
       // should be updated when a11y focus is fired.
       gQueue = new eventQueue(nsIAccessibleEvent.EVENT_FOCUS);
       gQueue.onFinish = function()
       {
-        gButtonElm.removeEventListener("focus", gFocusHandler, false);
-        gButtonElm.removeEventListener("blur", gBlurHandler, false);
-        gTextboxElm.removeEventListener("focus", gFocusHandler, false);
-        gTextboxElm.removeEventListener("blur", gBlurHandler, false);
+        gButtonElm.removeEventListener("focus", gFocusHandler);
+        gButtonElm.removeEventListener("blur", gBlurHandler);
+        gTextboxElm.removeEventListener("focus", gFocusHandler);
+        gTextboxElm.removeEventListener("blur", gBlurHandler);
       }
 
       var descr = "It's a tooltip";
       gQueue.push(new synthFocus("button", new actionChecker("button", descr)));
       gQueue.push(new synthTab("textbox", new actionChecker("textbox", descr)));
 
       gQueue.invoke(); // Will call SimpleTest.finish();
     }
--- a/accessible/tests/mochitest/grid.js
+++ b/accessible/tests/mochitest/grid.js
@@ -59,18 +59,18 @@ function grid(aTableIdentifier)
           return cell;
       }
     }
     return null;
   }
 
   this.initGrid = function initGrid()
   {
-    this.table.addEventListener("keypress", this, false);
-    this.table.addEventListener("click", this, false);
+    this.table.addEventListener("keypress", this);
+    this.table.addEventListener("click", this);
   }
 
   this.handleEvent = function handleEvent(aEvent)
   {
     if (aEvent instanceof nsIDOMKeyEvent)
       this.handleKeyEvent(aEvent);
     else
       this.handleClickEvent(aEvent);
--- a/accessible/tests/mochitest/test_bug420863.html
+++ b/accessible/tests/mochitest/test_bug420863.html
@@ -41,17 +41,17 @@ https://bugzilla.mozilla.org/show_bug.cg
       var td3Node = getNode("td3");
 
       // register 'click' event handler
       gClickHandler = {
         handleEvent: function handleEvent(aEvent)
         {
         }
       };
-      td3Node.addEventListener("click", gClickHandler, false);
+      td3Node.addEventListener("click", gClickHandler);
 
       // check actions
       var actionsArray = [
         {
           ID: "td2", // "onclick" attribute
           actionName: "click",
           actionIndex: 0,
           events: CLICK_EVENTS
@@ -59,17 +59,17 @@ https://bugzilla.mozilla.org/show_bug.cg
         {
           ID: td3Node,
           actionName: "click",
           actionIndex: 0,
           events: CLICK_EVENTS,
           checkOnClickEvent: function check(aEvent)
           {
             // unregister click event handler
-            this.ID.removeEventListener("click", gClickHandler, false);
+            this.ID.removeEventListener("click", gClickHandler);
 
             // check actions
             is(getAccessible(this.ID).actionCount, 0,
                "td3 shouldn't have actions");
           }
         }
       ];
 
--- a/addon-sdk/source/lib/framescript/content.jsm
+++ b/addon-sdk/source/lib/framescript/content.jsm
@@ -69,17 +69,17 @@ cpmm.addMessageListener('sdk/remote/proc
 })
 
 
 var frames = new Set();
 
 this.registerContentFrame = contentFrame => {
   contentFrame.addEventListener("unload", () => {
     unregisterContentFrame(contentFrame);
-  }, false);
+  });
 
   frames.add(contentFrame);
 
   for (let addon of addons.values()) {
     if ("child" in addon)
       addon.child.registerContentFrame(contentFrame);
   }
 };
--- a/addon-sdk/source/lib/sdk/addon/window.js
+++ b/addon-sdk/source/lib/sdk/addon/window.js
@@ -47,19 +47,19 @@ docShell.createAboutBlankContentViewer(a
 // are necessary for hidden frames etc..
 var window = docShell.contentViewer.DOMDocument.defaultView;
 window.location = "data:application/vnd.mozilla.xul+xml;charset=utf-8,<window/>";
 
 // Create a promise that is delivered once add-on window is interactive,
 // used by add-on runner to defer add-on loading until window is ready.
 var { promise, resolve } = defer();
 eventTarget.addEventListener("DOMContentLoaded", function handler(event) {
-  eventTarget.removeEventListener("DOMContentLoaded", handler, false);
+  eventTarget.removeEventListener("DOMContentLoaded", handler);
   resolve();
-}, false);
+});
 
 exports.ready = promise;
 exports.window = window;
 
 // Still close window on unload to claim memory back early.
 unload(function() {
   window.close()
   frame.parentNode.removeChild(frame);
--- a/addon-sdk/source/lib/sdk/content/l10n-html.js
+++ b/addon-sdk/source/lib/sdk/content/l10n-html.js
@@ -65,18 +65,17 @@ function translateElement(element) {
 
     translateElementAttributes(child);
   }
 }
 exports.translateElement = translateElement;
 
 function onDocumentReady2Translate(event) {
   let document = event.target;
-  document.removeEventListener("DOMContentLoaded", onDocumentReady2Translate,
-                               false);
+  document.removeEventListener("DOMContentLoaded", onDocumentReady2Translate);
 
   translateElement(document);
 
   try {
     // Finally display document when we finished replacing all text content
     if (document.defaultView)
       removeSheet(document.defaultView, hideSheetUri, 'user');
   }
@@ -103,18 +102,17 @@ function onContentWindow(document) {
     // First hide content of the document in order to have content blinking
     // between untranslated and translated states
     loadSheet(document.defaultView, hideSheetUri, 'user');
   }
   catch(e) {
     console.exception(e);
   }
   // Wait for DOM tree to be built before applying localization
-  document.addEventListener("DOMContentLoaded", onDocumentReady2Translate,
-                            false);
+  document.addEventListener("DOMContentLoaded", onDocumentReady2Translate);
 }
 
 // Listen to creation of content documents in order to translate them as soon
 // as possible in their loading process
 const ON_CONTENT = "document-element-inserted";
 let enabled = false;
 function enable() {
   if (enabled)
--- a/addon-sdk/source/lib/sdk/context-menu.js
+++ b/addon-sdk/source/lib/sdk/context-menu.js
@@ -703,21 +703,21 @@ var MenuWrapper = Class({
     this.populated = false;
     this.menuMap = new Map();
 
     // updateItemVisibilities will run first, updateOverflowState will run after
     // all other instances of this module have run updateItemVisibilities
     this._updateItemVisibilities = this.updateItemVisibilities.bind(this);
     this.contextMenu.addEventListener("popupshowing", this._updateItemVisibilities, true);
     this._updateOverflowState = this.updateOverflowState.bind(this);
-    this.contextMenu.addEventListener("popupshowing", this._updateOverflowState, false);
+    this.contextMenu.addEventListener("popupshowing", this._updateOverflowState);
   },
 
   destroy: function destroy() {
-    this.contextMenu.removeEventListener("popupshowing", this._updateOverflowState, false);
+    this.contextMenu.removeEventListener("popupshowing", this._updateOverflowState);
     this.contextMenu.removeEventListener("popupshowing", this._updateItemVisibilities, true);
 
     if (!this.populated)
       return;
 
     // If we're getting unloaded at runtime then we must remove all the
     // generated XUL nodes
     let oldParent = null;
@@ -877,17 +877,17 @@ var MenuWrapper = Class({
 
       let self = this;
       xulNode.addEventListener("command", function(event) {
         // Only care about clicks directly on this item
         if (event.target !== xulNode)
           return;
 
         itemActivated(item, xulNode);
-      }, false);
+      });
     }
 
     this.insertIntoXUL(item, xulNode, after);
     this.updateXULClass(xulNode);
     xulNode.data = item.data;
 
     if (item instanceof Menu) {
       let menupopup = this.window.document.createElement("menupopup");
--- a/addon-sdk/source/lib/sdk/deprecated/unit-test.js
+++ b/addon-sdk/source/lib/sdk/deprecated/unit-test.js
@@ -313,19 +313,19 @@ TestRunner.prototype = {
     let wins = windows(null, { includePrivate: true });
     let winPromises = wins.map(win => {
       return new Promise(resolve => {
         if (["interactive", "complete"].indexOf(win.document.readyState) >= 0) {
           resolve()
         }
         else {
           win.addEventListener("DOMContentLoaded", function onLoad() {
-            win.removeEventListener("DOMContentLoaded", onLoad, false);
+            win.removeEventListener("DOMContentLoaded", onLoad);
             resolve();
-          }, false);
+          });
         }
       });
     });
 
     PromiseDebugging.flushUncaughtErrors();
     PromiseDebugging.removeUncaughtErrorObserver(this._uncaughtErrorObserver);
 
 
--- a/addon-sdk/source/lib/sdk/frame/hidden-frame.js
+++ b/addon-sdk/source/lib/sdk/frame/hidden-frame.js
@@ -26,20 +26,20 @@ var cache = new Set();
 var elements = new WeakMap();
 
 function contentLoaded(target) {
   var deferred = defer();
   target.addEventListener("DOMContentLoaded", function DOMContentLoaded(event) {
     // "DOMContentLoaded" events from nested frames propagate up to target,
     // ignore events unless it's DOMContentLoaded for the given target.
     if (event.target === target || event.target === target.contentDocument) {
-      target.removeEventListener("DOMContentLoaded", DOMContentLoaded, false);
+      target.removeEventListener("DOMContentLoaded", DOMContentLoaded);
       deferred.resolve(target);
     }
-  }, false);
+  });
   return deferred.promise;
 }
 
 function FrameOptions(options) {
   options = options || {}
   return validateOptions(options, FrameOptions.validator);
 }
 FrameOptions.validator = {
--- a/addon-sdk/source/lib/sdk/panel.js
+++ b/addon-sdk/source/lib/sdk/panel.js
@@ -142,17 +142,17 @@ var SinglePanelManager = {
       SinglePanelManager.notifyPanelCanOpen(panelToOpen, callback);
     }
   },
   notifyPanelCanOpen: function(panel, callback) {
     let view = viewFor(panel);
     // Can't pass an arrow function as the event handler because we need to be
     // able to call |removeEventListener| later.
     view.addEventListener("popuphidden", SinglePanelManager.onVisiblePanelHidden, true);
-    view.addEventListener("popupshown", SinglePanelManager.onVisiblePanelShown, false);
+    view.addEventListener("popupshown", SinglePanelManager.onVisiblePanelShown);
     SinglePanelManager.enqueuedPanel = null;
     SinglePanelManager.enqueuedPanelCallback = null;
     SinglePanelManager.visiblePanel = Cu.getWeakReference(panel);
     callback();
   },
   onVisiblePanelShown: function(event) {
     let panel = panelFor(event.target);
     if (SinglePanelManager.enqueuedPanel) {
@@ -165,17 +165,17 @@ var SinglePanelManager = {
     let view = event.target;
     let panel = panelFor(view);
     let currentPanel = getPanelFromWeakRef(SinglePanelManager.visiblePanel);
     if (currentPanel && currentPanel != panel) {
       return;
     }
     SinglePanelManager.visiblePanel = null;
     view.removeEventListener("popuphidden", SinglePanelManager.onVisiblePanelHidden, true);
-    view.removeEventListener("popupshown", SinglePanelManager.onVisiblePanelShown, false);
+    view.removeEventListener("popupshown", SinglePanelManager.onVisiblePanelShown);
     let nextPanel = getPanelFromWeakRef(SinglePanelManager.enqueuedPanel);
     let nextPanelCallback = SinglePanelManager.enqueuedPanelCallback;
     if (nextPanel) {
       SinglePanelManager.notifyPanelCanOpen(nextPanel, nextPanelCallback);
     }
   }
 };
 
--- a/addon-sdk/source/lib/sdk/panel/utils.js
+++ b/addon-sdk/source/lib/sdk/panel/utils.js
@@ -326,17 +326,17 @@ function make(document, options) {
       events.emit(type, { subject: panel })
   }
 
   panel.addEventListener("popupshowing", onPopupShowing);
   panel.addEventListener("popuphiding", onPopupHiding);
   for (let event of ["popupshowing", "popuphiding", "popupshown", "popuphidden"])
     panel.addEventListener(event, onPanelStateChange);
 
-  panel.addEventListener("click", onPanelClick, false);
+  panel.addEventListener("click", onPanelClick);
 
   // Panel content document can be either in panel `viewFrame` or in
   // a `backgroundFrame` depending on panel state. Listeners are set
   // on both to avoid setting and removing listeners on panel state changes.
 
   panel.addEventListener("DOMContentLoaded", onContentReady, true);
   backgroundFrame.addEventListener("DOMContentLoaded", onContentReady, true);
 
--- a/addon-sdk/source/lib/sdk/tabs/tab-fennec.js
+++ b/addon-sdk/source/lib/sdk/tabs/tab-fennec.js
@@ -31,29 +31,29 @@ const Tab = Class({
     let tabInternals = tabNS(this);
     rawTabNS(tab).tab = this;
 
     let window = tabInternals.window = options.window || getOwnerWindow(tab);
     tabInternals.tab = tab;
 
     // TabReady
     let onReady = tabInternals.onReady = onTabReady.bind(this);
-    tab.browser.addEventListener(EVENTS.ready.dom, onReady, false);
+    tab.browser.addEventListener(EVENTS.ready.dom, onReady);
 
     // TabPageShow
     let onPageShow = tabInternals.onPageShow = onTabPageShow.bind(this);
-    tab.browser.addEventListener(EVENTS.pageshow.dom, onPageShow, false);
+    tab.browser.addEventListener(EVENTS.pageshow.dom, onPageShow);
 
     // TabLoad
     let onLoad = tabInternals.onLoad = onTabLoad.bind(this);
     tab.browser.addEventListener(EVENTS.load.dom, onLoad, true);
 
     // TabClose
     let onClose = tabInternals.onClose = onTabClose.bind(this);
-    window.BrowserApp.deck.addEventListener(EVENTS.close.dom, onClose, false);
+    window.BrowserApp.deck.addEventListener(EVENTS.close.dom, onClose);
 
     unload(cleanupTab.bind(null, this));
   },
 
   /**
    * The title of the page currently loaded in the tab.
    * Changing this property changes an actual title.
    * @type {String}
@@ -186,24 +186,24 @@ exports.Tab = Tab;
 viewFor.define(Tab, x => tabNS(x).tab);
 
 function cleanupTab(tab) {
   let tabInternals = tabNS(tab);
   if (!tabInternals.tab)
     return;
 
   if (tabInternals.tab.browser) {
-    tabInternals.tab.browser.removeEventListener(EVENTS.ready.dom, tabInternals.onReady, false);
-    tabInternals.tab.browser.removeEventListener(EVENTS.pageshow.dom, tabInternals.onPageShow, false);
+    tabInternals.tab.browser.removeEventListener(EVENTS.ready.dom, tabInternals.onReady);
+    tabInternals.tab.browser.removeEventListener(EVENTS.pageshow.dom, tabInternals.onPageShow);
     tabInternals.tab.browser.removeEventListener(EVENTS.load.dom, tabInternals.onLoad, true);
   }
   tabInternals.onReady = null;
   tabInternals.onPageShow = null;
   tabInternals.onLoad = null;
-  tabInternals.window.BrowserApp.deck.removeEventListener(EVENTS.close.dom, tabInternals.onClose, false);
+  tabInternals.window.BrowserApp.deck.removeEventListener(EVENTS.close.dom, tabInternals.onClose);
   tabInternals.onClose = null;
   rawTabNS(tabInternals.tab).tab = null;
   tabInternals.tab = null;
   tabInternals.window = null;
 }
 
 function onTabReady(event) {
   let win = event.target.defaultView;
--- a/addon-sdk/source/lib/sdk/ui/sidebar.js
+++ b/addon-sdk/source/lib/sdk/ui/sidebar.js
@@ -87,17 +87,17 @@ const Sidebar = Class({
 
         bar.addEventListener('command', function() {
           if (isSidebarShowing(window, self)) {
             hideSidebar(window, self).catch(() => {});
             return;
           }
 
           showSidebar(window, self);
-        }, false);
+        });
 
         function onSidebarLoad() {
           // check if the sidebar is ready
           let isReady = sidebar.docShell && sidebar.contentDocument;
           if (!isReady)
             return;
 
           // check if it is a web panel
@@ -131,23 +131,23 @@ const Sidebar = Class({
             }
             windowNS(window).onWebPanelSidebarUnload = onWebPanelSidebarUnload;
             panelBrowser.contentWindow.addEventListener('unload', onWebPanelSidebarUnload, true);
 
             // check the associated menuitem
             bar.setAttribute('checked', 'true');
 
             function onWebPanelSidebarReady() {
-              panelBrowser.contentWindow.removeEventListener('DOMContentLoaded', onWebPanelSidebarReady, false);
+              panelBrowser.contentWindow.removeEventListener('DOMContentLoaded', onWebPanelSidebarReady);
               windowNS(window).onWebPanelSidebarReady = null;
 
               emit(self, 'ready', worker);
             }
             windowNS(window).onWebPanelSidebarReady = onWebPanelSidebarReady;
-            panelBrowser.contentWindow.addEventListener('DOMContentLoaded', onWebPanelSidebarReady, false);
+            panelBrowser.contentWindow.addEventListener('DOMContentLoaded', onWebPanelSidebarReady);
 
             function onWebPanelSidebarLoad() {
               panelBrowser.contentWindow.removeEventListener('load', onWebPanelSidebarLoad, true);
               windowNS(window).onWebPanelSidebarLoad = null;
 
               // TODO: decide if returning worker is acceptable..
               //emit(self, 'show', { worker: worker });
               emit(self, 'show', {});
@@ -187,17 +187,17 @@ const Sidebar = Class({
 
         let panelBrowser = sidebar && sidebar.contentDocument.getElementById(WEB_PANEL_BROWSER_ID);
         if (windowNS(window).onWebPanelSidebarCreated) {
           panelBrowser && panelBrowser.removeEventListener('DOMWindowCreated', windowNS(window).onWebPanelSidebarCreated, true);
           windowNS(window).onWebPanelSidebarCreated = null;
         }
 
         if (windowNS(window).onWebPanelSidebarReady) {
-          panelBrowser && panelBrowser.contentWindow.removeEventListener('DOMContentLoaded', windowNS(window).onWebPanelSidebarReady, false);
+          panelBrowser && panelBrowser.contentWindow.removeEventListener('DOMContentLoaded', windowNS(window).onWebPanelSidebarReady);
           windowNS(window).onWebPanelSidebarReady = null;
         }
 
         if (windowNS(window).onWebPanelSidebarLoad) {
           panelBrowser && panelBrowser.contentWindow.removeEventListener('load', windowNS(window).onWebPanelSidebarLoad, true);
           windowNS(window).onWebPanelSidebarLoad = null;
         }
 
--- a/addon-sdk/source/lib/sdk/windows/tabs-fennec.js
+++ b/addon-sdk/source/lib/sdk/windows/tabs-fennec.js
@@ -34,20 +34,20 @@ const Tabs = Class({
   initialize: function initialize(options) {
     let tabsInternals = tabsNS(this);
     let window = tabsNS(this).window = options.window || mainWindow;
 
     EventTarget.prototype.initialize.call(this, options);
     List.prototype.initialize.apply(this, getTabs(window).map(Tab));
 
     // TabOpen event
-    window.BrowserApp.deck.addEventListener(EVENTS.open.dom, onTabOpen, false);
+    window.BrowserApp.deck.addEventListener(EVENTS.open.dom, onTabOpen);
 
     // TabSelect
-    window.BrowserApp.deck.addEventListener(EVENTS.activate.dom, onTabSelect, false);
+    window.BrowserApp.deck.addEventListener(EVENTS.activate.dom, onTabSelect);
   },
   get activeTab() {
     return getTabForRawTab(getSelectedTab(tabsNS(this).window));
   },
   open: function(options) {
     options = Options(options);
     let activeWin = browserWindows.activeWindow;
 
@@ -91,18 +91,18 @@ const Tabs = Class({
   }
 });
 var gTabs = exports.tabs = Tabs(mainWindow);
 
 function tabsUnloader(event, window) {
   window = window || (event && event.target);
   if (!(window && window.BrowserApp))
     return;
-  window.BrowserApp.deck.removeEventListener(EVENTS.open.dom, onTabOpen, false);
-  window.BrowserApp.deck.removeEventListener(EVENTS.activate.dom, onTabSelect, false);
+  window.BrowserApp.deck.removeEventListener(EVENTS.open.dom, onTabOpen);
+  window.BrowserApp.deck.removeEventListener(EVENTS.activate.dom, onTabSelect);
 }
 
 // unload handler
 unload(function() {
   for (let window in windowIterator()) {
     tabsUnloader(null, window);
   }
 });
--- a/addon-sdk/source/test/addons/content-permissions/main.js
+++ b/addon-sdk/source/test/addons/content-permissions/main.js
@@ -17,19 +17,19 @@ exports.testCrossDomainIframe = function
   });
 
   let pageMod = PageMod({
     include: TEST_TAB_URL,
     contentScript: "new " + function ContentScriptScope() {
       self.on("message", function (url) {
         let iframe = document.createElement("iframe");
         iframe.addEventListener("load", function onload() {
-          iframe.removeEventListener("load", onload, false);
+          iframe.removeEventListener("load", onload);
           self.postMessage(iframe.contentWindow.document.body.innerHTML);
-        }, false);
+        });
         iframe.setAttribute("src", url);
         document.documentElement.appendChild(iframe);
       });
     },
     onAttach: function(w) {
       w.on("message", function (body) {
         assert.equal(body, "foo", "received iframe html content");
         pageMod.destroy();
--- a/addon-sdk/source/test/addons/e10s-content/lib/test-content-script.js
+++ b/addon-sdk/source/test/addons/e10s-content/lib/test-content-script.js
@@ -23,29 +23,28 @@ function createProxyTest(html, callback)
       nodeName: "iframe",
       type: "content",
       allowJavascript: true,
       allowPlugins: true,
       allowAuth: true,
       uri: testURI
     });
 
-    element.addEventListener("DOMContentLoaded", onDOMReady, false);
+    element.addEventListener("DOMContentLoaded", onDOMReady);
 
     function onDOMReady() {
       // Reload frame after getting principal from `testURI`
       if (!principalLoaded) {
         element.setAttribute("src", url);
         principalLoaded = true;
         return;
       }
 
       assert.equal(element.getAttribute("src"), url, "correct URL loaded");
-      element.removeEventListener("DOMContentLoaded", onDOMReady,
-                                                  false);
+      element.removeEventListener("DOMContentLoaded", onDOMReady);
       let xrayWindow = element.contentWindow;
       let rawWindow = xrayWindow.wrappedJSObject;
 
       let isDone = false;
       let helper = {
         xrayWindow: xrayWindow,
         rawWindow: rawWindow,
         createWorker: function (contentScript) {
@@ -170,30 +169,30 @@ exports["test Shared To String Proxies"]
 
 // Ensure that postMessage is working correctly across documents with an iframe
 var html = '<iframe id="iframe" name="test" src="data:text/html;charset=utf-8," />';
 exports["test postMessage"] = createProxyTest(html, function (helper, assert) {
   let ifWindow = helper.xrayWindow.document.getElementById("iframe").contentWindow;
   // Listen without proxies, to check that it will work in regular case
   // simulate listening from a web document.
   ifWindow.addEventListener("message", function listener(event) {
-    ifWindow.removeEventListener("message", listener, false);
+    ifWindow.removeEventListener("message", listener);
     // As we are in system principal, event is an XrayWrapper
     // xrays use current compartments when calling postMessage method.
     // Whereas js proxies was using postMessage method compartment,
     // not the caller one.
     assert.strictEqual(event.source, helper.xrayWindow,
                       "event.source is the top window");
     assert.equal(event.origin, testHost, "origin matches testHost");
 
     assert.equal(event.data, "{\"foo\":\"bar\\n \\\"escaped\\\".\"}",
                      "message data is correct");
 
     helper.done();
-  }, false);
+  });
 
   helper.createWorker(
     'new ' + function ContentScriptScope() {
       var json = JSON.stringify({foo : "bar\n \"escaped\"."});
 
       document.getElementById("iframe").contentWindow.postMessage(json, "*");
     }
   );
--- a/addon-sdk/source/test/addons/e10s-content/lib/test-content-worker.js
+++ b/addon-sdk/source/test/addons/e10s-content/lib/test-content-worker.js
@@ -763,17 +763,17 @@ exports["test:check worker API with page
       // We have to wait before going back into history,
       // otherwise `goBack` won't do anything.
       setTimeout(function () {
         browser.goBack();
       }, 0);
 
       // Wait for the document to be hidden
       browser.addEventListener("pagehide", function onpagehide() {
-        browser.removeEventListener("pagehide", onpagehide, false);
+        browser.removeEventListener("pagehide", onpagehide);
         // Now any event sent to this worker should be cached
 
         worker.postMessage("message");
         worker.port.emit("event");
 
         // Display the page with attached content script back in order to resume
         // its timeout and receive the expected message.
         // We have to delay this in order to not break the history.
@@ -803,17 +803,17 @@ exports["test:check worker API with page
               })
             ]);
             promise.then(done);
           });
 
           browser.goForward();
         }, 500);
 
-      }, false);
+      });
     });
 
   }
 );
 
 exports['test:conentScriptFile as URL instance'] = WorkerTest(
   DEFAULT_CONTENT_URL,
   function(assert, browser, done) {
--- a/addon-sdk/source/test/addons/unsafe-content-script/main.js
+++ b/addon-sdk/source/test/addons/unsafe-content-script/main.js
@@ -24,17 +24,17 @@ exports.testMembranelessMode = function(
     nodeName: "iframe",
     type: "content",
     allowJavascript: true,
     allowPlugins: true,
     allowAuth: true,
     uri: url
   });
 
-  element.addEventListener("DOMContentLoaded", onDOMReady, false);
+  element.addEventListener("DOMContentLoaded", onDOMReady);
 
   function onDOMReady() {
     let worker = Worker({
       window: element.contentWindow,
       contentScript:
         'new ' + function () {
           var assert = function assert(v, msg) {
             self.port.emit("assert", { assertion: v, msg: msg });
--- a/addon-sdk/source/test/fixtures/test-addon-extras.html
+++ b/addon-sdk/source/test/fixtures/test-addon-extras.html
@@ -20,12 +20,12 @@
 
     window.addEventListener("message", function getMessage({ data }) {
       if (data.name == "start") {
         window.postMessage({
           name: "extras",
           result: window.extras === undefined
         }, '*');
       }
-    }, false);
+    });
   </script>
 </body>
 </html>
--- a/addon-sdk/source/test/test-content-script.js
+++ b/addon-sdk/source/test/test-content-script.js
@@ -23,29 +23,28 @@ function createProxyTest(html, callback)
       nodeName: "iframe",
       type: "content",
       allowJavascript: true,
       allowPlugins: true,
       allowAuth: true,
       uri: testURI
     });
 
-    element.addEventListener("DOMContentLoaded", onDOMReady, false);
+    element.addEventListener("DOMContentLoaded", onDOMReady);
 
     function onDOMReady() {
       // Reload frame after getting principal from `testURI`
       if (!principalLoaded) {
         element.setAttribute("src", url);
         principalLoaded = true;
         return;
       }
 
       assert.equal(element.getAttribute("src"), url, "correct URL loaded");
-      element.removeEventListener("DOMContentLoaded", onDOMReady,
-                                                  false);
+      element.removeEventListener("DOMContentLoaded", onDOMReady);
       let xrayWindow = element.contentWindow;
       let rawWindow = xrayWindow.wrappedJSObject;
 
       let isDone = false;
       let helper = {
         xrayWindow: xrayWindow,
         rawWindow: rawWindow,
         createWorker: function (contentScript) {
@@ -170,30 +169,30 @@ exports["test Shared To String Proxies"]
 
 // Ensure that postMessage is working correctly across documents with an iframe
 var html = '<iframe id="iframe" name="test" src="data:text/html;charset=utf-8," />';
 exports["test postMessage"] = createProxyTest(html, function (helper, assert) {
   let ifWindow = helper.xrayWindow.document.getElementById("iframe").contentWindow;
   // Listen without proxies, to check that it will work in regular case
   // simulate listening from a web document.
   ifWindow.addEventListener("message", function listener(event) {
-    ifWindow.removeEventListener("message", listener, false);
+    ifWindow.removeEventListener("message", listener);
     // As we are in system principal, event is an XrayWrapper
     // xrays use current compartments when calling postMessage method.
     // Whereas js proxies was using postMessage method compartment,
     // not the caller one.
     assert.strictEqual(event.source, helper.xrayWindow,
                       "event.source is the top window");
     assert.equal(event.origin, testHost, "origin matches testHost");
 
     assert.equal(event.data, "{\"foo\":\"bar\\n \\\"escaped\\\".\"}",
                      "message data is correct");
 
     helper.done();
-  }, false);
+  });
 
   helper.createWorker(
     'new ' + function ContentScriptScope() {
       var json = JSON.stringify({foo : "bar\n \"escaped\"."});
 
       document.getElementById("iframe").contentWindow.postMessage(json, "*");
     }
   );
--- a/addon-sdk/source/test/test-content-sync-worker.js
+++ b/addon-sdk/source/test/test-content-sync-worker.js
@@ -747,17 +747,17 @@ exports["test:check worker API with page
       // We have to wait before going back into history,
       // otherwise `goBack` won't do anything.
       setTimeout(function () {
         browser.goBack();
       }, 0);
 
       // Wait for the document to be hidden
       browser.addEventListener("pagehide", function onpagehide() {
-        browser.removeEventListener("pagehide", onpagehide, false);
+        browser.removeEventListener("pagehide", onpagehide);
         // Now any event sent to this worker should throw
 
         assert.throws(
             function () { worker.postMessage("data"); },
             /The page is currently hidden and can no longer be used/,
             "postMessage should throw when the page is hidden in history"
             );
 
@@ -776,17 +776,17 @@ exports["test:check worker API with page
         setTimeout(function () {
           worker.on("message", function (data) {
             assert.ok(data, "timeout restored");
             done();
           });
           browser.goForward();
         }, 500);
 
-      }, false);
+      });
     });
 
   }
 );
 
 exports['test:conentScriptFile as URL instance'] = WorkerTest(
   DEFAULT_CONTENT_URL,
   function(assert, browser, done) {
--- a/addon-sdk/source/test/test-content-worker.js
+++ b/addon-sdk/source/test/test-content-worker.js
@@ -764,17 +764,17 @@ exports["test:check worker API with page
       // We have to wait before going back into history,
       // otherwise `goBack` won't do anything.
       setTimeout(function () {
         browser.goBack();
       }, 0);
 
       // Wait for the document to be hidden
       browser.addEventListener("pagehide", function onpagehide() {
-        browser.removeEventListener("pagehide", onpagehide, false);
+        browser.removeEventListener("pagehide", onpagehide);
         // Now any event sent to this worker should be cached
 
         worker.postMessage("message");
         worker.port.emit("event");
 
         // Display the page with attached content script back in order to resume
         // its timeout and receive the expected message.
         // We have to delay this in order to not break the history.
@@ -804,17 +804,17 @@ exports["test:check worker API with page
               })
             ]);
             promise.then(done);
           });
 
           browser.goForward();
         }, 500);
 
-      }, false);
+      });
     });
 
   }
 );
 
 exports['test:conentScriptFile as URL instance'] = WorkerTest(
   DEFAULT_CONTENT_URL,
   function(assert, browser, done) {
--- a/addon-sdk/source/test/test-context-menu.js
+++ b/addon-sdk/source/test/test-context-menu.js
@@ -303,17 +303,17 @@ exports.testSelectionContextInNewTab = f
     context: loader.cm.SelectionContext()
   });
 
   test.withTestDoc(function (window, doc) {
     let link = doc.getElementById("targetlink");
     link.click();
 
     let tablistener = event => {
-      this.tabBrowser.tabContainer.removeEventListener("TabOpen", tablistener, false);
+      this.tabBrowser.tabContainer.removeEventListener("TabOpen", tablistener);
       let tab = event.target;
       let browser = tab.linkedBrowser;
       this.loadFrameScript(browser);
       this.delayedEventListener(browser, "load", () => {
         let window = browser.contentWindow;
         let doc = browser.contentDocument;
         window.getSelection().selectAllChildren(doc.body);
 
@@ -326,17 +326,17 @@ exports.testSelectionContextInNewTab = f
 
           test.showMenu(null, function (popup) {
             test.checkMenu([item], [item], []);
             test.done();
           });
         });
       }, true);
     };
-    this.tabBrowser.tabContainer.addEventListener("TabOpen", tablistener, false);
+    this.tabBrowser.tabContainer.addEventListener("TabOpen", tablistener);
   });
 };
 
 
 // Selection contexts should work when right clicking a form button
 exports.testSelectionContextButtonMatch = function (assert, done) {
   let test = new TestHelper(assert, done);
   let loader = test.newLoader();
--- a/addon-sdk/source/test/test-frame-utils.js
+++ b/addon-sdk/source/test/test-frame-utils.js
@@ -25,35 +25,35 @@ exports['test frame creation'] = functio
 
 exports['test fram has js disabled by default'] = function(assert, done) {
   open('data:text/html;charset=utf-8,window').then(function (window) {
     let frame = create(window.document, {
       uri: 'data:text/html;charset=utf-8,<script>document.documentElement.innerHTML' +
            '= "J" + "S"</script>',
     });
     frame.contentWindow.addEventListener('DOMContentLoaded', function ready() {
-      frame.contentWindow.removeEventListener('DOMContentLoaded', ready, false);
+      frame.contentWindow.removeEventListener('DOMContentLoaded', ready);
       assert.ok(!~frame.contentDocument.documentElement.innerHTML.indexOf('JS'),
                 'JS was executed');
 
       close(window).then(done);
-    }, false);
+    });
   });
 };
 
 exports['test frame with js enabled'] = function(assert, done) {
   open('data:text/html;charset=utf-8,window').then(function (window) {
     let frame = create(window.document, {
       uri: 'data:text/html;charset=utf-8,<script>document.documentElement.innerHTML' +
            '= "J" + "S"</script>',
       allowJavascript: true
     });
     frame.contentWindow.addEventListener('DOMContentLoaded', function ready() {
-      frame.contentWindow.removeEventListener('DOMContentLoaded', ready, false);
+      frame.contentWindow.removeEventListener('DOMContentLoaded', ready);
       assert.ok(~frame.contentDocument.documentElement.innerHTML.indexOf('JS'),
                 'JS was executed');
 
       close(window).then(done);
-    }, false);
+    });
   });
 };
 
 require('sdk/test').run(exports);
--- a/addon-sdk/source/test/test-hidden-frame.js
+++ b/addon-sdk/source/test/test-hidden-frame.js
@@ -11,24 +11,23 @@ exports["test Frame"] = function(assert,
   let url = "data:text/html;charset=utf-8,<!DOCTYPE%20html>";
 
   let hiddenFrame = hiddenFrames.add(HiddenFrame({
     onReady: function () {
       assert.equal(this.element.contentWindow.location, "about:blank",
                        "HiddenFrame loads about:blank by default.");
 
       function onDOMReady() {
-        hiddenFrame.element.removeEventListener("DOMContentLoaded", onDOMReady,
-                                                false);
+        hiddenFrame.element.removeEventListener("DOMContentLoaded", onDOMReady);
         assert.equal(hiddenFrame.element.contentWindow.location, url,
                          "HiddenFrame loads the specified content.");
         done();
       }
 
-      this.element.addEventListener("DOMContentLoaded", onDOMReady, false);
+      this.element.addEventListener("DOMContentLoaded", onDOMReady);
       this.element.setAttribute("src", url);
     }
   }));
 };
 
 exports["test frame removed properly"] = function(assert, done) {
   let url = "data:text/html;charset=utf-8,<!DOCTYPE%20html>";
 
--- a/addon-sdk/source/test/test-page-mod.js
+++ b/addon-sdk/source/test/test-page-mod.js
@@ -417,17 +417,17 @@ exports.testCommunication2 = function*(a
     contentScript: 'new ' + function WorkerScope() {
       document.documentElement.setAttribute('AUQLUE', 42);
 
       window.addEventListener('load', function listener() {
         self.postMessage({
           msg: 'onload',
           AUQLUE: document.documentElement.getAttribute('AUQLUE')
         });
-      }, false);
+      });
 
       self.on("message", function(msg) {
         if (msg == "get window.test") {
           unsafeWindow.changesInWindow();
         }
 
         self.postMessage({
           msg: document.documentElement.getAttribute("test")
@@ -1023,53 +1023,53 @@ exports.testAttachToTabsOnly = function(
 
   function openHiddenFrame() {
     assert.pass('Open iframe in hidden window');
     let hiddenFrames = require('sdk/frame/hidden-frame');
     let hiddenFrame = hiddenFrames.add(hiddenFrames.HiddenFrame({
       onReady: function () {
         let element = this.element;
         element.addEventListener('DOMContentLoaded', function onload() {
-          element.removeEventListener('DOMContentLoaded', onload, false);
+          element.removeEventListener('DOMContentLoaded', onload);
           hiddenFrames.remove(hiddenFrame);
 
           if (!xulApp.is("Fennec")) {
             openToplevelWindow();
           }
           else {
             openBrowserIframe();
           }
-        }, false);
+        });
         element.setAttribute('src', 'data:text/html;charset=utf-8,foo');
       }
     }));
   }
 
   function openToplevelWindow() {
     assert.pass('Open toplevel window');
     let win = open('data:text/html;charset=utf-8,bar');
     win.addEventListener('DOMContentLoaded', function onload() {
-      win.removeEventListener('DOMContentLoaded', onload, false);
+      win.removeEventListener('DOMContentLoaded', onload);
       win.close();
       openBrowserIframe();
-    }, false);
+    });
   }
 
   function openBrowserIframe() {
     assert.pass('Open iframe in browser window');
     let window = require('sdk/deprecated/window-utils').activeBrowserWindow;
     let document = window.document;
     let iframe = document.createElement('iframe');
     iframe.setAttribute('type', 'content');
     iframe.setAttribute('src', 'data:text/html;charset=utf-8,foobar');
     iframe.addEventListener('DOMContentLoaded', function onload() {
-      iframe.removeEventListener('DOMContentLoaded', onload, false);
+      iframe.removeEventListener('DOMContentLoaded', onload);
       iframe.parentNode.removeChild(iframe);
       openTabWithIframes();
-    }, false);
+    });
     document.documentElement.appendChild(iframe);
   }
 
   // Only these three documents will be accepted by the page-mod
   function openTabWithIframes() {
     assert.pass('Open iframes in a tab');
     let subContent = '<iframe src="data:text/html;charset=utf-8,sub frame" />'
     let content = '<iframe src="data:text/html;charset=utf-8,' +
@@ -1581,17 +1581,17 @@ exports.testIFramePostMessage = function
   });
 };
 
 exports.testEvents = function*(assert) {
   let modAttached = defer();
   let content = "<script>\n new " + function DocumentScope() {
     window.addEventListener("ContentScriptEvent", function () {
       window.document.body.setAttribute("receivedEvent", "ok");
-    }, false);
+    });
   } + "\n</script>";
   let url = "data:text/html;charset=utf-8," + encodeURIComponent(content);
 
   let mod = PageMod({
     include: "data:*",
     contentScript: 'new ' + function WorkerScope() {
       let evt = document.createEvent("Event");
       evt.initEvent("ContentScriptEvent", true, true);
--- a/addon-sdk/source/test/test-ui-sidebar.js
+++ b/addon-sdk/source/test/test-ui-sidebar.js
@@ -171,20 +171,20 @@ exports.testSideBarIsShowingInNewWindows
   assert.notEqual(startWindow, window, 'window is new');
 
   let sb = window.document.getElementById('sidebar');
   yield new Promise(resolve => {
     if (sb && sb.docShell && sb.contentDocument && sb.contentDocument.getElementById('web-panels-browser')) {
       end();
     }
     else {
-      sb.addEventListener('DOMWindowCreated', end, false);
+      sb.addEventListener('DOMWindowCreated', end);
     }
     function end () {
-      sb.removeEventListener('DOMWindowCreated', end, false);
+      sb.removeEventListener('DOMWindowCreated', end);
       resolve();
     }
   })
 
   ele = window.document.getElementById(makeID(testName));
   assert.ok(ele, 'sidebar element was added 2');
   assert.ok(isChecked(ele), 'the sidebar is checked');
   assert.notEqual(ele, oldEle, 'there are two different sidebars');
@@ -1091,19 +1091,19 @@ exports.testSidebarLeakCheckDestroyAfter
   sidebar.on('hide', () => {
     assert.fail('the sidebar hide listener should have been removed');
   });
   assert.pass('added a sidebar hide listener');
 
   yield new Promise(resolve => {
     let panelBrowser = window.document.getElementById('sidebar').contentDocument.getElementById('web-panels-browser');
     panelBrowser.contentWindow.addEventListener('unload', function onUnload() {
-      panelBrowser.contentWindow.removeEventListener('unload', onUnload, false);
+      panelBrowser.contentWindow.removeEventListener('unload', onUnload);
       resolve();
-    }, false);
+    });
     sidebar.destroy();
   });
 
   assert.pass('the sidebar web panel was unloaded properly');
 }
 
 exports.testSidebarLeakCheckUnloadAfterAttach = function*(assert) {
   const loader = Loader(module);
@@ -1133,19 +1133,19 @@ exports.testSidebarLeakCheckUnloadAfterA
   sidebar.on('hide', function() {
     assert.fail('the sidebar hide listener should have been removed');
   });
   assert.pass('added a sidebar hide listener');
 
   let panelBrowser = window.document.getElementById('sidebar').contentDocument.getElementById('web-panels-browser');
   yield new Promise(resolve => {
     panelBrowser.contentWindow.addEventListener('unload', function onUnload() {
-      panelBrowser.contentWindow.removeEventListener('unload', onUnload, false);
+      panelBrowser.contentWindow.removeEventListener('unload', onUnload);
       resolve();
-    }, false);
+    });
     loader.unload();
   });
 
   assert.pass('the sidebar web panel was unloaded properly');
 }
 
 exports.testTwoSidebarsWithSameTitleAndURL = function(assert) {
   const { Sidebar } = require('sdk/ui/sidebar');
--- a/addon-sdk/source/test/test-window-utils.js
+++ b/addon-sdk/source/test/test-window-utils.js
@@ -37,17 +37,17 @@ function makeEmptyWindow(options) {
   });
 }
 
 exports.testWindowTracker = function(assert, done) {
   var myWindow = makeEmptyWindow();
   assert.pass('window was created');
 
   myWindow.addEventListener("load", function onload() {
-    myWindow.removeEventListener("load", onload, false);
+    myWindow.removeEventListener("load", onload);
     assert.pass("test window has opened");
 
     // test bug 638007 (new is optional), using new
     var wt = new windowUtils.WindowTracker({
       onTrack: window => {
         if (window === myWindow) {
           assert.pass("onTrack() called with our test window");
           close(window);
@@ -56,17 +56,17 @@ exports.testWindowTracker = function(ass
       onUntrack: window => {
         if (window === myWindow) {
           assert.pass("onUntrack() called with our test window");
           wt.unload();
           timer.setTimeout(done);
         }
       }
     });
-  }, false);
+  });
 };
 
 exports['test window watcher untracker'] = function(assert, done) {
   var myWindow;
   var tracks = 0;
   var unloadCalled = false;
 
   var delegate = {
@@ -143,20 +143,20 @@ exports['test window watcher unregs 4 lo
   // until the window loads, so we must let it load before closing it to be
   // certain that onTrack was removed.
   myWindow.addEventListener("load", function() {
     // allow all of the load handles to execute before closing
     myWindow.setTimeout(function() {
       myWindow.addEventListener("unload", function() {
         // once the window unloads test is done
         done();
-      }, false);
+      });
       myWindow.close();
     }, 0);
-  }, false);
+  });
 }
 
 exports['test window watcher without untracker'] = function(assert, done) {
   let myWindow;
   let wt = new windowUtils.WindowTracker({
     onTrack: function(window) {
       if (window == myWindow) {
         assert.pass("onTrack() called with our test window");
@@ -224,43 +224,43 @@ exports.testWindowIterator = function(as
       "window hasn't loaded yet.");
 
   // this window should only appear in windowIterator() while its loading
   assert.ok(toArray(windowUtils.windowIterator()).indexOf(window) === -1,
             "window isn't in windowIterator()");
 
   // Then it should be in windowIterator()
   window.addEventListener("load", function onload() {
-    window.addEventListener("load", onload, false);
+    window.addEventListener("load", onload);
     assert.ok(toArray(windowUtils.windowIterator()).indexOf(window) !== -1,
               "window is now in windowIterator()");
 
     // Wait for the window unload before ending test
     close(window).then(done);
-  }, false);
+  });
 };
 
 exports.testIgnoreClosingWindow = function(assert, done) {
   assert.equal(windows().length, 1, "Only one window open");
 
   // make a new window
   let window = makeEmptyWindow();
 
   assert.equal(windows().length, 2, "Two windows open");
 
   window.addEventListener("load", function onload() {
-    window.addEventListener("load", onload, false);
+    window.addEventListener("load", onload);
 
     assert.equal(windows().length, 2, "Two windows open");
 
     // Wait for the window unload before ending test
     let checked = false;
 
     close(window).then(function() {
       assert.ok(checked, 'the test is finished');
     }).then(done, assert.fail)
 
     assert.equal(windows().length, 1, "Only one window open");
     checked = true;
-  }, false);
+  });
 };
 
 require("sdk/test").run(exports);
--- a/b2g/chrome/content/shell.js
+++ b/b2g/chrome/content/shell.js
@@ -71,19 +71,19 @@ window.performance.measure('gecko-shell-
 function debug(str) {
   dump(' -*- Shell.js: ' + str + '\n');
 }
 
 const once = event => {
   let target = shell.contentBrowser;
   return new Promise((resolve, reject) => {
     target.addEventListener(event, function gotEvent(evt) {
-      target.removeEventListener(event, gotEvent, false);
+      target.removeEventListener(event, gotEvent);
       resolve(evt);
-    }, false);
+    });
   });
 }
 
 function clearCache() {
   let cache = Cc["@mozilla.org/netwerk/cache-storage-service;1"]
                 .getService(Ci.nsICacheStorageService);
   cache.clear();
 }
@@ -788,17 +788,17 @@ var permissionMap = new Map([
 ]);
 var permissionMapRev = new Map(Array.from(permissionMap.entries()).reverse());
 
 var CustomEventManager = {
   init: function custevt_init() {
     window.addEventListener("ContentStart", (function(evt) {
       let content = shell.contentBrowser.contentWindow;
       content.addEventListener("mozContentEvent", this, false, true);
-    }).bind(this), false);
+    }).bind(this));
   },
 
   handleEvent: function custevt_handleEvent(evt) {
     let detail = evt.detail;
     dump('XXX FIXME : Got a mozContentEvent: ' + detail.type + "\n");
 
     switch(detail.type) {
       case 'system-message-listener-ready':
--- a/b2g/chrome/content/test/mochitest/file_getusermedia_iframe.html
+++ b/b2g/chrome/content/test/mochitest/file_getusermedia_iframe.html
@@ -23,14 +23,14 @@ window.addEventListener('message', funct
                                        event.source.postMessage('start-finished', window.location.origin);
                                      });
       break;
     case 'stop':
       localStream.stop();
       localStream = null;
       break;
   }
-}, false);
+});
 
 </script>
 </pre>
 </body>
 </html>
--- a/b2g/chrome/content/test/mochitest/test_recordingStatus_iframe.html
+++ b/b2g/chrome/content/test/mochitest/test_recordingStatus_iframe.html
@@ -26,17 +26,17 @@ function test() {
     let loadDeferred = new Promise(function(resolve, reject) {
       let gumIframe = document.getElementById('gum-iframe');
       gumIframe.src = 'file_getusermedia_iframe.html';
 
       window.addEventListener('message', function(event) {
         if (event.data === 'start-finished') {
           resolve();
         }
-      }, false);
+      });
 
       gumIframe.onload = function() {
         info('start audio stream in iframe');
         gumIframe.contentWindow.postMessage('start', window.location.origin);
       };
     });
 
     return expectAll([eventDeferred, loadDeferred]);
--- a/b2g/components/LogShake.jsm
+++ b/b2g/components/LogShake.jsm
@@ -147,18 +147,18 @@ var LogShake = {
     // either due to the phone starting up or a user enabling us directly.
     this.handleScreenChangeEvent({ detail: {
       screenEnabled: true
     }});
 
     // Reset excitement to clear residual motion
     this.excitement = 0;
 
-    SystemAppProxy.addEventListener(CAPTURE_LOGS_CONTENT_EVENT, this, false);
-    SystemAppProxy.addEventListener(SCREEN_CHANGE_EVENT, this, false);
+    SystemAppProxy.addEventListener(CAPTURE_LOGS_CONTENT_EVENT, this);
+    SystemAppProxy.addEventListener(SCREEN_CHANGE_EVENT, this);
 
     Services.obs.addObserver(this, "xpcom-shutdown", false);
   },
 
   /**
    * Handle an arbitrary event, passing it along to the proper function
    */
   handleEvent: function(event) {
@@ -208,23 +208,23 @@ var LogShake = {
     this.listenToDeviceMotion = false;
     this.stopDeviceMotionListener();
   },
 
   startDeviceMotionListener: function() {
     if (!this.deviceMotionEnabled &&
         this.listenToDeviceMotion &&
         this.screenEnabled) {
-      SystemAppProxy.addEventListener(DEVICE_MOTION_EVENT, this, false);
+      SystemAppProxy.addEventListener(DEVICE_MOTION_EVENT, this);
       this.deviceMotionEnabled = true;
     }
   },
 
   stopDeviceMotionListener: function() {
-    SystemAppProxy.removeEventListener(DEVICE_MOTION_EVENT, this, false);
+    SystemAppProxy.removeEventListener(DEVICE_MOTION_EVENT, this);
     this.deviceMotionEnabled = false;
   },
 
   /**
    * Handle a motion event, keeping track of "excitement", the magnitude
    * of the device"s acceleration.
    */
   handleDeviceMotionEvent: function(event) {
@@ -384,17 +384,17 @@ var LogShake = {
     }
   },
 
   /**
    * Stop logshake, removing all listeners
    */
   uninit: function() {
     this.stopDeviceMotionListener();
-    SystemAppProxy.removeEventListener(SCREEN_CHANGE_EVENT, this, false);
+    SystemAppProxy.removeEventListener(SCREEN_CHANGE_EVENT, this);
     Services.obs.removeObserver(this, "xpcom-shutdown");
   }
 };
 
 function getLogFilename(logLocation) {
   // sanitize the log location
   let logName = logLocation.replace(/\//g, "-");
   if (logName[0] === "-") {
--- a/browser/base/content/aboutNetError.xhtml
+++ b/browser/base/content/aboutNetError.xhtml
@@ -136,17 +136,17 @@
             var event = new CustomEvent("AboutNetErrorUIExpanded", {bubbles:true});
             document.dispatchEvent(event);
           }
         });
 
         if (allowOverride) {
           document.getElementById("overrideWeakCryptoPanel").style.display = "flex";
           var overrideLink = document.getElementById("overrideWeakCrypto");
-          overrideLink.addEventListener("click", () => doOverride(overrideLink), false);
+          overrideLink.addEventListener("click", () => doOverride(overrideLink));
         }
 
         if (!gIsCertError) {
           return;
         }
 
         if (getCSSClass() == "expertBadCert") {
           toggleDisplay(document.getElementById("badCertAdvancedPanel"));
@@ -286,17 +286,17 @@
                 checkbox.checked = true;
               }
 
               checkbox.addEventListener("change", function(changeEvt) {
                   var event = new CustomEvent("AboutNetErrorSetAutomatic",
                     {bubbles: true,
                      detail: changeEvt.target.checked});
                   document.dispatchEvent(event);
-                }, false);
+                });
             }
             const hasPrefStyleError = [
               "interrupted", // This happens with subresources that are above the max tls
               "SSL_ERROR_PROTOCOL_VERSION_ALERT",
               "SSL_ERROR_UNSUPPORTED_VERSION",
               "SSL_ERROR_NO_CYPHER_OVERLAP",
               "SSL_ERROR_NO_CIPHERS_SUPPORTED"
             ].some((substring) => getDescription().includes(substring));
@@ -436,17 +436,17 @@
           // display debug information about the cert error.
           var errorCode = document.getElementById("errorCode");
           if (errorCode) {
             errorCode.href = "javascript:void(0)";
             errorCode.addEventListener("click", () => {
               let debugInfo = document.getElementById("certificateErrorDebugInformation");
               debugInfo.style.display = "block";
               debugInfo.scrollIntoView({block: "start", behavior: "smooth"});
-            }, false);
+            });
           }
         }
 
         // Initialize the cert domain link.
         var link = document.getElementById("cert_domain_link");
         if (!link)
           return;
 
--- a/browser/base/content/abouthealthreport/abouthealth.js
+++ b/browser/base/content/abouthealthreport/abouthealth.js
@@ -12,17 +12,17 @@ Cu.import("resource://gre/modules/Servic
 const prefs = new Preferences("datareporting.healthreport.");
 
 const PREF_UNIFIED = "toolkit.telemetry.unified";
 const PREF_REPORTING_URL = "datareporting.healthreport.about.reportUrl";
 
 var healthReportWrapper = {
   init() {
     let iframe = document.getElementById("remote-report");
-    iframe.addEventListener("load", healthReportWrapper.initRemotePage, false);
+    iframe.addEventListener("load", healthReportWrapper.initRemotePage);
     iframe.src = this._getReportURI().spec;
     prefs.observe("uploadEnabled", this.updatePrefState, healthReportWrapper);
   },
 
   uninit() {
     prefs.ignore("uploadEnabled", this.updatePrefState, healthReportWrapper);
   },
 
@@ -144,18 +144,17 @@ var healthReportWrapper = {
         Cu.reportError("Unexpected remote command received: " + evt.detail.command + ". Ignoring command.");
         break;
     }
   },
 
   initRemotePage() {
     let iframe = document.getElementById("remote-report").contentDocument;
     iframe.addEventListener("RemoteHealthReportCommand",
-                            function onCommand(e) { healthReportWrapper.handleRemoteCommand(e); },
-                            false);
+                            function onCommand(e) { healthReportWrapper.handleRemoteCommand(e); });
     healthReportWrapper.updatePrefState();
   },
 
   // error handling
   ERROR_INIT_FAILED:    1,
   ERROR_PAYLOAD_FAILED: 2,
   ERROR_PREFS_FAILED:   3,
 
--- a/browser/base/content/browser-addons.js
+++ b/browser/base/content/browser-addons.js
@@ -661,24 +661,24 @@ var LightWeightThemeWebInstaller = {
     if (!this._isAllowed(baseURI))
       return;
 
     let data = this._manager.parseTheme(dataString, baseURI);
     if (!data)
       return;
 
     this._resetPreview();
-    gBrowser.tabContainer.addEventListener("TabSelect", this, false);
+    gBrowser.tabContainer.addEventListener("TabSelect", this);
     this._manager.previewTheme(data);
   },
 
   _resetPreview(baseURI) {
     if (baseURI && !this._isAllowed(baseURI))
       return;
-    gBrowser.tabContainer.removeEventListener("TabSelect", this, false);
+    gBrowser.tabContainer.removeEventListener("TabSelect", this);
     this._manager.resetPreview();
   },
 
   _isAllowed(srcURIString) {
     let uri;
     try {
       uri = makeURI(srcURIString);
     } catch (e) {
--- a/browser/base/content/browser-ctrlTab.js
+++ b/browser/base/content/browser-ctrlTab.js
@@ -6,18 +6,18 @@
  * Tab previews utility, produces thumbnails
  */
 var tabPreviews = {
   init: function tabPreviews_init() {
     if (this._selectedTab)
       return;
     this._selectedTab = gBrowser.selectedTab;
 
-    gBrowser.tabContainer.addEventListener("TabSelect", this, false);
-    gBrowser.tabContainer.addEventListener("SSTabRestored", this, false);
+    gBrowser.tabContainer.addEventListener("TabSelect", this);
+    gBrowser.tabContainer.addEventListener("SSTabRestored", this);
 
     let screenManager = Cc["@mozilla.org/gfx/screenmanager;1"]
                           .getService(Ci.nsIScreenManager);
     let left = {}, top = {}, width = {}, height = {};
     screenManager.primaryScreen.GetRectDisplayPix(left, top, width, height);
     this.aspectRatio = height.value / width.value;
   },
 
@@ -95,26 +95,26 @@ var tabPreviews = {
   }
 };
 
 var tabPreviewPanelHelper = {
   opening(host) {
     host.panel.hidden = false;
 
     var handler = this._generateHandler(host);
-    host.panel.addEventListener("popupshown", handler, false);
-    host.panel.addEventListener("popuphiding", handler, false);
+    host.panel.addEventListener("popupshown", handler);
+    host.panel.addEventListener("popuphiding", handler);
 
     host._prevFocus = document.commandDispatcher.focusedElement;
   },
   _generateHandler(host) {
     var self = this;
     return function(event) {
       if (event.target == host.panel) {
-        host.panel.removeEventListener(event.type, arguments.callee, false);
+        host.panel.removeEventListener(event.type, arguments.callee);
         self["_" + event.type](host);
       }
     };
   },
   _popupshown(host) {
     if ("setupGUI" in host)
       host.setupGUI();
   },
--- a/browser/base/content/browser-data-submission-info-bar.js
+++ b/browser/base/content/browser-data-submission-info-bar.js
@@ -27,17 +27,17 @@ var gDataNotificationInfoBar = {
     return this._log = Log.repository.getLoggerWithMessagePrefix(LOGGER_NAME, LOGGER_PREFIX);
   },
 
   init() {
     window.addEventListener("unload", () => {
       for (let o of this._OBSERVERS) {
         Services.obs.removeObserver(this, o);
       }
-    }, false);
+    });
 
     for (let o of this._OBSERVERS) {
       Services.obs.addObserver(this, o, true);
     }
   },
 
   _getDataReportingNotification(name = this._DATA_REPORTING_NOTIFICATION) {
     return this._notificationBox.getNotificationWithValue(name);
--- a/browser/base/content/browser-fullScreenAndPointerLock.js
+++ b/browser/base/content/browser-fullScreenAndPointerLock.js
@@ -289,18 +289,18 @@ var FullScreen = {
     if (AppConstants.platform == "macosx") {
       // Make sure the menu items are adjusted.
       document.getElementById("enterFullScreenItem").hidden = enterFS;
       document.getElementById("exitFullScreenItem").hidden = !enterFS;
     }
 
     if (!this._fullScrToggler) {
       this._fullScrToggler = document.getElementById("fullscr-toggler");
-      this._fullScrToggler.addEventListener("mouseover", this._expandCallback, false);
-      this._fullScrToggler.addEventListener("dragenter", this._expandCallback, false);
+      this._fullScrToggler.addEventListener("mouseover", this._expandCallback);
+      this._fullScrToggler.addEventListener("dragenter", this._expandCallback);
     }
 
     if (enterFS) {
       gNavToolbox.setAttribute("inFullscreen", true);
       document.documentElement.setAttribute("inFullscreen", true);
       if (!document.fullscreenElement && this.useLionFullScreen)
         document.documentElement.setAttribute("OSXLionFullscreen", true);
     } else {
@@ -308,19 +308,19 @@ var FullScreen = {
       document.documentElement.removeAttribute("inFullscreen");
       document.documentElement.removeAttribute("OSXLionFullscreen");
     }
 
     if (!document.fullscreenElement)
       this._updateToolbars(enterFS);
 
     if (enterFS) {
-      document.addEventListener("keypress", this._keyToggleCallback, false);
-      document.addEventListener("popupshown", this._setPopupOpen, false);
-      document.addEventListener("popuphidden", this._setPopupOpen, false);
+      document.addEventListener("keypress", this._keyToggleCallback);
+      document.addEventListener("popupshown", this._setPopupOpen);
+      document.addEventListener("popuphidden", this._setPopupOpen);
       // In DOM fullscreen mode, we hide toolbars with CSS
       if (!document.fullscreenElement)
         this.hideNavToolbox(true);
     } else {
       this.showNavToolbox(false);
       // This is needed if they use the context menu to quit fullscreen
       this._isPopupOpen = false;
       this.cleanup();
@@ -450,19 +450,19 @@ var FullScreen = {
     // If a fullscreen window loses focus, we show a warning when the
     // fullscreen window is refocused.
     window.addEventListener("activate", this);
   },
 
   cleanup() {
     if (!window.fullScreen) {
       MousePosTracker.removeListener(this);
-      document.removeEventListener("keypress", this._keyToggleCallback, false);
-      document.removeEventListener("popupshown", this._setPopupOpen, false);
-      document.removeEventListener("popuphidden", this._setPopupOpen, false);
+      document.removeEventListener("keypress", this._keyToggleCallback);
+      document.removeEventListener("popupshown", this._setPopupOpen);
+      document.removeEventListener("popuphidden", this._setPopupOpen);
     }
   },
 
   cleanupDomFullscreen() {
     window.messageManager
           .broadcastAsyncMessage("DOMFullscreen:CleanUp");
 
     PointerlockFsWarning.close();
--- a/browser/base/content/browser-gestureSupport.js
+++ b/browser/base/content/browser-gestureSupport.js
@@ -593,33 +593,33 @@ var gHistorySwipeAnimation = {
     this._maxSnapshots = this._getMaxSnapshots();
     this._lastSwipeDir = "";
     this._direction = "horizontal";
 
     // We only want to activate history swipe animations if we store snapshots.
     // If we don't store any, we handle horizontal swipes without animations.
     if (this._maxSnapshots > 0) {
       this.active = true;
-      gBrowser.addEventListener("pagehide", this, false);
-      gBrowser.addEventListener("pageshow", this, false);
-      gBrowser.addEventListener("popstate", this, false);
-      gBrowser.addEventListener("DOMModalDialogClosed", this, false);
-      gBrowser.tabContainer.addEventListener("TabClose", this, false);
+      gBrowser.addEventListener("pagehide", this);
+      gBrowser.addEventListener("pageshow", this);
+      gBrowser.addEventListener("popstate", this);
+      gBrowser.addEventListener("DOMModalDialogClosed", this);
+      gBrowser.tabContainer.addEventListener("TabClose", this);
     }
   },
 
   /**
    * Uninitializes the support for history swipe animations.
    */
   uninit: function HSA_uninit() {
-    gBrowser.removeEventListener("pagehide", this, false);
-    gBrowser.removeEventListener("pageshow", this, false);
-    gBrowser.removeEventListener("popstate", this, false);
-    gBrowser.removeEventListener("DOMModalDialogClosed", this, false);
-    gBrowser.tabContainer.removeEventListener("TabClose", this, false);
+    gBrowser.removeEventListener("pagehide", this);
+    gBrowser.removeEventListener("pageshow", this);
+    gBrowser.removeEventListener("popstate", this);
+    gBrowser.removeEventListener("DOMModalDialogClosed", this);
+    gBrowser.tabContainer.removeEventListener("TabClose", this);
 
     this.active = false;
     this.isLTR = false;
   },
 
   /**
    * Starts the swipe animation and handles fast swiping (i.e. a swipe animation
    * is already in progress when a new one is initiated).
--- a/browser/base/content/browser-media.js
+++ b/browser/base/content/browser-media.js
@@ -342,9 +342,9 @@ let gDecoderDoctorHandler = {
   },
 }
 
 window.getGroupMessageManager("browsers").addMessageListener("DecoderDoctor:Notification", gDecoderDoctorHandler);
 window.getGroupMessageManager("browsers").addMessageListener("EMEVideo:ContentMediaKeysRequest", gEMEHandler);
 window.addEventListener("unload", function() {
   window.getGroupMessageManager("browsers").removeMessageListener("EMEVideo:ContentMediaKeysRequest", gEMEHandler);
   window.getGroupMessageManager("browsers").removeMessageListener("DecoderDoctor:Notification", gDecoderDoctorHandler);
-}, false);
+});
--- a/browser/base/content/browser-places.js
+++ b/browser/base/content/browser-places.js
@@ -15,21 +15,21 @@ var StarUI = {
 
   // Edit-bookmark panel
   get panel() {
     delete this.panel;
     var element = this._element("editBookmarkPanel");
     // initially the panel is hidden
     // to avoid impacting startup / new window performance
     element.hidden = false;
-    element.addEventListener("keypress", this, false);
-    element.addEventListener("mouseout", this, false);
-    element.addEventListener("mousemove", this, false);
-    element.addEventListener("popuphidden", this, false);
-    element.addEventListener("popupshown", this, false);
+    element.addEventListener("keypress", this);
+    element.addEventListener("mouseout", this);
+    element.addEventListener("mousemove", this);
+    element.addEventListener("popuphidden", this);
+    element.addEventListener("popupshown", this);
     return this.panel = element;
   },
 
   // Array of command elements to disable when the panel is opened.
   get _blockedCommands() {
     delete this._blockedCommands;
     return this._blockedCommands =
       ["cmd_close", "cmd_closeWindow"].map(id => this._element(id));
--- a/browser/base/content/browser-syncui.js
+++ b/browser/base/content/browser-syncui.js
@@ -57,26 +57,26 @@ var gSyncUI = {
 
     Services.obs.addObserver(this, "weave:service:ready", true);
     Services.obs.addObserver(this, "quit-application", true);
 
     // Remove the observer if the window is closed before the observer
     // was triggered.
     window.addEventListener("unload", function onUnload() {
       gSyncUI._unloaded = true;
-      window.removeEventListener("unload", onUnload, false);
+      window.removeEventListener("unload", onUnload);
       Services.obs.removeObserver(gSyncUI, "weave:service:ready");
       Services.obs.removeObserver(gSyncUI, "quit-application");
 
       if (Weave.Status.ready) {
         gSyncUI._obs.forEach(function(topic) {
           Services.obs.removeObserver(gSyncUI, topic);
         });
       }
-    }, false);
+    });
   },
 
   initUI: function SUI_initUI() {
     // If this is a browser window?
     if (gBrowser) {
       this._obs.push("weave:notification:added");
     }
 
--- a/browser/base/content/browser-thumbnails.js
+++ b/browser/base/content/browser-thumbnails.js
@@ -32,29 +32,29 @@ var gBrowserThumbnails = {
     PageThumbs.addExpirationFilter(this);
     gBrowser.addTabsProgressListener(this);
     Services.prefs.addObserver(this.PREF_DISK_CACHE_SSL, this, false);
 
     this._sslDiskCacheEnabled =
       Services.prefs.getBoolPref(this.PREF_DISK_CACHE_SSL);
 
     this._tabEvents.forEach(function(aEvent) {
-      gBrowser.tabContainer.addEventListener(aEvent, this, false);
+      gBrowser.tabContainer.addEventListener(aEvent, this);
     }, this);
 
     this._timeouts = new WeakMap();
   },
 
   uninit: function Thumbnails_uninit() {
     PageThumbs.removeExpirationFilter(this);
     gBrowser.removeTabsProgressListener(this);
     Services.prefs.removeObserver(this.PREF_DISK_CACHE_SSL, this);
 
     this._tabEvents.forEach(function(aEvent) {
-      gBrowser.tabContainer.removeEventListener(aEvent, this, false);
+      gBrowser.tabContainer.removeEventListener(aEvent, this);
     }, this);
   },
 
   handleEvent: function Thumbnails_handleEvent(aEvent) {
     switch (aEvent.type) {
       case "scroll":
         let browser = aEvent.currentTarget;
         if (this._timeouts.has(browser))
@@ -129,14 +129,14 @@ var gBrowserThumbnails = {
       if (link)
         urls.push(link.url);
       return urls;
     }, []);
   },
 
   _clearTimeout: function Thumbnails_clearTimeout(aBrowser) {
     if (this._timeouts.has(aBrowser)) {
-      aBrowser.removeEventListener("scroll", this, false);
+      aBrowser.removeEventListener("scroll", this);
       clearTimeout(this._timeouts.get(aBrowser));
       this._timeouts.delete(aBrowser);
     }
   }
 };
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -318,18 +318,18 @@ const gClickAndHoldListenersOnElement = 
     if (aEvent.button != 0 ||
         aEvent.currentTarget.open ||
         aEvent.currentTarget.disabled)
       return;
 
     // Prevent the menupopup from opening immediately
     aEvent.currentTarget.firstChild.hidden = true;
 
-    aEvent.currentTarget.addEventListener("mouseout", this, false);
-    aEvent.currentTarget.addEventListener("mouseup", this, false);
+    aEvent.currentTarget.addEventListener("mouseout", this);
+    aEvent.currentTarget.addEventListener("mouseup", this);
     this._timers.set(aEvent.currentTarget, setTimeout((b) => this._openMenu(b), 500, aEvent.currentTarget));
   },
 
   _clickHandler(aEvent) {
     if (aEvent.button == 0 &&
         aEvent.target == aEvent.currentTarget &&
         !aEvent.currentTarget.open &&
         !aEvent.currentTarget.disabled) {
@@ -363,18 +363,18 @@ const gClickAndHoldListenersOnElement = 
   },
 
   _mouseupHandler(aEvent) {
     this._cancelHold(aEvent.currentTarget);
   },
 
   _cancelHold(aButton) {
     clearTimeout(this._timers.get(aButton));
-    aButton.removeEventListener("mouseout", this, false);
-    aButton.removeEventListener("mouseup", this, false);
+    aButton.removeEventListener("mouseout", this);
+    aButton.removeEventListener("mouseup", this);
   },
 
   handleEvent(e) {
     switch (e.type) {
       case "mouseout":
         this._mouseoutHandler(e);
         break;
       case "mousedown":
@@ -978,17 +978,17 @@ addEventListener("DOMContentLoaded", fun
 
   gBrowser.updateBrowserRemoteness(initBrowser, gMultiProcessBrowser);
 });
 
 var gBrowserInit = {
   delayedStartupFinished: false,
 
   onLoad() {
-    gBrowser.addEventListener("DOMUpdatePageReport", gPopupBlockerObserver, false);
+    gBrowser.addEventListener("DOMUpdatePageReport", gPopupBlockerObserver);
 
     Services.obs.addObserver(gPluginHandler.NPAPIPluginCrashed, "plugin-crashed", false);
 
     window.addEventListener("AppCommand", HandleAppCommandEvent, true);
 
     // These routines add message listeners. They must run before
     // loading the frame script to ensure that we don't miss any
     // message sent between when the frame script is loaded and when
@@ -1336,18 +1336,18 @@ var gBrowserInit = {
     // The object handling the downloads indicator is also initialized here in the
     // delayed startup function, but the actual indicator element is not loaded
     // unless there are downloads to be displayed.
     DownloadsButton.initializeIndicator();
 
     if (AppConstants.platform != "macosx") {
       updateEditUIVisibility();
       let placesContext = document.getElementById("placesContext");
-      placesContext.addEventListener("popupshowing", updateEditUIVisibility, false);
-      placesContext.addEventListener("popuphiding", updateEditUIVisibility, false);
+      placesContext.addEventListener("popupshowing", updateEditUIVisibility);
+      placesContext.addEventListener("popuphiding", updateEditUIVisibility);
     }
 
     LightWeightThemeWebInstaller.init();
 
     if (Win7Features)
       Win7Features.onOpenWindow();
 
     FullScreen.init();
@@ -1361,18 +1361,18 @@ var gBrowserInit = {
       gDataNotificationInfoBar.init();
 
     gBrowserThumbnails.init();
 
     gMenuButtonBadgeManager.init();
 
     gMenuButtonUpdateBadge.init();
 
-    window.addEventListener("mousemove", MousePosTracker, false);
-    window.addEventListener("dragover", MousePosTracker, false);
+    window.addEventListener("mousemove", MousePosTracker);
+    window.addEventListener("dragover", MousePosTracker);
 
     gNavToolbox.addEventListener("customizationstarting", CustomizationHandler);
     gNavToolbox.addEventListener("customizationchange", CustomizationHandler);
     gNavToolbox.addEventListener("customizationending", CustomizationHandler);
 
     // End startup crash tracking after a delay to catch crashes while restoring
     // tabs and to postpone saving the pref to disk.
     try {
@@ -2541,19 +2541,19 @@ function SetPageProxyState(aState, aOpti
     return;
 
   gURLBar.setAttribute("pageproxystate", aState);
 
   // the page proxy state is set to valid via OnLocationChange, which
   // gets called when we switch tabs.
   if (aState == "valid") {
     gLastValidURLStr = gURLBar.value;
-    gURLBar.addEventListener("input", UpdatePageProxyState, false);
+    gURLBar.addEventListener("input", UpdatePageProxyState);
   } else if (aState == "invalid") {
-    gURLBar.removeEventListener("input", UpdatePageProxyState, false);
+    gURLBar.removeEventListener("input", UpdatePageProxyState);
   }
 
   // Only need to call anchorVisibilityChange if the PopupNotifications object
   // for this window has already been initialized (i.e. its getter no
   // longer exists). If this is the result of a locations change, then we will
   // already invoke PopupNotifications.locationChange separately.
   if (!Object.getOwnPropertyDescriptor(window, "PopupNotifications").get &&
       !aOptions.isForLocationChange) {
@@ -3870,20 +3870,20 @@ XPCOMUtils.defineConstant(this, "Browser
 function FillHistoryMenu(aParent) {
   // Lazily add the hover listeners on first showing and never remove them
   if (!aParent.hasStatusListener) {
     // Show history item's uri in the status bar when hovering, and clear on exit
     aParent.addEventListener("DOMMenuItemActive", function(aEvent) {
       // Only the current page should have the checked attribute, so skip it
       if (!aEvent.target.hasAttribute("checked"))
         XULBrowserWindow.setOverLink(aEvent.target.getAttribute("uri"));
-    }, false);
+    });
     aParent.addEventListener("DOMMenuItemInactive", function() {
       XULBrowserWindow.setOverLink("");
-    }, false);
+    });
 
     aParent.hasStatusListener = true;
   }
 
   // Remove old entries if any
   let children = aParent.childNodes;
   for (var i = children.length - 1; i >= 0; --i) {
     if (children[i].hasAttribute("index"))
@@ -4774,28 +4774,28 @@ var CombinedStopReload = {
     let reload = document.getElementById("urlbar-reload-button");
     let stop = document.getElementById("urlbar-stop-button");
     if (!stop || !reload || reload.nextSibling != stop)
       return;
 
     this._initialized = true;
     if (XULBrowserWindow.stopCommand.getAttribute("disabled") != "true")
       reload.setAttribute("displaystop", "true");
-    stop.addEventListener("click", this, false);
+    stop.addEventListener("click", this);
     this.reload = reload;
     this.stop = stop;
   },
 
   uninit() {
     if (!this._initialized)
       return;
 
     this._cancelTransition();
     this._initialized = false;
-    this.stop.removeEventListener("click", this, false);
+    this.stop.removeEventListener("click", this);
     this.reload = null;
     this.stop = null;
   },
 
   handleEvent(event) {
     // the only event we listen to is "click" on the stop button
     if (event.button == 0 &&
         !this.stop.disabled)
@@ -5143,17 +5143,17 @@ function onViewToolbarsPopupShowing(aEve
     menuItem.setAttribute("label", toolbar.getAttribute("toolbarname"));
     menuItem.setAttribute("checked", toolbar.getAttribute(hidingAttribute) != "true");
     menuItem.setAttribute("accesskey", toolbar.getAttribute("accesskey"));
     if (popup.id != "toolbar-context-menu")
       menuItem.setAttribute("key", toolbar.getAttribute("key"));
 
     popup.insertBefore(menuItem, firstMenuItem);
 
-    menuItem.addEventListener("command", onViewToolbarCommand, false);
+    menuItem.addEventListener("command", onViewToolbarCommand);
   }
 
 
   let moveToPanel = popup.querySelector(".customize-context-moveToPanel");
   let removeFromToolbar = popup.querySelector(".customize-context-removeFromToolbar");
   // View -> Toolbars menu doesn't have the moveToPanel or removeFromToolbar items.
   if (!moveToPanel || !removeFromToolbar) {
     return;
@@ -7858,18 +7858,18 @@ var TabContextMenu = {
     } else {
       toggleMute.label = gNavigatorBundle.getString("muteTab.label");
       toggleMute.accessKey = gNavigatorBundle.getString("muteTab.accesskey");
     }
 
     this.contextTab.toggleMuteMenuItem = toggleMute;
     this._updateToggleMuteMenuItem(this.contextTab);
 
-    this.contextTab.addEventListener("TabAttrModified", this, false);
-    aPopupMenu.addEventListener("popuphiding", this, false);
+    this.contextTab.addEventListener("TabAttrModified", this);
+    aPopupMenu.addEventListener("popuphiding", this);
 
     gFxAccounts.updateTabContextMenu(aPopupMenu);
   },
   handleEvent(aEvent) {
     switch (aEvent.type) {
       case "popuphiding":
         gBrowser.removeEventListener("TabAttrModified", this);
         aEvent.target.removeEventListener("popuphiding", this);
--- a/browser/base/content/newtab/cells.js
+++ b/browser/base/content/newtab/cells.js
@@ -11,17 +11,17 @@
  */
 function Cell(aGrid, aNode) {
   this._grid = aGrid;
   this._node = aNode;
   this._node._newtabCell = this;
 
   // Register drag-and-drop event handlers.
   ["dragenter", "dragover", "dragexit", "drop"].forEach(function (aType) {
-    this._node.addEventListener(aType, this, false);
+    this._node.addEventListener(aType, this);
   }, this);
 }
 
 Cell.prototype = {
   /**
    * The grid.
    */
   _grid: null,
--- a/browser/base/content/newtab/page.js
+++ b/browser/base/content/newtab/page.js
@@ -135,18 +135,18 @@ var gPage = {
     // Initialize and render the grid.
     gGrid.init();
 
     // Initialize the drop target shim.
     gDropTargetShim.init();
 
 #ifdef XP_MACOSX
     // Workaround to prevent a delay on MacOSX due to a slow drop animation.
-    document.addEventListener("dragover", this, false);
-    document.addEventListener("drop", this, false);
+    document.addEventListener("dragover", this);
+    document.addEventListener("drop", this);
 #endif
   },
 
   /**
    * Updates the 'page-disabled' attributes of the respective DOM nodes.
    * @param aValue Whether the New Tab Page is enabled or not.
    */
   _updateAttributes: function Page_updateAttributes(aValue) {
--- a/browser/base/content/newtab/sites.js
+++ b/browser/base/content/newtab/sites.js
@@ -287,19 +287,19 @@ Site.prototype = {
     });
   },
 
   /**
    * Adds event handlers for the site and its buttons.
    */
   _addEventHandlers: function Site_addEventHandlers() {
     // Register drag-and-drop event handlers.
-    this._node.addEventListener("dragstart", this, false);
-    this._node.addEventListener("dragend", this, false);
-    this._node.addEventListener("mouseover", this, false);
+    this._node.addEventListener("dragstart", this);
+    this._node.addEventListener("dragend", this);
+    this._node.addEventListener("mouseover", this);
 
     // Specially treat the sponsored icon & suggested explanation
     // text to prevent regular hover effects
     let sponsored = this._querySelector(".newtab-sponsored");
     let suggested = this._querySelector(".newtab-suggested");
     this._ignoreHoverEvents(sponsored);
     this._ignoreHoverEvents(suggested);
   },
@@ -420,17 +420,17 @@ Site.prototype = {
   },
 
   /**
    * Handles all site events.
    */
   handleEvent: function Site_handleEvent(aEvent) {
     switch (aEvent.type) {
       case "mouseover":
-        this._node.removeEventListener("mouseover", this, false);
+        this._node.removeEventListener("mouseover", this);
         this._speculativeConnect();
         break;
       case "dragstart":
         gDrag.start(this, aEvent);
         break;
       case "dragend":
         gDrag.end(this, aEvent);
         break;
--- a/browser/base/content/newtab/undo.js
+++ b/browser/base/content/newtab/undo.js
@@ -19,17 +19,17 @@ var gUndoDialog = {
    */
   _undoData: null,
 
   /**
    * Initializes the undo dialog.
    */
   init: function UndoDialog_init() {
     this._undoContainer = document.getElementById("newtab-undo-container");
-    this._undoContainer.addEventListener("click", this, false);
+    this._undoContainer.addEventListener("click", this);
     this._undoButton = document.getElementById("newtab-undo-button");
     this._undoCloseButton = document.getElementById("newtab-undo-close-button");
     this._undoRestoreButton = document.getElementById("newtab-undo-restore-button");
   },
 
   /**
    * Shows the undo dialog.
    * @param aSite The site that just got removed.
--- a/browser/base/content/sync/setup.js
+++ b/browser/base/content/sync/setup.js
@@ -76,17 +76,17 @@ var gSyncSetup = {
         //        of `this`. Fix in a followup. (bug 583347)
         if (add)
           Weave.Svc.Obs.add(topic, self[func], self);
         else
           Weave.Svc.Obs.remove(topic, self[func], self);
       });
     };
     addRem(true);
-    window.addEventListener("unload", () => addRem(false), false);
+    window.addEventListener("unload", () => addRem(false));
 
     window.setTimeout(function() {
       // Force Service to be loaded so that engines are registered.
       // See Bug 670082.
       Weave.Service;
     }, 0);
 
     this.captchaBrowser = document.getElementById("captcha");
--- a/browser/base/content/sync/utils.js
+++ b/browser/base/content/sync/utils.js
@@ -106,17 +106,17 @@ var gSyncUtils = {
     let pp = document.getElementById(elid).value;
 
     // Create an invisible iframe whose contents we can print.
     let iframe = document.createElement("iframe");
     iframe.setAttribute("src", "chrome://browser/content/sync/key.xhtml");
     iframe.collapsed = true;
     document.documentElement.appendChild(iframe);
     iframe.contentWindow.addEventListener("load", function() {
-      iframe.contentWindow.removeEventListener("load", arguments.callee, false);
+      iframe.contentWindow.removeEventListener("load", arguments.callee);
 
       // Insert the Sync Key into the page.
       let el = iframe.contentDocument.getElementById("synckey");
       el.firstChild.nodeValue = pp;
 
       // Insert the TOS and Privacy Policy URLs into the page.
       let termsURL = Weave.Svc.Prefs.get("termsURL");
       el = iframe.contentDocument.getElementById("tosLink");
@@ -124,17 +124,17 @@ var gSyncUtils = {
       el.firstChild.nodeValue = termsURL;
 
       let privacyURL = Weave.Svc.Prefs.get("privacyURL");
       el = iframe.contentDocument.getElementById("ppLink");
       el.setAttribute("href", privacyURL);
       el.firstChild.nodeValue = privacyURL;
 
       callback(iframe);
-    }, false);
+    });
   },
 
   /**
    * Print passphrase backup document.
    *
    * @param elid : ID of the form element containing the passphrase.
    */
   passphrasePrint(elid) {
--- a/browser/base/content/tabbrowser.xml
+++ b/browser/base/content/tabbrowser.xml
@@ -4940,17 +4940,17 @@
           const nsIEventListenerService =
             Components.interfaces.nsIEventListenerService;
           let els = Components.classes["@mozilla.org/eventlistenerservice;1"]
                               .getService(nsIEventListenerService);
           els.addSystemEventListener(document, "keydown", this, false);
           if (this.AppConstants.platform == "macosx") {
             els.addSystemEventListener(document, "keypress", this, false);
           }
-          window.addEventListener("sizemodechange", this, false);
+          window.addEventListener("sizemodechange", this);
 
           var uniqueId = this._generateUniquePanelID();
           this.mPanelContainer.childNodes[0].id = uniqueId;
           this.mCurrentTab.linkedPanel = uniqueId;
           this.mCurrentTab.permanentKey = this.mCurrentBrowser.permanentKey;
           this.mCurrentTab._tPos = 0;
           this.mCurrentTab._fullyOpen = true;
           this.mCurrentTab.cachePosition = 0;
@@ -5060,17 +5060,17 @@
           const nsIEventListenerService =
             Components.interfaces.nsIEventListenerService;
           let els = Components.classes["@mozilla.org/eventlistenerservice;1"]
                               .getService(nsIEventListenerService);
           els.removeSystemEventListener(document, "keydown", this, false);
           if (this.AppConstants.platform == "macosx") {
             els.removeSystemEventListener(document, "keypress", this, false);
           }
-          window.removeEventListener("sizemodechange", this, false);
+          window.removeEventListener("sizemodechange", this);
 
           if (gMultiProcessBrowser) {
             let messageManager = window.getGroupMessageManager("browsers");
             messageManager.removeMessageListener("DOMTitleChanged", this);
             window.messageManager.removeMessageListener("contextmenu", this);
 
             if (this._switcher) {
               this._switcher.destroy();
@@ -5466,18 +5466,18 @@
       <constructor>
         <![CDATA[
           this.mTabClipWidth = Services.prefs.getIntPref("browser.tabs.tabClipWidth");
 
           var tab = this.firstChild;
           tab.label = this.tabbrowser.mStringBundle.getString("tabs.emptyTabTitle");
           tab.setAttribute("onerror", "this.removeAttribute('image');");
 
-          window.addEventListener("resize", this, false);
-          window.addEventListener("load", this, false);
+          window.addEventListener("resize", this);
+          window.addEventListener("load", this);
 
           try {
             this._tabAnimationLoggingEnabled = Services.prefs.getBoolPref("browser.tabs.animationLogging.enabled");
           } catch (ex) {
             this._tabAnimationLoggingEnabled = false;
           }
           this._browserNewtabpageEnabled = Services.prefs.getBoolPref("browser.newtabpage.enabled");
           Services.prefs.addObserver("privacy.userContext", this, false);
@@ -5805,37 +5805,37 @@
               tab.style.setProperty("max-width", tabWidth, "important");
               if (!isEndTab) { // keep tabs the same width
                 tab.style.transition = "none";
                 tab.clientTop; // flush styles to skip animation; see bug 649247
                 tab.style.transition = "";
               }
             }
             this._hasTabTempMaxWidth = true;
-            this.tabbrowser.addEventListener("mousemove", this, false);
-            window.addEventListener("mouseout", this, false);
+            this.tabbrowser.addEventListener("mousemove", this);
+            window.addEventListener("mouseout", this);
           }
         ]]></body>
       </method>
 
       <method name="_expandSpacerBy">
         <parameter name="pixels"/>
         <body><![CDATA[
           let spacer = this._closingTabsSpacer;
           spacer.style.width = parseFloat(spacer.style.width) + pixels + "px";
           this.setAttribute("using-closing-tabs-spacer", "true");
-          this.tabbrowser.addEventListener("mousemove", this, false);
-          window.addEventListener("mouseout", this, false);
+          this.tabbrowser.addEventListener("mousemove", this);
+          window.addEventListener("mouseout", this);
         ]]></body>
       </method>
 
       <method name="_unlockTabSizing">
         <body><![CDATA[
-          this.tabbrowser.removeEventListener("mousemove", this, false);
-          window.removeEventListener("mouseout", this, false);
+          this.tabbrowser.removeEventListener("mousemove", this);
+          window.removeEventListener("mouseout", this);
 
           if (this._hasTabTempMaxWidth) {
             this._hasTabTempMaxWidth = false;
             let tabs = this.tabbrowser.visibleTabs;
             for (let i = 0; i < tabs.length; i++)
               tabs[i].style.maxWidth = "";
           }
 
@@ -7334,19 +7334,19 @@
           }
 
           document.getElementById("alltabs_undoCloseTab").disabled =
             SessionStore.getClosedTabCount(window) == 0;
 
           var tabcontainer = gBrowser.tabContainer;
 
           // Listen for changes in the tab bar.
-          tabcontainer.addEventListener("TabAttrModified", this, false);
-          tabcontainer.addEventListener("TabClose", this, false);
-          tabcontainer.mTabstrip.addEventListener("scroll", this, false);
+          tabcontainer.addEventListener("TabAttrModified", this);
+          tabcontainer.addEventListener("TabClose", this);
+          tabcontainer.mTabstrip.addEventListener("scroll", this);
 
           let tabs = gBrowser.visibleTabs;
           for (var i = 0; i < tabs.length; i++) {
             if (!tabs[i].pinned)
               this._createTabMenuItem(tabs[i]);
           }
           this._updateTabsVisibilityStatus();
         }
@@ -7365,19 +7365,19 @@
             menuItem.tab.mCorrespondingMenuitem = null;
             this.removeChild(menuItem);
           }
           if (menuItem.hasAttribute("usercontextid")) {
             this.removeChild(menuItem);
           }
         }
         var tabcontainer = gBrowser.tabContainer;
-        tabcontainer.mTabstrip.removeEventListener("scroll", this, false);
-        tabcontainer.removeEventListener("TabAttrModified", this, false);
-        tabcontainer.removeEventListener("TabClose", this, false);
+        tabcontainer.mTabstrip.removeEventListener("scroll", this);
+        tabcontainer.removeEventListener("TabAttrModified", this);
+        tabcontainer.removeEventListener("TabClose", this);
       ]]></handler>
 
       <handler event="DOMMenuItemActive">
       <![CDATA[
         var tab = event.target.tab;
         if (tab) {
           let overLink = tab.linkedBrowser.currentURI.spec;
           if (overLink == "about:blank")
@@ -7408,21 +7408,21 @@
                    xbl:inherits="value=label,crop,mirror"
                    flex="1"
                    crop="end"/>
       </xul:hbox>
     </content>
 
     <implementation implements="nsIDOMEventListener">
       <constructor><![CDATA[
-        window.addEventListener("resize", this, false);
+        window.addEventListener("resize", this);
       ]]></constructor>
 
       <destructor><![CDATA[
-        window.removeEventListener("resize", this, false);
+        window.removeEventListener("resize", this);
         MousePosTracker.removeListener(this);
       ]]></destructor>
 
       <property name="label">
         <setter><![CDATA[
           if (!this.label) {
             this.removeAttribute("mirror");
             this.removeAttribute("sizelimit");
--- a/browser/base/content/test/general/accounts_testRemoteCommands.html
+++ b/browser/base/content/test/general/accounts_testRemoteCommands.html
@@ -1,16 +1,16 @@
 <html>
   <head>
     <meta charset="utf-8">
 
 <script type="text/javascript;version=1.8">
 
 function init() {
-  window.addEventListener("message", function process(e) {doTest(e)}, false);
+  window.addEventListener("message", function process(e) {doTest(e)});
   // unless we relinquish the eventloop,
   // tests will run before the chrome event handlers are ready
   setTimeout(doTest, 0);
 }
 
 function checkStatusValue(payload, expectedValue) {
   return payload.status == expectedValue;
 }
--- a/browser/base/content/test/general/browser_aboutHealthReport.js
+++ b/browser/base/content/test/general/browser_aboutHealthReport.js
@@ -121,14 +121,14 @@ function promiseNewTabLoadEvent(aUrl, aE
   tab.linkedBrowser.addEventListener(aEventType, function load(event) {
     tab.linkedBrowser.removeEventListener(aEventType, load, true);
     let iframe = tab.linkedBrowser.contentDocument.getElementById("remote-report");
       iframe.addEventListener("load", function frameLoad(e) {
         if (iframe.contentWindow.location.href == "about:blank" ||
             e.target != iframe) {
           return;
         }
-        iframe.removeEventListener("load", frameLoad, false);
+        iframe.removeEventListener("load", frameLoad);
         deferred.resolve(iframe);
-      }, false);
+      });
     }, true);
   return deferred.promise;
 }
--- a/browser/base/content/test/general/browser_backButtonFitts.js
+++ b/browser/base/content/test/general/browser_backButtonFitts.js
@@ -8,19 +8,19 @@ add_task(function* () {
 
   yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function* () {
     // Push the state before maximizing the window and clicking below.
     content.history.pushState("page2", "page2", "page2");
 
     // While in the child process, add a listener for the popstate event here. This
     // event will fire when the mouse click happens.
     content.addEventListener("popstate", function onPopState() {
-      content.removeEventListener("popstate", onPopState, false);
+      content.removeEventListener("popstate", onPopState);
       sendAsyncMessage("Test:PopStateOccurred", { location: content.document.location.href });
-    }, false);
+    });
   });
 
   window.maximize();
 
   // Find where the nav-bar is vertically.
   var navBar = document.getElementById("nav-bar");
   var boundingRect = navBar.getBoundingClientRect();
   var yPixel = boundingRect.top + Math.floor(boundingRect.height / 2);
--- a/browser/base/content/test/general/browser_bug321000.js
+++ b/browser/base/content/test/general/browser_bug321000.js
@@ -45,36 +45,36 @@ function next_test() {
 
 function test_paste(aCurrentTest) {
   var element = aCurrentTest.element;
 
   // Register input listener.
   var inputListener = {
     test: aCurrentTest,
     handleEvent(event) {
-      element.removeEventListener(event.type, this, false);
+      element.removeEventListener(event.type, this);
 
       is(element.value, this.test.expected, this.test.desc);
 
       // Clear the field and go to next test.
       element.value = "";
       setTimeout(next_test, 0);
     }
   }
-  element.addEventListener("input", inputListener, false);
+  element.addEventListener("input", inputListener);
 
   // Focus the window.
   window.focus();
   gBrowser.selectedBrowser.focus();
 
   // Focus the element and wait for focus event.
   info("About to focus " + element.id);
   element.addEventListener("focus", function() {
-    element.removeEventListener("focus", arguments.callee, false);
+    element.removeEventListener("focus", arguments.callee);
     executeSoon(function() {
       // Pasting is async because the Accel+V codepath ends up going through
       // nsDocumentViewer::FireClipboardEvent.
       info("Pasting into " + element.id);
       EventUtils.synthesizeKey("v", { accelKey: true });
     });
-  }, false);
+  });
   element.focus();
 }
--- a/browser/base/content/test/general/browser_bug409481.js
+++ b/browser/base/content/test/general/browser_bug409481.js
@@ -35,46 +35,46 @@ function runTest(event) {
   var sidebar = document.getElementById("sidebar");
   sidebar.contentDocument.removeEventListener("load", delayedRunTest, true);
 
   var browser = sidebar.contentDocument.getElementById("web-panels-browser");
   var div = browser && browser.contentDocument.getElementById("test_bug409481");
   ok(div && div.textContent == "Content!", "Sidebar content loaded");
 
   var link = browser && browser.contentDocument.getElementById("link");
-  sidebar.contentDocument.addEventListener("popupshown", contextMenuOpened, false);
+  sidebar.contentDocument.addEventListener("popupshown", contextMenuOpened);
 
   EventUtils.synthesizeMouseAtCenter(link, { type: "contextmenu", button: 2 }, browser.contentWindow);
 }
 
 function contextMenuOpened() {
   var sidebar = document.getElementById("sidebar");
-  sidebar.contentDocument.removeEventListener("popupshown", contextMenuOpened, false);
+  sidebar.contentDocument.removeEventListener("popupshown", contextMenuOpened);
 
   var copyLinkCommand = sidebar.contentDocument.getElementById("context-copylink");
-  copyLinkCommand.addEventListener("command", copyLinkCommandExecuted, false);
+  copyLinkCommand.addEventListener("command", copyLinkCommandExecuted);
   copyLinkCommand.doCommand();
 }
 
 function copyLinkCommandExecuted(event) {
-  event.target.removeEventListener("command", copyLinkCommandExecuted, false);
+  event.target.removeEventListener("command", copyLinkCommandExecuted);
 
   var sidebar = document.getElementById("sidebar");
   var browser = sidebar.contentDocument.getElementById("web-panels-browser");
   var textbox = browser && browser.contentDocument.getElementById("textbox");
   textbox.focus();
   document.commandDispatcher.getControllerForCommand("cmd_paste").doCommand("cmd_paste");
   is(textbox.value, "http://www.example.com/ctest", "copy link command");
 
-  sidebar.contentDocument.addEventListener("popuphidden", contextMenuClosed, false);
+  sidebar.contentDocument.addEventListener("popuphidden", contextMenuClosed);
   event.target.parentNode.hidePopup();
 }
 
 function contextMenuClosed() {
   var sidebar = document.getElementById("sidebar");
-  sidebar.contentDocument.removeEventListener("popuphidden", contextMenuClosed, false);
+  sidebar.contentDocument.removeEventListener("popuphidden", contextMenuClosed);
 
   SidebarUI.hide();
 
   ok(document.getElementById("sidebar-box").hidden, "Sidebar successfully hidden");
 
   finish();
 }
--- a/browser/base/content/test/general/browser_bug423833.js
+++ b/browser/base/content/test/general/browser_bug423833.js
@@ -68,18 +68,18 @@ function test2Setup() {
 
   document.popupNode = badFrame.document.firstChild;
 
   var contentAreaContextMenu = document.getElementById("contentAreaContextMenu");
   var contextMenu = new nsContextMenu(contentAreaContextMenu);
 
   gBrowser.tabContainer.addEventListener("TabOpen", function(event) {
     test2tab = event.target;
-    gBrowser.tabContainer.removeEventListener("TabOpen", arguments.callee, false);
-  }, false);
+    gBrowser.tabContainer.removeEventListener("TabOpen", arguments.callee);
+  });
   contextMenu.openFrameInTab();
   ok(test2tab, "openFrameInTab() opened a tab");
 
   gBrowser.selectedTab = test2tab;
 
   intervalID = setInterval(testOpenFrameInTab, 3000);
 }
 
--- a/browser/base/content/test/general/browser_bug432599.js
+++ b/browser/base/content/test/general/browser_bug432599.js
@@ -79,23 +79,23 @@ var initialRemoveHidden;
 
 var popupElement = document.getElementById("editBookmarkPanel");
 var titleElement = document.getElementById("editBookmarkPanelTitle");
 var removeElement = document.getElementById("editBookmarkPanelRemoveButton");
 
 function checkBookmarksPanel(invoker, phase) {
   let onPopupShown = function(aEvent) {
     if (aEvent.originalTarget == popupElement) {
-      popupElement.removeEventListener("popupshown", arguments.callee, false);
+      popupElement.removeEventListener("popupshown", arguments.callee);
       checkBookmarksPanel(invoker, phase + 1);
     }
   };
   let onPopupHidden = function(aEvent) {
     if (aEvent.originalTarget == popupElement) {
-      popupElement.removeEventListener("popuphidden", arguments.callee, false);
+      popupElement.removeEventListener("popuphidden", arguments.callee);
       if (phase < 4) {
         checkBookmarksPanel(invoker, phase + 1);
       } else {
         ++currentInvoker;
         if (currentInvoker < invokers.length) {
           checkBookmarksPanel(invokers[currentInvoker], 1);
         } else {
           gBrowser.removeTab(gBrowser.selectedTab, {skipPermitUnload: true});
@@ -104,23 +104,23 @@ function checkBookmarksPanel(invoker, ph
         }
       }
     }
   };
 
   switch (phase) {
   case 1:
   case 3:
-    popupElement.addEventListener("popupshown", onPopupShown, false);
+    popupElement.addEventListener("popupshown", onPopupShown);
     break;
   case 2:
-    popupElement.addEventListener("popuphidden", onPopupHidden, false);
+    popupElement.addEventListener("popuphidden", onPopupHidden);
     initialValue = titleElement.value;
     initialRemoveHidden = removeElement.hidden;
     break;
   case 4:
-    popupElement.addEventListener("popuphidden", onPopupHidden, false);
+    popupElement.addEventListener("popuphidden", onPopupHidden);
     is(titleElement.value, initialValue, "The bookmark panel's title should be the same");
     is(removeElement.hidden, initialRemoveHidden, "The bookmark panel's visibility should not change");
     break;
   }
   invoker(phase);
 }
--- a/browser/base/content/test/general/browser_bug481560.js
+++ b/browser/base/content/test/general/browser_bug481560.js
@@ -2,20 +2,20 @@ function test() {
   waitForExplicitFinish();
 
   whenNewWindowLoaded(null, function(win) {
     waitForFocus(function() {
       function onTabClose() {
         ok(false, "shouldn't have gotten the TabClose event for the last tab");
       }
       var tab = win.gBrowser.selectedTab;
-      tab.addEventListener("TabClose", onTabClose, false);
+      tab.addEventListener("TabClose", onTabClose);
 
       EventUtils.synthesizeKey("w", { accelKey: true }, win);
 
       ok(win.closed, "accel+w closed the window immediately");
 
-      tab.removeEventListener("TabClose", onTabClose, false);
+      tab.removeEventListener("TabClose", onTabClose);
 
       finish();
     }, win);
   });
 }
--- a/browser/base/content/test/general/browser_bug521216.js
+++ b/browser/base/content/test/general/browser_bug521216.js
@@ -2,32 +2,32 @@ var expected = ["TabOpen", "onStateChang
 var actual = [];
 var tabIndex = -1;
 this.__defineGetter__("tab", () => gBrowser.tabs[tabIndex]);
 
 function test() {
   waitForExplicitFinish();
   tabIndex = gBrowser.tabs.length;
   gBrowser.addTabsProgressListener(progressListener);
-  gBrowser.tabContainer.addEventListener("TabOpen", TabOpen, false);
+  gBrowser.tabContainer.addEventListener("TabOpen", TabOpen);
   gBrowser.addTab("data:text/html,<html><head><link href='about:logo' rel='shortcut icon'>");
 }
 
 function record(aName) {
   info("got " + aName);
   if (actual.indexOf(aName) == -1)
     actual.push(aName);
   if (actual.length == expected.length) {
     is(actual.toString(), expected.toString(),
        "got events and progress notifications in expected order");
 
     executeSoon(function(tab) {
       gBrowser.removeTab(tab);
       gBrowser.removeTabsProgressListener(progressListener);
-      gBrowser.tabContainer.removeEventListener("TabOpen", TabOpen, false);
+      gBrowser.tabContainer.removeEventListener("TabOpen", TabOpen);
       finish();
     }.bind(null, tab));
   }
 }
 
 function TabOpen(aEvent) {
   if (aEvent.target == tab)
     record(arguments.callee.name);
--- a/browser/base/content/test/general/browser_bug553455.js
+++ b/browser/base/content/test/general/browser_bug553455.js
@@ -130,19 +130,19 @@ function waitForNotification(aId, aExpec
     return PopupNotifications.panel;
   });
 }
 
 function waitForNotificationClose() {
   return new Promise(resolve => {
     info("Waiting for notification to close");
     PopupNotifications.panel.addEventListener("popuphidden", function listener() {
-      PopupNotifications.panel.removeEventListener("popuphidden", listener, false);
+      PopupNotifications.panel.removeEventListener("popuphidden", listener);
       resolve();
-    }, false);
+    });
   });
 }
 
 function waitForInstallDialog() {
   return Task.spawn(function* () {
     if (Preferences.get("xpinstall.customConfirmationUI", false)) {
       let panel = yield waitForNotification("addon-install-confirmation");
       return panel.childNodes[0];
@@ -778,22 +778,22 @@ function test_reload() {
     is(notification.button.label, "Restart Now", "Should have seen the right button");
     is(notification.getAttribute("label"),
        "XPI Test will be installed after you restart " + gApp + ".",
        "Should have seen the right message");
 
     function testFail() {
       ok(false, "Reloading should not have hidden the notification");
     }
-    PopupNotifications.panel.addEventListener("popuphiding", testFail, false);
+    PopupNotifications.panel.addEventListener("popuphiding", testFail);
     let requestedUrl = TESTROOT2 + "enabled.html";
     let loadedPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser, false, requestedUrl);
     gBrowser.loadURI(TESTROOT2 + "enabled.html");
     yield loadedPromise;
-    PopupNotifications.panel.removeEventListener("popuphiding", testFail, false);
+    PopupNotifications.panel.removeEventListener("popuphiding", testFail);
 
     let installs = yield getInstalls();
     is(installs.length, 1, "Should be one pending install");
     installs[0].cancel();
 
     Services.perms.remove(makeURI("http://example.com/"), "install");
     yield removeTab();
   });
--- a/browser/base/content/test/general/browser_bug555767.js
+++ b/browser/base/content/test/general/browser_bug555767.js
@@ -22,33 +22,33 @@
 
       // Set the urlbar to include the moz-action
       gURLBar.value = "moz-action:switchtab," + JSON.stringify({url: testURL});
       // Focus the urlbar so we can press enter
       gURLBar.focus();
 
       // Functions for TabClose and TabSelect
       function onTabClose(aEvent) {
-        gBrowser.tabContainer.removeEventListener("TabClose", onTabClose, false);
+        gBrowser.tabContainer.removeEventListener("TabClose", onTabClose);
         // Make sure we get the TabClose event for testTab
         is(aEvent.originalTarget, testTab, "Got the TabClose event for the right tab");
         // Confirm that we did select the tab
         ok(tabSelected, "Confirming that the tab was selected");
         gBrowser.removeTab(baseTab);
         finish();
       }
       function onTabSelect(aEvent) {
-        gBrowser.tabContainer.removeEventListener("TabSelect", onTabSelect, false);
+        gBrowser.tabContainer.removeEventListener("TabSelect", onTabSelect);
         // Make sure we got the TabSelect event for baseTab
         is(aEvent.originalTarget, baseTab, "Got the TabSelect event for the right tab");
         // Confirm that the selected tab is in fact base tab
         is(gBrowser.selectedTab, baseTab, "We've switched to the correct tab");
         tabSelected = true;
       }
 
       // Add the TabClose, TabSelect event listeners before we press enter
-      gBrowser.tabContainer.addEventListener("TabClose", onTabClose, false);
-      gBrowser.tabContainer.addEventListener("TabSelect", onTabSelect, false);
+      gBrowser.tabContainer.addEventListener("TabClose", onTabClose);
+      gBrowser.tabContainer.addEventListener("TabSelect", onTabSelect);
 
       // Press enter!
       EventUtils.synthesizeKey("VK_RETURN", {});
     });
 
--- a/browser/base/content/test/general/browser_bug581253.js
+++ b/browser/base/content/test/general/browser_bug581253.js
@@ -48,36 +48,36 @@ function waitForStarChange(aValue, aCall
 function onStarred() {
   is(BookmarkingUI.status, BookmarkingUI.STATUS_STARRED,
      "star button indicates that the page is bookmarked");
 
   let uri = makeURI(testURL);
   let tagTxn = new PlacesTagURITransaction(uri, [testTag]);
   PlacesUtils.transactionManager.doTransaction(tagTxn);
 
-  StarUI.panel.addEventListener("popupshown", onPanelShown, false);
+  StarUI.panel.addEventListener("popupshown", onPanelShown);
   BookmarkingUI.star.click();
 }
 
 function onPanelShown(aEvent) {
   if (aEvent.target == StarUI.panel) {
-    StarUI.panel.removeEventListener("popupshown", arguments.callee, false);
+    StarUI.panel.removeEventListener("popupshown", arguments.callee);
     let tagsField = document.getElementById("editBMPanel_tagsField");
     ok(tagsField.value == testTag, "tags field value was set");
     tagsField.focus();
 
-    StarUI.panel.addEventListener("popuphidden", onPanelHidden, false);
+    StarUI.panel.addEventListener("popuphidden", onPanelHidden);
     let removeButton = document.getElementById("editBookmarkPanelRemoveButton");
     removeButton.click();
   }
 }
 
 function onPanelHidden(aEvent) {
   if (aEvent.target == StarUI.panel) {
-    StarUI.panel.removeEventListener("popuphidden", arguments.callee, false);
+    StarUI.panel.removeEventListener("popuphidden", arguments.callee);
 
     executeSoon(function() {
       ok(!PlacesUtils.bookmarks.isBookmarked(makeURI(testURL)),
          "the bookmark for the test url has been removed");
       is(BookmarkingUI.status, BookmarkingUI.STATUS_UNSTARRED,
          "star button indicates that the bookmark has been removed");
       gBrowser.removeCurrentTab();
       PlacesTestUtils.clearHistory().then(finish);
--- a/browser/base/content/test/general/browser_bug585785.js
+++ b/browser/base/content/test/general/browser_bug585785.js
@@ -20,16 +20,16 @@ function checkAnimationState() {
     finish();
     return;
   }
 
   info("tab didn't close immediately, so the tab opening animation must have started moving");
   info("waiting for the tab to close asynchronously");
   tab.addEventListener("transitionend", function(event) {
     if (event.propertyName == "max-width") {
-      tab.removeEventListener("transitionend", arguments.callee, false);
+      tab.removeEventListener("transitionend", arguments.callee);
       executeSoon(function() {
         ok(!tab.parentNode, "tab removed asynchronously");
         finish();
       });
     }
-  }, false);
+  });
 }
--- a/browser/base/content/test/general/browser_bug592338.js
+++ b/browser/base/content/test/general/browser_bug592338.js
@@ -5,77 +5,77 @@
 const TESTROOT = "http://example.com/browser/toolkit/mozapps/extensions/test/xpinstall/";
 
 var tempScope = {};
 Components.utils.import("resource://gre/modules/LightweightThemeManager.jsm", tempScope);
 var LightweightThemeManager = tempScope.LightweightThemeManager;
 
 function wait_for_notification(aCallback) {
   PopupNotifications.panel.addEventListener("popupshown", function() {
-    PopupNotifications.panel.removeEventListener("popupshown", arguments.callee, false);
+    PopupNotifications.panel.removeEventListener("popupshown", arguments.callee);
     aCallback(PopupNotifications.panel);
-  }, false);
+  });
 }
 
 var TESTS = [
 function test_install_http() {
   is(LightweightThemeManager.currentTheme, null, "Should be no lightweight theme selected");
 
   var pm = Services.perms;
   pm.add(makeURI("http://example.org/"), "install", pm.ALLOW_ACTION);
 
   gBrowser.selectedTab = gBrowser.addTab("http://example.org/browser/browser/base/content/test/general/bug592338.html");
   gBrowser.selectedBrowser.addEventListener("pageshow", function() {
     if (gBrowser.contentDocument.location.href == "about:blank")
       return;
 
-    gBrowser.selectedBrowser.removeEventListener("pageshow", arguments.callee, false);
+    gBrowser.selectedBrowser.removeEventListener("pageshow", arguments.callee);
 
     executeSoon(function() {
       BrowserTestUtils.synthesizeMouse("#theme-install", 2, 2, {}, gBrowser.selectedBrowser);
 
       is(LightweightThemeManager.currentTheme, null, "Should not have installed the test theme");
 
       gBrowser.removeTab(gBrowser.selectedTab);
 
       pm.remove(makeURI("http://example.org/"), "install");
 
       runNextTest();
     });
-  }, false);
+  });
 },
 
 function test_install_lwtheme() {
   is(LightweightThemeManager.currentTheme, null, "Should be no lightweight theme selected");
 
   var pm = Services.perms;
   pm.add(makeURI("https://example.com/"), "install", pm.ALLOW_ACTION);
 
   gBrowser.selectedTab = gBrowser.addTab("https://example.com/browser/browser/base/content/test/general/bug592338.html");
   gBrowser.selectedBrowser.addEventListener("pageshow", function() {
     if (gBrowser.contentDocument.location.href == "about:blank")
       return;
 
-    gBrowser.selectedBrowser.removeEventListener("pageshow", arguments.callee, false);
+    gBrowser.selectedBrowser.removeEventListener("pageshow", arguments.callee);
 
     BrowserTestUtils.synthesizeMouse("#theme-install", 2, 2, {}, gBrowser.selectedBrowser);
     let notificationBox = gBrowser.getNotificationBox(gBrowser.selectedBrowser);
     waitForCondition(
       () => notificationBox.getNotificationWithValue("lwtheme-install-notification"),
       () => {
         is(LightweightThemeManager.currentTheme.id, "test", "Should have installed the test theme");
 
         LightweightThemeManager.currentTheme = null;
         gBrowser.removeTab(gBrowser.selectedTab);
         Services.perms.remove(makeURI("http://example.com/"), "install");
 
         runNextTest();
       }
     );
-  }, false);
+  });
 },
 
 function test_lwtheme_switch_theme() {
   is(LightweightThemeManager.currentTheme, null, "Should be no lightweight theme selected");
 
   AddonManager.getAddonByID("theme-xpi@tests.mozilla.org", function(aAddon) {
     aAddon.userDisabled = false;
     ok(aAddon.isActive, "Theme should have immediately enabled");
@@ -84,17 +84,17 @@ function test_lwtheme_switch_theme() {
     var pm = Services.perms;
     pm.add(makeURI("https://example.com/"), "install", pm.ALLOW_ACTION);
 
     gBrowser.selectedTab = gBrowser.addTab("https://example.com/browser/browser/base/content/test/general/bug592338.html");
     gBrowser.selectedBrowser.addEventListener("pageshow", function() {
       if (gBrowser.contentDocument.location.href == "about:blank")
         return;
 
-      gBrowser.selectedBrowser.removeEventListener("pageshow", arguments.callee, false);
+      gBrowser.selectedBrowser.removeEventListener("pageshow", arguments.callee);
 
       executeSoon(function() {
         wait_for_notification(function(aPanel) {
           is(LightweightThemeManager.currentTheme, null, "Should not have installed the test lwtheme");
           ok(aAddon.isActive, "Test theme should still be active");
 
           let notification = aPanel.childNodes[0];
           is(notification.button.label, "Restart Now", "Should have seen the right button");
@@ -106,17 +106,17 @@ function test_lwtheme_switch_theme() {
           gBrowser.removeTab(gBrowser.selectedTab);
 
           Services.perms.remove(makeURI("http://example.com"), "install");
 
           runNextTest();
         });
         BrowserTestUtils.synthesizeMouse("#theme-install", 2, 2, {}, gBrowser.selectedBrowser);
       });
-    }, false);
+    });
   });
 }
 ];
 
 function runNextTest() {
   AddonManager.getAllInstalls(function(aInstalls) {
     is(aInstalls.length, 0, "Should be no active installs");
 
--- a/browser/base/content/test/general/browser_bug596687.js
+++ b/browser/base/content/test/general/browser_bug596687.js
@@ -1,25 +1,25 @@
 add_task(function* test() {
   var tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser);
 
   var gotTabAttrModified = false;
   var gotTabClose = false;
 
   function onTabClose() {
     gotTabClose = true;
-    tab.addEventListener("TabAttrModified", onTabAttrModified, false);
+    tab.addEventListener("TabAttrModified", onTabAttrModified);
   }
 
   function onTabAttrModified() {
     gotTabAttrModified = true;
   }
 
-  tab.addEventListener("TabClose", onTabClose, false);
+  tab.addEventListener("TabClose", onTabClose);
 
   yield BrowserTestUtils.removeTab(tab);
 
   ok(gotTabClose, "should have got the TabClose event");
   ok(!gotTabAttrModified, "shouldn't have got the TabAttrModified event after TabClose");
 
-  tab.removeEventListener("TabClose", onTabClose, false);
-  tab.removeEventListener("TabAttrModified", onTabAttrModified, false);
+  tab.removeEventListener("TabClose", onTabClose);
+  tab.removeEventListener("TabAttrModified", onTabAttrModified);
 });
--- a/browser/base/content/test/general/browser_bug623893.js
+++ b/browser/base/content/test/general/browser_bug623893.js
@@ -26,20 +26,20 @@ function runTests() {
 
 function duplicate(delta, msg, cb) {
   var start = gBrowser.sessionHistory.index;
 
   duplicateTabIn(gBrowser.selectedTab, "tab", delta);
   let tab = gBrowser.selectedTab;
 
   tab.addEventListener("SSTabRestored", function tabRestoredListener() {
-    tab.removeEventListener("SSTabRestored", tabRestoredListener, false);
+    tab.removeEventListener("SSTabRestored", tabRestoredListener);
     is(gBrowser.sessionHistory.index, start + delta, msg);
     executeSoon(cb);
-  }, false);
+  });
 }
 
 function loadAndWait(url, cb) {
   gBrowser.selectedBrowser.addEventListener("load", function() {
     gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
     executeSoon(cb);
   }, true);
 
--- a/browser/base/content/test/general/browser_bug664672.js
+++ b/browser/base/content/test/general/browser_bug664672.js
@@ -1,19 +1,19 @@
 function test() {
   waitForExplicitFinish();
 
   var tab = gBrowser.addTab();
 
   tab.addEventListener("TabClose", function() {
-    tab.removeEventListener("TabClose", arguments.callee, false);
+    tab.removeEventListener("TabClose", arguments.callee);
 
     ok(tab.linkedBrowser, "linkedBrowser should still exist during the TabClose event");
 
     executeSoon(function() {
       ok(!tab.linkedBrowser, "linkedBrowser should be gone after the TabClose event");
 
       finish();
     });
-  }, false);
+  });
 
   gBrowser.removeTab(tab);
 }
--- a/browser/base/content/test/general/browser_bug676619.js
+++ b/browser/base/content/test/general/browser_bug676619.js
@@ -83,41 +83,41 @@ function addWindowListener(aURL, aCallba
 // This listens for the next opened tab and checks it is of the right url.
 // opencallback is called when the new tab is fully loaded
 // closecallback is called when the tab is closed
 function TabOpenListener(url, opencallback, closecallback) {
   this.url = url;
   this.opencallback = opencallback;
   this.closecallback = closecallback;
 
-  gBrowser.tabContainer.addEventListener("TabOpen", this, false);
+  gBrowser.tabContainer.addEventListener("TabOpen", this);
 }
 
 TabOpenListener.prototype = {
   url: null,
   opencallback: null,
   closecallback: null,
   tab: null,
   browser: null,
 
   handleEvent(event) {
     if (event.type == "TabOpen") {
-      gBrowser.tabContainer.removeEventListener("TabOpen", this, false);
+      gBrowser.tabContainer.removeEventListener("TabOpen", this);
       this.tab = event.originalTarget;
       this.browser = this.tab.linkedBrowser;
       BrowserTestUtils.browserLoaded(this.browser, false, this.url).then(() => {
-        this.tab.addEventListener("TabClose", this, false);
+        this.tab.addEventListener("TabClose", this);
         var url = this.browser.currentURI.spec;
         is(url, this.url, "Should have opened the correct tab");
         this.opencallback();
       });
     } else if (event.type == "TabClose") {
       if (event.originalTarget != this.tab)
         return;
-      this.tab.removeEventListener("TabClose", this, false);
+      this.tab.removeEventListener("TabClose", this);
       this.opencallback = null;
       this.tab = null;
       this.browser = null;
       // Let the window close complete
       executeSoon(this.closecallback);
       this.closecallback = null;
     }
   }
--- a/browser/base/content/test/general/browser_bug839103.js
+++ b/browser/base/content/test/general/browser_bug839103.js
@@ -35,22 +35,22 @@ function unexpectedContentEvent(evt) {
 
 // We've seen the original stylesheet in the document.
 // Now add a stylesheet on the fly and make sure we see it.
 function continueTest() {
   info("continuing test");
 
   let doc = gBrowser.contentDocument;
   doc.styleSheetChangeEventsEnabled = true;
-  doc.addEventListener("StyleSheetAdded", unexpectedContentEvent, false);
-  doc.addEventListener("StyleSheetRemoved", unexpectedContentEvent, false);
-  doc.addEventListener("StyleSheetApplicableStateChanged", unexpectedContentEvent, false);
-  doc.defaultView.addEventListener("StyleSheetAdded", unexpectedContentEvent, false);
-  doc.defaultView.addEventListener("StyleSheetRemoved", unexpectedContentEvent, false);
-  doc.defaultView.addEventListener("StyleSheetApplicableStateChanged", unexpectedContentEvent, false);
+  doc.addEventListener("StyleSheetAdded", unexpectedContentEvent);
+  doc.addEventListener("StyleSheetRemoved", unexpectedContentEvent);
+  doc.addEventListener("StyleSheetApplicableStateChanged", unexpectedContentEvent);
+  doc.defaultView.addEventListener("StyleSheetAdded", unexpectedContentEvent);
+  doc.defaultView.addEventListener("StyleSheetRemoved", unexpectedContentEvent);
+  doc.defaultView.addEventListener("StyleSheetApplicableStateChanged", unexpectedContentEvent);
   let link = doc.createElement('link');
   link.setAttribute('rel', 'stylesheet');
   link.setAttribute('type', 'text/css');
   link.setAttribute('href', gTestRoot + gStyleSheet);
   gLinkElement = link;
 
   gBrowser.addEventListener("StyleSheetAdded", dynamicStylesheetAdded, true);
   gBrowser.addEventListener("StyleSheetApplicableStateChanged", dynamicStylesheetApplicableStateChanged, true);
@@ -141,19 +141,19 @@ function styleRuleRemoved(evt) {
   ok(evt.stylesheet.toString().includes("CSSStyleSheet"), "evt.stylesheet is a stylesheet");
   ok(evt.rule, "evt.rule is defined");
 
   executeSoon(concludeTest);
 }
 
 function concludeTest() {
   let doc = gBrowser.contentDocument;
-  doc.removeEventListener("StyleSheetAdded", unexpectedContentEvent, false);
-  doc.removeEventListener("StyleSheetRemoved", unexpectedContentEvent, false);
-  doc.removeEventListener("StyleSheetApplicableStateChanged", unexpectedContentEvent, false);
-  doc.defaultView.removeEventListener("StyleSheetAdded", unexpectedContentEvent, false);
-  doc.defaultView.removeEventListener("StyleSheetRemoved", unexpectedContentEvent, false);
-  doc.defaultView.removeEventListener("StyleSheetApplicableStateChanged", unexpectedContentEvent, false);
+  doc.removeEventListener("StyleSheetAdded", unexpectedContentEvent);
+  doc.removeEventListener("StyleSheetRemoved", unexpectedContentEvent);
+  doc.removeEventListener("StyleSheetApplicableStateChanged", unexpectedContentEvent);
+  doc.defaultView.removeEventListener("StyleSheetAdded", unexpectedContentEvent);
+  doc.defaultView.removeEventListener("StyleSheetRemoved", unexpectedContentEvent);
+  doc.defaultView.removeEventListener("StyleSheetApplicableStateChanged", unexpectedContentEvent);
   gBrowser.removeCurrentTab();
   gLinkElement = null;
   gTab = null;
   finish();
 }
--- a/browser/base/content/test/general/browser_ctrlTab.js
+++ b/browser/base/content/test/general/browser_ctrlTab.js
@@ -83,19 +83,19 @@ add_task(function* () {
   checkTabs(1);
 
   { // test for bug 445768
     let focusedWindow = document.commandDispatcher.focusedWindow;
     let eventConsumed = true;
     let detectKeyEvent = function(event) {
       eventConsumed = event.defaultPrevented;
     };
-    document.addEventListener("keypress", detectKeyEvent, false);
+    document.addEventListener("keypress", detectKeyEvent);
     yield pressCtrlTab();
-    document.removeEventListener("keypress", detectKeyEvent, false);
+    document.removeEventListener("keypress", detectKeyEvent);
     ok(eventConsumed, "Ctrl+Tab consumed by the tabbed browser if one tab is open");
     is(focusedWindow, document.commandDispatcher.focusedWindow,
        "Ctrl+Tab doesn't change focus if one tab is open");
   }
 
   // cleanup
   if (gPrefService.prefHasUserValue("browser.ctrlTab.previews"))
     gPrefService.clearUserPref("browser.ctrlTab.previews");
--- a/browser/base/content/test/general/browser_discovery.js
+++ b/browser/base/content/test/general/browser_discovery.js
@@ -1,19 +1,19 @@
 var browser;
 
 function doc() {
   return browser.contentDocument;
 }
 
 function setHandlerFunc(aResultFunc) {
   gBrowser.addEventListener("DOMLinkAdded", function(event) {
-    gBrowser.removeEventListener("DOMLinkAdded", arguments.callee, false);
+    gBrowser.removeEventListener("DOMLinkAdded", arguments.callee);
     executeSoon(aResultFunc);
-  }, false);
+  });
 }
 
 function test() {
   waitForExplicitFinish();
 
   gBrowser.selectedTab = gBrowser.addTab();
   browser = gBrowser.selectedBrowser;
   browser.addEventListener("load", function(event) {
--- a/browser/base/content/test/general/browser_fxa_oauth.js
+++ b/browser/base/content/test/general/browser_fxa_oauth.js
@@ -290,23 +290,23 @@ var gTests = [
       });
     }
   }
 ]; // gTests
 
 function waitForTab(aCallback) {
   let container = gBrowser.tabContainer;
   container.addEventListener("TabOpen", function tabOpener(event) {
-    container.removeEventListener("TabOpen", tabOpener, false);
+    container.removeEventListener("TabOpen", tabOpener);
     gBrowser.addEventListener("load", function listener() {
       gBrowser.removeEventListener("load", listener, true);
       let tab = event.target;
       aCallback(tab);
     }, true);
-  }, false);
+  });
 }
 
 function test() {
   waitForExplicitFinish();
 
   Task.spawn(function* () {
     const webchannelWhitelistPref = "webchannel.allowObject.urlWhitelist";
     let origWhitelist = Services.prefs.getCharPref(webchannelWhitelistPref);
--- a/browser/base/content/test/general/browser_gZipOfflineChild.js
+++ b/browser/base/content/test/general/browser_gZipOfflineChild.js
@@ -69,11 +69,11 @@ function test() {
 
   // Open a new tab.
   gBrowser.selectedTab = gBrowser.addTab(URL);
   registerCleanupFunction(() => gBrowser.removeCurrentTab());
 
   BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(() => {
     let window = gBrowser.selectedBrowser.contentWindow;
 
-    window.addEventListener("message", handleMessageEvents, false);
+    window.addEventListener("message", handleMessageEvents);
   });
 }
--- a/browser/base/content/test/general/browser_hide_removing.js
+++ b/browser/base/content/test/general/browser_hide_removing.js
@@ -9,23 +9,23 @@ function test() {
 
   // Add a tab that will get removed and hidden
   let testTab = gBrowser.addTab("about:blank", {skipAnimation: true});
   is(gBrowser.visibleTabs.length, 2, "just added a tab, so 2 tabs");
   gBrowser.selectedTab = testTab;
 
   let numVisBeforeHide, numVisAfterHide;
   gBrowser.tabContainer.addEventListener("TabSelect", function() {
-    gBrowser.tabContainer.removeEventListener("TabSelect", arguments.callee, false);
+    gBrowser.tabContainer.removeEventListener("TabSelect", arguments.callee);
 
     // While the next tab is being selected, hide the removing tab
     numVisBeforeHide = gBrowser.visibleTabs.length;
     gBrowser.hideTab(testTab);
     numVisAfterHide = gBrowser.visibleTabs.length;
-  }, false);
+  });
   gBrowser.removeTab(testTab, {animate: true});
 
   // Make sure the tab gets removed at the end of the animation by polling
   (function checkRemoved() {
     return setTimeout(function() {
       if (gBrowser.tabs.length != 1) {
         checkRemoved();
         return;
--- a/browser/base/content/test/general/browser_keywordSearch.js
+++ b/browser/base/content/test/general/browser_keywordSearch.js
@@ -20,19 +20,19 @@ function test() {
   waitForExplicitFinish();
 
   let windowObserver = {
     observe(aSubject, aTopic, aData) {
       if (aTopic == "domwindowopened") {
         ok(false, "Alert window opened");
         let win = aSubject.QueryInterface(Ci.nsIDOMEventTarget);
         win.addEventListener("load", function() {
-          win.removeEventListener("load", arguments.callee, false);
+          win.removeEventListener("load", arguments.callee);
           win.close();
-        }, false);
+        });
         executeSoon(finish);
       }
     }
   };
 
   Services.ww.registerNotification(windowObserver);
 
   let tab = gBrowser.selectedTab = gBrowser.addTab();
--- a/browser/base/content/test/general/browser_overflowScroll.js
+++ b/browser/base/content/test/general/browser_overflowScroll.js
@@ -28,25 +28,25 @@ function doTest() {
   tabstrip.smoothScroll = false;
 
   var tabMinWidth = parseInt(getComputedStyle(gBrowser.selectedTab, null).minWidth);
   var tabCountForOverflow = Math.ceil(width(tabstrip) / tabMinWidth * 3);
   while (tabs.length < tabCountForOverflow)
     gBrowser.addTab("about:blank", {skipAnimation: true});
   gBrowser.pinTab(tabs[0]);
 
-  tabstrip.addEventListener("overflow", runOverflowTests, false);
+  tabstrip.addEventListener("overflow", runOverflowTests);
 }
 
 function runOverflowTests(aEvent) {
   if (aEvent.detail != 1 ||
       aEvent.target != tabstrip)
     return;
 
-  tabstrip.removeEventListener("overflow", runOverflowTests, false);
+  tabstrip.removeEventListener("overflow", runOverflowTests);
 
   var upButton = tabstrip._scrollButtonUp;
   var downButton = tabstrip._scrollButtonDown;
   var element;
 
   gBrowser.selectedTab = firstScrollable();
   ok(left(scrollbox) <= left(firstScrollable()), "Selecting the first tab scrolls it into view " +
      "(" + left(scrollbox) + " <= " + left(firstScrollable()) + ")");
--- a/browser/base/content/test/general/browser_sanitizeDialog.js
+++ b/browser/base/content/test/general/browser_sanitizeDialog.js
@@ -781,49 +781,49 @@ WindowHelper.prototype = {
         return;
 
       Services.ww.unregisterNotification(windowObserver);
 
       var loaded = false;
       let win = aSubject.QueryInterface(Ci.nsIDOMWindow);
 
       win.addEventListener("load", function onload(event) {
-        win.removeEventListener("load", onload, false);
+        win.removeEventListener("load", onload);
 
         if (win.name !== "SanitizeDialog")
           return;
 
         wh.win = win;
         loaded = true;
         executeSoon(() => wh.onload());
-      }, false);
+      });
 
       win.addEventListener("unload", function onunload(event) {
         if (win.name !== "SanitizeDialog") {
-          win.removeEventListener("unload", onunload, false);
+          win.removeEventListener("unload", onunload);
           return;
         }
 
         // Why is unload fired before load?
         if (!loaded)
           return;
 
-        win.removeEventListener("unload", onunload, false);
+        win.removeEventListener("unload", onunload);
         wh.win = win;
 
         // Some exceptions that reach here don't reach the test harness, but
         // ok()/is() do...
         Task.spawn(function* () {
           if (wh.onunload) {
             yield wh.onunload();
           }
           yield PlacesTestUtils.promiseAsyncUpdates();
           wh._resolveClosed();
         });
-      }, false);
+      });
     }
     Services.ww.registerNotification(windowObserver);
     Services.ww.openWindow(null,
                            "chrome://browser/content/sanitize.xul",
                            "SanitizeDialog",
                            "chrome,titlebar,dialog,centerscreen,modal",
                            null);
   },
--- a/browser/base/content/test/general/browser_save_link-perwindowpb.js
+++ b/browser/base/content/test/general/browser_save_link-perwindowpb.js
@@ -14,17 +14,17 @@ function triggerSave(aWindow, aCallback)
   let testBrowser = aWindow.gBrowser.selectedBrowser;
   // This page sets a cookie if and only if a cookie does not exist yet
   let testURI = "http://mochi.test:8888/browser/browser/base/content/test/general/bug792517-2.html";
   testBrowser.loadURI(testURI);
   BrowserTestUtils.browserLoaded(testBrowser, false, testURI)
                   .then(() => {
     waitForFocus(function() {
       info("register to handle popupshown");
-      aWindow.document.addEventListener("popupshown", contextMenuOpened, false);
+      aWindow.document.addEventListener("popupshown", contextMenuOpened);
 
       BrowserTestUtils.synthesizeMouseAtCenter("#fff", {type: "contextmenu", button: 2}, testBrowser);
       info("right clicked!");
     }, aWindow);
   });
 
   function contextMenuOpened(event) {
     info("contextMenuOpened");
--- a/browser/base/content/test/general/browser_save_link_when_window_navigates.js
+++ b/browser/base/content/test/general/browser_save_link_when_window_navigates.js
@@ -100,29 +100,29 @@ var windowObserver = {
   observe(aSubject, aTopic, aData) {
     if (aTopic != "domwindowopened") {
       return;
     }
 
     let win = aSubject.QueryInterface(Ci.nsIDOMEventTarget);
 
     win.addEventListener("load", function onLoad(event) {
-      win.removeEventListener("load", onLoad, false);
+      win.removeEventListener("load", onLoad);
 
       if (win.location == UCT_URI) {
         SimpleTest.executeSoon(function() {
           if (windowObserver._callback) {
             windowObserver._callback(win);
             delete windowObserver._callback;
           } else {
             ok(false, "Unexpected UCT dialog!");
           }
         });
       }
-    }, false);
+    });
   }
 };
 
 Services.ww.registerNotification(windowObserver);
 
 function test() {
   waitForExplicitFinish();
 
--- a/browser/base/content/test/general/browser_windowactivation.js
+++ b/browser/base/content/test/general/browser_windowactivation.js
@@ -133,17 +133,17 @@ function childFunction() {
 
   addMessageListener("Test:GetBackgroundColor", function(message) {
     expectingResponse = true;
     ifChanged = message.data.ifChanged;
   });
 
   content.addEventListener("focus", function() {
     sendAsyncMessage("Test:FocusReceived", { });
-  }, false);
+  });
 
   var windowGotActivate = false;
   var windowGotDeactivate = false;
   addEventListener("activate", function() {
       sendAsyncMessage("Test:ActivateEvent", { ok: !windowGotActivate });
       windowGotActivate = false;
     });
 
--- a/browser/base/content/test/general/head.js
+++ b/browser/base/content/test/general/head.js
@@ -231,19 +231,19 @@ function setAndUpdateBlocklist(aURL, aCa
 
 function resetBlocklist() {
   Services.prefs.setCharPref("extensions.blocklist.url", _originalTestBlocklistURL);
 }
 
 function whenNewWindowLoaded(aOptions, aCallback) {
   let win = OpenBrowserWindow(aOptions);
   win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
     aCallback(win);
-  }, false);
+  });
 }
 
 function promiseWindowWillBeClosed(win) {
   return new Promise((resolve, reject) => {
     Services.obs.addObserver(function observe(subject, topic) {
       if (subject == win) {
         Services.obs.removeObserver(observe, topic);
         resolve();
--- a/browser/base/content/test/general/healthreport_testRemoteCommands.html
+++ b/browser/base/content/test/general/healthreport_testRemoteCommands.html
@@ -2,17 +2,17 @@
   <head>
     <meta charset="utf-8">
 <script type="application/javascript;version=1.7"
             src="healthreport_pingData.js">
 </script>
 <script type="application/javascript;version=1.7">
 
 function init() {
-  window.addEventListener("message", doTest, false);
+  window.addEventListener("message", doTest);
   doTest();
 }
 
 function checkSubmissionValue(payload, expectedValue) {
   return payload.enabled == expectedValue;
 }
 
 function isArray(arg) {
--- a/browser/base/content/test/general/test_offlineNotification.html
+++ b/browser/base/content/test/general/test_offlineNotification.html
@@ -50,17 +50,17 @@ window.addEventListener("message", funct
 
       pm.removeFromPrincipal(principal1, "offline-app");
       pm.removeFromPrincipal(principal2, "offline-app");
 
       offlineByDefault.reset();
 
       SimpleTest.finish();
     }
-  }, false);
+  });
 
 var count = 0;
 var expectedEvent = "";
 function eventHandler(evt) {
   ++count;
   is(evt.type, expectedEvent, "Wrong event!");
 }
 
--- a/browser/base/content/test/plugins/head.js
+++ b/browser/base/content/test/plugins/head.js
@@ -361,17 +361,17 @@ function promiseForNotificationBar(notif
 function waitForNotificationShown(notification, callback) {
   if (PopupNotifications.panel.state == "open") {
     executeSoon(callback);
     return;
   }
   PopupNotifications.panel.addEventListener("popupshown", function onShown(e) {
     PopupNotifications.panel.removeEventListener("popupshown", onShown);
     callback();
-  }, false);
+  });
   notification.reshow();
 }
 
 function promiseForNotificationShown(notification) {
   return new Promise((resolve) => {
     waitForNotificationShown(notification, resolve);
   });
 }
--- a/browser/base/content/test/popupNotifications/head.js
+++ b/browser/base/content/test/popupNotifications/head.js
@@ -232,33 +232,33 @@ function checkPopup(popup, notifyObj) {
        "accessKey for extra secondary action " + i + " matches");
   });
 }
 
 XPCOMUtils.defineLazyGetter(this, "gActiveListeners", () => {
   let listeners = new Map();
   registerCleanupFunction(() => {
     for (let [listener, eventName] of listeners) {
-      PopupNotifications.panel.removeEventListener(eventName, listener, false);
+      PopupNotifications.panel.removeEventListener(eventName, listener);
     }
   });
   return listeners;
 });
 
 function onPopupEvent(eventName, callback, condition) {
   let listener = event => {
     if (event.target != PopupNotifications.panel ||
         (condition && !condition()))
       return;
-    PopupNotifications.panel.removeEventListener(eventName, listener, false);
+    PopupNotifications.panel.removeEventListener(eventName, listener);
     gActiveListeners.delete(listener);
     executeSoon(() => callback.call(PopupNotifications.panel));
   }
   gActiveListeners.set(listener, eventName);
-  PopupNotifications.panel.addEventListener(eventName, listener, false);
+  PopupNotifications.panel.addEventListener(eventName, listener);
 }
 
 function waitForNotificationPanel() {
   return new Promise(resolve => {
     onPopupEvent("popupshown", function() {
       resolve(this);
     });
   });
@@ -282,23 +282,23 @@ function triggerSecondaryCommand(popup, 
     EventUtils.synthesizeMouseAtCenter(notification.secondaryButton, {});
     return;
   }
 
   // Extra secondary actions appear in a menu.
   notification.secondaryButton.nextSibling.nextSibling.focus();
 
   popup.addEventListener("popupshown", function handle() {
-    popup.removeEventListener("popupshown", handle, false);
+    popup.removeEventListener("popupshown", handle);
     info("Command popup open for notification " + notification.id);
     // Press down until the desired command is selected. Decrease index by one
     // since the secondary action was handled above.
     for (let i = 0; i <= index - 1; i++) {
       EventUtils.synthesizeKey("VK_DOWN", {});
     }
     // Activate
     EventUtils.synthesizeKey("VK_RETURN", {});
-  }, false);
+  });
 
   // One down event to open the popup
   info("Open the popup to trigger secondary command for notification " + notification.id);
   EventUtils.synthesizeKey("VK_DOWN", { altKey: !navigator.platform.includes("Mac") });
 }
--- a/browser/base/content/test/social/browser_blocklist.js
+++ b/browser/base/content/test/social/browser_blocklist.js
@@ -153,34 +153,34 @@ var tests = {
       _window: null,
       onOpenWindow(aXULWindow) {
         Services.wm.removeListener(this);
         this._window = aXULWindow;
         let domwindow = aXULWindow.QueryInterface(Ci.nsIInterfaceRequestor)
                                   .getInterface(Ci.nsIDOMWindow);
 
         domwindow.addEventListener("load", function _load() {
-          domwindow.removeEventListener("load", _load, false);
+          domwindow.removeEventListener("load", _load);
 
           domwindow.addEventListener("unload", function _unload() {
-            domwindow.removeEventListener("unload", _unload, false);
+            domwindow.removeEventListener("unload", _unload);
             info("blocklist window was closed");
             Services.wm.removeListener(listener);
             next();
-          }, false);
+          });
 
           is(domwindow.document.location.href, URI_EXTENSION_BLOCKLIST_DIALOG, "dialog opened and focused");
           // wait until after load to cancel so the dialog has initalized. we
           // don't want to accept here since that restarts the browser.
           executeSoon(() => {
             let cancelButton = domwindow.document.documentElement.getButton("cancel");
             info("***** hit the cancel button\n");
             cancelButton.doCommand();
           });
-        }, false);
+        });
       },
       onCloseWindow(aXULWindow) { },
       onWindowTitleChange(aXULWindow, aNewTitle) { }
     };
 
     Services.wm.addListener(listener);
 
     setManifestPref("social.manifest.blocked", manifest_bad);
--- a/browser/base/content/test/tabPrompts/openPromptOffTimeout.html
+++ b/browser/base/content/test/tabPrompts/openPromptOffTimeout.html
@@ -1,10 +1,10 @@
 <body>
 This page opens an alert box when the page is hidden.
 <script>
 document.addEventListener("visibilitychange", () => {
   if (document.hidden) {
     alert("You hid my page!");
   }
-}, false);
+});
 </script>
 </body>
--- a/browser/base/content/test/urlbar/browser_bug1003461-switchtab-override.js
+++ b/browser/base/content/test/urlbar/browser_bug1003461-switchtab-override.js
@@ -39,19 +39,19 @@ add_task(function* test_switchtab_overri
   ok(/moz-action:switchtab/.test(gURLBar.value), "switch to tab entry found");
 
   info("Override switch-to-tab");
   deferred = Promise.defer();
   // In case of failure this would switch tab.
   let onTabSelect = event => {
     deferred.reject(new Error("Should have overridden switch to tab"));
   };
-  gBrowser.tabContainer.addEventListener("TabSelect", onTabSelect, false);
+  gBrowser.tabContainer.addEventListener("TabSelect", onTabSelect);
   registerCleanupFunction(() => {
-    gBrowser.tabContainer.removeEventListener("TabSelect", onTabSelect, false);
+    gBrowser.tabContainer.removeEventListener("TabSelect", onTabSelect);
   });
   // Otherwise it would load the page.
   BrowserTestUtils.browserLoaded(secondTab.linkedBrowser).then(deferred.resolve);
 
   EventUtils.synthesizeKey("VK_SHIFT", { type: "keydown" });
   EventUtils.synthesizeKey("VK_RETURN", { });
   info(`gURLBar.value = ${gURLBar.value}`);
   EventUtils.synthesizeKey("VK_SHIFT", { type: "keyup" });
--- a/browser/base/content/test/urlbar/browser_bug1104165-switchtab-decodeuri.js
+++ b/browser/base/content/test/urlbar/browser_bug1104165-switchtab-decodeuri.js
@@ -12,18 +12,18 @@ add_task(function* test_switchtab_decode
   info("Select autocomplete popup entry");
   EventUtils.synthesizeKey("VK_DOWN", {});
   ok(gURLBar.value.startsWith("moz-action:switchtab"), "switch to tab entry found");
 
   info("switch-to-tab");
   yield new Promise((resolve, reject) => {
     // In case of success it should switch tab.
     gBrowser.tabContainer.addEventListener("TabSelect", function select() {
-      gBrowser.tabContainer.removeEventListener("TabSelect", select, false);
+      gBrowser.tabContainer.removeEventListener("TabSelect", select);
       is(gBrowser.selectedTab, tab, "Should have switched to the right tab");
       resolve();
-    }, false);
+    });
     EventUtils.synthesizeKey("VK_RETURN", { });
   });
 
   gBrowser.removeCurrentTab();
   yield PlacesTestUtils.clearHistory();
 });
--- a/browser/base/content/test/urlbar/browser_bug304198.js
+++ b/browser/base/content/test/urlbar/browser_bug304198.js
@@ -40,19 +40,19 @@ add_task(function* () {
     yield BrowserTestUtils.switchTab(gBrowser, fullURLTab);
     is(gURLBar.textValue, testURL, 'gURLBar.textValue should be testURL after switching back to fullURLTab');
   }
 
   function urlbarBackspace() {
     return new Promise((resolve, reject) => {
       gBrowser.selectedBrowser.focus();
       gURLBar.addEventListener("input", function() {
-        gURLBar.removeEventListener("input", arguments.callee, false);
+        gURLBar.removeEventListener("input", arguments.callee);
         resolve();
-      }, false);
+      });
       gURLBar.focus();
       EventUtils.synthesizeKey("VK_BACK_SPACE", {});
     });
   }
 
   function* prepareDeletedURLTab() {
     yield BrowserTestUtils.switchTab(gBrowser, deletedURLTab);
     is(gURLBar.textValue, testURL, 'gURLBar.textValue should be testURL after initial switch to deletedURLTab');
--- a/browser/base/content/test/webrtc/head.js
+++ b/browser/base/content/test/webrtc/head.js
@@ -121,17 +121,17 @@ function* assertWebRTCIndicatorStatus(ex
       let win = Services.wm.getMostRecentWindow("Browser:WebRTCGlobalIndicator");
       if (win) {
         yield new Promise((resolve, reject) => {
           win.addEventListener("unload", function listener(e) {
             if (e.target == win.document) {
               win.removeEventListener("unload", listener);
               resolve();
             }
-          }, false);
+          });
         });
       }
     }
     let indicator = Services.wm.getEnumerator("Browser:WebRTCGlobalIndicator");
     let hasWindow = indicator.hasMoreElements();
     is(hasWindow, !!expected, "popup " + msg);
     if (hasWindow) {
       let document = indicator.getNext().document;
--- a/browser/base/content/urlbarBindings.xml
+++ b/browser/base/content/urlbarBindings.xml
@@ -70,38 +70,38 @@ file, You can obtain one at http://mozil
         this.clickSelectsAll = this._prefs.getBoolPref("clickSelectsAll");
         this.doubleClickSelectsAll = this._prefs.getBoolPref("doubleClickSelectsAll");
         this.completeDefaultIndex = this._prefs.getBoolPref("autoFill");
         this.timeout = this._prefs.getIntPref("delay");
         this._formattingEnabled = this._prefs.getBoolPref("formatting.enabled");
         this._mayTrimURLs = this._prefs.getBoolPref("trimURLs");
         this._cacheUserMadeSearchSuggestionsChoice();
         this.inputField.controllers.insertControllerAt(0, this._copyCutController);
-        this.inputField.addEventListener("paste", this, false);
-        this.inputField.addEventListener("mousedown", this, false);
-        this.inputField.addEventListener("mousemove", this, false);
-        this.inputField.addEventListener("mouseout", this, false);
-        this.inputField.addEventListener("overflow", this, false);
-        this.inputField.addEventListener("underflow", this, false);
+        this.inputField.addEventListener("paste", this);
+        this.inputField.addEventListener("mousedown", this);
+        this.inputField.addEventListener("mousemove", this);
+        this.inputField.addEventListener("mouseout", this);
+        this.inputField.addEventListener("overflow", this);
+        this.inputField.addEventListener("underflow", this);
 
         var textBox = document.getAnonymousElementByAttribute(this,
                                                 "anonid", "textbox-input-box");
         var cxmenu = document.getAnonymousElementByAttribute(textBox,
                                             "anonid", "input-box-contextmenu");
         var pasteAndGo;
         cxmenu.addEventListener("popupshowing", function() {
           if (!pasteAndGo)
             return;
           var controller = document.commandDispatcher.getControllerForCommand("cmd_paste");
           var enabled = controller.isCommandEnabled("cmd_paste");
           if (enabled)
             pasteAndGo.removeAttribute("disabled");
           else
             pasteAndGo.setAttribute("disabled", "true");
-        }, false);
+        });
 
         var insertLocation = cxmenu.firstChild;
         while (insertLocation.nextSibling &&
                insertLocation.getAttribute("cmd") != "cmd_paste")
           insertLocation = insertLocation.nextSibling;
         if (insertLocation) {
           pasteAndGo = document.createElement("menuitem");
           let label = Services.strings.createBundle("chrome://browser/locale/browser.properties").
@@ -115,22 +115,22 @@ file, You can obtain one at http://mozil
 
         this._enableOrDisableOneOffSearches();
       ]]></constructor>
 
       <destructor><![CDATA[
         this._prefs.removeObserver("", this);
         this._prefs = null;
         this.inputField.controllers.removeController(this._copyCutController);
-        this.inputField.removeEventListener("paste", this, false);
-        this.inputField.removeEventListener("mousedown", this, false);
-        this.inputField.removeEventListener("mousemove", this, false);
-        this.inputField.removeEventListener("mouseout", this, false);
-        this.inputField.removeEventListener("overflow", this, false);
-        this.inputField.removeEventListener("underflow", this, false);
+        this.inputField.removeEventListener("paste", this);
+        this.inputField.removeEventListener("mousedown", this);
+        this.inputField.removeEventListener("mousemove", this);
+        this.inputField.removeEventListener("mouseout", this);
+        this.inputField.removeEventListener("overflow", this);
+        this.inputField.removeEventListener("underflow", this);
       ]]></destructor>
 
       <field name="_value">""</field>
       <field name="gotResultForCurrentQuery">false</field>
 
       <!--
         This is set around HandleHenter so it can be used in handleCommand.
         It is also used to track whether we must handle a delayed handleEnter,
@@ -2206,17 +2206,17 @@ file, You can obtain one at http://mozil
         }
 
         if (url || linkHandler) {
           link.value = linkString;
           if (url) {
             link.href = url;
           }
           if (linkHandler) {
-            link.addEventListener("click", linkHandler, false);
+            link.addEventListener("click", linkHandler);
           }
         } else {
           link.hidden = true;
         }
       ]]></constructor>
       <property name="value">
         <getter>
           return document.getAnonymousElementByAttribute(this, "anonid",
--- a/browser/components/customizableui/CustomizableUI.jsm
+++ b/browser/components/customizableui/CustomizableUI.jsm
@@ -1364,35 +1364,35 @@ var CustomizableUIInternal = {
 
       let tooltip = this.getLocalizedProperty(aWidget, "tooltiptext", additionalTooltipArguments);
       if (tooltip) {
         node.setAttribute("tooltiptext", tooltip);
       }
       node.setAttribute("class", "toolbarbutton-1 chromeclass-toolbar-additional");
 
       let commandHandler = this.handleWidgetCommand.bind(this, aWidget, node);
-      node.addEventListener("command", commandHandler, false);
+      node.addEventListener("command", commandHandler);
       let clickHandler = this.handleWidgetClick.bind(this, aWidget, node);
-      node.addEventListener("click", clickHandler, false);
+      node.addEventListener("click", clickHandler);
 
       // If the widget has a view, and has view showing / hiding listeners,
       // hook those up to this widget.
       if (aWidget.type == "view") {
         log.debug("Widget " + aWidget.id + " has a view. Auto-registering event handlers.");
         let viewNode = aDocument.getElementById(aWidget.viewId);
 
         if (viewNode) {
           // PanelUI relies on the .PanelUI-subView class to be able to show only
           // one sub-view at a time.
           viewNode.classList.add("PanelUI-subView");
 
           for (let eventName of kSubviewEvents) {
             let handler = "on" + eventName;
             if (typeof aWidget[handler] == "function") {
-              viewNode.addEventListener(eventName, aWidget[handler], false);
+              viewNode.addEventListener(eventName, aWidget[handler]);
             }
           }
 
           log.debug("Widget " + aWidget.id + " showing and hiding event handlers set.");
         } else {
           log.error("Could not find the view node with id: " + aWidget.viewId +
                     ", for widget: " + aWidget.id + ".");
         }
@@ -2450,17 +2450,17 @@ var CustomizableUIInternal = {
                              container, true);
       }
       if (widget.type == "view") {
         let viewNode = window.document.getElementById(widget.viewId);
         if (viewNode) {
           for (let eventName of kSubviewEvents) {
             let handler = "on" + eventName;
             if (typeof widget[handler] == "function") {
-              viewNode.removeEventListener(eventName, widget[handler], false);
+              viewNode.removeEventListener(eventName, widget[handler]);
             }
           }
         }
       }
       if (widgetNode && widget.onDestroyed) {
         widget.onDestroyed(window.document);
       }
     }
--- a/browser/components/customizableui/CustomizableWidgets.jsm
+++ b/browser/components/customizableui/CustomizableWidgets.jsm
@@ -937,17 +937,17 @@ const CustomizableWidgets = [
     maybeDisableMenu(aDocument) {
       let window = aDocument.defaultView;
       return !(window.gBrowser &&
                window.gBrowser.selectedBrowser.mayEnableCharacterEncodingMenu);
     },
     populateList(aDocument, aContainerId, aSection) {
       let containerElem = aDocument.getElementById(aContainerId);
 
-      containerElem.addEventListener("command", this.onCommand, false);
+      containerElem.addEventListener("command", this.onCommand);
 
       let list = this.charsetInfo[aSection];
 
       for (let item of list) {
         let elem = aDocument.createElementNS(kNSXUL, "toolbarbutton");
         elem.setAttribute("label", item.label);
         elem.setAttribute("type", "checkbox");
         elem.section = aSection;
--- a/browser/components/customizableui/content/panelUI.js
+++ b/browser/components/customizableui/content/panelUI.js
@@ -63,17 +63,17 @@ const PanelUI = {
     this._addEventListeners();
   },
 
   _addEventListeners() {
     for (let event of this.kEvents) {
       this.panel.addEventListener(event, this);
     }
 
-    this.helpView.addEventListener("ViewShowing", this._onHelpViewShow, false);
+    this.helpView.addEventListener("ViewShowing", this._onHelpViewShow);
     this._eventListenersAdded = true;
   },
 
   uninit() {
     for (let event of this.kEvents) {
       this.panel.removeEventListener(event, this);
     }
     this.helpView.removeEventListener("ViewShowing", this._onHelpViewShow);
--- a/browser/components/customizableui/content/toolbar.xml
+++ b/browser/components/customizableui/content/toolbar.xml
@@ -28,19 +28,19 @@
           if (document.readyState == "complete") {
             this._init();
           } else {
             // Need to wait until XUL overlays are loaded. See bug 554279.
             let self = this;
             document.addEventListener("readystatechange", function onReadyStateChange() {
               if (document.readyState != "complete")
                 return;
-              document.removeEventListener("readystatechange", onReadyStateChange, false);
+              document.removeEventListener("readystatechange", onReadyStateChange);
               self._init();
-            }, false);
+            });
           }
       ]]></constructor>
 
       <method name="_init">
         <body><![CDATA[
           let scope = {};
           Cu.import("resource:///modules/CustomizableUI.jsm", scope);
           let CustomizableUI = scope.CustomizableUI;
@@ -304,31 +304,31 @@
           let contextMenuId = this.toolbar.getAttribute("context");
           if (!contextMenuId)
             return;
 
           this.contextMenu = document.getElementById(contextMenuId);
           if (!this.contextMenu)
             return;
 
-          this.contextMenu.addEventListener("popupshown", this, false);
-          this.contextMenu.addEventListener("popuphiding", this, false);
-          this.toolbar.addEventListener("mousemove", this, false);
+          this.contextMenu.addEventListener("popupshown", this);
+          this.contextMenu.addEventListener("popuphiding", this);
+          this.toolbar.addEventListener("mousemove", this);
         },
         handleEvent(event) {
           switch (event.type) {
             case "popupshown":
-              this.toolbar.removeEventListener("mousemove", this, false);
+              this.toolbar.removeEventListener("mousemove", this);
               break;
             case "popuphiding":
             case "mousemove":
               this.toolbar._setInactiveAsync();
-              this.toolbar.removeEventListener("mousemove", this, false);
-              this.contextMenu.removeEventListener("popuphiding", this, false);
-              this.contextMenu.removeEventListener("popupshown", this, false);
+              this.toolbar.removeEventListener("mousemove", this);
+              this.contextMenu.removeEventListener("popuphiding", this);
+              this.contextMenu.removeEventListener("popupshown", this);
               this.contextMenu = null;
               break;
           }
         }
       })]]></field>
 
       <method name="_setInactive">
         <body><![CDATA[
@@ -402,19 +402,19 @@
           if (document.readyState == "complete") {
             this._init();
           } else {
             // Need to wait until XUL overlays are loaded. See bug 554279.
             let self = this;
             document.addEventListener("readystatechange", function onReadyStateChange() {
               if (document.readyState != "complete")
                 return;
-              document.removeEventListener("readystatechange", onReadyStateChange, false);
+              document.removeEventListener("readystatechange", onReadyStateChange);
               self._init();
-            }, false);
+            });
           }
       ]]></constructor>
 
       <method name="_init">
         <body><![CDATA[
           // Searching for the toolbox palette in the toolbar binding because
           // toolbars are constructed first.
           let toolbox = this.toolbox;
--- a/browser/components/customizableui/test/browser_947914_button_newPrivateWindow.js
+++ b/browser/components/customizableui/test/browser_947914_button_newPrivateWindow.js
@@ -13,22 +13,22 @@ add_task(function*() {
   let windowWasHandled = false;
   let privateWindow = null;
 
   let observerWindowOpened = {
     observe(aSubject, aTopic, aData) {
       if (aTopic == "domwindowopened") {
         privateWindow = aSubject.QueryInterface(Components.interfaces.nsIDOMWindow);
         privateWindow.addEventListener("load", function newWindowHandler() {
-          privateWindow.removeEventListener("load", newWindowHandler, false);
+          privateWindow.removeEventListener("load", newWindowHandler);
           is(privateWindow.location.href, "chrome://browser/content/browser.xul",
              "A new browser window was opened");
           ok(PrivateBrowsingUtils.isWindowPrivate(privateWindow), "Window is private");
           windowWasHandled = true;
-        }, false);
+        });
       }
     }
   }
 
   Services.ww.registerNotification(observerWindowOpened);
 
   let privateBrowsingButton = document.getElementById("privatebrowsing-button");
   ok(privateBrowsingButton, "Private browsing button exists in Panel Menu");
--- a/browser/components/customizableui/test/browser_947914_button_newWindow.js
+++ b/browser/components/customizableui/test/browser_947914_button_newWindow.js
@@ -12,22 +12,22 @@ add_task(function*() {
   let windowWasHandled = false;
   let newWindow = null;
 
   let observerWindowOpened = {
     observe(aSubject, aTopic, aData) {
       if (aTopic == "domwindowopened") {
         newWindow = aSubject.QueryInterface(Components.interfaces.nsIDOMWindow);
         newWindow.addEventListener("load", function newWindowHandler() {
-          newWindow.removeEventListener("load", newWindowHandler, false);
+          newWindow.removeEventListener("load", newWindowHandler);
           is(newWindow.location.href, "chrome://browser/content/browser.xul",
              "A new browser window was opened");
           ok(!PrivateBrowsingUtils.isWindowPrivate(newWindow), "Window is not private");
           windowWasHandled = true;
-        }, false);
+        });
       }
     }
   }
 
   Services.ww.registerNotification(observerWindowOpened);
 
   let newWindowButton = document.getElementById("new-window-button");
   ok(newWindowButton, "New Window button exists in Panel Menu");
--- a/browser/components/downloads/DownloadsTaskbar.jsm
+++ b/browser/components/downloads/DownloadsTaskbar.jsm
@@ -142,17 +142,17 @@ this.DownloadsTaskbar = {
         // Move the progress indicator to the other browser window.
         this._attachIndicator(browserWindow);
       } else {
         // The last browser window has been closed.  We remove the reference to
         // the taskbar progress object so that the indicator will be registered
         // again on the next browser window that is opened.
         this._taskbarProgress = null;
       }
-    }, false);
+    });
   },
 
   //////////////////////////////////////////////////////////////////////////////
   //// DownloadSummary view
 
   onSummaryChanged() {
     // If the last browser window has been closed, we have no indicator any more.
     if (!this._taskbarProgress) {
--- a/browser/components/downloads/content/downloads.js
+++ b/browser/components/downloads/content/downloads.js
@@ -135,17 +135,17 @@ const DownloadsPanel = {
     if (this._state != this.kStateUninitialized) {
       DownloadsCommon.log("DownloadsPanel is already initialized.");
       DownloadsOverlayLoader.ensureOverlayLoaded(this.kDownloadsOverlay,
                                                  aCallback);
       return;
     }
     this._state = this.kStateHidden;
 
-    window.addEventListener("unload", this.onWindowUnload, false);
+    window.addEventListener("unload", this.onWindowUnload);
 
     // Load and resume active downloads if required.  If there are downloads to
     // be shown in the panel, they will be loaded asynchronously.
     DownloadsCommon.initializeAllDataLinks();
 
     // Now that data loading has eventually started, load the required XUL
     // elements and initialize our views.
     DownloadsCommon.log("Ensuring DownloadsPanel overlay loaded.");
@@ -170,17 +170,17 @@ const DownloadsPanel = {
    */
   terminate() {
     DownloadsCommon.log("Attempting to terminate DownloadsPanel for a window.");
     if (this._state == this.kStateUninitialized) {
       DownloadsCommon.log("DownloadsPanel was never initialized. Nothing to do.");
       return;
     }
 
-    window.removeEventListener("unload", this.onWindowUnload, false);
+    window.removeEventListener("unload", this.onWindowUnload);
 
     // Ensure that the panel is closed before shutting down.
     this.hidePanel();
 
     DownloadsViewController.terminate();
     DownloadsCommon.getData(window).removeView(DownloadsView);
     DownloadsCommon.getSummary(window, DownloadsView.kItemCountLimit)
                    .removeView(DownloadsSummary);
@@ -434,32 +434,32 @@ const DownloadsPanel = {
 
   /**
    * Attach event listeners to a panel element. These listeners should be
    * removed in _unattachEventListeners. This is called automatically after the
    * panel has successfully loaded.
    */
   _attachEventListeners() {
     // Handle keydown to support accel-V.
-    this.panel.addEventListener("keydown", this, false);
+    this.panel.addEventListener("keydown", this);
     // Handle keypress to be able to preventDefault() events before they reach
     // the richlistbox, for keyboard navigation.
-    this.panel.addEventListener("keypress", this, false);
+    this.panel.addEventListener("keypress", this);
     // Handle height adjustment on show.
-    this.panel.addEventListener("popupshown", this, false);
+    this.panel.addEventListener("popupshown", this);
   },
 
   /**
    * Unattach event listeners that were added in _attachEventListeners. This
    * is called automatically on panel termination.
    */
   _unattachEventListeners() {
-    this.panel.removeEventListener("keydown", this, false);
-    this.panel.removeEventListener("keypress", this, false);
-    this.panel.removeEventListener("popupshown", this, false);
+    this.panel.removeEventListener("keydown", this);
+    this.panel.removeEventListener("keypress", this);
+    this.panel.removeEventListener("popupshown", this);
   },
 
   _onKeyPress(aEvent) {
     // Handle unmodified keys only.
     if (aEvent.altKey || aEvent.ctrlKey || aEvent.shiftKey || aEvent.metaKey) {
       return;
     }
 
--- a/browser/components/downloads/content/indicator.js
+++ b/browser/components/downloads/content/indicator.js
@@ -212,30 +212,30 @@ const DownloadsIndicatorView = {
    * Prepares the downloads indicator to be displayed.
    */
   ensureInitialized() {
     if (this._initialized) {
       return;
     }
     this._initialized = true;
 
-    window.addEventListener("unload", this.onWindowUnload, false);
+    window.addEventListener("unload", this.onWindowUnload);
     DownloadsCommon.getIndicatorData(window).addView(this);
   },
 
   /**
    * Frees the internal resources related to the indicator.
    */
   ensureTerminated() {
     if (!this._initialized) {
       return;
     }
     this._initialized = false;
 
-    window.removeEventListener("unload", this.onWindowUnload, false);
+    window.removeEventListener("unload", this.onWindowUnload);
     DownloadsCommon.getIndicatorData(window).removeView(this);
 
     // Reset the view properties, so that a neutral indicator is displayed if we
     // are visible only temporarily as an anchor.
     this.counter = "";
     this.percentComplete = 0;
     this.paused = false;
     this.attention = DownloadsCommon.ATTENTION_NONE;
--- a/browser/components/feeds/FeedWriter.js
+++ b/browser/components/feeds/FeedWriter.js
@@ -987,19 +987,19 @@ FeedWriter.prototype = {
       this._writeFeedContent(container);
     } finally {
       this._removeFeedFromCache();
     }
   },
 
   close() {
     this._document.getElementById("subscribeButton")
-        .removeEventListener("click", this, false);
+        .removeEventListener("click", this);
     this._document.getElementById("handlersMenuList")
-        .removeEventListener("change", this, false);
+        .removeEventListener("change", this);
     this._document = null;
     this._window = null;
     let prefs = Services.prefs;
     prefs.removeObserver(PREF_SELECTED_ACTION, this);
     prefs.removeObserver(PREF_SELECTED_READER, this);
     prefs.removeObserver(PREF_SELECTED_WEB, this);
     prefs.removeObserver(PREF_SELECTED_APP, this);
     prefs.removeObserver(PREF_VIDEO_SELECTED_ACTION, this);
--- a/browser/components/migration/MSMigrationUtils.jsm
+++ b/browser/components/migration/MSMigrationUtils.jsm
@@ -538,17 +538,17 @@ Cookies.prototype = {
       aCallback(success);
     }).apply(this);
     cookiesGenerator.next();
   },
 
   _readCookieFile(aFile, aCallback) {
     let fileReader = new FileReader();
     let onLoadEnd = () => {
-      fileReader.removeEventListener("loadend", onLoadEnd, false);
+      fileReader.removeEventListener("loadend", onLoadEnd);
 
       if (fileReader.readyState != fileReader.DONE) {
         Cu.reportError("Could not read cookie contents: " + fileReader.error);
         aCallback(false);
         return;
       }
 
       let success = true;
@@ -556,17 +556,17 @@ Cookies.prototype = {
         this._parseCookieBuffer(fileReader.result);
       } catch (ex) {
         Components.utils.reportError("Unable to migrate cookie: " + ex);
         success = false;
       } finally {
         aCallback(success);
       }
     };
-    fileReader.addEventListener("loadend", onLoadEnd, false);
+    fileReader.addEventListener("loadend", onLoadEnd);
     fileReader.readAsText(File.createFromNsIFile(aFile));
   },
 
   /**
    * Parses a cookie file buffer and returns an array of the contained cookies.
    *
    * The cookie file format is a newline-separated-values with a "*" used as
    * delimeter between multiple records.
--- a/browser/components/originattributes/test/browser/browser_blobURLIsolation.js
+++ b/browser/components/originattributes/test/browser/browser_blobURLIsolation.js
@@ -54,21 +54,21 @@ function page_deblobify(browser, blobURL
   });
 }
 
 function workerIO(browser, scriptFile, message) {
   return ContentTask.spawn(browser, {scriptFile, message}, function* (args) {
     let worker = new content.Worker(args.scriptFile);
     let promise = new content.Promise(function(resolve) {
       let listenFunction = function(event) {
-        worker.removeEventListener("message", listenFunction, false);
+        worker.removeEventListener("message", listenFunction);
         worker.terminate();
         resolve(event.data);
       };
-      worker.addEventListener("message", listenFunction, false);
+      worker.addEventListener("message", listenFunction);
     });
     worker.postMessage(args.message);
     return yield promise;
   });
 }
 
 let worker_blobify = (browser, input) => workerIO(browser, SCRIPT_WORKER_BLOBIFY, input);
 let worker_deblobify = (browser, blobURL) => workerIO(browser, SCRIPT_WORKER_DEBLOBIFY, blobURL);
--- a/browser/components/originattributes/test/browser/browser_broadcastChannel.js
+++ b/browser/components/originattributes/test/browser/browser_broadcastChannel.js
@@ -24,17 +24,17 @@ function* doTest(aBrowser) {
       let receivedData = yield new Promise(resolve => {
         let listenFunc = event => {
           content.removeEventListener("message", listenFunc);
           resolve(event.data);
         };
 
         let bc = new content.BroadcastChannel("testBroadcastChannel");
 
-        content.addEventListener("message", listenFunc, false);
+        content.addEventListener("message", listenFunc);
         bc.postMessage(data);
       });
 
       is(receivedData, data, "The value should be the same.");
 
       return receivedData;
     }
 
--- a/browser/components/originattributes/test/browser/browser_cache.js
+++ b/browser/components/originattributes/test/browser/browser_cache.js
@@ -176,18 +176,18 @@ function* doTest(aBrowser) {
 
         trackLoaded = true;
         if (audioLoaded && trackLoaded) {
           resolve();
         }
       };
 
       // Add the event listeners before everything in case we lose events.
-      audioTrack.addEventListener("load", trackListener, false);
-      audio.addEventListener("canplaythrough", audioListener, false);
+      audioTrack.addEventListener("load", trackListener);
+      audio.addEventListener("canplaythrough", audioListener);
 
       // Assign attributes for the audio element.
       audioSource.setAttribute("src", audioURL + URLSuffix);
       audioSource.setAttribute("type", "audio/ogg");
       audioTrack.setAttribute("src", trackURL);
       audioTrack.setAttribute("kind", "subtitles");
 
       audio.appendChild(audioSource);
@@ -200,17 +200,17 @@ function* doTest(aBrowser) {
     // Append the video element into the body, and wait until it's finished.
     yield new Promise(resolve => {
       let listener = () => {
         video.removeEventListener("canplaythrough", listener);
         resolve();
       };
 
       // Add the event listener before everything in case we lose the event.
-      video.addEventListener("canplaythrough", listener, false);
+      video.addEventListener("canplaythrough", listener);
 
       // Assign attributes for the video element.
       video.setAttribute("src", videoURL + URLSuffix);
       video.setAttribute("type", "video/ogg");
 
       content.document.body.appendChild(video);
     });
   });
--- a/browser/components/originattributes/test/browser/worker_blobify.js
+++ b/browser/components/originattributes/test/browser/worker_blobify.js
@@ -3,9 +3,9 @@
 // post back a blob URL pointing to the blob.
 self.addEventListener("message", function(message) {
   try {
     var blobURL = URL.createObjectURL(new Blob([message.data]));
     postMessage({ blobURL });
   } catch (e) {
     postMessage({ error: e.message });
   }
-}, false);
+});
--- a/browser/components/originattributes/test/browser/worker_deblobify.js
+++ b/browser/components/originattributes/test/browser/worker_deblobify.js
@@ -23,9 +23,9 @@ self.addEventListener("message", functio
     xhr.onerror = function() {
       postMessage({ error: "xhr error" });
     };
     xhr.responseType = "blob";
     xhr.send();
   } catch (e) {
     postMessage({ error: e.message });
   }
-}, false);
+});
--- a/browser/components/places/content/bookmarkProperties.js
+++ b/browser/components/places/content/bookmarkProperties.js
@@ -335,20 +335,20 @@ var BookmarkPropertiesPanel = {
           acceptButton.disabled = !this._inputIsValid();
         break;
     }
 
     if (!gEditItemOverlay.readOnly) {
       // Listen on uri fields to enable accept button if input is valid
       if (this._itemType == BOOKMARK_ITEM) {
         this._element("locationField")
-            .addEventListener("input", this, false);
+            .addEventListener("input", this);
         if (this._isAddKeywordDialog) {
           this._element("keywordField")
-              .addEventListener("input", this, false);
+              .addEventListener("input", this);
         }
       }
     }
   }),
 
   // nsIDOMEventListener
   handleEvent: function BPP_handleEvent(aEvent) {
     var target = aEvent.target;
@@ -420,17 +420,17 @@ var BookmarkPropertiesPanel = {
     this._mutationObserver.disconnect();
     delete this._mutationObserver;
 
     window.removeEventListener("resize", this);
 
     // Calling removeEventListener with arguments which do not identify any
     // currently registered EventListener on the EventTarget has no effect.
     this._element("locationField")
-        .removeEventListener("input", this, false);
+        .removeEventListener("input", this);
   },
 
   onDialogAccept() {
     // We must blur current focused element to save its changes correctly
     document.commandDispatcher.focusedElement.blur();
     // The order here is important! We have to uninit the panel first, otherwise
     // late changes could force it to commit more transactions.
     gEditItemOverlay.uninitPanel(true);
--- a/browser/components/places/content/bookmarksPanel.js
+++ b/browser/components/places/content/bookmarksPanel.js
@@ -15,10 +15,9 @@ function searchBookmarks(aSearchString) 
   else
     tree.applyFilter(aSearchString,
                      [PlacesUtils.bookmarksMenuFolderId,
                       PlacesUtils.unfiledBookmarksFolderId,
                       PlacesUtils.toolbarFolderId]);
 }
 
 window.addEventListener("SidebarFocused",
-                        () => document.getElementById("search-box").focus(),
-                        false);
+                        () => document.getElementById("search-box").focus());
--- a/browser/components/places/content/editBookmarkOverlay.js
+++ b/browser/components/places/content/editBookmarkOverlay.js
@@ -270,17 +270,17 @@ var gEditItemOverlay = {
         PlacesUIUtils.getPluralString("detailsPane.itemsCountLabel",
                                       uris.length,
                                       [uris.length]);
     }
 
     // Observe changes.
     if (!this._observersAdded) {
       PlacesUtils.bookmarks.addObserver(this, false);
-      window.addEventListener("unload", this, false);
+      window.addEventListener("unload", this);
       this._observersAdded = true;
     }
 
     // The focusedElement possible values are:
     //  * preferred: focus the field that the user touched first the last
     //    time the pane was shown (either namePicker or tagsField)
     //  * first: focus the first non collapsed textbox
     // Note: since all controls are collapsed by default, we don't get the
@@ -931,17 +931,17 @@ var gEditItemOverlay = {
     if (tagsSelectorRow.collapsed) {
       expander.className = "expander-up";
       expander.setAttribute("tooltiptext",
                             expander.getAttribute("tooltiptextup"));
       tagsSelectorRow.collapsed = false;
       yield this._rebuildTagsSelectorList();
 
       // This is a no-op if we've added the listener.
-      tagsSelector.addEventListener("CheckboxStateChange", this, false);
+      tagsSelector.addEventListener("CheckboxStateChange", this);
     } else {
       expander.className = "expander-down";
       expander.setAttribute("tooltiptext",
                             expander.getAttribute("tooltiptextdown"));
       tagsSelectorRow.collapsed = true;
     }
   }),
 
--- a/browser/components/places/content/history-panel.js
+++ b/browser/components/places/content/history-panel.js
@@ -86,10 +86,9 @@ function searchHistory(aInput) {
   // otherwise, we will end up calling load() twice
   gHistoryTree.load([query], options);
 
   if (gHistoryGrouping == "lastvisited")
     this.TelemetryStopwatch.finish("HISTORY_LASTVISITED_TREE_QUERY_TIME_MS");
 }
 
 window.addEventListener("SidebarFocused",
-                        () => gSearchBox.focus(),
-                        false);
+                        () => gSearchBox.focus());
--- a/browser/components/places/tests/browser/browser_bookmarksProperties.js
+++ b/browser/components/places/tests/browser/browser_bookmarksProperties.js
@@ -289,32 +289,32 @@ gTests.push({
       executeSoon(function() {
         self.finish();
       });
     }, true);
 
     folderTree.addEventListener("DOMAttrModified", function onDOMAttrModified(event) {
       if (event.attrName != "place")
         return;
-      folderTree.removeEventListener("DOMAttrModified", arguments.callee, false);
+      folderTree.removeEventListener("DOMAttrModified", arguments.callee);
       executeSoon(function() {
         // Create a new folder.
         var newFolderButton = self.window.document.getElementById("editBMPanel_newFolderButton");
         newFolderButton.doCommand();
         ok(folderTree.hasAttribute("editing"),
            "We are editing new folder name in folder tree");
 
         // Press Escape to discard editing new folder name.
         EventUtils.synthesizeKey("VK_ESCAPE", {}, self.window);
         ok(!folderTree.hasAttribute("editing"),
            "We have finished editing folder name in folder tree");
         self._cleanShutdown = true;
         self.window.document.documentElement.cancelDialog();
       });
-    }, false);
+    });
     foldersExpander.doCommand();
   },
 
   finish() {
     SidebarUI.hide();
     runNextTest();
   },
 
--- a/browser/components/places/tests/browser/browser_drag_bookmarks_on_toolbar.js
+++ b/browser/components/places/tests/browser/browser_drag_bookmarks_on_toolbar.js
@@ -49,32 +49,32 @@ function synthesizeDragWithDirection(aEl
     }
 
     if (!aExpectedDragData.length)
       ok(event.defaultPrevented, "Drag has been canceled.");
 
     event.preventDefault();
     event.stopPropagation();
 
-    gBookmarksToolbar.removeEventListener("dragstart", arguments.callee, false);
+    gBookmarksToolbar.removeEventListener("dragstart", arguments.callee);
 
     // This is likely to cause a click event, and, in case we are dragging a
     // bookmark, an unwanted page visit.  Prevent the click event.
-    aElement.addEventListener("click", prevent, false);
+    aElement.addEventListener("click", prevent);
     EventUtils.synthesizeMouse(aElement,
                                startingPoint.x + xIncrement * 9,
                                startingPoint.y + yIncrement * 9,
                                { type: "mouseup" });
-    aElement.removeEventListener("click", prevent, false);
+    aElement.removeEventListener("click", prevent);
 
     // Cleanup eventually opened menus.
     if (aElement.localName == "menu" && aElement.open)
       aElement.open = false;
     aCallback()
-  }, false);
+  });
 
   var prevent = function(aEvent) { aEvent.preventDefault(); }
 
   var xIncrement = 0;
   var yIncrement = 0;
 
   switch (aDirection) {
     case dragDirections.LEFT:
--- a/browser/components/places/tests/browser/browser_library_middleclick.js
+++ b/browser/components/places/tests/browser/browser_library_middleclick.js
@@ -208,17 +208,17 @@ function test() {
   // Increase timeout, this test can be quite slow due to waitForFocus calls.
   requestLongerTimeout(2);
 
   // Sanity checks.
   ok(PlacesUtils, "PlacesUtils in context");
   ok(PlacesUIUtils, "PlacesUIUtils in context");
 
   // Add tabs listeners.
-  gBrowser.tabContainer.addEventListener("TabOpen", gTabsListener, false);
+  gBrowser.tabContainer.addEventListener("TabOpen", gTabsListener);
   gBrowser.addTabsProgressListener(gTabsListener);
 
   // Temporary disable history, so we won't record pages navigation.
   gPrefService.setBoolPref(ENABLE_HISTORY_PREF, false);
 
   // Open Library window.
   openLibrary(function(library) {
     gLibrary = library;
@@ -247,17 +247,17 @@ function runNextTest() {
     }, gLibrary);
   } else {
     // No more tests.
 
     // Close Library window.
     gLibrary.close();
 
     // Remove tabs listeners.
-    gBrowser.tabContainer.removeEventListener("TabOpen", gTabsListener, false);
+    gBrowser.tabContainer.removeEventListener("TabOpen", gTabsListener);
     gBrowser.removeTabsProgressListener(gTabsListener);
 
     // Restore history.
     try {
       gPrefService.clearUserPref(ENABLE_HISTORY_PREF);
     } catch (ex) {}
 
     finish();
--- a/browser/components/preferences/in-content/advanced.js
+++ b/browser/components/preferences/in-content/advanced.js
@@ -28,20 +28,20 @@ var gAdvancedPane = {
     var advancedPrefs = document.getElementById("advancedPrefs");
 
     var preference = document.getElementById("browser.preferences.advanced.selectedTabIndex");
     if (preference.value !== null)
         advancedPrefs.selectedIndex = preference.value;
 
     if (AppConstants.MOZ_UPDATER) {
       let onUnload = function() {
-        window.removeEventListener("unload", onUnload, false);
+        window.removeEventListener("unload", onUnload);
         Services.prefs.removeObserver("app.update.", this);
       }.bind(this);
-      window.addEventListener("unload", onUnload, false);
+      window.addEventListener("unload", onUnload);
       Services.prefs.addObserver("app.update.", this, false);
       this.updateReadPrefs();
     }
     this.updateOfflineApps();
     if (AppConstants.MOZ_CRASHREPORTER) {
       this.initSubmitCrashes();
     }
     this.initTelemetry();
--- a/browser/components/preferences/in-content/applications.js
+++ b/browser/components/preferences/in-content/applications.js
@@ -905,17 +905,17 @@ var gApplicationsPane = {
     setEventListener("focusSearch2", "command", gApplicationsPane.focusFilterBox);
     setEventListener("filter", "command", gApplicationsPane.filter);
     setEventListener("handlersView", "select",
       gApplicationsPane.onSelectionChanged);
     setEventListener("typeColumn", "click", gApplicationsPane.sort);
     setEventListener("actionColumn", "click", gApplicationsPane.sort);
 
     // Listen for window unload so we can remove our preference observers.
-    window.addEventListener("unload", this, false);
+    window.addEventListener("unload", this);
 
     // Figure out how we should be sorting the list.  We persist sort settings
     // across sessions, so we can't assume the default sort column/direction.
     // XXX should we be using the XUL sort service instead?
     if (document.getElementById("actionColumn").hasAttribute("sortDirection")) {
       this._sortColumn = document.getElementById("actionColumn");
       // The typeColumn element always has a sortDirection attribute,
       // either because it was persisted or because the default value
@@ -941,17 +941,17 @@ var gApplicationsPane = {
       // Notify observers that the UI is now ready
       Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService).
       notifyObservers(window, "app-handler-pane-loaded", null);
     }
     setTimeout(_delayedPaneLoad, 0, this);
   },
 
   destroy() {
-    window.removeEventListener("unload", this, false);
+    window.removeEventListener("unload", this);
     this._prefSvc.removeObserver(PREF_SHOW_PLUGINS_IN_LIST, this);
     this._prefSvc.removeObserver(PREF_HIDE_PLUGINS_WITHOUT_EXTENSIONS, this);
     this._prefSvc.removeObserver(PREF_FEED_SELECTED_APP, this);
     this._prefSvc.removeObserver(PREF_FEED_SELECTED_WEB, this);
     this._prefSvc.removeObserver(PREF_FEED_SELECTED_ACTION, this);
     this._prefSvc.removeObserver(PREF_FEED_SELECTED_READER, this);
 
     this._prefSvc.removeObserver(PREF_VIDEO_FEED_SELECTED_APP, this);
--- a/browser/components/preferences/in-content/main.js
+++ b/browser/components/preferences/in-content/main.js
@@ -35,17 +35,17 @@ var gMainPane = {
         // in case the default changes. On other Windows OS's defaults can also
         // be set while the prefs are open.
         window.setInterval(this.updateSetDefaultBrowser.bind(this), 1000);
       }
     }
 
     // set up the "use current page" label-changing listener
     this._updateUseCurrentButton();
-    window.addEventListener("focus", this._updateUseCurrentButton.bind(this), false);
+    window.addEventListener("focus", this._updateUseCurrentButton.bind(this));
 
     this.updateBrowserStartupLastSession();
 
     if (AppConstants.platform == "win") {
       // Functionality for "Show tabs in taskbar" on Windows 7 and up.
       try {
         let sysInfo = Cc["@mozilla.org/system-info;1"].
                       getService(Ci.nsIPropertyBag2);
--- a/browser/components/preferences/in-content/search.js
+++ b/browser/components/preferences/in-content/search.js
@@ -27,21 +27,21 @@ var gSearchPane = {
     document.getElementById("engineList").view = gEngineView;
     this.buildDefaultEngineDropDown();
 
     let addEnginesLink = document.getElementById("addEngines");
     let searchEnginesURL = Services.wm.getMostRecentWindow('navigator:browser')
                                       .BrowserSearch.searchEnginesURL;
     addEnginesLink.setAttribute("href", searchEnginesURL);
 
-    window.addEventListener("click", this, false);
-    window.addEventListener("command", this, false);
-    window.addEventListener("dragstart", this, false);
-    window.addEventListener("keypress", this, false);
-    window.addEventListener("select", this, false);
+    window.addEventListener("click", this);
+    window.addEventListener("command", this);
+    window.addEventListener("dragstart", this);
+    window.addEventListener("keypress", this);
+    window.addEventListener("select", this);
     window.addEventListener("blur", this, true);
 
     Services.obs.addObserver(this, "browser-search-engine-modified", false);
     window.addEventListener("unload", () => {
       Services.obs.removeObserver(this, "browser-search-engine-modified");
     });
 
     this._initAutocomplete();
--- a/browser/components/preferences/in-content/sync.js
+++ b/browser/components/preferences/in-content/sync.js
@@ -62,30 +62,30 @@ var gSyncPane = {
       return;
     }
 
     // it may take some time before we can determine what provider to use
     // and the state of that provider, so show the "please wait" page.
     this._showLoadPage(xps);
 
     let onUnload = function() {
-      window.removeEventListener("unload", onUnload, false);
+      window.removeEventListener("unload", onUnload);
       try {
         Services.obs.removeObserver(onReady, "weave:service:ready");
       } catch (e) {}
     };
 
     let onReady = function() {
       Services.obs.removeObserver(onReady, "weave:service:ready");
-      window.removeEventListener("unload", onUnload, false);
+      window.removeEventListener("unload", onUnload);
       this._init();
     }.bind(this);
 
     Services.obs.addObserver(onReady, "weave:service:ready", false);
-    window.addEventListener("unload", onUnload, false);
+    window.addEventListener("unload", onUnload);
 
     xps.ensureLoaded();
   },
 
   _showLoadPage(xps) {
     let username;
     try {
       username = Services.prefs.getCharPref("services.sync.username");
@@ -124,17 +124,17 @@ var gSyncPane = {
     topics.forEach(function(topic) {
       Weave.Svc.Obs.add(topic, this.updateWeavePrefs, this);
     }, this);
 
     window.addEventListener("unload", function() {
       topics.forEach(function(topic) {
         Weave.Svc.Obs.remove(topic, this.updateWeavePrefs, this);
       }, gSyncPane);
-    }, false);
+    });
 
     XPCOMUtils.defineLazyGetter(this, '_stringBundle', () => {
       return Services.strings.createBundle("chrome://browser/locale/preferences/preferences.properties");
     });
 
     XPCOMUtils.defineLazyGetter(this, '_accountsStringBundle', () => {
       return Services.strings.createBundle("chrome://browser/locale/accounts.properties");
     });
--- a/browser/components/preferences/in-content/tests/browser_bug705422.js
+++ b/browser/components/preferences/in-content/tests/browser_bug705422.js
@@ -41,17 +41,17 @@ function initTest() {
         cookieSvc.setCookieString(cookieUri, null, name + "=" + value + ";", null);
     }
 
     // open cookie manager
     var cmd = window.openDialog("chrome://browser/content/preferences/cookies.xul",
                                 "Browser:Cookies", "", {});
 
     // when it has loaded, run actual tests
-    cmd.addEventListener("load", function() { executeSoon(function() { runTest(cmd, searchTerm, vals.length, matches); }); }, false);
+    cmd.addEventListener("load", function() { executeSoon(function() { runTest(cmd, searchTerm, vals.length, matches); }); });
 }
 
 function isDisabled(win, expectation) {
     var disabled = win.document.getElementById("removeAllCookies").disabled;
     is(disabled, expectation, "Remove all cookies button has correct state: " + (expectation ? "disabled" : "enabled"));
 }
 
 function runTest(win, searchTerm, cookies, matches) {
--- a/browser/components/preferences/in-content/tests/head.js
+++ b/browser/components/preferences/in-content/tests/head.js
@@ -111,17 +111,17 @@ function waitForEvent(aSubject, aEventNa
     eventDeferred.resolve(aEvent);
   };
 
   function cleanup(aEventOrError) {
     // unhook listener in case of success or failure
     aSubject.removeEventListener(aEventName, listener);
     return aEventOrError;
   }
-  aSubject.addEventListener(aEventName, listener, false);
+  aSubject.addEventListener(aEventName, listener);
   return eventDeferred.promise.then(cleanup, cleanup);
 }
 
 function openPreferencesViaOpenPreferencesAPI(aPane, aAdvancedTab, aOptions) {
   let deferred = Promise.defer();
   gBrowser.selectedTab = gBrowser.addTab("about:blank");
   openPreferences(aPane, aAdvancedTab ? {advancedTab: aAdvancedTab} : undefined);
   let newTabBrowser = gBrowser.selectedBrowser;
--- a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.js
+++ b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.js
@@ -70,17 +70,17 @@ document.addEventListener("DOMContentLoa
                        .getService(Ci.nsIURLFormatter).formatURLPref;
  document.getElementById("startTour").setAttribute("href",
                     formatURLPref("privacy.trackingprotection.introURL"));
  document.getElementById("learnMore").setAttribute("href",
                     formatURLPref("app.support.baseURL") + "private-browsing");
 
  // Update state that depends on preferences.
  prefObserver.observe();
-}, false);
+});
 
 function openPrivateWindow() {
  // Ask chrome to open a private window
  document.dispatchEvent(
    new CustomEvent("AboutPrivateBrowsingOpenWindow", {bubbles:true}));
 }
 
 function toggleTrackingProtection() {
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_certexceptionsui.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_certexceptionsui.js
@@ -10,44 +10,44 @@ function test() {
   const EXCEPTIONS_DLG_URL = 'chrome://pippki/content/exceptionDialog.xul';
   const EXCEPTIONS_DLG_FEATURES = 'chrome,centerscreen';
   const INVALID_CERT_LOCATION = 'https://nocert.example.com/';
   waitForExplicitFinish();
 
   // open a private browsing window
   var pbWin = OpenBrowserWindow({private: true});
   pbWin.addEventListener("load", function onLoad() {
-    pbWin.removeEventListener("load", onLoad, false);
+    pbWin.removeEventListener("load", onLoad);
     doTest();
-  }, false);
+  });
 
   // Test the certificate exceptions dialog
   function doTest() {
     let params = {
       exceptionAdded : false,
       location: INVALID_CERT_LOCATION,
       prefetchCert: true,
     };
     function testCheckbox() {
-      win.removeEventListener("load", testCheckbox, false);
+      win.removeEventListener("load", testCheckbox);
       Services.obs.addObserver(function onCertUI(aSubject, aTopic, aData) {
         Services.obs.removeObserver(onCertUI, "cert-exception-ui-ready");
         ok(win.gCert, "The certificate information should be available now");
 
         let checkbox = win.document.getElementById("permanent");
         ok(checkbox.hasAttribute("disabled"),
           "the permanent checkbox should be disabled when handling the private browsing mode");
         ok(!checkbox.hasAttribute("checked"),
           "the permanent checkbox should not be checked when handling the private browsing mode");
         win.close();
         cleanup();
       }, "cert-exception-ui-ready", false);
     }
     var win = pbWin.openDialog(EXCEPTIONS_DLG_URL, "", EXCEPTIONS_DLG_FEATURES, params);
-    win.addEventListener("load", testCheckbox, false);
+    win.addEventListener("load", testCheckbox);
   }
 
   function cleanup() {
     // close the private browsing window
     pbWin.close();
     finish();
   }
 }
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_opendir.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_opendir.js
@@ -4,20 +4,20 @@
 
 // This test makes sure that the last open directory used inside the private
 // browsing mode is not remembered after leaving that mode.
 
 var windowsToClose = [];
 function testOnWindow(options, callback) {
   var win = OpenBrowserWindow(options);
   win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
     windowsToClose.push(win);
     callback(win);
-  }, false);
+  });
 }
 
 registerCleanupFunction(function() {
   windowsToClose.forEach(function(win) {
     win.close();
   });
 });
 
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_popupblocker.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_popupblocker.js
@@ -11,47 +11,47 @@ add_task(function* test() {
 
   registerCleanupFunction(() => {
     gPrefService.setBoolPref("dom.disable_open_during_load", oldPopupPolicy);
   });
 
   function testPopupBlockerMenuItem(aExpectedDisabled, aWindow, aCallback) {
 
     aWindow.gBrowser.addEventListener("DOMUpdatePageReport", function() {
-      aWindow.gBrowser.removeEventListener("DOMUpdatePageReport", arguments.callee, false);
+      aWindow.gBrowser.removeEventListener("DOMUpdatePageReport", arguments.callee);
 
       executeSoon(function() {
         let notification = aWindow.gBrowser.getNotificationBox().getNotificationWithValue("popup-blocked");
         ok(notification, "The notification box should be displayed");
 
         function checkMenuItem(callback) {
           dump("CMI: in\n");
           aWindow.document.addEventListener("popupshown", function(event) {
             dump("CMI: popupshown\n");
-            aWindow.document.removeEventListener("popupshown", arguments.callee, false);
+            aWindow.document.removeEventListener("popupshown", arguments.callee);
 
             if (aExpectedDisabled)
               is(aWindow.document.getElementById("blockedPopupAllowSite").getAttribute("disabled"), "true",
                  "The allow popups menu item should be disabled");
 
             event.originalTarget.hidePopup();
             dump("CMI: calling back\n");
             callback();
             dump("CMI: called back\n");
-          }, false);
+          });
           dump("CMI: out\n");
         }
 
         checkMenuItem(function() {
           aCallback();
         });
         notification.querySelector("button").doCommand();
       });
 
-    }, false);
+    });
 
     aWindow.gBrowser.selectedBrowser.loadURI(testURI);
   }
 
   let win1 = yield BrowserTestUtils.openNewBrowserWindow();
   yield new Promise(resolve => waitForFocus(resolve, win1));
   yield new Promise(resolve => testPopupBlockerMenuItem(false, win1, resolve));
 
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_theming.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_theming.js
@@ -4,20 +4,20 @@
 
 // This test makes sure that privatebrowsingmode attribute of the window is correctly
 // adjusted based on whether the window is a private window.
 
 var windowsToClose = [];
 function testOnWindow(options, callback) {
   var win = OpenBrowserWindow(options);
   win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
     windowsToClose.push(win);
     executeSoon(() => callback(win));
-  }, false);
+  });
 }
 
 registerCleanupFunction(function() {
   windowsToClose.forEach(function(win) {
     win.close();
   });
 });
 
--- a/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_ui.js
+++ b/browser/components/privatebrowsing/test/browser/browser_privatebrowsing_ui.js
@@ -39,17 +39,17 @@ function test() {
 
   function openPrivateBrowsingModeByUI(aWindow, aCallback) {
     Services.obs.addObserver(function observer(aSubject, aTopic, aData) {
       aSubject.addEventListener("load", function() {
         aSubject.removeEventListener("load", arguments.callee);
           Services.obs.removeObserver(observer, "domwindowopened");
           windowsToClose.push(aSubject);
           aCallback(aSubject);
-      }, false);
+      });
     }, "domwindowopened", false);
 
     cmd = aWindow.document.getElementById("Tools:PrivateBrowsing");
     var func = new Function("", cmd.getAttribute("oncommand"));
     func.call(cmd);
   };
 
   function testOnWindow(aOptions, aCallback) {
--- a/browser/components/privatebrowsing/test/browser/head.js
+++ b/browser/components/privatebrowsing/test/browser/head.js
@@ -18,19 +18,19 @@ function whenNewWindowLoaded(aOptions, a
 
 function openWindow(aParent, aOptions, a3) {
   let { Promise: { defer } } = Components.utils.import("resource://gre/modules/Promise.jsm", {});
   let { promise, resolve } = defer();
 
   let win = aParent.OpenBrowserWindow(aOptions);
 
   win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
     resolve(win);
-  }, false);
+  });
 
   return promise;
 }
 
 function newDirectory() {
   let FileUtils =
     Cu.import("resource://gre/modules/FileUtils.jsm", {}).FileUtils;
   let tmpDir = FileUtils.getDir("TmpD", [], true);
--- a/browser/components/search/content/search.xml
+++ b/browser/components/search/content/search.xml
@@ -576,17 +576,17 @@
           if (!pasteAndSearch)
             return;
           var controller = document.commandDispatcher.getControllerForCommand("cmd_paste");
           var enabled = controller.isCommandEnabled("cmd_paste");
           if (enabled)
             pasteAndSearch.removeAttribute("disabled");
           else
             pasteAndSearch.setAttribute("disabled", "true");
-        }, false);
+        });
 
         var element, label, akey;
 
         element = document.createElementNS(kXULNS, "menuseparator");
         cxmenu.appendChild(element);
 
         this.setAttribute("aria-owns", this.popup.id);
 
--- a/browser/components/search/test/browser_contextSearchTabPosition.js
+++ b/browser/components/search/test/browser_contextSearchTabPosition.js
@@ -26,30 +26,30 @@ add_task(function* test() {
 
     // We wait for the blank tab and the two context searches tabs to open.
     if (tabs.length == 3) {
       tabsLoadedDeferred.resolve();
     }
   }
 
   let container = gBrowser.tabContainer;
-  container.addEventListener("TabOpen", tabAdded, false);
+  container.addEventListener("TabOpen", tabAdded);
 
   gBrowser.addTab("about:blank");
   BrowserSearch.loadSearchFromContext("mozilla");
   BrowserSearch.loadSearchFromContext("firefox");
 
   // Wait for all the tabs to open.
   yield tabsLoadedDeferred.promise;
 
   is(tabs[0], gBrowser.tabs[3], "blank tab has been pushed to the end");
   is(tabs[1], gBrowser.tabs[1], "first search tab opens next to the current tab");
   is(tabs[2], gBrowser.tabs[2], "second search tab opens next to the first search tab");
 
-  container.removeEventListener("TabOpen", tabAdded, false);
+  container.removeEventListener("TabOpen", tabAdded);
   tabs.forEach(gBrowser.removeTab, gBrowser);
 
   // Make sure that the context searches are correctly recorded.
   let hs = Services.telemetry.getKeyedHistogramById("SEARCH_COUNTS").snapshot();
   Assert.ok(histogramKey in hs, "The histogram must contain the correct key");
   Assert.equal(hs[histogramKey].sum, numSearchesBefore + 2,
                "The histogram must contain the correct search count");
 });
--- a/browser/components/search/test/browser_searchbar_openpopup.js
+++ b/browser/components/search/test/browser_searchbar_openpopup.js
@@ -83,19 +83,19 @@ add_task(function* init() {
 function add_no_popup_task(task) {
   add_task(function*() {
     let sawPopup = false;
     function listener() {
       sawPopup = true;
     }
 
     info("Entering test " + task.name);
-    searchPopup.addEventListener("popupshowing", listener, false);
+    searchPopup.addEventListener("popupshowing", listener);
     yield Task.spawn(task);
-    searchPopup.removeEventListener("popupshowing", listener, false);
+    searchPopup.removeEventListener("popupshowing", listener);
     ok(!sawPopup, "Shouldn't have seen the suggestions popup");
     info("Leaving test " + task.name);
   });
 }
 
 // Simulates the full set of events for a context click
 function context_click(target) {
   for (let event of ["mousedown", "contextmenu", "mouseup"])
@@ -348,28 +348,28 @@ add_task(function* refocus_window_doesnt
   promise = promiseEvent(searchPopup, "popuphidden");
   let newWin = OpenBrowserWindow();
   yield new Promise(resolve => waitForFocus(resolve, newWin));
   yield promise;
 
   function listener() {
     ok(false, "Should not have shown the popup.");
   }
-  searchPopup.addEventListener("popupshowing", listener, false);
+  searchPopup.addEventListener("popupshowing", listener);
 
   promise = promiseEvent(searchbar, "focus");
   newWin.close();
   yield promise;
 
   // Wait a few ticks to allow any focus handlers to show the popup if they are going to.
   yield new Promise(resolve => executeSoon(resolve));
   yield new Promise(resolve => executeSoon(resolve));
   yield new Promise(resolve => executeSoon(resolve));
 
-  searchPopup.removeEventListener("popupshowing", listener, false);
+  searchPopup.removeEventListener("popupshowing", listener);
   textbox.value = "";
 });
 
 // Switching back to the window when the search box has focus from keyboard should not open the popup.
 add_task(function* refocus_window_doesnt_open_popup_keyboard() {
   gURLBar.focus();
   textbox.value = "foo";
 
@@ -385,28 +385,28 @@ add_task(function* refocus_window_doesnt
   promise = promiseEvent(searchPopup, "popuphidden");
   let newWin = OpenBrowserWindow();
   yield new Promise(resolve => waitForFocus(resolve, newWin));
   yield promise;
 
   function listener() {
     ok(false, "Should not have shown the popup.");
   }
-  searchPopup.addEventListener("popupshowing", listener, false);
+  searchPopup.addEventListener("popupshowing", listener);
 
   promise = promiseEvent(searchbar, "focus");
   newWin.close();
   yield promise;
 
   // Wait a few ticks to allow any focus handlers to show the popup if they are going to.
   yield new Promise(resolve => executeSoon(resolve));
   yield new Promise(resolve => executeSoon(resolve));
   yield new Promise(resolve => executeSoon(resolve));
 
-  searchPopup.removeEventListener("popupshowing", listener, false);
+  searchPopup.removeEventListener("popupshowing", listener);
   textbox.value = "";
 });
 
 // Clicking the search go button shouldn't open the popup
 add_no_popup_task(function* search_go_doesnt_open_popup() {
   gBrowser.selectedTab = gBrowser.addTab();
 
   gURLBar.focus();
--- a/browser/components/sessionstore/RecentlyClosedTabsAndWindowsMenuUtils.jsm
+++ b/browser/components/sessionstore/RecentlyClosedTabsAndWindowsMenuUtils.jsm
@@ -164,17 +164,17 @@ function createEntry(aTagName, aIsWindow
   tabData = aIsWindowsFragment ? aClosedTab
                      : aClosedTab.state;
   let activeIndex = (tabData.index || tabData.entries.length) - 1;
   if (activeIndex >= 0 && tabData.entries[activeIndex]) {
     element.setAttribute("targetURI", tabData.entries[activeIndex].url);
   }
 
   if (!aIsWindowsFragment) {
-    element.addEventListener("click", RecentlyClosedTabsAndWindowsMenuUtils._undoCloseMiddleClick, false);
+    element.addEventListener("click", RecentlyClosedTabsAndWindowsMenuUtils._undoCloseMiddleClick);
   }
   if (aIndex == 0) {
     element.setAttribute("key", "key_undoClose" + (aIsWindowsFragment? "Window" : "Tab"));
   }
 
   aFragment.appendChild(element);
 }
 
--- a/browser/components/sessionstore/test/browser_459906_sample.html
+++ b/browser/components/sessionstore/test/browser_459906_sample.html
@@ -4,23 +4,23 @@
 <title>Test for bug 459906</title>
 
 <body>
 <iframe src="data:text/html;charset=utf-8,not_on_localhost"></iframe>
 <iframe></iframe>
 
 <script type="application/javascript">
   var loadCount = 0;
-  frames[0].addEventListener("DOMContentLoaded", handleLoad, false);
-  frames[1].addEventListener("DOMContentLoaded", handleLoad, false);
+  frames[0].addEventListener("DOMContentLoaded", handleLoad);
+  frames[1].addEventListener("DOMContentLoaded", handleLoad);
   function handleLoad() {
     if (++loadCount < 2)
       return;
-    frames[0].removeEventListener("DOMContentLoaded", handleLoad, false);
-    frames[1].removeEventListener("DOMContentLoaded", handleLoad, false);
+    frames[0].removeEventListener("DOMContentLoaded", handleLoad);
+    frames[1].removeEventListener("DOMContentLoaded", handleLoad);
     frames[0].document.designMode = "on";
     frames[0].document.__defineGetter__("designMode", function() {
       // inject a cross domain file ...
       var documentInjected = false;
       document.getElementsByTagName("iframe")[0].onload =
         function() { documentInjected = true; };
       frames[0].location = "browser_459906_empty.html";
 
--- a/browser/components/sessionstore/test/browser_461743_sample.html
+++ b/browser/components/sessionstore/test/browser_461743_sample.html
@@ -7,23 +7,23 @@
 <iframe src="data:text/html;charset=utf-8,empty"></iframe>
 <iframe></iframe>
 
 <script type="application/javascript">
   var chromeUrl = "chrome://global/content/mozilla.xhtml";
   var exploitUrl = "javascript:try { document.body.innerHTML = Components.utils.reportError; } catch (ex) { }";
 
   var loadCount = 0;
-  frames[0].addEventListener("DOMContentLoaded", handleLoad, false);
-  frames[1].addEventListener("DOMContentLoaded", handleLoad, false);
+  frames[0].addEventListener("DOMContentLoaded", handleLoad);
+  frames[1].addEventListener("DOMContentLoaded", handleLoad);
   function handleLoad() {
     if (++loadCount < 2)
       return;
-    frames[0].removeEventListener("DOMContentLoaded", handleLoad, false);
-    frames[1].removeEventListener("DOMContentLoaded", handleLoad, false);
+    frames[0].removeEventListener("DOMContentLoaded", handleLoad);
+    frames[1].removeEventListener("DOMContentLoaded", handleLoad);
 
     var flip = 0;
     MutationEvent.prototype.toString = function() {
       return flip++ == 0 ? chromeUrl : exploitUrl;
     };
 
     var href = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(frames[1].location), "href").get;
     var loadChrome = { handleEvent: href };
--- a/browser/components/sessionstore/test/browser_466937_sample.html
+++ b/browser/components/sessionstore/test/browser_466937_sample.html
@@ -5,18 +5,18 @@
 <title>Test for bug 466937</title>
 
 <input id="thief" value="/home/user/secret">
 <input type="file" id="reverse_thief">
 <input type="file" id="bystander">
 
 <script>
   window.addEventListener("DOMContentLoaded", function() {
-    window.removeEventListener("DOMContentLoaded", arguments.callee, false);
+    window.removeEventListener("DOMContentLoaded", arguments.callee);
     if (!document.location.hash) {
       document.location.hash = "#ready";
     }
     else {
       document.getElementById("thief").type = "file";
       document.getElementById("reverse_thief").type = "text";
     }
-  }, false);
+  });
 </script>
--- a/browser/components/sessionstore/test/browser_514751.js
+++ b/browser/components/sessionstore/test/browser_514751.js
@@ -15,24 +15,24 @@ function test() {
           {}
         ]
       }]
     }]
   };
 
   var theWin = openDialog(location, "", "chrome,all,dialog=no");
   theWin.addEventListener("load", function () {
-    theWin.removeEventListener("load", arguments.callee, false);
+    theWin.removeEventListener("load", arguments.callee);
 
     executeSoon(function () {
       var gotError = false;
       try {
         ss.setWindowState(theWin, JSON.stringify(state), true);
       } catch (e) {
         if (/NS_ERROR_MALFORMED_URI/.test(e))
           gotError = true;
       }
       ok(!gotError, "Didn't get a malformed URI error.");
       BrowserTestUtils.closeWindow(theWin).then(finish);
     });
-  }, false);
+  });
 }
 
--- a/browser/components/sessionstore/test/browser_580512.js
+++ b/browser/components/sessionstore/test/browser_580512.js
@@ -51,17 +51,17 @@ function checkSecondWin(win) {
 function openWinWithCb(cb, argURIs, expectedURIs) {
   if (!expectedURIs)
     expectedURIs = argURIs;
 
   var win = openDialog(getBrowserURL(), "_blank",
                        "chrome,all,dialog=no", argURIs.join("|"));
 
   win.addEventListener("load", function () {
-    win.removeEventListener("load", arguments.callee, false);
+    win.removeEventListener("load", arguments.callee);
     info("the window loaded");
 
     var expectedLoads = expectedURIs.length;
 
     win.gBrowser.addTabsProgressListener({
       onStateChange: function (aBrowser, aWebProgress, aRequest, aStateFlags, aStatus) {
         if (aRequest &&
             aStateFlags & Ci.nsIWebProgressListener.STATE_STOP &&
@@ -72,10 +72,10 @@ function openWinWithCb(cb, argURIs, expe
           info("all tabs loaded");
           is(win.gBrowser.tabs.length, expectedURIs.length, "didn't load any unexpected tabs");
           executeSoon(function () {
             cb(win);
           });
         }
       }
     });
-  }, false);
+  });
 }
--- a/browser/components/sessionstore/test/browser_588426.js
+++ b/browser/components/sessionstore/test/browser_588426.js
@@ -22,20 +22,20 @@ function test() {
   });
 }
 
 function newWindowWithState(state, callback) {
   let opts = "chrome,all,dialog=no,height=800,width=800";
   let win = window.openDialog(getBrowserURL(), "_blank", opts);
 
   win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
 
     executeSoon(function () {
       win.addEventListener("SSWindowStateReady", function onReady() {
-        win.removeEventListener("SSWindowStateReady", onReady, false);
+        win.removeEventListener("SSWindowStateReady", onReady);
         promiseTabRestored(win.gBrowser.tabs[0]).then(() => callback(win));
-      }, false);
+      });
 
       ss.setWindowState(win, JSON.stringify(state), true);
     });
-  }, false);
+  });
 }
--- a/browser/components/sessionstore/test/browser_589246.js
+++ b/browser/components/sessionstore/test/browser_589246.js
@@ -156,27 +156,27 @@ function onStateRestored(aSubject, aTopi
   Services.obs.removeObserver(onStateRestored, "sessionstore-browser-state-restored");
 
   // change this window's windowtype so that closing a new window will trigger
   // browser-lastwindow-close-granted.
   document.documentElement.setAttribute("windowtype", "navigator:testrunner");
 
   let newWin = openDialog(location, "_blank", "chrome,all,dialog=no", "http://example.com");
   newWin.addEventListener("load", function(aEvent) {
-    newWin.removeEventListener("load", arguments.callee, false);
+    newWin.removeEventListener("load", arguments.callee);
 
     promiseBrowserLoaded(newWin.gBrowser.selectedBrowser).then(() => {
       // pin this tab
       if (shouldPinTab)
         newWin.gBrowser.pinTab(newWin.gBrowser.selectedTab);
 
       newWin.addEventListener("unload", function () {
-        newWin.removeEventListener("unload", arguments.callee, false);
+        newWin.removeEventListener("unload", arguments.callee);
         onWindowUnloaded();
-      }, false);
+      });
       // Open a new tab as well. On Windows/Linux this will be restored when the
       // new window is opened below (in onWindowUnloaded). On OS X we'll just
       // restore the pinned tabs, leaving the unpinned tab in the closedWindowsData.
       if (shouldOpenTabs) {
         let newTab = newWin.gBrowser.addTab("about:config");
         let newTab2 = newWin.gBrowser.addTab("about:buildconfig");
 
         newTab.linkedBrowser.addEventListener("load", function() {
@@ -191,17 +191,17 @@ function onStateRestored(aSubject, aTopi
           }
           newWin.BrowserTryToCloseWindow();
         }, true);
       }
       else {
         newWin.BrowserTryToCloseWindow();
       }
     });
-  }, false);
+  });
 }
 
 // This will be called before the window is actually closed
 function onLastWindowClosed(aSubject, aTopic, aData) {
   info("test #" + testNum + ": onLastWindowClosed");
   Services.obs.removeObserver(onLastWindowClosed, "browser-lastwindow-close-granted");
   gotLastWindowClosedTopic = true;
 }
@@ -214,27 +214,27 @@ function onWindowUnloaded() {
   info("test #" + testNum + ": onWindowClosed");
   ok(gotLastWindowClosedTopic, "test #" + testNum + ": browser-lastwindow-close-granted was notified prior");
 
   let previousClosedWindowData = ss.getClosedWindowData();
 
   // Now we want to open a new window
   let newWin = openDialog(location, "_blank", "chrome,all,dialog=no", "about:mozilla");
   newWin.addEventListener("load", function(aEvent) {
-    newWin.removeEventListener("load", arguments.callee, false);
+    newWin.removeEventListener("load", arguments.callee);
 
     newWin.gBrowser.selectedBrowser.addEventListener("load", function () {
       newWin.gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
 
       // Good enough for checking the state
       afterTestCallback(previousClosedWindowData, ss.getClosedWindowData());
       afterTestCleanup(newWin);
     }, true);
 
-  }, false);
+  });
 }
 
 function afterTestCleanup(aNewWin) {
   executeSoon(function() {
     BrowserTestUtils.closeWindow(aNewWin).then(() => {
       document.documentElement.setAttribute("windowtype", originalWindowType);
       runNextTestOrFinish();
     });
--- a/browser/components/sessionstore/test/browser_590268.js
+++ b/browser/components/sessionstore/test/browser_590268.js
@@ -111,27 +111,27 @@ function test() {
       }
     }
     ok(uniq2Count > 0, "at least 1 tab properly checked 'early access'");
     is(checked, uniq2Count, "checked the same number of uniq2 as we set");
   }
 
   function cleanup() {
     // remove the event listener and clean up before finishing
-    gBrowser.tabContainer.removeEventListener("SSTabRestoring", onSSTabRestoring, false);
+    gBrowser.tabContainer.removeEventListener("SSTabRestoring", onSSTabRestoring);
     gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored, true);
-    gBrowser.tabContainer.removeEventListener("TabOpen", onTabOpen, false);
+    gBrowser.tabContainer.removeEventListener("TabOpen", onTabOpen);
     // Put this in an executeSoon because we still haven't called restoreNextTab
     // in sessionstore for the last tab (we'll call it after this). We end up
     // trying to restore the tab (since we then add a closed tab to the array).
     executeSoon(function() {
       ss.setBrowserState(stateBackup);
       executeSoon(finish);
     });
   }
 
   // Add the event listeners
-  gBrowser.tabContainer.addEventListener("SSTabRestoring", onSSTabRestoring, false);
+  gBrowser.tabContainer.addEventListener("SSTabRestoring", onSSTabRestoring);
   gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored, true);
-  gBrowser.tabContainer.addEventListener("TabOpen", onTabOpen, false);
+  gBrowser.tabContainer.addEventListener("TabOpen", onTabOpen);
   // Restore state
   ss.setBrowserState(JSON.stringify(state));
 }
--- a/browser/components/sessionstore/test/browser_590563.js
+++ b/browser/components/sessionstore/test/browser_590563.js
@@ -51,24 +51,24 @@ function middleClickTest(win) {
      "The total number of visible tabs should be 3 after restoring 2 tabs by middle click");
 }
 
 function newWindowWithState(state, callback) {
   let opts = "chrome,all,dialog=no,height=800,width=800";
   let win = window.openDialog(getBrowserURL(), "_blank", opts);
 
   win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
 
     let tab = win.gBrowser.selectedTab;
 
     // The form data will be restored before SSTabRestored, so we want to listen
     // for that on the currently selected tab (it will be reused)
     tab.addEventListener("SSTabRestored", function onRestored() {
       tab.removeEventListener("SSTabRestored", onRestored, true);
       callback(win);
     }, true);
 
     executeSoon(function () {
       ss.setWindowState(win, JSON.stringify(state), true);
     });
-  }, false);
+  });
 }
--- a/browser/components/sessionstore/test/browser_615394-SSWindowState_events.js
+++ b/browser/components/sessionstore/test/browser_615394-SSWindowState_events.js
@@ -99,26 +99,26 @@ function test_setTabState() {
   }
 
   function onSSTabRestored(aEvent) {
     is(busyEventCount, 1);
     is(readyEventCount, 1);
     is(ss.getTabValue(tab, "baz"), "qux");
     is(tab.linkedBrowser.currentURI.spec, "http://example.org/");
 
-    window.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-    window.removeEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-    gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored, false);
+    window.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+    window.removeEventListener("SSWindowStateReady", onSSWindowStateReady);
+    gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored);
 
     runNextTest();
   }
 
-  window.addEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-  window.addEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-  gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored, false);
+  window.addEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+  window.addEventListener("SSWindowStateReady", onSSWindowStateReady);
+  gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored);
   ss.setTabState(tab, newTabState);
 }
 
 
 function test_duplicateTab() {
   let tab = gBrowser.tabs[1];
   let busyEventCount = 0;
   let readyEventCount = 0;
@@ -139,26 +139,26 @@ function test_duplicateTab() {
   }
 
   function onSSTabRestored(aEvent) {
     is(busyEventCount, 1);
     is(readyEventCount, 1);
     is(ss.getTabValue(newTab, "baz"), "qux");
     is(newTab.linkedBrowser.currentURI.spec, "about:rights");
 
-    window.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-    window.removeEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-    gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored, false);
+    window.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+    window.removeEventListener("SSWindowStateReady", onSSWindowStateReady);
+    gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored);
 
     runNextTest();
   }
 
-  window.addEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-  window.addEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-  gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored, false);
+  window.addEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+  window.addEventListener("SSWindowStateReady", onSSWindowStateReady);
+  gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored);
 
   newTab = ss.duplicateTab(window, tab);
 }
 
 
 function test_undoCloseTab() {
   let tab = gBrowser.tabs[1],
       busyEventCount = 0,
@@ -179,26 +179,26 @@ function test_undoCloseTab() {
   }
 
   function onSSTabRestored(aEvent) {
     is(busyEventCount, 1);
     is(readyEventCount, 1);
     is(ss.getTabValue(reopenedTab, "baz"), "qux");
     is(reopenedTab.linkedBrowser.currentURI.spec, "about:rights");
 
-    window.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-    window.removeEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-    gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored, false);
+    window.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+    window.removeEventListener("SSWindowStateReady", onSSWindowStateReady);
+    gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored);
 
     runNextTest();
   }
 
-  window.addEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-  window.addEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-  gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored, false);
+  window.addEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+  window.addEventListener("SSWindowStateReady", onSSWindowStateReady);
+  gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored);
 
   gBrowser.removeTab(tab);
   reopenedTab = ss.undoCloseTab(window, 0);
 }
 
 
 function test_setWindowState() {
   let testState = {
@@ -228,26 +228,26 @@ function test_setWindowState() {
     if (++tabRestoredCount < 2)
       return;
 
     is(busyEventCount, 1);
     is(readyEventCount, 1);
     is(gBrowser.tabs[0].linkedBrowser.currentURI.spec, "about:mozilla");
     is(gBrowser.tabs[1].linkedBrowser.currentURI.spec, "http://example.org/");
 
-    window.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-    window.removeEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-    gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored, false);
+    window.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+    window.removeEventListener("SSWindowStateReady", onSSWindowStateReady);
+    gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored);
 
     runNextTest();
   }
 
-  window.addEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-  window.addEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-  gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored, false);
+  window.addEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+  window.addEventListener("SSWindowStateReady", onSSWindowStateReady);
+  gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored);
 
   ss.setWindowState(window, JSON.stringify(testState), true);
 }
 
 
 function test_setBrowserState() {
   // We'll track events per window so we are sure that they are each happening once
   // pre window.
@@ -256,56 +256,56 @@ function test_setBrowserState() {
 
   // waitForBrowserState does it's own observing for windows, but doesn't attach
   // the listeners we want here, so do it ourselves.
   let newWindow;
   function windowObserver(aSubject, aTopic, aData) {
     if (aTopic == "domwindowopened") {
       newWindow = aSubject.QueryInterface(Ci.nsIDOMWindow);
       newWindow.addEventListener("load", function() {
-        newWindow.removeEventListener("load", arguments.callee, false);
+        newWindow.removeEventListener("load", arguments.callee);
 
         Services.ww.unregisterNotification(windowObserver);
 
         windowEvents[getOuterWindowID(newWindow)] = { busyEventCount: 0, readyEventCount: 0 };
 
-        newWindow.addEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-        newWindow.addEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-      }, false);
+        newWindow.addEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+        newWindow.addEventListener("SSWindowStateReady", onSSWindowStateReady);
+      });
     }
   }
 
   function onSSWindowStateBusy(aEvent) {
     windowEvents[getOuterWindowID(aEvent.originalTarget)].busyEventCount++;
   }
 
   function onSSWindowStateReady(aEvent) {
     windowEvents[getOuterWindowID(aEvent.originalTarget)].readyEventCount++;
   }
 
-  window.addEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-  window.addEventListener("SSWindowStateReady", onSSWindowStateReady, false);
+  window.addEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+  window.addEventListener("SSWindowStateReady", onSSWindowStateReady);
   Services.ww.registerNotification(windowObserver);
 
   waitForBrowserState(lameMultiWindowState, function() {
     let checkedWindows = 0;
     for (let id of Object.keys(windowEvents)) {
       let winEvents = windowEvents[id];
       is(winEvents.busyEventCount, 1,
          "[test_setBrowserState] window" + id + " busy event count correct");
       is(winEvents.readyEventCount, 1,
          "[test_setBrowserState] window" + id + " ready event count correct");
       checkedWindows++;
     }
     is(checkedWindows, 2,
        "[test_setBrowserState] checked 2 windows");
-    window.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-    window.removeEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-    newWindow.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-    newWindow.removeEventListener("SSWindowStateReady", onSSWindowStateReady, false);
+    window.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+    window.removeEventListener("SSWindowStateReady", onSSWindowStateReady);
+    newWindow.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+    newWindow.removeEventListener("SSWindowStateReady", onSSWindowStateReady);
     runNextTest();
   });
 }
 
 
 function test_undoCloseWindow() {
   let newWindow, reopenedWindow;
 
@@ -317,24 +317,24 @@ function test_undoCloseWindow() {
   }
   Services.ww.registerNotification(firstWindowObserver);
 
   waitForBrowserState(lameMultiWindowState, function() {
     // Close the window which isn't window
     BrowserTestUtils.closeWindow(newWindow).then(() => {
       // Now give it time to close
       reopenedWindow = ss.undoCloseWindow(0);
-      reopenedWindow.addEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-      reopenedWindow.addEventListener("SSWindowStateReady", onSSWindowStateReady, false);
+      reopenedWindow.addEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+      reopenedWindow.addEventListener("SSWindowStateReady", onSSWindowStateReady);
 
       reopenedWindow.addEventListener("load", function() {
-        reopenedWindow.removeEventListener("load", arguments.callee, false);
+        reopenedWindow.removeEventListener("load", arguments.callee);
 
-        reopenedWindow.gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored, false);
-      }, false);
+        reopenedWindow.gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored);
+      });
     });
   });
 
   let busyEventCount = 0,
       readyEventCount = 0,
       tabRestoredCount = 0;
   // These will listen to the reopened closed window...
   function onSSWindowStateBusy(aEvent) {
@@ -347,15 +347,15 @@ function test_undoCloseWindow() {
 
   function onSSTabRestored(aEvent) {
     if (++tabRestoredCount < 4)
       return;
 
     is(busyEventCount, 1);
     is(readyEventCount, 1);
 
-    reopenedWindow.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy, false);
-    reopenedWindow.removeEventListener("SSWindowStateReady", onSSWindowStateReady, false);
-    reopenedWindow.gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored, false);
+    reopenedWindow.removeEventListener("SSWindowStateBusy", onSSWindowStateBusy);
+    reopenedWindow.removeEventListener("SSWindowStateReady", onSSWindowStateReady);
+    reopenedWindow.gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored);
 
     BrowserTestUtils.closeWindow(reopenedWindow).then(runNextTest);
   }
 }
--- a/browser/components/sessionstore/test/browser_618151.js
+++ b/browser/components/sessionstore/test/browser_618151.js
@@ -44,21 +44,21 @@ function runNextTest() {
   else {
     ss.setBrowserState(stateBackup);
     executeSoon(finish);
   }
 }
 
 function test_setup() {
   function onSSTabRestored(aEvent) {
-    gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored, false);
+    gBrowser.tabContainer.removeEventListener("SSTabRestored", onSSTabRestored);
     runNextTest();
   }
 
-  gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored, false);
+  gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored);
   ss.setTabState(gBrowser.tabs[1], JSON.stringify({
     entries: [{ url: "http://example.org" }],
     extData: { foo: "bar" } }));
 }
 
 function test_hang() {
   ok(true, "test didn't time out");
   runNextTest();
--- a/browser/components/sessionstore/test/browser_636279.js
+++ b/browser/components/sessionstore/test/browser_636279.js
@@ -21,17 +21,17 @@ function test() {
     TabsProgressListener.uninit();
     ss.setBrowserState(stateBackup);
   });
 
 
   TabsProgressListener.init();
 
   window.addEventListener("SSWindowStateReady", function onReady() {
-    window.removeEventListener("SSWindowStateReady", onReady, false);
+    window.removeEventListener("SSWindowStateReady", onReady);
 
     let firstProgress = true;
 
     TabsProgressListener.setCallback(function (needsRestore, isRestoring) {
       if (firstProgress) {
         firstProgress = false;
         is(isRestoring, 3, "restoring 3 tabs concurrently");
       } else {
@@ -40,17 +40,17 @@ function test() {
 
       if (0 == needsRestore) {
         TabsProgressListener.unsetCallback();
         waitForFocus(finish);
       }
     });
 
     ss.setBrowserState(JSON.stringify(state));
-  }, false);
+  });
 
   ss.setBrowserState(JSON.stringify(statePinned));
 }
 
 function countTabs() {
   let needsRestore = 0, isRestoring = 0;
   let windowsEnum = Services.wm.getEnumerator("navigator:browser");
 
--- a/browser/components/sessionstore/test/browser_644409-scratchpads.js
+++ b/browser/components/sessionstore/test/browser_644409-scratchpads.js
@@ -34,31 +34,31 @@ function test() {
 
   ss.setBrowserState(JSON.stringify(testState));
 }
 
 function windowObserver(aSubject, aTopic, aData) {
   if (aTopic == "domwindowopened") {
     let win = aSubject.QueryInterface(Ci.nsIDOMWindow);
     win.addEventListener("load", function onLoad() {
-      win.removeEventListener("load", onLoad, false);
+      win.removeEventListener("load", onLoad);
 
       if (win.Scratchpad) {
         win.Scratchpad.addObserver({
           onReady: function() {
             win.Scratchpad.removeObserver(this);
 
             let state = win.Scratchpad.getState();
             BrowserTestUtils.closeWindow(win).then(() => {
               addState(state);
             });
           },
         });
       }
-    }, false);
+    });
   }
 }
 
 function statesMatch(restored, states) {
   return states.every(function(state) {
     return restored.some(function(restoredState) {
       return state.filename == restoredState.filename &&
              state.text == restoredState.text &&
--- a/browser/components/sessionstore/test/browser_659591.js
+++ b/browser/components/sessionstore/test/browser_659591.js
@@ -7,27 +7,27 @@ function test() {
   let eventReceived = false;
 
   registerCleanupFunction(function () {
     ok(eventReceived, "SSWindowClosing event received");
   });
 
   newWindow(function (win) {
     win.addEventListener("SSWindowClosing", function onWindowClosing() {
-      win.removeEventListener("SSWindowClosing", onWindowClosing, false);
+      win.removeEventListener("SSWindowClosing", onWindowClosing);
       eventReceived = true;
-    }, false);
+    });
 
     BrowserTestUtils.closeWindow(win).then(() => {
       waitForFocus(finish);
     });
   });
 }
 
 function newWindow(callback) {
   let opts = "chrome,all,dialog=no,height=800,width=800";
   let win = window.openDialog(getBrowserURL(), "_blank", opts);
 
   win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
     executeSoon(() => callback(win));
-  }, false);
+  });
 }
--- a/browser/components/sessionstore/test/browser_662812.js
+++ b/browser/components/sessionstore/test/browser_662812.js
@@ -1,32 +1,32 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 function test() {
   waitForExplicitFinish();
 
   window.addEventListener("SSWindowStateBusy", function onBusy() {
-    window.removeEventListener("SSWindowStateBusy", onBusy, false);
+    window.removeEventListener("SSWindowStateBusy", onBusy);
 
     let state = JSON.parse(ss.getWindowState(window));
     ok(state.windows[0].busy, "window is busy");
 
     window.addEventListener("SSWindowStateReady", function onReady() {
-      window.removeEventListener("SSWindowStateReady", onReady, false);
+      window.removeEventListener("SSWindowStateReady", onReady);
 
       let state = JSON.parse(ss.getWindowState(window));
       ok(!state.windows[0].busy, "window is not busy");
 
       executeSoon(() => {
         gBrowser.removeTab(gBrowser.tabs[1]);
         finish();
       });
-    }, false);
-  }, false);
+    });
+  });
 
   // create a new tab
   let tab = gBrowser.addTab("about:mozilla");
   let browser = tab.linkedBrowser;
 
   // close and restore it
   browser.addEventListener("load", function onLoad() {
     browser.removeEventListener("load", onLoad, true);
--- a/browser/components/sessionstore/test/browser_701377.js
+++ b/browser/components/sessionstore/test/browser_701377.js
@@ -10,22 +10,22 @@ function test() {
   waitForExplicitFinish();
 
   newWindowWithState(state, function (aWindow) {
     let tab = aWindow.gBrowser.tabs[1];
     ok(tab.hidden, "the second tab is hidden");
 
     let tabShown = false;
     let tabShowCallback = () => tabShown = true;
-    tab.addEventListener("TabShow", tabShowCallback, false);
+    tab.addEventListener("TabShow", tabShowCallback);
 
     let tabState = ss.getTabState(tab);
     ss.setTabState(tab, tabState);
 
-    tab.removeEventListener("TabShow", tabShowCallback, false);
+    tab.removeEventListener("TabShow", tabShowCallback);
     ok(tab.hidden && !tabShown, "tab remains hidden");
 
     finish();
   });
 }
 
 // ----------
 function newWindowWithState(aState, aCallback) {
--- a/browser/components/sessionstore/test/browser_form_restore_events_sample.html
+++ b/browser/components/sessionstore/test/browser_form_restore_events_sample.html
@@ -3,23 +3,23 @@
 <title>Test for form restore events (originally bug 476161)</title>
 
 <script>
 
 document.addEventListener("input", function(aEvent) {
   var inputEl = aEvent.originalTarget;
   var changedEl = document.getElementById("inputFired");
   changedEl.textContent += " " + inputEl.id;
-}, false);
+});
 
 document.addEventListener("change", function(aEvent) {
   var inputEl = aEvent.originalTarget;
   var changedEl = document.getElementById("changeFired");
   changedEl.textContent += " " + inputEl.id;
-}, false);
+});
 
 </script>
 
 <!-- input events -->
 <h3>Text fields with changed text</h3>
 <input type="text" id="modify1">
 <input type="text" id="modify2" value="preset value">
 <input type="text" id="modify01">
--- a/browser/components/sessionstore/test/browser_windowRestore_perwindowpb.js
+++ b/browser/components/sessionstore/test/browser_windowRestore_perwindowpb.js
@@ -10,17 +10,17 @@ function test() {
   // Purging the list of closed windows
   forgetClosedWindows();
 
   // Load a private window, then close it 
   // and verify it doesn't get remembered for restoring
   whenNewWindowLoaded({private: true}, function (win) {
     info("The private window got loaded");
     win.addEventListener("SSWindowClosing", function onclosing() {
-      win.removeEventListener("SSWindowClosing", onclosing, false);
+      win.removeEventListener("SSWindowClosing", onclosing);
       executeSoon(function () {
         is(ss.getClosedWindowCount(), 0,
             "The private window should not have been stored");
       });
-    }, false);
+    });
     BrowserTestUtils.closeWindow(win).then(finish);
   });
 }
--- a/browser/components/sessionstore/test/head.js
+++ b/browser/components/sessionstore/test/head.js
@@ -118,28 +118,28 @@ function waitForBrowserState(aState, aSe
   }
 
   // Used to add our listener to further windows so we can catch SSTabRestored
   // coming from them when creating a multi-window state.
   function windowObserver(aSubject, aTopic, aData) {
     if (aTopic == "domwindowopened") {
       let newWindow = aSubject.QueryInterface(Ci.nsIDOMWindow);
       newWindow.addEventListener("load", function() {
-        newWindow.removeEventListener("load", arguments.callee, false);
+        newWindow.removeEventListener("load", arguments.callee);
 
         if (++windowsOpen == expectedWindows) {
           Services.ww.unregisterNotification(windowObserver);
           windowObserving = false;
         }
 
         // Track this window so we can remove the progress listener later
         windows.push(newWindow);
         // Add the progress listener
         newWindow.gBrowser.tabContainer.addEventListener("SSTabRestored", onSSTabRestored, true);
-      }, false);
+      });
     }
   }
 
   // We only want to register the notification if we expect more than 1 window
   if (expectedWindows > 1) {
     registerCleanupFunction(function() {
       if (windowObserving) {
         Services.ww.unregisterNotification(windowObserver);
@@ -284,21 +284,21 @@ var promiseForEachSessionRestoreFile = T
 });
 
 function promiseBrowserLoaded(aBrowser, ignoreSubFrames = true, wantLoad = null) {
   return BrowserTestUtils.browserLoaded(aBrowser, !ignoreSubFrames, wantLoad);
 }
 
 function whenWindowLoaded(aWindow, aCallback = next) {
   aWindow.addEventListener("load", function windowLoadListener() {
-    aWindow.removeEventListener("load", windowLoadListener, false);
+    aWindow.removeEventListener("load", windowLoadListener);
     executeSoon(function executeWhenWindowLoaded() {
       aCallback(aWindow);
     });
-  }, false);
+  });
 }
 function promiseWindowLoaded(aWindow) {
   return new Promise(resolve => whenWindowLoaded(aWindow, resolve));
 }
 
 var gUniqueCounter = 0;
 function r() {
   return Date.now() + "-" + (++gUniqueCounter);
--- a/browser/components/tests/browser/browser_bug538331.js
+++ b/browser/components/tests/browser/browser_bug538331.js
@@ -163,19 +163,19 @@ var gWindowCatcher = {
   observe(subject, topic, data) {
     if (topic != "domwindowopened")
       return;
 
     this.windowsOpen++;
     let win = subject.QueryInterface(Ci.nsIDOMWindow);
     info("window catcher caught window opening: " + win.document.documentURI);
     win.addEventListener("load", function() {
-      win.removeEventListener("load", arguments.callee, false);
+      win.removeEventListener("load", arguments.callee);
       gWindowCatcher.windowLoad(win);
-    }, false);
+    });
   }
 };
 
 function finish_test() {
   // Reset browser.startup.homepage_override.mstone to the original value or
   // clear it if it didn't exist.
   if (gOriginalMStone) {
     gPrefService.setCharPref(PREF_MSTONE, gOriginalMStone);
--- a/browser/components/uitour/UITour.jsm
+++ b/browser/components/uitour/UITour.jsm
@@ -1591,17 +1591,17 @@ this.UITour = {
       let { infoPanelOffsetX: xOffset, infoPanelOffsetY: yOffset } = aAnchor;
 
       this._addAnnotationPanelMutationObserver(tooltip);
       tooltip.openPopup(aAnchorEl, alignment, xOffset || 0, yOffset || 0);
       if (tooltip.state == "closed") {
         document.defaultView.addEventListener("endmodalstate", function endModalStateHandler() {
           document.defaultView.removeEventListener("endmodalstate", endModalStateHandler);
           tooltip.openPopup(aAnchorEl, alignment);
-        }, false);
+        });
       }
     }
 
     // Prevent showing a panel at an undefined position.
     if (!this.isElementVisible(aAnchor.node)) {
       log.warn("showInfo: Not showing since the target isn't visible", aAnchor);
       return;
     }
--- a/browser/extensions/pdfjs/content/web/debugger.js
+++ b/browser/extensions/pdfjs/content/web/debugger.js
@@ -398,31 +398,31 @@ var Stepper = (function StepperClosure()
     breakIt: function breakIt(idx, callback) {
       StepperManager.selectStepper(this.pageIndex, true);
       var self = this;
       var dom = document;
       self.currentIdx = idx;
       var listener = function(e) {
         switch (e.keyCode) {
           case 83: // step
-            dom.removeEventListener('keydown', listener, false);
+            dom.removeEventListener('keydown', listener);
             self.nextBreakPoint = self.currentIdx + 1;
             self.goTo(-1);
             callback();
             break;
           case 67: // continue
-            dom.removeEventListener('keydown', listener, false);
+            dom.removeEventListener('keydown', listener);
             var breakPoint = self.getNextBreakPoint();
             self.nextBreakPoint = breakPoint;
             self.goTo(-1);
             callback();
             break;
         }
       };
-      dom.addEventListener('keydown', listener, false);
+      dom.addEventListener('keydown', listener);
       self.goTo(idx);
     },
     goTo: function goTo(idx) {
       var allRows = this.panel.getElementsByClassName('line');
       for (var x = 0, xx = allRows.length; x < xx; ++x) {
         var row = allRows[x];
         if ((row.dataset.idx | 0) === idx) {
           row.style.backgroundColor = 'rgb(251,250,207)';
--- a/browser/extensions/pdfjs/content/web/viewer.js
+++ b/browser/extensions/pdfjs/content/web/viewer.js
@@ -3268,17 +3268,17 @@ var pdfjsWebLibs;
         page: self.currentPage
        } : { page: 1 };
        replacePreviousHistoryState(previousParams, function () {
         updateHistoryWithCurrentHash();
        });
       } else {
        updateHistoryWithCurrentHash();
       }
-     }, false);
+     });
      function updateHistoryWithCurrentHash() {
       self.previousHash = window.location.hash.slice(1);
       self._pushToHistory({ hash: self.previousHash }, false, true);
       self._updatePreviousBookmark();
      }
      function replacePreviousHistoryState(params, callback) {
       self.historyUnlocked = false;
       self.allowHashChange = false;
@@ -3299,22 +3299,22 @@ var pdfjsWebLibs;
      }
      function pdfHistoryBeforeUnload() {
       var previousParams = self._getPreviousParams(null, true);
       if (previousParams) {
        var replacePrevious = !self.current.dest && self.current.hash !== self.previousHash;
        self._pushToHistory(previousParams, false, replacePrevious);
        self._updatePreviousBookmark();
       }
-      window.removeEventListener('beforeunload', pdfHistoryBeforeUnload, false);
-     }
-     window.addEventListener('beforeunload', pdfHistoryBeforeUnload, false);
+      window.removeEventListener('beforeunload', pdfHistoryBeforeUnload);
+     }
+     window.addEventListener('beforeunload', pdfHistoryBeforeUnload);
      window.addEventListener('pageshow', function pdfHistoryPageShow(evt) {
-      window.addEventListener('beforeunload', pdfHistoryBeforeUnload, false);
-     }, false);
+      window.addEventListener('beforeunload', pdfHistoryBeforeUnload);
+     });
      self.eventBus.on('presentationmodechanged', function (e) {
       self.isViewerInPresentationMode = e.active;
      });
     },
     clearHistoryState: function pdfHistory_clearHistoryState() {
      this._pushOrReplaceState(null, true);
     },
     _isStateObjectDefined: function pdfHistory_isStateObjectDefined(state) {
@@ -7058,19 +7058,19 @@ var pdfjsWebLibs;
      },
      request: function (action, data, callback) {
       var request = document.createTextNode('');
       if (callback) {
        document.addEventListener('pdf.js.response', function listener(event) {
         var node = event.target;
         var response = event.detail.response;
         document.documentElement.removeChild(node);
-        document.removeEventListener('pdf.js.response', listener, false);
+        document.removeEventListener('pdf.js.response', listener);
         return callback(response);
-       }, false);
+       });
       }
       document.documentElement.appendChild(request);
       var sender = document.createEvent('CustomEvent');
       sender.initCustomEvent('pdf.js.message', true, false, {
        action: action,
        data: data,
        sync: false,
        responseExpected: !!callback
--- a/browser/extensions/pocket/content/panels/js/messages.js
+++ b/browser/extensions/pocket/content/panels/js/messages.js
@@ -23,17 +23,17 @@ var pktPanelMessaging = (function() {
  function addMessageListener(panelId, messageId, callback) {
    document.addEventListener(panelPrefixedMessageId(panelId, messageId), function(e) {
 
 			callback(JSON.parse(e.target.getAttribute("payload"))[0]);
 
 			// TODO: Figure out why e.target.parentNode is null
 			// e.target.parentNode.removeChild(e.target);
 
-		}, false);
+		});
 
 	}
 
 	function removeMessageListener(panelId, messageId, callback) {
    document.removeEventListener(panelPrefixedMessageId(panelId, messageId), callback);
 	}
 
  function sendMessage(panelId, messageId, payload, callback) {
--- a/browser/modules/BrowserUsageTelemetry.jsm
+++ b/browser/modules/BrowserUsageTelemetry.jsm
@@ -534,28 +534,28 @@ let BrowserUsageTelemetry = {
    */
   _onWindowOpen(win) {
     // Make sure to have a |nsIDOMWindow|.
     if (!(win instanceof Ci.nsIDOMWindow)) {
       return;
     }
 
     let onLoad = () => {
-      win.removeEventListener("load", onLoad, false);
+      win.removeEventListener("load", onLoad);
 
       // Ignore non browser windows.
       if (win.document.documentElement.getAttribute("windowtype") != "navigator:browser") {
         return;
       }
 
       this._registerWindow(win);
       // Track the window open event and check the maximum.
       const counts = getOpenTabsAndWinsCounts();
       Services.telemetry.scalarAdd(WINDOW_OPEN_EVENT_COUNT_SCALAR_NAME, 1);
       Services.telemetry.scalarSetMaximum(MAX_WINDOW_COUNT_SCALAR_NAME, counts.winCount);
 
       // We won't receive the "TabOpen" event for the first tab within a new window.
       // Account for that.
       this._onTabOpen(counts.tabCount);
     };
-    win.addEventListener("load", onLoad, false);
+    win.addEventListener("load", onLoad);
   },
 };
--- a/browser/modules/ContentLinkHandler.jsm
+++ b/browser/modules/ContentLinkHandler.jsm
@@ -25,20 +25,20 @@ const SIZES_TELEMETRY_ENUM = {
   DIMENSION: 2,
   INVALID: 3,
 };
 
 this.ContentLinkHandler = {
   init(chromeGlobal) {
     chromeGlobal.addEventListener("DOMLinkAdded", (event) => {
       this.onLinkEvent(event, chromeGlobal);
-    }, false);
+    });
     chromeGlobal.addEventListener("DOMLinkChanged", (event) => {
       this.onLinkEvent(event, chromeGlobal);
-    }, false);
+    });
   },
 
   onLinkEvent(event, chromeGlobal) {
     var link = event.originalTarget;
     var rel = link.rel && link.rel.toLowerCase();
     if (!link || !link.ownerDocument || !rel || !link.href)
       return;
 
--- a/browser/modules/FormSubmitObserver.jsm
+++ b/browser/modules/FormSubmitObserver.jsm
@@ -47,24 +47,24 @@ FormSubmitObserver.prototype =
                    .sameTypeRootTreeItem
                    .QueryInterface(Ci.nsIDocShell)
                    .QueryInterface(Ci.nsIInterfaceRequestor)
                    .getInterface(Ci.nsIContentFrameMessageManager);
 
     // nsIFormSubmitObserver callback about invalid forms. See HTMLFormElement
     // for details.
     Services.obs.addObserver(this, "invalidformsubmit", false);
-    this._tab.addEventListener("pageshow", this, false);
-    this._tab.addEventListener("unload", this, false);
+    this._tab.addEventListener("pageshow", this);
+    this._tab.addEventListener("unload", this);
   },
 
   uninit() {
     Services.obs.removeObserver(this, "invalidformsubmit");
-    this._content.removeEventListener("pageshow", this, false);
-    this._content.removeEventListener("unload", this, false);
+    this._content.removeEventListener("pageshow", this);
+    this._content.removeEventListener("unload", this);
     this._mm = null;
     this._element = null;
     this._content = null;
     this._tab = null;
   },
 
   /*
    * Events
@@ -129,21 +129,21 @@ FormSubmitObserver.prototype =
         this._showPopup(element);
         break;
       }
       this._element = element;
 
       element.focus();
 
       // Watch for input changes which may change the validation message.
-      element.addEventListener("input", this, false);
+      element.addEventListener("input", this);
 
       // Watch for focus changes so we can disconnect our listeners and
       // hide the popup.
-      element.addEventListener("blur", this, false);
+      element.addEventListener("blur", this);
 
       this._showPopup(element);
       break;
     }
   },
 
   /*
    * Internal
@@ -171,18 +171,18 @@ FormSubmitObserver.prototype =
     }
   },
 
   /*
    * Blur event handler in which we disconnect from the form element and
    * hide the popup.
    */
   _onBlur(aEvent) {
-    aEvent.originalTarget.removeEventListener("input", this, false);
-    aEvent.originalTarget.removeEventListener("blur", this, false);
+    aEvent.originalTarget.removeEventListener("input", this);
+    aEvent.originalTarget.removeEventListener("blur", this);
     this._element = null;
     this._hidePopup();
   },
 
   /*
    * Send the show popup message to chrome with appropriate position
    * information. Can be called repetitively to update the currently
    * displayed popup position and text.
--- a/browser/modules/FormValidationHandler.jsm
+++ b/browser/modules/FormValidationHandler.jsm
@@ -87,19 +87,19 @@ var FormValidationHandler =
   /*
    * Internal
    */
 
   _onPopupHiding(aEvent) {
     aEvent.originalTarget.removeEventListener("popuphiding", this, true);
     let tabBrowser = aEvent.originalTarget.ownerDocument.getElementById("content");
     tabBrowser.selectedBrowser.removeEventListener("scroll", this, true);
-    tabBrowser.selectedBrowser.removeEventListener("FullZoomChange", this, false);
-    tabBrowser.selectedBrowser.removeEventListener("TextZoomChange", this, false);
-    tabBrowser.selectedBrowser.removeEventListener("ZoomChangeUsingMouseWheel", this, false);
+    tabBrowser.selectedBrowser.removeEventListener("FullZoomChange", this);
+    tabBrowser.selectedBrowser.removeEventListener("TextZoomChange", this);
+    tabBrowser.selectedBrowser.removeEventListener("ZoomChangeUsingMouseWheel", this);
 
     this._panel.hidden = true;
     this._panel = null;
     this._anchor.hidden = true;
     this._anchor = null;
   },
 
   /*
@@ -131,19 +131,19 @@ var FormValidationHandler =
 
     // Display the panel if it isn't already visible.
     if (!previouslyShown) {
       // Cleanup after the popup is hidden
       this._panel.addEventListener("popuphiding", this, true);
 
       // Hide if the user scrolls the page
       tabBrowser.selectedBrowser.addEventListener("scroll", this, true);
-      tabBrowser.selectedBrowser.addEventListener("FullZoomChange", this, false);
-      tabBrowser.selectedBrowser.addEventListener("TextZoomChange", this, false);
-      tabBrowser.selectedBrowser.addEventListener("ZoomChangeUsingMouseWheel", this, false);
+      tabBrowser.selectedBrowser.addEventListener("FullZoomChange", this);
+      tabBrowser.selectedBrowser.addEventListener("TextZoomChange", this);
+      tabBrowser.selectedBrowser.addEventListener("ZoomChangeUsingMouseWheel", this);
 
       // Open the popup
       this._panel.openPopup(this._anchor, aPanelData.position, 0, 0, false);
     }
   },
 
   /*
    * Hide the popup if currently displayed. Will fire an event to onPopupHiding
--- a/browser/modules/NetworkPrioritizer.jsm
+++ b/browser/modules/NetworkPrioritizer.jsm
@@ -108,20 +108,20 @@ var BrowserHelper = {
 // Methods that impact a window. Put into single object for organization.
 var WindowHelper = {
   addWindow: function NP_WH_addWindow(aWindow) {
     // Build internal data object
     _windows.push({ window: aWindow, lastSelectedBrowser: null });
 
     // Add event listeners
     TAB_EVENTS.forEach(function(event) {
-      aWindow.gBrowser.tabContainer.addEventListener(event, _handleEvent, false);
+      aWindow.gBrowser.tabContainer.addEventListener(event, _handleEvent);
     });
     WINDOW_EVENTS.forEach(function(event) {
-      aWindow.addEventListener(event, _handleEvent, false);
+      aWindow.addEventListener(event, _handleEvent);
     });
 
     // This gets called AFTER activate event, so if this is the focused window
     // we want to activate it. Otherwise, deprioritize it.
     if (aWindow == _focusManager.activeWindow)
       this.handleFocusedWindow(aWindow);
     else
       this.decreasePriority(aWindow);
@@ -134,20 +134,20 @@ var WindowHelper = {
     if (aWindow == _lastFocusedWindow)
       _lastFocusedWindow = null;
 
     // Delete this window from our tracking
     _windows.splice(this.getEntryIndex(aWindow), 1);
 
     // Remove the event listeners
     TAB_EVENTS.forEach(function(event) {
-      aWindow.gBrowser.tabContainer.removeEventListener(event, _handleEvent, false);
+      aWindow.gBrowser.tabContainer.removeEventListener(event, _handleEvent);
     });
     WINDOW_EVENTS.forEach(function(event) {
-      aWindow.removeEventListener(event, _handleEvent, false);
+      aWindow.removeEventListener(event, _handleEvent);
     });
   },
 
   onActivate: function NP_WH_onActivate(aWindow, aHasFocus) {
     // If this window was the last focused window, we don't need to do anything
     if (aWindow == _lastFocusedWindow)
       return;
 
--- a/browser/modules/PluginContent.jsm
+++ b/browser/modules/PluginContent.jsm
@@ -1155,17 +1155,17 @@ PluginContent.prototype = {
     } else if (!doc.mozNoPluginCrashedNotification) {
       // If another plugin on the page was large enough to show our UI, we don't
       // want to show a notification bar.
       this.global.sendAsyncMessage("PluginContent:ShowPluginCrashedNotification",
                                    { messageString: message, pluginID: runID });
       // Remove the notification when the page is reloaded.
       doc.defaultView.top.addEventListener("unload", event => {
         this.hideNotificationBar("plugin-crashed");
-      }, false);
+      });
     }
   },
 
   NPAPIPluginCrashReportSubmitted({ runID, state }) {
     this.pluginCrashData.delete(runID);
     let contentWindow = this.global.content;
     let cwu = contentWindow.QueryInterface(Ci.nsIInterfaceRequestor)
                            .getInterface(Ci.nsIDOMWindowUtils);
@@ -1197,11 +1197,11 @@ PluginContent.prototype = {
                                             [pluginName], 1);
 
     this.global.sendAsyncMessage("PluginContent:ShowPluginCrashedNotification",
                                  { messageString, pluginID });
 
     // Remove the notification when the page is reloaded.
     doc.defaultView.top.addEventListener("unload", event => {
       this.hideNotificationBar("plugin-crashed");
-    }, false);
+    });
   },
 };
--- a/browser/modules/WindowsPreviewPerTab.jsm
+++ b/browser/modules/WindowsPreviewPerTab.jsm
@@ -140,31 +140,31 @@ function snapRectAtScale(r, scale) {
  *        The <tab> that this preview is associated with
  */
 function PreviewController(win, tab) {
   this.win = win;
   this.tab = tab;
   this.linkedBrowser = tab.linkedBrowser;
   this.preview = this.win.createTabPreview(this);
 
-  this.tab.addEventListener("TabAttrModified", this, false);
+  this.tab.addEventListener("TabAttrModified", this);
 
   XPCOMUtils.defineLazyGetter(this, "canvasPreview", function() {
     let canvas = PageThumbs.createCanvas();
     canvas.mozOpaque = true;
     return canvas;
   });
 }
 
 PreviewController.prototype = {
   QueryInterface: XPCOMUtils.generateQI([Ci.nsITaskbarPreviewController,
                                          Ci.nsIDOMEventListener]),
 
   destroy() {
-    this.tab.removeEventListener("TabAttrModified", this, false);
+    this.tab.removeEventListener("TabAttrModified", this);
 
     // Break cycles, otherwise we end up leaking the window with everything
     // attached to it.
     delete this.win;
     delete this.preview;
   },
 
   get wrappedJSObject() {
@@ -362,20 +362,20 @@ XPCOMUtils.defineLazyGetter(PreviewContr
  */
 function TabWindow(win) {
   this.win = win;
   this.tabbrowser = win.gBrowser;
 
   this.previews = new Map();
 
   for (let i = 0; i < this.tabEvents.length; i++)
-    this.tabbrowser.tabContainer.addEventListener(this.tabEvents[i], this, false);
+    this.tabbrowser.tabContainer.addEventListener(this.tabEvents[i], this);
 
   for (let i = 0; i < this.winEvents.length; i++)
-    this.win.addEventListener(this.winEvents[i], this, false);
+    this.win.addEventListener(this.winEvents[i], this);
 
   this.tabbrowser.addTabsProgressListener(this);
 
   AeroPeek.windows.push(this);
   let tabs = this.tabbrowser.tabs;
   for (let i = 0; i < tabs.length; i++)
     this.newTab(tabs[i]);
 
@@ -393,20 +393,20 @@ TabWindow.prototype = {
   destroy() {
     this._destroying = true;
 
     let tabs = this.tabbrowser.tabs;
 
     this.tabbrowser.removeTabsProgressListener(this);
 
     for (let i = 0; i < this.winEvents.length; i++)
-      this.win.removeEventListener(this.winEvents[i], this, false);
+      this.win.removeEventListener(this.winEvents[i], this);
 
     for (let i = 0; i < this.tabEvents.length; i++)
-      this.tabbrowser.tabContainer.removeEventListener(this.tabEvents[i], this, false);
+      this.tabbrowser.tabContainer.removeEventListener(this.tabEvents[i], this);
 
     for (let i = 0; i < tabs.length; i++)
       this.removeTab(tabs[i]);
 
     let idx = AeroPeek.windows.indexOf(this.win.gTaskbarTabGroup);
     AeroPeek.windows.splice(idx, 1);
     AeroPeek.checkPreviewCount();
   },
--- a/devtools/client/aboutdebugging/test/browser_service_workers_push.js
+++ b/devtools/client/aboutdebugging/test/browser_service_workers_push.js
@@ -34,17 +34,17 @@ add_task(function* () {
   let swTab = yield addTab(TAB_URL);
 
   info("Make the test page notify us when the service worker sends a message.");
 
   yield ContentTask.spawn(swTab.linkedBrowser, {}, function () {
     let win = content.wrappedJSObject;
     win.navigator.serviceWorker.addEventListener("message", function (event) {
       sendAsyncMessage(event.data);
-    }, false);
+    });
   });
 
   // Expect the service worker to claim the test window when activating.
   let mm = swTab.linkedBrowser.messageManager;
   let onClaimed = new Promise(done => {
     mm.addMessageListener("sw-claimed", function listener() {
       mm.removeMessageListener("sw-claimed", listener);
       done();
--- a/devtools/client/animationinspector/animation-panel.js
+++ b/devtools/client/animationinspector/animation-panel.js
@@ -129,17 +129,17 @@ var AnimationsPanel = {
     gToolbox.on("picker-stopped", this.onPickerStopped);
 
     this.toggleAllButtonEl.addEventListener("click", this.onToggleAllClicked);
     this.playTimelineButtonEl.addEventListener(
       "click", this.onTimelinePlayClicked);
     this.rewindTimelineButtonEl.addEventListener(
       "click", this.onTimelineRewindClicked);
 
-    document.addEventListener("keydown", this.onKeyDown, false);
+    document.addEventListener("keydown", this.onKeyDown);
 
     gToolbox.target.on("navigate", this.onTabNavigated);
 
     this.animationsTimelineComponent.on("timeline-data-changed",
       this.onTimelineDataChanged);
 
     if (this.rateSelectorComponent) {
       this.rateSelectorComponent.on("rate-changed", this.onRateChanged);
@@ -156,17 +156,17 @@ var AnimationsPanel = {
 
     this.toggleAllButtonEl.removeEventListener("click",
       this.onToggleAllClicked);
     this.playTimelineButtonEl.removeEventListener("click",
       this.onTimelinePlayClicked);
     this.rewindTimelineButtonEl.removeEventListener("click",
       this.onTimelineRewindClicked);
 
-    document.removeEventListener("keydown", this.onKeyDown, false);
+    document.removeEventListener("keydown", this.onKeyDown);
 
     gToolbox.target.off("navigate", this.onTabNavigated);
 
     this.animationsTimelineComponent.off("timeline-data-changed",
       this.onTimelineDataChanged);
 
     if (this.rateSelectorComponent) {
       this.rateSelectorComponent.off("rate-changed", this.onRateChanged);
--- a/devtools/client/canvasdebugger/callslist.js
+++ b/devtools/client/canvasdebugger/callslist.js
@@ -24,34 +24,34 @@ var CallsListView = Heritage.extend(Widg
     this._onSlideMouseUp = this._onSlideMouseUp.bind(this);
     this._onSlide = this._onSlide.bind(this);
     this._onSearch = this._onSearch.bind(this);
     this._onScroll = this._onScroll.bind(this);
     this._onExpand = this._onExpand.bind(this);
     this._onStackFileClick = this._onStackFileClick.bind(this);
     this._onThumbnailClick = this._onThumbnailClick.bind(this);
 
-    this.widget.addEventListener("select", this._onSelect, false);
-    this._slider.addEventListener("mousedown", this._onSlideMouseDown, false);
-    this._slider.addEventListener("mouseup", this._onSlideMouseUp, false);
-    this._slider.addEventListener("change", this._onSlide, false);
-    this._searchbox.addEventListener("input", this._onSearch, false);
-    this._filmstrip.addEventListener("wheel", this._onScroll, false);
+    this.widget.addEventListener("select", this._onSelect);
+    this._slider.addEventListener("mousedown", this._onSlideMouseDown);
+    this._slider.addEventListener("mouseup", this._onSlideMouseUp);
+    this._slider.addEventListener("change", this._onSlide);
+    this._searchbox.addEventListener("input", this._onSearch);
+    this._filmstrip.addEventListener("wheel", this._onScroll);
   },
 
   /**
    * Destruction function, called when the tool is closed.
    */
   destroy: function () {
-    this.widget.removeEventListener("select", this._onSelect, false);
-    this._slider.removeEventListener("mousedown", this._onSlideMouseDown, false);
-    this._slider.removeEventListener("mouseup", this._onSlideMouseUp, false);
-    this._slider.removeEventListener("change", this._onSlide, false);
-    this._searchbox.removeEventListener("input", this._onSearch, false);
-    this._filmstrip.removeEventListener("wheel", this._onScroll, false);
+    this.widget.removeEventListener("select", this._onSelect);
+    this._slider.removeEventListener("mousedown", this._onSlideMouseDown);
+    this._slider.removeEventListener("mouseup", this._onSlideMouseUp);
+    this._slider.removeEventListener("change", this._onSlide);
+    this._searchbox.removeEventListener("input", this._onSearch);
+    this._filmstrip.removeEventListener("wheel", this._onScroll);
   },
 
   /**
    * Populates this container with a list of function calls.
    *
    * @param array functionCalls
    *        A list of function call actors received from the backend.
    */
--- a/devtools/client/canvasdebugger/snapshotslist.js
+++ b/devtools/client/canvasdebugger/snapshotslist.js
@@ -23,26 +23,26 @@ var SnapshotsListView = Heritage.extend(
     this._onImportButtonClick = this._onImportButtonClick.bind(this);
     this._onSaveButtonClick = this._onSaveButtonClick.bind(this);
     this._onRecordSuccess = this._onRecordSuccess.bind(this);
     this._onRecordFailure = this._onRecordFailure.bind(this);
     this._stopRecordingAnimation = this._stopRecordingAnimation.bind(this);
 
     window.on(EVENTS.SNAPSHOT_RECORDING_FINISHED, this._enableRecordButton);
     this.emptyText = L10N.getStr("noSnapshotsText");
-    this.widget.addEventListener("select", this._onSelect, false);
+    this.widget.addEventListener("select", this._onSelect);
   },
 
   /**
    * Destruction function, called when the tool is closed.
    */
   destroy: function () {
     clearNamedTimeout("canvas-actor-recording");
     window.off(EVENTS.SNAPSHOT_RECORDING_FINISHED, this._enableRecordButton);
-    this.widget.removeEventListener("select", this._onSelect, false);
+    this.widget.removeEventListener("select", this._onSelect);
   },
 
   /**
    * Adds a snapshot entry to this container.
    *
    * @return object
    *         The newly inserted item.
    */
@@ -62,17 +62,17 @@ var SnapshotsListView = Heritage.extend(
 
     let calls = document.createElement("label");
     calls.className = "plain snapshot-item-calls";
     calls.setAttribute("value",
       L10N.getStr("snapshotsList.loadingLabel"));
 
     let save = document.createElement("label");
     save.className = "plain snapshot-item-save";
-    save.addEventListener("click", this._onSaveButtonClick, false);
+    save.addEventListener("click", this._onSaveButtonClick);
 
     let spacer = document.createElement("spacer");
     spacer.setAttribute("flex", "1");
 
     let footer = document.createElement("hbox");
     footer.className = "snapshot-item-footer";
     footer.appendChild(save);
 
--- a/devtools/client/canvasdebugger/test/head.js
+++ b/devtools/client/canvasdebugger/test/head.js
@@ -94,20 +94,20 @@ function removeTab(aTab, aWindow) {
   info("Removing tab.");
 
   let deferred = promise.defer();
   let targetWindow = aWindow || window;
   let targetBrowser = targetWindow.gBrowser;
   let tabContainer = targetBrowser.tabContainer;
 
   tabContainer.addEventListener("TabClose", function onClose(aEvent) {
-    tabContainer.removeEventListener("TabClose", onClose, false);
+    tabContainer.removeEventListener("TabClose", onClose);
     info("Tab removed and finished closing.");
     deferred.resolve();
-  }, false);
+  });
 
   targetBrowser.removeTab(aTab);
   return deferred.promise;
 }
 
 function handleError(aError) {
   ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
   finish();
--- a/devtools/client/debugger/content/views/event-listeners-view.js
+++ b/devtools/client/debugger/content/views/event-listeners-view.js
@@ -39,28 +39,28 @@ EventListenersView.prototype = Heritage.
     });
 
     this.emptyText = L10N.getStr("noEventListenersText");
     this._eventCheckboxTooltip = L10N.getStr("eventCheckboxTooltip");
     this._onSelectorString = " " + L10N.getStr("eventOnSelector") + " ";
     this._inSourceString = " " + L10N.getStr("eventInSource") + " ";
     this._inNativeCodeString = L10N.getStr("eventNative");
 
-    this.widget.addEventListener("check", this._onCheck, false);
-    this.widget.addEventListener("click", this._onClick, false);
+    this.widget.addEventListener("check", this._onCheck);
+    this.widget.addEventListener("click", this._onClick);
   },
 
   /**
    * Destruction function, called when the debugger is closed.
    */
   destroy: function () {
     dumpn("Destroying the EventListenersView");
 
-    this.widget.removeEventListener("check", this._onCheck, false);
-    this.widget.removeEventListener("click", this._onClick, false);
+    this.widget.removeEventListener("check", this._onCheck);
+    this.widget.removeEventListener("click", this._onClick);
   },
 
   renderListeners: function (listeners) {
     listeners.forEach(listener => {
       this.addListener(listener, { staged: true });
     });
 
     // Flushes all the prepared events into the event listeners container.
--- a/devtools/client/debugger/content/views/sources-view.js
+++ b/devtools/client/debugger/content/views/sources-view.js
@@ -114,28 +114,28 @@ SourcesView.prototype = Heritage.extend(
 
     // We don't show the pretty print button if debugger a worker
     // because it simply doesn't work yet. (bug 1273730)
     if (Prefs.prettyPrintEnabled && !isWorker) {
       this._prettyPrintButton.removeAttribute("hidden");
     }
 
     this._editorContainer = document.getElementById("editor");
-    this._editorContainer.addEventListener("mousedown", this._onMouseDown, false);
+    this._editorContainer.addEventListener("mousedown", this._onMouseDown);
 
-    this.widget.addEventListener("select", this._onSourceSelect, false);
+    this.widget.addEventListener("select", this._onSourceSelect);
 
-    this._stopBlackBoxButton.addEventListener("click", this._onStopBlackBoxing, false);
-    this._cbPanel.addEventListener("popupshowing", this._onConditionalPopupShowing, false);
-    this._cbPanel.addEventListener("popupshown", this._onConditionalPopupShown, false);
-    this._cbPanel.addEventListener("popuphiding", this._onConditionalPopupHiding, false);
-    this._cbPanel.addEventListener("popuphidden", this._onConditionalPopupHidden, false);
-    this._cbTextbox.addEventListener("keypress", this._onConditionalTextboxKeyPress, false);
-    this._copyUrlMenuItem.addEventListener("command", this._onCopyUrlCommand, false);
-    this._newTabMenuItem.addEventListener("command", this._onNewTabCommand, false);
+    this._stopBlackBoxButton.addEventListener("click", this._onStopBlackBoxing);
+    this._cbPanel.addEventListener("popupshowing", this._onConditionalPopupShowing);
+    this._cbPanel.addEventListener("popupshown", this._onConditionalPopupShown);
+    this._cbPanel.addEventListener("popuphiding", this._onConditionalPopupHiding);
+    this._cbPanel.addEventListener("popuphidden", this._onConditionalPopupHidden);
+    this._cbTextbox.addEventListener("keypress", this._onConditionalTextboxKeyPress);
+    this._copyUrlMenuItem.addEventListener("command", this._onCopyUrlCommand);
+    this._newTabMenuItem.addEventListener("command", this._onNewTabCommand);
 
     this._cbPanel.hidden = true;
     this.allowFocusOnRightClick = true;
     this.autoFocusOnSelection = false;
     this.autoFocusOnFirstItem = false;
 
     // Sort the contents by the displayed label.
     this.sortContents((aFirst, aSecond) => {
@@ -157,25 +157,25 @@ SourcesView.prototype = Heritage.extend(
   },
 
   /**
    * Destruction function, called when the debugger is closed.
    */
   destroy: function () {
     dumpn("Destroying the SourcesView");
 
-    this.widget.removeEventListener("select", this._onSourceSelect, false);
-    this._stopBlackBoxButton.removeEventListener("click", this._onStopBlackBoxing, false);
-    this._cbPanel.removeEventListener("popupshowing", this._onConditionalPopupShowing, false);
-    this._cbPanel.removeEventListener("popupshown", this._onConditionalPopupShown, false);
-    this._cbPanel.removeEventListener("popuphiding", this._onConditionalPopupHiding, false);
-    this._cbPanel.removeEventListener("popuphidden", this._onConditionalPopupHidden, false);
-    this._cbTextbox.removeEventListener("keypress", this._onConditionalTextboxKeyPress, false);
-    this._copyUrlMenuItem.removeEventListener("command", this._onCopyUrlCommand, false);
-    this._newTabMenuItem.removeEventListener("command", this._onNewTabCommand, false);
+    this.widget.removeEventListener("select", this._onSourceSelect);
+    this._stopBlackBoxButton.removeEventListener("click", this._onStopBlackBoxing);
+    this._cbPanel.removeEventListener("popupshowing", this._onConditionalPopupShowing);
+    this._cbPanel.removeEventListener("popupshown", this._onConditionalPopupShown);
+    this._cbPanel.removeEventListener("popuphiding", this._onConditionalPopupHiding);
+    this._cbPanel.removeEventListener("popuphidden", this._onConditionalPopupHidden);
+    this._cbTextbox.removeEventListener("keypress", this._onConditionalTextboxKeyPress);
+    this._copyUrlMenuItem.removeEventListener("command", this._onCopyUrlCommand);
+    this._newTabMenuItem.removeEventListener("command", this._onNewTabCommand);
     this.DebuggerView.editor.off("popupOpen", this._onEditorContextMenuOpen, false);
   },
 
   empty: function () {
     WidgetMethods.empty.call(this);
     this._unnamedSourceIndex = 0;
     this._selectedBreakpoint = null;
   },
@@ -692,22 +692,22 @@ SourcesView.prototype = Heritage.extend(
       // Show the conditional expression panel. The popup arrow should be pointing
       // at the line number node in the breakpoint item view.
       cbPanel.hidden = false;
       cbPanel.openPopup(breakpointItem.attachment.view.lineNumber,
                               BREAKPOINT_CONDITIONAL_POPUP_POSITION,
                               BREAKPOINT_CONDITIONAL_POPUP_OFFSET_X,
                               BREAKPOINT_CONDITIONAL_POPUP_OFFSET_Y);
 
-      cbPanel.removeEventListener("popuphidden", openPopup, false);
+      cbPanel.removeEventListener("popuphidden", openPopup);
     }
 
     // Wait until the other cb panel is closed
     if (!this._cbPanel.hidden) {
-      this._cbPanel.addEventListener("popuphidden", openPopup, false);
+      this._cbPanel.addEventListener("popuphidden", openPopup);
     } else {
       openPopup();
     }
   },
 
   /**
    * Hides a conditional breakpoint's expression input popup.
    */
@@ -777,18 +777,18 @@ SourcesView.prototype = Heritage.extend(
 
     let container = document.createElement("hbox");
     container.id = "breakpoint-" + identifier;
     container.className = "dbg-breakpoint side-menu-widget-item-other";
     container.classList.add("devtools-monospace");
     container.setAttribute("align", "center");
     container.setAttribute("flex", "1");
 
-    container.addEventListener("click", this._onBreakpointClick, false);
-    checkbox.addEventListener("click", this._onBreakpointCheckboxClick, false);
+    container.addEventListener("click", this._onBreakpointClick);
+    checkbox.addEventListener("click", this._onBreakpointCheckboxClick);
 
     container.appendChild(checkbox);
     container.appendChild(bpDetailContainer);
 
     return {
       container: container,
       checkbox: checkbox,
       lineNumber: lineNumberNode,
@@ -856,17 +856,17 @@ SourcesView.prototype = Heritage.extend(
       let commandId = prefix + aName + "-" + identifier + "-command";
       let menuitemId = prefix + aName + "-" + identifier + "-menuitem";
 
       let label = L10N.getStr("breakpointMenuItem." + aName);
       let func = "_on" + aName.charAt(0).toUpperCase() + aName.slice(1);
 
       command.id = commandId;
       command.setAttribute("label", label);
-      command.addEventListener("command", () => this[func](location), false);
+      command.addEventListener("command", () => this[func](location));
 
       menuitem.id = menuitemId;
       menuitem.setAttribute("command", commandId);
       aHiddenFlag && menuitem.setAttribute("hidden", "true");
 
       commandset.appendChild(command);
       menupopup.appendChild(menuitem);
     }
--- a/devtools/client/debugger/debugger-view.js
+++ b/devtools/client/debugger/debugger-view.js
@@ -115,17 +115,17 @@ var DebuggerView = {
    *         A promise that is resolved when the view finishes destroying.
    */
   destroy: function () {
     if (this._hasShutdown) {
       return;
     }
     this._hasShutdown = true;
 
-    window.removeEventListener("resize", this._onResize, false);
+    window.removeEventListener("resize", this._onResize);
     this.editor.off("cursorActivity", this.Sources._onEditorCursorActivity);
 
     this.Toolbar.destroy();
     this.Options.destroy();
     this.Filtering.destroy();
     this.StackFrames.destroy();
     this.StackFramesClassicList.destroy();
     this.Sources.destroy();
@@ -165,17 +165,17 @@ var DebuggerView = {
 
     this._workersAndSourcesPane.setAttribute("width", Prefs.workersAndSourcesWidth);
     this._instrumentsPane.setAttribute("width", Prefs.instrumentsWidth);
     this.toggleInstrumentsPane({ visible: Prefs.panesVisibleOnStartup });
 
     this.updateLayoutMode();
 
     this._onResize = this._onResize.bind(this);
-    window.addEventListener("resize", this._onResize, false);
+    window.addEventListener("resize", this._onResize);
   },
 
   /**
    * Destroys the UI for all the displayed panes.
    */
   _destroyPanes: function () {
     dumpn("Destroying the DebuggerView panes");
 
--- a/devtools/client/debugger/new/debugger.js
+++ b/devtools/client/debugger/new/debugger.js
@@ -38364,17 +38364,17 @@ var Debugger =
 	
 	    this.editor.appendToLocalElement(ReactDOM.findDOMNode(this).querySelector(".editor-mount"));
 	
 	    this.editor.codeMirror.on("gutterClick", this.onGutterClick);
 	
 	    if (!isFirefox()) {
 	      this.editor.codeMirror.on("gutterContextMenu", (cm, line, eventName, event) => this.onGutterContextMenu(event));
 	    } else {
-	      this.editor.codeMirror.getWrapperElement().addEventListener("contextmenu", event => this.onGutterContextMenu(event), false);
+	      this.editor.codeMirror.getWrapperElement().addEventListener("contextmenu", event => this.onGutterContextMenu(event));
 	    }
 	
 	    resizeBreakpointGutter(this.editor.codeMirror);
 	    debugGlobal("cm", this.editor.codeMirror);
 	
 	    if (this.props.sourceText) {
 	      this.setText(this.props.sourceText.get("text"));
 	    }
--- a/devtools/client/debugger/test/mochitest/browser_dbg_sources-contextmenu-02.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_sources-contextmenu-02.js
@@ -36,25 +36,25 @@ function test() {
   function testNewTabURI(tabUri) {
     is(tabUri, SCRIPT_URI, "The tab contains the right script.");
     gBrowser.removeCurrentTab();
   }
 
   function waitForTabOpen() {
     return new Promise(resolve => {
       gBrowser.tabContainer.addEventListener("TabOpen", function onOpen(e) {
-        gBrowser.tabContainer.removeEventListener("TabOpen", onOpen, false);
+        gBrowser.tabContainer.removeEventListener("TabOpen", onOpen);
         ok(true, "A new tab loaded");
 
         gBrowser.addEventListener("DOMContentLoaded", function onTabLoad(e) {
-          gBrowser.removeEventListener("DOMContentLoaded", onTabLoad, false);
+          gBrowser.removeEventListener("DOMContentLoaded", onTabLoad);
           // Pass along the new tab's URI.
           resolve(gBrowser.currentURI.spec);
-        }, false);
-      }, false);
+        });
+      });
     });
   }
 
   function testNewTabMenuItem() {
     return new Promise((resolve, reject) => {
       let newTabMenuItem = gDebugger.document.getElementById("debugger-sources-context-newtab");
       if (!newTabMenuItem) {
         reject(new Error("The Open in New Tab context menu item is not available."));
--- a/devtools/client/debugger/test/mochitest/doc_closure-optimized-out.html
+++ b/devtools/client/debugger/test/mochitest/doc_closure-optimized-out.html
@@ -4,31 +4,31 @@
     <meta charset='utf-8'/>
     <title>Debugger Test for Inspecting Optimized-Out Variables</title>
     <!-- Any copyright is dedicated to the Public Domain.
          http://creativecommons.org/publicdomain/zero/1.0/ -->
     <script type="text/javascript">
       window.addEventListener("load", function onload() {
         window.removeEventListener("load", onload);
         function clickHandler(event) {
-          button.removeEventListener("click", clickHandler, false);
+          button.removeEventListener("click", clickHandler);
           function outer(arg) {
             var upvar = arg * 2;
             // The inner lambda only aliases arg, so the frontend alias analysis decides
             // that upvar is not aliased and is not in the CallObject.
             return function () {
               arg += 2;
             };
           }
 
           var f = outer(42);
           f();
         }
         var button = document.querySelector("button");
-        button.addEventListener("click", clickHandler, false);
+        button.addEventListener("click", clickHandler);
       });
     </script>
 
   </head>
   <body>
     <button>Click me!</button>
   </body>
 </html>
--- a/devtools/client/debugger/test/mochitest/doc_closures.html
+++ b/devtools/client/debugger/test/mochitest/doc_closures.html
@@ -4,29 +4,29 @@
     <meta charset='utf-8'/>
     <title>Debugger Test for Closure Inspection</title>
     <!-- Any copyright is dedicated to the Public Domain.
          http://creativecommons.org/publicdomain/zero/1.0/ -->
     <script type="text/javascript">
       window.addEventListener("load", function onload() {
         window.removeEventListener("load", onload);
         function clickHandler(event) {
-          button.removeEventListener("click", clickHandler, false);
+          button.removeEventListener("click", clickHandler);
           var PersonFactory = function _pfactory(name) {
               var foo = 10;
               return {
                 getName: function() { return name; },
                 getFoo: function() { foo = Date.now(); return foo; }
               };
           };
           var person = new PersonFactory("Bob");
           debugger;
         }
         var button = document.querySelector("button");
-        button.addEventListener("click", clickHandler, false);
+        button.addEventListener("click", clickHandler);
       });
     </script>
 
   </head>
   <body>
     <button>Click me!</button>
   </body>
 </html>
--- a/devtools/client/debugger/test/mochitest/doc_native-event-handler.html
+++ b/devtools/client/debugger/test/mochitest/doc_native-event-handler.html
@@ -5,17 +5,17 @@
   <head>
     <meta charset="utf-8">
     <title>A video element with native event handlers</title>
     <script type="text/javascript">
       function initialSetup(event) {
         debugger;
       }
 
-      window.addEventListener("load", function() {}, false);
+      window.addEventListener("load", function() {});
     </script>
   </head>
   <body>
     <button onclick="initialSetup()">Click me!</button>
     <!-- the "controls" attribute ensures that there are extra event handlers in
          the element. -->
     <video controls></video>
   </body>
--- a/devtools/client/debugger/test/mochitest/doc_pause-exceptions.html
+++ b/devtools/client/debugger/test/mochitest/doc_pause-exceptions.html
@@ -22,14 +22,14 @@
             var item = document.createElement("li");
             item.innerHTML = e.message;
             list.appendChild(item);
           } finally {
             debugger;
           }
         }
         var button = document.querySelector("button");
-        button.addEventListener("click", test, false);
+        button.addEventListener("click", test);
       });
     </script>
   </body>
 
 </html>
--- a/devtools/client/debugger/test/mochitest/doc_step-many-statements.html
+++ b/devtools/client/debugger/test/mochitest/doc_step-many-statements.html
@@ -37,14 +37,14 @@
         if(arg1 + arg2 > limit){
           return arg1 + arg2;
         }else{
           return addUntil(arg1 + arg2, arg2, limit);
         }
       }
 
       var normalBtn = document.getElementById("start");
-      normalBtn.addEventListener("click", normal, false);
+      normalBtn.addEventListener("click", normal);
 
     </script>
   </body>
 
 </html>
--- a/devtools/client/debugger/test/mochitest/doc_step-out.html
+++ b/devtools/client/debugger/test/mochitest/doc_step-out.html
@@ -27,16 +27,16 @@
           return r;
         }
         try {
           inner(aArg);
         } catch (e) {}
       }
 
       var normalBtn = document.getElementById("return");
-      normalBtn.addEventListener("click", normal, false);
+      normalBtn.addEventListener("click", normal);
 
       var throwBtn = document.getElementById("throw");
-      throwBtn.addEventListener("click", error, false);
+      throwBtn.addEventListener("click", error);
     </script>
   </body>
 
 </html>
--- a/devtools/client/debugger/test/mochitest/head.js
+++ b/devtools/client/debugger/test/mochitest/head.js
@@ -104,21 +104,21 @@ this.removeTab = function removeTab(aTab
   info("Removing tab.");
 
   let deferred = promise.defer();
   let targetWindow = aWindow || window;
   let targetBrowser = targetWindow.gBrowser;
   let tabContainer = targetBrowser.tabContainer;
 
   tabContainer.addEventListener("TabClose", function onClose(aEvent) {
-    tabContainer.removeEventListener("TabClose", onClose, false);
+    tabContainer.removeEventListener("TabClose", onClose);
 
     info("Tab removed and finished closing.");
     deferred.resolve();
-  }, false);
+  });
 
   targetBrowser.removeTab(aTab);
   return deferred.promise;
 };
 
 function getAddonURIFromPath(aPath) {
   let chromeURI = Services.io.newURI(aPath, null, CHROME_URI);
   return chromeRegistry.convertChromeURL(chromeURI).QueryInterface(Ci.nsIFileURL);
--- a/devtools/client/debugger/views/filter-view.js
+++ b/devtools/client/debugger/views/filter-view.js
@@ -52,21 +52,21 @@ FilterView.prototype = {
 
     this._fileSearchKey = ShortcutUtils.prettifyShortcut(document.getElementById("fileSearchKey"));
     this._globalSearchKey = ShortcutUtils.prettifyShortcut(document.getElementById("globalSearchKey"));
     this._filteredFunctionsKey = ShortcutUtils.prettifyShortcut(document.getElementById("functionSearchKey"));
     this._tokenSearchKey = ShortcutUtils.prettifyShortcut(document.getElementById("tokenSearchKey"));
     this._lineSearchKey = ShortcutUtils.prettifyShortcut(document.getElementById("lineSearchKey"));
     this._variableSearchKey = ShortcutUtils.prettifyShortcut(document.getElementById("variableSearchKey"));
 
-    this._searchbox.addEventListener("click", this._onClick, false);
-    this._searchbox.addEventListener("select", this._onInput, false);
-    this._searchbox.addEventListener("input", this._onInput, false);
-    this._searchbox.addEventListener("keypress", this._onKeyPress, false);
-    this._searchbox.addEventListener("blur", this._onBlur, false);
+    this._searchbox.addEventListener("click", this._onClick);
+    this._searchbox.addEventListener("select", this._onInput);
+    this._searchbox.addEventListener("input", this._onInput);
+    this._searchbox.addEventListener("keypress", this._onKeyPress);
+    this._searchbox.addEventListener("blur", this._onBlur);
 
     let placeholder = L10N.getFormatStr("emptySearchText", this._fileSearchKey);
     this._searchbox.setAttribute("placeholder", placeholder);
 
     this._globalOperatorButton.setAttribute("label", SEARCH_GLOBAL_FLAG);
     this._functionOperatorButton.setAttribute("label", SEARCH_FUNCTION_FLAG);
     this._tokenOperatorButton.setAttribute("label", SEARCH_TOKEN_FLAG);
     this._lineOperatorButton.setAttribute("label", SEARCH_LINE_FLAG);
@@ -92,21 +92,21 @@ FilterView.prototype = {
   },
 
   /**
    * Destruction function, called when the debugger is closed.
    */
   destroy: function () {
     dumpn("Destroying the FilterView");
 
-    this._searchbox.removeEventListener("click", this._onClick, false);
-    this._searchbox.removeEventListener("select", this._onInput, false);
-    this._searchbox.removeEventListener("input", this._onInput, false);
-    this._searchbox.removeEventListener("keypress", this._onKeyPress, false);
-    this._searchbox.removeEventListener("blur", this._onBlur, false);
+    this._searchbox.removeEventListener("click", this._onClick);
+    this._searchbox.removeEventListener("select", this._onInput);
+    this._searchbox.removeEventListener("input", this._onInput);
+    this._searchbox.removeEventListener("keypress", this._onKeyPress);
+    this._searchbox.removeEventListener("blur", this._onBlur);
 
     this.FilteredSources.destroy();
     this.FilteredFunctions.destroy();
   },
 
   /**
    * Add commands that XUL can fire.
    */
@@ -554,28 +554,28 @@ function FilteredSourcesView(DebuggerVie
 FilteredSourcesView.prototype = Heritage.extend(ResultsPanelContainer.prototype, {
   /**
    * Initialization function, called when the debugger is started.
    */
   initialize: function () {
     dumpn("Initializing the FilteredSourcesView");
 
     this.anchor = document.getElementById("searchbox");
-    this.widget.addEventListener("select", this._onSelect, false);
-    this.widget.addEventListener("click", this._onClick, false);
+    this.widget.addEventListener("select", this._onSelect);
+    this.widget.addEventListener("click", this._onClick);
   },
 
   /**
    * Destruction function, called when the debugger is closed.
    */
   destroy: function () {
     dumpn("Destroying the FilteredSourcesView");
 
-    this.widget.removeEventListener("select", this._onSelect, false);
-    this.widget.removeEventListener("click", this._onClick, false);
+    this.widget.removeEventListener("select", this._onSelect);
+    this.widget.removeEventListener("click", this._onClick);
     this.anchor = null;
   },
 
   /**
    * Schedules searching for a source.
    *
    * @param string aToken
    *        The function to search for.
@@ -717,28 +717,28 @@ function FilteredFunctionsView(SourceScr
 FilteredFunctionsView.prototype = Heritage.extend(ResultsPanelContainer.prototype, {
   /**
    * Initialization function, called when the debugger is started.
    */
   initialize: function () {
     dumpn("Initializing the FilteredFunctionsView");
 
     this.anchor = document.getElementById("searchbox");
-    this.widget.addEventListener("select", this._onSelect, false);
-    this.widget.addEventListener("click", this._onClick, false);
+    this.widget.addEventListener("select", this._onSelect);
+    this.widget.addEventListener("click", this._onClick);
   },
 
   /**
    * Destruction function, called when the debugger is closed.
    */
   destroy: function () {
     dumpn("Destroying the FilteredFunctionsView");
 
-    this.widget.removeEventListener("select", this._onSelect, false);
-    this.widget.removeEventListener("click", this._onClick, false);
+    this.widget.removeEventListener("select", this._onSelect);
+    this.widget.removeEventListener("click", this._onClick);
     this.anchor = null;
   },
 
   /**
    * Schedules searching for a function in all of the sources.
    *
    * @param string aToken
    *        The function to search for.
--- a/devtools/client/debugger/views/global-search-view.js
+++ b/devtools/client/debugger/views/global-search-view.js
@@ -486,17 +486,17 @@ SourceResults.prototype = {
     matchCountNode.setAttribute("value", "(" + this.matchCount + ")");
 
     let resultsHeader = this._resultsHeader = document.createElement("hbox");
     resultsHeader.className = "dbg-results-header";
     resultsHeader.setAttribute("align", "center");
     resultsHeader.appendChild(arrow);
     resultsHeader.appendChild(locationNode);
     resultsHeader.appendChild(matchCountNode);
-    resultsHeader.addEventListener("click", aCallbacks.onHeaderClick, false);
+    resultsHeader.addEventListener("click", aCallbacks.onHeaderClick);
 
     let resultsContainer = this._resultsContainer = document.createElement("vbox");
     resultsContainer.className = "dbg-results-container";
     resultsContainer.setAttribute("hidden", "true");
 
     // Create lines search results entries and add them to this container.
     // Afterwards, if the number of matches is reasonable, expand this
     // container automatically.
@@ -610,27 +610,27 @@ LineResults.prototype = {
       let lineChunkNode = document.createElement("label");
       lineChunkNode.className = "plain dbg-results-line-contents-string";
       lineChunkNode.setAttribute("value", lineString);
       lineChunkNode.setAttribute("match", match);
       lineContentsNode.appendChild(lineChunkNode);
 
       if (match) {
         this._entangleMatch(lineChunkNode, lineChunk);
-        lineChunkNode.addEventListener("click", aCallbacks.onMatchClick, false);
+        lineChunkNode.addEventListener("click", aCallbacks.onMatchClick);
         firstMatch = firstMatch || lineChunkNode;
       }
       if (lineLength >= GLOBAL_SEARCH_LINE_MAX_LENGTH) {
         lineContentsNode.appendChild(this._ellipsis.cloneNode(true));
         break;
       }
     }
 
     this._entangleLine(lineContentsNode, firstMatch);
-    lineContentsNode.addEventListener("click", aCallbacks.onLineClick, false);
+    lineContentsNode.addEventListener("click", aCallbacks.onLineClick);
 
     let searchResult = document.createElement("hbox");
     searchResult.className = "dbg-search-result";
     searchResult.appendChild(lineNumberNode);
     searchResult.appendChild(lineContentsNode);
 
     aElementNode.appendChild(searchResult);
   },
--- a/devtools/client/debugger/views/stack-frames-classic-view.js
+++ b/devtools/client/debugger/views/stack-frames-classic-view.js
@@ -23,33 +23,33 @@ function StackFramesClassicListView(Debu
 StackFramesClassicListView.prototype = Heritage.extend(WidgetMethods, {
   /**
    * Initialization function, called when the debugger is started.
    */
   initialize: function () {
     dumpn("Initializing the StackFramesClassicListView");
 
     this.widget = new SideMenuWidget(document.getElementById("callstack-list"));
-    this.widget.addEventListener("select", this._onSelect, false);
+    this.widget.addEventListener("select", this._onSelect);
 
     this.emptyText = L10N.getStr("noStackFramesText");
     this.autoFocusOnFirstItem = false;
     this.autoFocusOnSelection = false;
 
     // This view's contents are also mirrored in a different container.
     this._mirror = this.DebuggerView.StackFrames;
   },
 
   /**
    * Destruction function, called when the debugger is closed.
    */
   destroy: function () {
     dumpn("Destroying the StackFramesClassicListView");
 
-    this.widget.removeEventListener("select", this._onSelect, false);
+    this.widget.removeEventListener("select", this._onSelect);
   },
 
   /**
    * Adds a frame in this stackframes container.
    *
    * @param string aTitle
    *        The frame title (function name).
    * @param string aUrl
--- a/devtools/client/debugger/views/stack-frames-view.js
+++ b/devtools/client/debugger/views/stack-frames-view.js
@@ -30,17 +30,17 @@ StackFramesView.prototype = Heritage.ext
    * Initialization function, called when the debugger is started.
    */
   initialize: function () {
     dumpn("Initializing the StackFramesView");
 
     this._popupset = document.getElementById("debuggerPopupset");
 
     this.widget = new BreadcrumbsWidget(document.getElementById("stackframes"));
-    this.widget.addEventListener("select", this._onSelect, false);
+    this.widget.addEventListener("select", this._onSelect);
     this.widget.addEventListener("scroll", this._onScroll, true);
     this.widget.setAttribute("context", "stackFramesContextMenu");
     window.addEventListener("resize", this._onScroll, true);
 
     this.autoFocusOnFirstItem = false;
     this.autoFocusOnSelection = false;
 
     // This view's contents are also mirrored in a different container.
@@ -48,17 +48,17 @@ StackFramesView.prototype = Heritage.ext
   },
 
   /**
    * Destruction function, called when the debugger is closed.
    */
   destroy: function () {
     dumpn("Destroying the StackFramesView");
 
-    this.widget.removeEventListener("select", this._onSelect, false);
+    this.widget.removeEventListener("select", this._onSelect);
     this.widget.removeEventListener("scroll", this._onScroll, true);
     window.removeEventListener("resize", this._onScroll, true);
   },
 
   /**
    * Adds a frame in this stackframes container.
    *
    * @param string aTitle
@@ -132,17 +132,17 @@ StackFramesView.prototype = Heritage.ext
 
     menupopup.id = "stackFramesContextMenu";
     menuitem.id = "copyStackMenuItem";
 
     menuitem.setAttribute("label", "Copy");
     menuitem.addEventListener("command", () => {
       let stack = this._getStackAsString();
       clipboardHelper.copyString(stack);
-    }, false);
+    });
     menupopup.appendChild(menuitem);
     this._popupset.appendChild(menupopup);
   },
 
   /**
    * Selects the frame at the specified depth in this container.
    * @param number aDepth
    */
--- a/devtools/client/debugger/views/toolbar-view.js
+++ b/devtools/client/debugger/views/toolbar-view.js
@@ -59,46 +59,46 @@ ToolbarView.prototype = {
     this._resumeTooltip = L10N.getFormatStr("resumeButtonTooltip", resumeKey);
     this._pauseTooltip = L10N.getFormatStr("pauseButtonTooltip", resumeKey);
     this._pausePendingTooltip = L10N.getStr("pausePendingButtonTooltip");
     this._stepOverTooltip = L10N.getFormatStr("stepOverTooltip", stepOverKey);
     this._stepInTooltip = L10N.getFormatStr("stepInTooltip", stepInKey);
     this._stepOutTooltip = L10N.getFormatStr("stepOutTooltip", stepOutKey);
 
     this._instrumentsPaneToggleButton.addEventListener("mousedown",
-      this._onTogglePanesActivated, false);
+      this._onTogglePanesActivated);
     this._instrumentsPaneToggleButton.addEventListener("keydown",
-      this._onTogglePanesPressed, false);
-    this._resumeButton.addEventListener("mousedown", this._onResumePressed, false);
-    this._stepOverButton.addEventListener("mousedown", this._onStepOverPressed, false);
-    this._stepInButton.addEventListener("mousedown", this._onStepInPressed, false);
-    this._stepOutButton.addEventListener("mousedown", this._onStepOutPressed, false);
+      this._onTogglePanesPressed);
+    this._resumeButton.addEventListener("mousedown", this._onResumePressed);
+    this._stepOverButton.addEventListener("mousedown", this._onStepOverPressed);
+    this._stepInButton.addEventListener("mousedown", this._onStepInPressed);
+    this._stepOutButton.addEventListener("mousedown", this._onStepOutPressed);
 
     this._stepOverButton.setAttribute("tooltiptext", this._stepOverTooltip);
     this._stepInButton.setAttribute("tooltiptext", this._stepInTooltip);
     this._stepOutButton.setAttribute("tooltiptext", this._stepOutTooltip);
     this._toggleButtonsState({ enabled: false });
 
     this._addCommands();
   },
 
   /**
    * Destruction function, called when the debugger is closed.
    */
   destroy: function () {
     dumpn("Destroying the ToolbarView");
 
     this._instrumentsPaneToggleButton.removeEventListener("mousedown",
-      this._onTogglePanesActivated, false);
+      this._onTogglePanesActivated);
     this._instrumentsPaneToggleButton.removeEventListener("keydown",
-      this._onTogglePanesPressed, false);
-    this._resumeButton.removeEventListener("mousedown", this._onResumePressed, false);
-    this._stepOverButton.removeEventListener("mousedown", this._onStepOverPressed, false);
-    this._stepInButton.removeEventListener("mousedown", this._onStepInPressed, false);
-    this._stepOutButton.removeEventListener("mousedown", this._onStepOutPressed, false);
+      this._onTogglePanesPressed);
+    this._resumeButton.removeEventListener("mousedown", this._onResumePressed);
+    this._stepOverButton.removeEventListener("mousedown", this._onStepOverPressed);
+    this._stepInButton.removeEventListener("mousedown", this._onStepInPressed);
+    this._stepOutButton.removeEventListener("mousedown", this._onStepOutPressed);
   },
 
   /**
    * Add commands that XUL can fire.
    */
   _addCommands: function () {
     XULUtils.addCommands(document.getElementById("debuggerCommands"), {
       resumeCommand: this.getCommandHandler("resumeCommand"),
--- a/devtools/client/debugger/views/variable-bubble-view.js
+++ b/devtools/client/debugger/views/variable-bubble-view.js
@@ -41,18 +41,18 @@ VariableBubbleView.prototype = {
   /**
    * Initialization function, called when the debugger is started.
    */
   initialize: function () {
     dumpn("Initializing the VariableBubbleView");
 
     this._toolbox = DebuggerController._toolbox;
     this._editorContainer = document.getElementById("editor");
-    this._editorContainer.addEventListener("mousemove", this._onMouseMove, false);
-    this._editorContainer.addEventListener("mouseout", this._onMouseOut, false);
+    this._editorContainer.addEventListener("mousemove", this._onMouseMove);
+    this._editorContainer.addEventListener("mouseout", this._onMouseOut);
 
     this._tooltip = new Tooltip(document, {
       closeOnEvents: [{
         emitter: this._toolbox,
         event: "select"
       }, {
         emitter: this._editorContainer,
         event: "scroll",
@@ -68,18 +68,18 @@ VariableBubbleView.prototype = {
 
   /**
    * Destruction function, called when the debugger is closed.
    */
   destroy: function () {
     dumpn("Destroying the VariableBubbleView");
 
     this._tooltip.panel.removeEventListener("popuphiding", this._onPopupHiding);
-    this._editorContainer.removeEventListener("mousemove", this._onMouseMove, false);
-    this._editorContainer.removeEventListener("mouseout", this._onMouseOut, false);
+    this._editorContainer.removeEventListener("mousemove", this._onMouseMove);
+    this._editorContainer.removeEventListener("mouseout", this._onMouseOut);
   },
 
   /**
    * Specifies whether literals can be (redundantly) inspected in a popup.
    * This behavior is deprecated, but still tested in a few places.
    */
   _ignoreLiterals: true,
 
--- a/devtools/client/debugger/views/watch-expressions-view.js
+++ b/devtools/client/debugger/views/watch-expressions-view.js
@@ -33,29 +33,29 @@ WatchExpressionsView.prototype = Heritag
   /**
    * Initialization function, called when the debugger is started.
    */
   initialize: function () {
     dumpn("Initializing the WatchExpressionsView");
 
     this.widget = new SimpleListWidget(document.getElementById("expressions"));
     this.widget.setAttribute("context", "debuggerWatchExpressionsContextMenu");
-    this.widget.addEventListener("click", this._onClick, false);
+    this.widget.addEventListener("click", this._onClick);
 
     this.headerText = L10N.getStr("addWatchExpressionText");
     this._addCommands();
   },
 
   /**
    * Destruction function, called when the debugger is closed.
    */
   destroy: function () {
     dumpn("Destroying the WatchExpressionsView");
 
-    this.widget.removeEventListener("click", this._onClick, false);
+    this.widget.removeEventListener("click", this._onClick);
   },
 
   /**
    * Add commands that XUL can fire.
    */
   _addCommands: function () {
     XULUtils.addCommands(document.getElementById("debuggerCommands"), {
       addWatchExpressionCommand: () => this._onCmdAddExpression(),
@@ -189,19 +189,19 @@ WatchExpressionsView.prototype = Heritag
     let inputNode = document.createElement("textbox");
     inputNode.className = "plain dbg-expression-input devtools-monospace";
     inputNode.setAttribute("value", aExpression);
     inputNode.setAttribute("flex", "1");
 
     let closeNode = document.createElement("toolbarbutton");
     closeNode.className = "plain variables-view-delete";
 
-    closeNode.addEventListener("click", this._onClose, false);
-    inputNode.addEventListener("blur", this._onBlur, false);
-    inputNode.addEventListener("keypress", this._onKeyPress, false);
+    closeNode.addEventListener("click", this._onClose);
+    inputNode.addEventListener("blur", this._onBlur);
+    inputNode.addEventListener("keypress", this._onKeyPress);
 
     container.appendChild(arrowNode);
     container.appendChild(inputNode);
     container.appendChild(closeNode);
 
     return {
       container: container,
       arrowNode: arrowNode,
--- a/devtools/client/debugger/views/workers-view.js
+++ b/devtools/client/debugger/views/workers-view.js
@@ -21,17 +21,17 @@ WorkersView.prototype = Heritage.extend(
 
     document.getElementById("workers-pane").removeAttribute("hidden");
     document.getElementById("workers-splitter").removeAttribute("hidden");
 
     this.widget = new SideMenuWidget(document.getElementById("workers"), {
       showArrows: true,
     });
     this.emptyText = L10N.getStr("noWorkersText");
-    this.widget.addEventListener("select", this._onWorkerSelect, false);
+    this.widget.addEventListener("select", this._onWorkerSelect);
   },
 
   addWorker: function (workerForm) {
     let element = document.createElement("label");
     element.className = "plain dbg-worker-item";
     element.setAttribute("value", workerForm.url);
     element.setAttribute("flex", "1");
 
--- a/devtools/client/framework/devtools-browser.js
+++ b/devtools/client/framework/devtools-browser.js
@@ -516,21 +516,21 @@ var gDevToolsBrowser = exports.gDevTools
     });
 
     this.updateCommandAvailability(win);
     this.updateDevtoolsThemeAttribute(win);
     this.ensurePrefObserver();
     win.addEventListener("unload", this);
 
     let tabContainer = win.gBrowser.tabContainer;
-    tabContainer.addEventListener("TabSelect", this, false);
-    tabContainer.addEventListener("TabOpen", this, false);
-    tabContainer.addEventListener("TabClose", this, false);
-    tabContainer.addEventListener("TabPinned", this, false);
-    tabContainer.addEventListener("TabUnpinned", this, false);
+    tabContainer.addEventListener("TabSelect", this);
+    tabContainer.addEventListener("TabOpen", this);
+    tabContainer.addEventListener("TabClose", this);
+    tabContainer.addEventListener("TabPinned", this);
+    tabContainer.addEventListener("TabUnpinned", this);
   },
 
   /**
    * Hook the JS debugger tool to the "Debug Script" button of the slow script
    * dialog.
    */
   setSlowScriptDebugHandler: function DT_setSlowScriptDebugHandler() {
     let debugService = Cc["@mozilla.org/dom/slow-script-debug;1"]
@@ -732,21 +732,21 @@ var gDevToolsBrowser = exports.gDevTools
 
     // Destroy the Developer toolbar if it has been accessed
     let desc = Object.getOwnPropertyDescriptor(win, "DeveloperToolbar");
     if (desc && !desc.get) {
       win.DeveloperToolbar.destroy();
     }
 
     let tabContainer = win.gBrowser.tabContainer;
-    tabContainer.removeEventListener("TabSelect", this, false);
-    tabContainer.removeEventListener("TabOpen", this, false);
-    tabContainer.removeEventListener("TabClose", this, false);
-    tabContainer.removeEventListener("TabPinned", this, false);
-    tabContainer.removeEventListener("TabUnpinned", this, false);
+    tabContainer.removeEventListener("TabSelect", this);
+    tabContainer.removeEventListener("TabOpen", this);
+    tabContainer.removeEventListener("TabClose", this);
+    tabContainer.removeEventListener("TabPinned", this);
+    tabContainer.removeEventListener("TabUnpinned", this);
   },
 
   handleEvent: function (event) {
     switch (event.type) {
       case "TabOpen":
       case "TabClose":
       case "TabPinned":
       case "TabUnpinned":
--- a/devtools/client/framework/sidebar.js
+++ b/devtools/client/framework/sidebar.js
@@ -136,18 +136,18 @@ ToolSidebar.prototype = {
       L10N.getStr("sidebar.showAllTabs.tooltip"));
     this._allTabsBtn.setAttribute("hidden", "true");
     allTabsContainer.appendChild(this._allTabsBtn);
 
     let menuPopup = this._panelDoc.createElementNS(XULNS, "menupopup");
     this._allTabsBtn.appendChild(menuPopup);
 
     // Listening to tabs overflow event to toggle the alltabs button
-    tabs.addEventListener("overflow", this._onTabBoxOverflow, false);
-    tabs.addEventListener("underflow", this._onTabBoxUnderflow, false);
+    tabs.addEventListener("overflow", this._onTabBoxOverflow);
+    tabs.addEventListener("underflow", this._onTabBoxUnderflow);
 
     // Add menuitems to the alltabs menu if there are already tabs in the
     // sidebar
     for (let [id, tab] of this._tabs) {
       let item = this._addItemToAllTabsMenu(id, tab, {
         selected: tab.hasAttribute("selected")
       });
       if (tab.hidden) {
@@ -158,18 +158,18 @@ ToolSidebar.prototype = {
 
   removeAllTabsMenu: function () {
     if (!this._allTabsBtn) {
       return;
     }
 
     let tabs = this._tabbox.tabs;
 
-    tabs.removeEventListener("overflow", this._onTabBoxOverflow, false);
-    tabs.removeEventListener("underflow", this._onTabBoxUnderflow, false);
+    tabs.removeEventListener("overflow", this._onTabBoxOverflow);
+    tabs.removeEventListener("underflow", this._onTabBoxUnderflow);
 
     // Moving back the tabs as a first child of the tabbox
     this._tabbox.insertBefore(tabs, this._tabbox.tabpanels);
     this._tabbox.querySelector("stack").remove();
 
     this._allTabsBtn = null;
   },
 
@@ -206,17 +206,17 @@ ToolSidebar.prototype = {
       let referenceItem = menu.querySelector(`#${idPrefix}${options.insertBefore}`);
       menu.insertBefore(item, referenceItem);
     } else {
       menu.appendChild(item);
     }
 
     item.addEventListener("click", () => {
       this._tabbox.selectedTab = tab;
-    }, false);
+    });
 
     tab.allTabsMenuItem = item;
 
     return item;
   },
 
   /**
    * Register a tab. A tab is a document.
--- a/devtools/client/framework/test/browser_toolbox_raise.js
+++ b/devtools/client/framework/test/browser_toolbox_raise.js
@@ -51,21 +51,21 @@ function testWindowHost() {
 }
 
 function onFocus() {
   info("Main window is focused before calling toolbox.raise()");
   window.removeEventListener("focus", onFocus, true);
 
   // Check if toolbox window got focus.
   let onToolboxFocusAgain = () => {
-    toolbox.win.parent.removeEventListener("focus", onToolboxFocusAgain, false);
+    toolbox.win.parent.removeEventListener("focus", onToolboxFocusAgain);
     ok(true, "Toolbox window is the focused window after calling toolbox.raise()");
     cleanup();
   };
-  toolbox.win.parent.addEventListener("focus", onToolboxFocusAgain, false);
+  toolbox.win.parent.addEventListener("focus", onToolboxFocusAgain);
 
   // Now raise toolbox.
   toolbox.raise();
 }
 
 function cleanup() {
   Services.prefs.setCharPref("devtools.toolbox.host", Toolbox.HostType.BOTTOM);
 
--- a/devtools/client/framework/toolbox-options.js
+++ b/devtools/client/framework/toolbox-options.js
@@ -352,17 +352,17 @@ OptionsPanel.prototype = {
     }
 
     if (this.target.activeTab) {
       return this.target.client.attachTab(this.target.activeTab._actor)
         .then(([response, client]) => {
           this._origJavascriptEnabled = !response.javascriptEnabled;
           this.disableJSNode.checked = this._origJavascriptEnabled;
           this.disableJSNode.addEventListener("click",
-            this._disableJSClicked, false);
+            this._disableJSClicked);
         });
     }
     this.disableJSNode.hidden = true;
   },
 
   updateCurrentTheme: function () {
     let currentTheme = GetPref("devtools.theme");
     let themeBox = this.panelDoc.getElementById("devtools-theme-box");
--- a/devtools/client/framework/toolbox.js
+++ b/devtools/client/framework/toolbox.js
@@ -672,26 +672,26 @@ Toolbox.prototype = {
                    event.preventDefault();
                  });
     this.shortcuts.on(L10N.getStr("toolbox.toggleHost.key"),
                  (name, event) => {
                    this.switchToPreviousHost();
                    event.preventDefault();
                  });
 
-    this.doc.addEventListener("keypress", this._splitConsoleOnKeypress, false);
+    this.doc.addEventListener("keypress", this._splitConsoleOnKeypress);
     this.doc.addEventListener("focus", this._onFocus, true);
     this.win.addEventListener("unload", this.destroy);
     this.win.addEventListener("message", this._onBrowserMessage, true);
   },
 
   _removeHostListeners: function () {
     // The host iframe's contentDocument may already be gone.
     if (this.doc) {
-      this.doc.removeEventListener("keypress", this._splitConsoleOnKeypress, false);
+      this.doc.removeEventListener("keypress", this._splitConsoleOnKeypress);
       this.doc.removeEventListener("focus", this._onFocus, true);
       this.win.removeEventListener("unload", this.destroy);
       this.win.removeEventListener("message", this._onBrowserMessage, true);
     }
   },
 
   // Called whenever the chrome send a message
   _onBrowserMessage: function (event) {
--- a/devtools/client/inspector/breadcrumbs.js
+++ b/devtools/client/inspector/breadcrumbs.js
@@ -53,25 +53,25 @@ ArrowScrollBox.prototype = {
     this.onScroll = this.onScroll.bind(this);
     this.onStartBtnClick = this.onStartBtnClick.bind(this);
     this.onEndBtnClick = this.onEndBtnClick.bind(this);
     this.onStartBtnDblClick = this.onStartBtnDblClick.bind(this);
     this.onEndBtnDblClick = this.onEndBtnDblClick.bind(this);
     this.onUnderflow = this.onUnderflow.bind(this);
     this.onOverflow = this.onOverflow.bind(this);
 
-    this.inner.addEventListener("scroll", this.onScroll, false);
-    this.startBtn.addEventListener("mousedown", this.onStartBtnClick, false);
-    this.endBtn.addEventListener("mousedown", this.onEndBtnClick, false);
-    this.startBtn.addEventListener("dblclick", this.onStartBtnDblClick, false);
-    this.endBtn.addEventListener("dblclick", this.onEndBtnDblClick, false);
+    this.inner.addEventListener("scroll", this.onScroll);
+    this.startBtn.addEventListener("mousedown", this.onStartBtnClick);
+    this.endBtn.addEventListener("mousedown", this.onEndBtnClick);
+    this.startBtn.addEventListener("dblclick", this.onStartBtnDblClick);
+    this.endBtn.addEventListener("dblclick", this.onEndBtnDblClick);
 
     // Overflow and underflow are moz specific events
-    this.inner.addEventListener("underflow", this.onUnderflow, false);
-    this.inner.addEventListener("overflow", this.onOverflow, false);
+    this.inner.addEventListener("underflow", this.onUnderflow);
+    this.inner.addEventListener("overflow", this.onOverflow);
   },
 
   /**
    * Determine whether the current text directionality is RTL
    */
   isRtl: function () {
     return this.win.getComputedStyle(this.container).direction === "rtl";
   },
@@ -97,27 +97,27 @@ ArrowScrollBox.prototype = {
     function handleClick() {
       cancelHold();
       repeatFn();
     }
 
     let window = this.win;
     function cancelHold() {
       window.clearTimeout(timer);
-      container.removeEventListener("mouseout", cancelHold, false);
-      container.removeEventListener("mouseup", handleClick, false);
+      container.removeEventListener("mouseout", cancelHold);
+      container.removeEventListener("mouseup", handleClick);
     }
 
     function repeated() {
       repeatFn();
       timer = window.setTimeout(repeated, SCROLL_REPEAT_MS);
     }
 
-    container.addEventListener("mouseout", cancelHold, false);
-    container.addEventListener("mouseup", handleClick, false);
+    container.addEventListener("mouseout", cancelHold);
+    container.addEventListener("mouseup", handleClick);
     timer = window.setTimeout(repeated, SCROLL_REPEAT_MS);
   },
 
   /**
    * When start button is dbl clicked scroll to first element
    */
   onStartBtnDblClick: function () {
     let children = this.inner.childNodes;
@@ -323,28 +323,28 @@ ArrowScrollBox.prototype = {
 
     return el;
   },
 
   /**
    * Remove event handlers and clean up
    */
   destroy: function () {
-    this.inner.removeEventListener("scroll", this.onScroll, false);
+    this.inner.removeEventListener("scroll", this.onScroll);
     this.startBtn.removeEventListener("mousedown",
-                                      this.onStartBtnClick, false);
-    this.endBtn.removeEventListener("mousedown", this.onEndBtnClick, false);
+                                      this.onStartBtnClick);
+    this.endBtn.removeEventListener("mousedown", this.onEndBtnClick);
     this.startBtn.removeEventListener("dblclick",
-                                      this.onStartBtnDblClick, false);
+                                      this.onStartBtnDblClick);
     this.endBtn.removeEventListener("dblclick",
-                                    this.onRightBtnDblClick, false);
+                                    this.onRightBtnDblClick);
 
     // Overflow and underflow are moz specific events
-    this.inner.removeEventListener("underflow", this.onUnderflow, false);
-    this.inner.removeEventListener("overflow", this.onOverflow, false);
+    this.inner.removeEventListener("underflow", this.onUnderflow);
+    this.inner.removeEventListener("overflow", this.onOverflow);
   },
 };
 
 /**
  * Display the ancestors of the current node and its children.
  * Only one "branch" of children are displayed (only one line).
  *
  * Mechanism:
--- a/devtools/client/inspector/computed/computed.js
+++ b/devtools/client/inspector/computed/computed.js
@@ -930,17 +930,17 @@ PropertyView.prototype = {
    */
   buildMain: function () {
     let doc = this.tree.styleDocument;
 
     // Build the container element
     this.onMatchedToggle = this.onMatchedToggle.bind(this);
     this.element = doc.createElementNS(HTML_NS, "div");
     this.element.setAttribute("class", this.propertyHeaderClassName);
-    this.element.addEventListener("dblclick", this.onMatchedToggle, false);
+    this.element.addEventListener("dblclick", this.onMatchedToggle);
 
     // Make it keyboard navigable
     this.element.setAttribute("tabindex", "0");
     this.shortcuts = new KeyShortcuts({
       window: this.tree.styleWindow,
       target: this.element
     });
     this.shortcuts.on("F1", (name, event) => {
@@ -954,47 +954,47 @@ PropertyView.prototype = {
 
     let nameContainer = doc.createElementNS(HTML_NS, "div");
     nameContainer.className = "property-name-container";
     this.element.appendChild(nameContainer);
 
     // Build the twisty expand/collapse
     this.matchedExpander = doc.createElementNS(HTML_NS, "div");
     this.matchedExpander.className = "expander theme-twisty";
-    this.matchedExpander.addEventListener("click", this.onMatchedToggle, false);
+    this.matchedExpander.addEventListener("click", this.onMatchedToggle);
     nameContainer.appendChild(this.matchedExpander);
 
     // Build the style name element
     this.nameNode = doc.createElementNS(HTML_NS, "div");
     this.nameNode.setAttribute("class", "property-name theme-fg-color5");
     // Reset its tabindex attribute otherwise, if an ellipsis is applied
     // it will be reachable via TABing
     this.nameNode.setAttribute("tabindex", "");
     // Avoid english text (css properties) from being altered
     // by RTL mode
     this.nameNode.setAttribute("dir", "ltr");
     this.nameNode.textContent = this.nameNode.title = this.name;
     // Make it hand over the focus to the container
     this.onFocus = () => this.element.focus();
-    this.nameNode.addEventListener("click", this.onFocus, false);
+    this.nameNode.addEventListener("click", this.onFocus);
     nameContainer.appendChild(this.nameNode);
 
     let valueContainer = doc.createElementNS(HTML_NS, "div");
     valueContainer.className = "property-value-container";
     this.element.appendChild(valueContainer);
 
     // Build the style value element
     this.valueNode = doc.createElementNS(HTML_NS, "div");
     this.valueNode.setAttribute("class", "property-value theme-fg-color1");
     // Reset its tabindex attribute otherwise, if an ellipsis is applied
     // it will be reachable via TABing
     this.valueNode.setAttribute("tabindex", "");
     this.valueNode.setAttribute("dir", "ltr");
     // Make it hand over the focus to the container
-    this.valueNode.addEventListener("click", this.onFocus, false);
+    this.valueNode.addEventListener("click", this.onFocus);
     valueContainer.appendChild(this.valueNode);
 
     return this.element;
   },
 
   buildSelectorContainer: function () {
     let doc = this.tree.styleDocument;
     let element = doc.createElementNS(HTML_NS, "div");
@@ -1095,17 +1095,17 @@ PropertyView.prototype = {
       let link = createChild(span, "a", {
         target: "_blank",
         class: "link theme-link",
         title: selector.href,
         sourcelocation: selector.source,
         tabindex: "0",
         textContent: selector.source
       });
-      link.addEventListener("click", selector.openStyleEditor, false);
+      link.addEventListener("click", selector.openStyleEditor);
       let shortcuts = new KeyShortcuts({
         window: this.tree.styleWindow,
         target: link
       });
       shortcuts.on("Return", () => selector.openStyleEditor());
 
       let status = createChild(p, "span", {
         dir: "ltr",
@@ -1180,28 +1180,27 @@ PropertyView.prototype = {
       browserWin.openUILinkIn(this.link, "tab");
     }
   },
 
   /**
    * Destroy this property view, removing event listeners
    */
   destroy: function () {
-    this.element.removeEventListener("dblclick", this.onMatchedToggle, false);
+    this.element.removeEventListener("dblclick", this.onMatchedToggle);
     this.shortcuts.destroy();
     this.element = null;
 
-    this.matchedExpander.removeEventListener("click", this.onMatchedToggle,
-                                             false);
+    this.matchedExpander.removeEventListener("click", this.onMatchedToggle);
     this.matchedExpander = null;
 
-    this.nameNode.removeEventListener("click", this.onFocus, false);
+    this.nameNode.removeEventListener("click", this.onFocus);
     this.nameNode = null;
 
-    this.valueNode.removeEventListener("click", this.onFocus, false);
+    this.valueNode.removeEventListener("click", this.onFocus);
     this.valueNode = null;
   }
 };
 
 /**
  * A container to give us easy access to display data from a CssRule
  *
  * @param CssComputedView tree
--- a/devtools/client/inspector/markup/markup.js
+++ b/devtools/client/inspector/markup/markup.js
@@ -110,23 +110,23 @@ function MarkupView(inspector, frame, co
   this._onCollapseAttributesPrefChange =
     this._onCollapseAttributesPrefChange.bind(this);
   this._isImagePreviewTarget = this._isImagePreviewTarget.bind(this);
   this._onBlur = this._onBlur.bind(this);
 
   EventEmitter.decorate(this);
 
   // Listening to various events.
-  this._elt.addEventListener("click", this._onMouseClick, false);
-  this._elt.addEventListener("mousemove", this._onMouseMove, false);
-  this._elt.addEventListener("mouseout", this._onMouseOut, false);
+  this._elt.addEventListener("click", this._onMouseClick);
+  this._elt.addEventListener("mousemove", this._onMouseMove);
+  this._elt.addEventListener("mouseout", this._onMouseOut);
   this._elt.addEventListener("blur", this._onBlur, true);
   this.win.addEventListener("mouseup", this._onMouseUp);
   this.win.addEventListener("copy", this._onCopy);
-  this._frame.addEventListener("focus", this._onFocus, false);
+  this._frame.addEventListener("focus", this._onFocus);
   this.walker.on("mutations", this._mutationObserver);
   this.walker.on("display-change", this._onDisplayChange);
   this.inspector.selection.on("new-node-front", this._onNewSelection);
   this.toolbox.on("picker-canceled", this._onToolboxPickerCanceled);
   this.toolbox.on("picker-node-hovered", this._onToolboxPickerHover);
 
   this._onNewSelection();
   this._initTooltips();
@@ -1739,23 +1739,23 @@ MarkupView.prototype = {
     }
 
     this.undo.destroy();
     this.undo = null;
 
     this.popup.destroy();
     this.popup = null;
 
-    this._elt.removeEventListener("click", this._onMouseClick, false);
-    this._elt.removeEventListener("mousemove", this._onMouseMove, false);
-    this._elt.removeEventListener("mouseout", this._onMouseOut, false);
+    this._elt.removeEventListener("click", this._onMouseClick);
+    this._elt.removeEventListener("mousemove", this._onMouseMove);
+    this._elt.removeEventListener("mouseout", this._onMouseOut);
     this._elt.removeEventListener("blur", this._onBlur, true);
     this.win.removeEventListener("mouseup", this._onMouseUp);
     this.win.removeEventListener("copy", this._onCopy);
-    this._frame.removeEventListener("focus", this._onFocus, false);
+    this._frame.removeEventListener("focus", this._onFocus);
     this.walker.off("mutations", this._mutationObserver);
     this.walker.off("display-change", this._onDisplayChange);
     this.inspector.selection.off("new-node-front", this._onNewSelection);
     this.toolbox.off("picker-node-hovered",
                                 this._onToolboxPickerHover);
 
     this._prefObserver.off(ATTR_COLLAPSE_ENABLED_PREF,
                            this._onCollapseAttributesPrefChange);
--- a/devtools/client/inspector/markup/views/html-editor.js
+++ b/devtools/client/inspector/markup/views/html-editor.js
@@ -48,18 +48,18 @@ function HTMLEditor(htmlDocument) {
     extraKeys: {},
     theme: "mozilla markup-view"
   };
 
   config.extraKeys[ctrl("Enter")] = this.hide;
   config.extraKeys.F2 = this.hide;
   config.extraKeys.Esc = this.hide.bind(this, false);
 
-  this.container.addEventListener("click", this.hide, false);
-  this.editorInner.addEventListener("click", stopPropagation, false);
+  this.container.addEventListener("click", this.hide);
+  this.editorInner.addEventListener("click", stopPropagation);
   this.editor = new Editor(config);
 
   this.editor.appendToLocalElement(this.editorInner);
   this.hide(false);
 }
 
 HTMLEditor.prototype = {
 
@@ -155,18 +155,18 @@ HTMLEditor.prototype = {
   },
 
   /**
    * Destroy this object and unbind all event handlers
    */
   destroy: function () {
     this.doc.defaultView.removeEventListener("resize",
       this.refresh, true);
-    this.container.removeEventListener("click", this.hide, false);
-    this.editorInner.removeEventListener("click", stopPropagation, false);
+    this.container.removeEventListener("click", this.hide);
+    this.editorInner.removeEventListener("click", stopPropagation);
 
     this.hide(false);
     this.container.remove();
     this.editor.destroy();
   }
 };
 
 function ctrl(k) {
--- a/devtools/client/inspector/markup/views/markup-container.js
+++ b/devtools/client/inspector/markup/views/markup-container.js
@@ -61,22 +61,22 @@ MarkupContainer.prototype = {
 
     this._onMouseDown = this._onMouseDown.bind(this);
     this._onToggle = this._onToggle.bind(this);
     this._onMouseUp = this._onMouseUp.bind(this);
     this._onMouseMove = this._onMouseMove.bind(this);
     this._onKeyDown = this._onKeyDown.bind(this);
 
     // Binding event listeners
-    this.elt.addEventListener("mousedown", this._onMouseDown, false);
+    this.elt.addEventListener("mousedown", this._onMouseDown);
     this.win.addEventListener("mouseup", this._onMouseUp, true);
     this.win.addEventListener("mousemove", this._onMouseMove, true);
-    this.elt.addEventListener("dblclick", this._onToggle, false);
+    this.elt.addEventListener("dblclick", this._onToggle);
     if (this.expander) {
-      this.expander.addEventListener("click", this._onToggle, false);
+      this.expander.addEventListener("click", this._onToggle);
     }
 
     // Marking the node as shown or hidden
     this.updateIsDisplayed();
   },
 
   toString: function () {
     return "[MarkupContainer for " + this.node + "]";
@@ -689,29 +689,29 @@ MarkupContainer.prototype = {
   },
 
   /**
    * Get rid of event listeners and references, when the container is no longer
    * needed
    */
   destroy: function () {
     // Remove event listeners
-    this.elt.removeEventListener("mousedown", this._onMouseDown, false);
-    this.elt.removeEventListener("dblclick", this._onToggle, false);
+    this.elt.removeEventListener("mousedown", this._onMouseDown);
+    this.elt.removeEventListener("dblclick", this._onToggle);
     this.tagLine.removeEventListener("keydown", this._onKeyDown, true);
     if (this.win) {
       this.win.removeEventListener("mouseup", this._onMouseUp, true);
       this.win.removeEventListener("mousemove", this._onMouseMove, true);
     }
 
     this.win = null;
     this.htmlElt = null;
 
     if (this.expander) {
-      this.expander.removeEventListener("click", this._onToggle, false);
+      this.expander.removeEventListener("click", this._onToggle);
     }
 
     // Recursively destroy children containers
     let firstChild = this.children.firstChild;
     while (firstChild) {
       // Not all children of a container are containers themselves
       // ("show more nodes" button is one example)
       if (firstChild.container) {
--- a/devtools/client/inspector/rules/rules.js
+++ b/devtools/client/inspector/rules/rules.js
@@ -981,22 +981,22 @@ CssRuleView.prototype = {
     let container = this.styleDocument.createElementNS(HTML_NS, "div");
     container.classList.add("ruleview-expandable-container");
     container.hidden = false;
     this.element.appendChild(container);
 
     header.addEventListener("dblclick", () => {
       this._toggleContainerVisibility(twisty, container, isPseudo,
         !this.showPseudoElements);
-    }, false);
+    });
 
     twisty.addEventListener("click", () => {
       this._toggleContainerVisibility(twisty, container, isPseudo,
         !this.showPseudoElements);
-    }, false);
+    });
 
     if (isPseudo) {
       this._toggleContainerVisibility(twisty, container, isPseudo,
         this.showPseudoElements);
     }
 
     return container;
   },
--- a/devtools/client/inspector/rules/views/rule-editor.js
+++ b/devtools/client/inspector/rules/views/rule-editor.js
@@ -133,17 +133,17 @@ RuleEditor.prototype = {
       class: "ruleview-selectorcontainer theme-fg-color3",
       tabindex: this.isSelectorEditable ? "0" : "-1",
     });
 
     if (this.isSelectorEditable) {
       this.selectorText.addEventListener("click", event => {
         // Clicks within the selector shouldn't propagate any further.
         event.stopPropagation();
-      }, false);
+      });
 
       editableField({
         element: this.selectorText,
         done: this._onSelectorDone,
         cssProperties: this.rule.cssProperties,
         contextMenu: this.ruleView.inspector.onTextBoxContextMenu
       });
     }
@@ -193,21 +193,21 @@ RuleEditor.prototype = {
 
       code.addEventListener("click", () => {
         let selection = this.doc.defaultView.getSelection();
         if (selection.isCollapsed && !this._ruleViewIsEditing) {
           this.newProperty();
         }
         // Cleanup the _ruleViewIsEditing flag
         this._ruleViewIsEditing = false;
-      }, false);
+      });
 
       this.element.addEventListener("mousedown", () => {
         this.doc.defaultView.focus();
-      }, false);
+      });
 
       // Create a property editor when the close brace is clicked.
       editableItem({ element: this.closeBrace }, () => {
         this.newProperty();
       });
     }
   },
 
@@ -448,17 +448,17 @@ RuleEditor.prototype = {
       contentType: InplaceEditor.CONTENT_TYPES.CSS_PROPERTY,
       popup: this.ruleView.popup,
       cssProperties: this.rule.cssProperties,
       contextMenu: this.ruleView.inspector.onTextBoxContextMenu
     });
 
     // Auto-close the input if multiple rules get pasted into new property.
     this.editor.input.addEventListener("paste",
-      blurOnMultipleProperties(this.rule.cssProperties), false);
+      blurOnMultipleProperties(this.rule.cssProperties));
   },
 
   /**
    * Called when the new property input has been dismissed.
    *
    * @param {String} value
    *        The value in the editor.
    * @param {Boolean} commit
--- a/devtools/client/inspector/rules/views/text-property-editor.js
+++ b/devtools/client/inspector/rules/views/text-property-editor.js
@@ -184,17 +184,17 @@ TextPropertyEditor.prototype = {
       class: "ruleview-overridden-rule-filter",
       hidden: "",
       title: l10n("rule.filterProperty.title"),
     });
 
     this.filterProperty.addEventListener("click", event => {
       this.ruleEditor.ruleView.setFilterStyles("`" + this.prop.name + "`");
       event.stopPropagation();
-    }, false);
+    });
 
     // Holds the viewers for the computed properties.
     // will be populated in |_updateComputed|.
     this.computed = createChild(this.element, "ul", {
       class: "ruleview-computedlist",
     });
 
     // Only bind event handlers if the rule is editable.
@@ -204,43 +204,43 @@ TextPropertyEditor.prototype = {
       this.nameContainer.addEventListener("click", (event) => {
         // Clicks within the name shouldn't propagate any further.
         event.stopPropagation();
 
         // Forward clicks on nameContainer to the editable nameSpan
         if (event.target === this.nameContainer) {
           this.nameSpan.click();
         }
-      }, false);
+      });
 
       editableField({
         start: this._onStartEditing,
         element: this.nameSpan,
         done: this._onNameDone,
         destroy: this.updatePropertyState,
         advanceChars: ":",
         contentType: InplaceEditor.CONTENT_TYPES.CSS_PROPERTY,
         popup: this.popup,
         cssProperties: this.cssProperties,
         contextMenu: this.ruleView.inspector.onTextBoxContextMenu
       });
 
       // Auto blur name field on multiple CSS rules get pasted in.
       this.nameContainer.addEventListener("paste",
-        blurOnMultipleProperties(this.cssProperties), false);
+        blurOnMultipleProperties(this.cssProperties));
 
       this.valueContainer.addEventListener("click", (event) => {
         // Clicks within the value shouldn't propagate any further.
         event.stopPropagation();
 
         // Forward clicks on valueContainer to the editable valueSpan
         if (event.target === this.valueContainer) {
           this.valueSpan.click();
         }
-      }, false);
+      });
 
       // The mousedown event could trigger a blur event on nameContainer, which
       // will trigger a call to the update function. The update function clears
       // valueSpan's markup. Thus the regular click event does not bubble up, and
       // listener's callbacks are not called.
       // So we need to remember where the user clicks in order to re-trigger the click
       // after the valueSpan's markup is re-populated. We only need to track this for
       // valueSpan's child elements, because direct click on valueSpan will always
@@ -256,32 +256,32 @@ TextPropertyEditor.prototype = {
           (selector) => clickedEl.matches(selector));
         if (matchedSelector) {
           let similarElements = [...this.valueSpan.querySelectorAll(matchedSelector)];
           this._clickedElementOptions = {
             selector: matchedSelector,
             index: similarElements.indexOf(clickedEl)
           };
         }
-      }, false);
+      });
 
       this.valueSpan.addEventListener("mouseup", (event) => {
         this._clickedElementOptions = null;
         this._hasPendingClick = false;
-      }, false);
+      });
 
       this.valueSpan.addEventListener("click", (event) => {
         let target = event.target;
 
         if (target.nodeName === "a") {
           event.stopPropagation();
           event.preventDefault();
           this.browserWindow.openUILinkIn(target.href, "tab");
         }
-      }, false);
+      });
 
       editableField({
         start: this._onStartEditing,
         element: this.valueSpan,
         done: this._onValueDone,
         destroy: this.update,
         validate: this._onValidate,
         advanceChars: advanceValidate,
--- a/devtools/client/inspector/shared/highlighters-overlay.js
+++ b/devtools/client/inspector/shared/highlighters-overlay.js
@@ -55,19 +55,19 @@ HighlightersOverlay.prototype = {
    */
   addToView: function (view) {
     if (!this.supportsHighlighters) {
       return;
     }
 
     let el = view.element;
     el.addEventListener("click", this.onClick, true);
-    el.addEventListener("mousemove", this.onMouseMove, false);
-    el.addEventListener("mouseout", this.onMouseOut, false);
-    el.ownerDocument.defaultView.addEventListener("mouseout", this.onMouseOut, false);
+    el.addEventListener("mousemove", this.onMouseMove);
+    el.addEventListener("mouseout", this.onMouseOut);
+    el.ownerDocument.defaultView.addEventListener("mouseout", this.onMouseOut);
 
     this.inspector.target.on("will-navigate", this.onWillNavigate);
   },
 
   /**
    * Remove the overlay from the given view. This will stop tracking mouse movement and
    * showing highlighters.
    *
@@ -77,18 +77,18 @@ HighlightersOverlay.prototype = {
    */
   removeFromView: function (view) {
     if (!this.supportsHighlighters) {
       return;
     }
 
     let el = view.element;
     el.removeEventListener("click", this.onClick, true);
-    el.removeEventListener("mousemove", this.onMouseMove, false);
-    el.removeEventListener("mouseout", this.onMouseOut, false);
+    el.removeEventListener("mousemove", this.onMouseMove);
+    el.removeEventListener("mouseout", this.onMouseOut);
 
     this.inspector.target.off("will-navigate", this.onWillNavigate);
   },
 
   /**
    * Toggle the grid highlighter for the given grid container element.
    *
    * @param  {NodeFront} node
--- a/devtools/client/jsonview/test/doc_frame_script.js
+++ b/devtools/client/jsonview/test/doc_frame_script.js
@@ -27,17 +27,17 @@ Services.scriptloader.loadSubScript(
 /**
  * When the JSON View is done rendering it triggers custom event
  * "JSONViewInitialized", then the Test:TestPageProcessingDone message
  * will be sent to the parent process for tests to wait for this event
  * if needed.
  */
 content.addEventListener("JSONViewInitialized", () => {
   sendAsyncMessage("Test:JsonView:JSONViewInitialized");
-}, false);
+});
 
 addMessageListener("Test:JsonView:GetElementCount", function (msg) {
   let {selector} = msg.data;
   let nodeList = content.document.querySelectorAll(selector);
   sendAsyncMessage(msg.name, {count: nodeList.length});
 });
 
 addMessageListener("Test:JsonView:GetElementText", function (msg) {
--- a/devtools/client/memory/components/tree-map/canvas-utils.js
+++ b/devtools/client/memory/components/tree-map/canvas-utils.js
@@ -120,15 +120,15 @@ function handleResizes(canvases, debounc
     canvases.emit("resize");
   }
 
   // Tests may not need debouncing
   let debouncedResize = debounceRate > 0
     ? debounce(resize, debounceRate)
     : resize;
 
-  window.addEventListener("resize", debouncedResize, false);
+  window.addEventListener("resize", debouncedResize);
   resize();
 
   return function removeResizeHandlers() {
-    window.removeEventListener("resize", debouncedResize, false);
+    window.removeEventListener("resize", debouncedResize);
   };
 }
--- a/devtools/client/memory/components/tree-map/drag-zoom.js
+++ b/devtools/client/memory/components/tree-map/drag-zoom.js
@@ -196,26 +196,26 @@ function setDragHandlers(container, drag
     dragZoom.translateY += dragZoom.mouseY - prevMouseY;
 
     keepInView(container, dragZoom);
 
     emitChanged();
     update();
   }
 
-  parentEl.addEventListener("mousedown", startDrag, false);
-  parentEl.addEventListener("mouseup", stopDrag, false);
-  parentEl.addEventListener("mouseout", stopDrag, false);
-  parentEl.addEventListener("mousemove", drag, false);
+  parentEl.addEventListener("mousedown", startDrag);
+  parentEl.addEventListener("mouseup", stopDrag);
+  parentEl.addEventListener("mouseout", stopDrag);
+  parentEl.addEventListener("mousemove", drag);
 
   return function removeListeners() {
-    parentEl.removeEventListener("mousedown", startDrag, false);
-    parentEl.removeEventListener("mouseup", stopDrag, false);
-    parentEl.removeEventListener("mouseout", stopDrag, false);
-    parentEl.removeEventListener("mousemove", drag, false);
+    parentEl.removeEventListener("mousedown", startDrag);
+    parentEl.removeEventListener("mouseup", stopDrag);
+    parentEl.removeEventListener("mouseout", stopDrag);
+    parentEl.removeEventListener("mousemove", drag);
   };
 }
 
 /**
  * Sets the handlers for when the user scrolls. It updates the dragZoom object
  * and keeps the canvases all within the view. After changing values update
  * loop is called, and the changed event is emitted.
  *
@@ -262,20 +262,20 @@ function setScrollHandlers(container, dr
     dragZoom.translateY -= lerp(-deltaHeight / 2, deltaHeight / 2, ratioZoomY);
 
     // Keep the canvas in range of the container
     keepInView(container, dragZoom);
     emitChanged();
     update();
   }
 
-  container.addEventListener("wheel", handleWheel, false);
+  container.addEventListener("wheel", handleWheel);
 
   return function removeListener() {
-    container.removeEventListener("wheel", handleWheel, false);
+    container.removeEventListener("wheel", handleWheel);
   };
 }
 
 /**
  * Account for the various mouse wheel event types, per pixel or per line
  *
  * @param  {WheelEvent} event
  * @param  {Window} window
--- a/devtools/client/netmonitor/components/request-list-tooltip.js
+++ b/devtools/client/netmonitor/components/request-list-tooltip.js
@@ -86,17 +86,17 @@ const setTooltipStackTraceContent = Task
     lineEl.className = "stack-frame-line";
     lineEl.textContent = `:${lineNumber}:${columnNumber}`;
     sourceInnerEl.appendChild(lineEl);
 
     frameEl.addEventListener("click", () => {
       // hide the tooltip immediately, not after delay
       tooltip.hide();
       NetMonitorController.viewSourceInDebugger(filename, lineNumber);
-    }, false);
+    });
 
     el.appendChild(frameEl);
   }
 
   tooltip.setContent(el, {width: REQUESTS_TOOLTIP_STACK_TRACE_WIDTH});
 
   return true;
 });
--- a/devtools/client/netmonitor/custom-request-view.js
+++ b/devtools/client/netmonitor/custom-request-view.js
@@ -24,27 +24,27 @@ CustomRequestView.prototype = {
   /**
    * Initialization function, called when the network monitor is started.
    */
   initialize: function () {
     dumpn("Initializing the CustomRequestView");
 
     this.updateCustomRequestEvent = getKeyWithEvent(this.onUpdate.bind(this));
     $("#custom-pane").addEventListener("input",
-      this.updateCustomRequestEvent, false);
+      this.updateCustomRequestEvent);
   },
 
   /**
    * Destruction function, called when the network monitor is closed.
    */
   destroy: function () {
     dumpn("Destroying the CustomRequestView");
 
     $("#custom-pane").removeEventListener("input",
-      this.updateCustomRequestEvent, false);
+      this.updateCustomRequestEvent);
   },
 
   /**
    * Populates this view with the specified data.
    *
    * @param object data
    *        The data source (this should be the attachment of a request item).
    * @return object
--- a/devtools/client/netmonitor/requests-menu-view.js
+++ b/devtools/client/netmonitor/requests-menu-view.js
@@ -142,56 +142,56 @@ RequestsMenuView.prototype = {
     this.sendCustomRequestEvent = this.sendCustomRequest.bind(this);
     this.closeCustomRequestEvent = this.closeCustomRequest.bind(this);
 
     this._summary = $("#requests-menu-network-summary-button");
     this._summary.setAttribute("label", L10N.getStr("networkMenu.empty"));
 
     this.onResize = this.onResize.bind(this);
     this._splitter = $("#network-inspector-view-splitter");
-    this._splitter.addEventListener("mouseup", this.onResize, false);
-    window.addEventListener("resize", this.onResize, false);
+    this._splitter.addEventListener("mouseup", this.onResize);
+    window.addEventListener("resize", this.onResize);
 
     this.tooltip = new HTMLTooltip(NetMonitorController._toolbox.doc, { type: "arrow" });
 
     this.mountPoint = $("#network-table");
     ReactDOM.render(createElement(Provider,
       { store: this.store },
       RequestList()
     ), this.mountPoint);
 
     window.once("connected", this._onConnect.bind(this));
   },
 
   _onConnect() {
     if (NetMonitorController.supportsCustomRequest) {
       $("#custom-request-send-button")
-        .addEventListener("click", this.sendCustomRequestEvent, false);
+        .addEventListener("click", this.sendCustomRequestEvent);
       $("#custom-request-close-button")
-        .addEventListener("click", this.closeCustomRequestEvent, false);
+        .addEventListener("click", this.closeCustomRequestEvent);
     }
   },
 
   /**
    * Destruction function, called when the network monitor is closed.
    */
   destroy() {
     dumpn("Destroying the RequestsMenuView");
 
     Prefs.filters = getActiveFilters(this.store.getState());
 
     // this.flushRequestsTask.disarm();
 
     $("#custom-request-send-button")
-      .removeEventListener("click", this.sendCustomRequestEvent, false);
+      .removeEventListener("click", this.sendCustomRequestEvent);
     $("#custom-request-close-button")
-      .removeEventListener("click", this.closeCustomRequestEvent, false);
+      .removeEventListener("click", this.closeCustomRequestEvent);
 
-    this._splitter.removeEventListener("mouseup", this.onResize, false);
-    window.removeEventListener("resize", this.onResize, false);
+    this._splitter.removeEventListener("mouseup", this.onResize);
+    window.removeEventListener("resize", this.onResize);
 
     this.tooltip.destroy();
 
     ReactDOM.unmountComponentAtNode(this.mountPoint);
   },
 
   /**
    * Resets this container (removes all the networking information).
--- a/devtools/client/performance/test/doc_worker.html
+++ b/devtools/client/performance/test/doc_worker.html
@@ -14,16 +14,16 @@
 
       /* exported performWork */
       function performWork() {
         const worker = new Worker("js_simpleWorker.js");
 
         worker.addEventListener("message", function (e) {
           console.log(e.data);
           console.timeStamp("Done");
-        }, false);
+        });
 
         worker.postMessage("Hello World");
       }
     </script>
   </body>
 
 </html>
--- a/devtools/client/performance/test/js_simpleWorker.js
+++ b/devtools/client/performance/test/js_simpleWorker.js
@@ -1,6 +1,6 @@
 "use strict";
 
 self.addEventListener("message", function (e) {
   self.postMessage(e.data);
   self.close();
-}, false);
+});
--- a/devtools/client/projecteditor/lib/projecteditor.js
+++ b/devtools/client/projecteditor/lib/projecteditor.js
@@ -149,17 +149,17 @@ var ProjectEditor = Class({
   _onLoad: function () {
     this.document = this.iframe.contentDocument;
     this.window = this.iframe.contentWindow;
 
     this._initCommands();
     this._buildMenubar();
     this._buildSidebar();
 
-    this.window.addEventListener("unload", this.destroy, false);
+    this.window.addEventListener("unload", this.destroy);
 
     // Editor management
     this.shells = new ShellDeck(this, this.document);
     this.shells.on("editor-created", this._onEditorCreated);
     this.shells.on("editor-activated", this._onEditorActivated);
     this.shells.on("editor-deactivated", this._onEditorDeactivated);
 
     let shellContainer = this.document.querySelector("#shells-deck-container");
@@ -300,17 +300,17 @@ var ProjectEditor = Class({
     // the properties below will not exist.
     if (!this._loaded) {
       this.iframe.setAttribute("src", "about:blank");
       return;
     }
 
     // Reset the src for the iframe so if it reused for a new ProjectEditor
     // instance, the load will fire properly.
-    this.window.removeEventListener("unload", this.destroy, false);
+    this.window.removeEventListener("unload", this.destroy);
     this.iframe.setAttribute("src", "about:blank");
 
     this._plugins.forEach(plugin => { plugin.destroy(); });
 
     forget(this, this.projectTree);
     this.projectTree.destroy();
     this.projectTree = null;
 
--- a/devtools/client/projecteditor/lib/tree.js
+++ b/devtools/client/projecteditor/lib/tree.js
@@ -56,28 +56,28 @@ var ResourceContainer = Class({
 
     this.label = doc.createElementNS(HTML_NS, "span");
     this.label.className = "file-label";
     this.line.appendChild(this.label);
 
     this.line.addEventListener("contextmenu", (ev) => {
       this.select();
       this.openContextMenu(ev);
-    }, false);
+    });
 
     this.children = doc.createElementNS(HTML_NS, "ul");
     this.children.classList.add("children");
 
     this.elt.appendChild(this.children);
 
     this.line.addEventListener("click", (evt) => {
       this.select();
       this.toggleExpansion();
       evt.stopPropagation();
-    }, false);
+    });
     this.expander.addEventListener("click", (evt) => {
       this.toggleExpansion();
       this.select();
       evt.stopPropagation();
     }, true);
 
     if (!this.resource.isRoot) {
       this.expanded = false;
--- a/devtools/client/responsivedesign/responsivedesign-child.js
+++ b/devtools/client/responsivedesign/responsivedesign-child.js
@@ -68,17 +68,17 @@ var global = this;
     debug(`EMIT RESIZE: ${width} x ${height}`);
     sendAsyncMessage("ResponsiveMode:OnContentResize", {
       width,
       height,
     });
   }
 
   function bindOnResize() {
-    content.addEventListener("resize", onResize, false);
+    content.addEventListener("resize", onResize);
   }
 
   function startOnResize() {
     debug("START ON RESIZE");
     if (resizeNotifications) {
       return;
     }
     resizeNotifications = true;
@@ -87,17 +87,17 @@ var global = this;
   }
 
   function stopOnResize() {
     debug("STOP ON RESIZE");
     if (!resizeNotifications) {
       return;
     }
     resizeNotifications = false;
-    content.removeEventListener("resize", onResize, false);
+    content.removeEventListener("resize", onResize);
     removeEventListener("DOMWindowCreated", bindOnResize, false);
   }
 
   function stopResponsiveMode() {
     debug("STOP");
     if (!active) {
       debug("ALREADY STOPPED, ABORT");
       return;
--- a/devtools/client/scratchpad/test/browser_scratchpad_edit_ui_updates.js
+++ b/devtools/client/scratchpad/test/browser_scratchpad_edit_ui_updates.js
@@ -72,19 +72,19 @@ function runTests()
     Services.prefs.setIntPref("devtools.selfxss.count", 10);
     notificationbox.removeAllNotifications(true);
     openMenu(10, 10, firstShow);
   };
 
   let openMenu = function (aX, aY, aCallback) {
     if (!editMenu || OS != "Darwin") {
       menuPopup.addEventListener("popupshown", function onPopupShown() {
-        menuPopup.removeEventListener("popupshown", onPopupShown, false);
+        menuPopup.removeEventListener("popupshown", onPopupShown);
         executeSoon(aCallback);
-      }, false);
+      });
     }
 
     executeSoon(function () {
       if (editMenu) {
         if (OS == "Darwin") {
           winUtils.forceUpdateNativeMenuAt(editMenuIndex);
           executeSoon(aCallback);
         } else {
@@ -94,19 +94,19 @@ function runTests()
         menuPopup.openPopup(anchor, "overlap", aX, aY, isContextMenu, false);
       }
     });
   };
 
   let closeMenu = function (aCallback) {
     if (!editMenu || OS != "Darwin") {
       menuPopup.addEventListener("popuphidden", function onPopupHidden() {
-        menuPopup.removeEventListener("popuphidden", onPopupHidden, false);
+        menuPopup.removeEventListener("popuphidden", onPopupHidden);
         executeSoon(aCallback);
-      }, false);
+      });
     }
 
     executeSoon(function () {
       if (editMenu) {
         if (OS == "Darwin") {
           winUtils.forceUpdateNativeMenuAt(editMenuIndex);
           executeSoon(aCallback);
         } else {
--- a/devtools/client/scratchpad/test/head.js
+++ b/devtools/client/scratchpad/test/head.js
@@ -47,33 +47,33 @@ function openScratchpad(aReadyCallback, 
 {
   let win = aOptions.window ||
             ScratchpadManager.openScratchpad(aOptions.state);
   if (!win) {
     return;
   }
 
   let onLoad = function () {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
 
     win.Scratchpad.addObserver({
       onReady: function (aScratchpad) {
         aScratchpad.removeObserver(this);
 
         if (aOptions.noFocus) {
           aReadyCallback(win, aScratchpad);
         } else {
           waitForFocus(aReadyCallback.bind(null, win, aScratchpad), win);
         }
       }
     });
   };
 
   if (aReadyCallback) {
-    win.addEventListener("load", onLoad, false);
+    win.addEventListener("load", onLoad);
   }
 
   gScratchpadWindow = win;
   return gScratchpadWindow;
 }
 
 /**
  * Open a new tab and then open a scratchpad.
--- a/devtools/client/shadereditor/shadereditor.js
+++ b/devtools/client/shadereditor/shadereditor.js
@@ -203,28 +203,28 @@ var ShadersListView = Heritage.extend(Wi
       showItemCheckboxes: true
     });
 
     this._onProgramSelect = this._onProgramSelect.bind(this);
     this._onProgramCheck = this._onProgramCheck.bind(this);
     this._onProgramMouseOver = this._onProgramMouseOver.bind(this);
     this._onProgramMouseOut = this._onProgramMouseOut.bind(this);
 
-    this.widget.addEventListener("select", this._onProgramSelect, false);
-    this.widget.addEventListener("check", this._onProgramCheck, false);
+    this.widget.addEventListener("select", this._onProgramSelect);
+    this.widget.addEventListener("check", this._onProgramCheck);
     this.widget.addEventListener("mouseover", this._onProgramMouseOver, true);
     this.widget.addEventListener("mouseout", this._onProgramMouseOut, true);
   },
 
   /**
    * Destruction function, called when the tool is closed.
    */
   destroy: function () {
-    this.widget.removeEventListener("select", this._onProgramSelect, false);
-    this.widget.removeEventListener("check", this._onProgramCheck, false);
+    this.widget.removeEventListener("select", this._onProgramSelect);
+    this.widget.removeEventListener("check", this._onProgramCheck);
     this.widget.removeEventListener("mouseover", this._onProgramMouseOver, true);
     this.widget.removeEventListener("mouseout", this._onProgramMouseOut, true);
   },
 
   /**
    * Adds a program to this programs container.
    *
    * @param object programActor
--- a/devtools/client/shadereditor/test/head.js
+++ b/devtools/client/shadereditor/test/head.js
@@ -88,20 +88,20 @@ function removeTab(aTab, aWindow) {
   info("Removing tab.");
 
   let deferred = promise.defer();
   let targetWindow = aWindow || window;
   let targetBrowser = targetWindow.gBrowser;
   let tabContainer = targetBrowser.tabContainer;
 
   tabContainer.addEventListener("TabClose", function onClose(aEvent) {
-    tabContainer.removeEventListener("TabClose", onClose, false);
+    tabContainer.removeEventListener("TabClose", onClose);
     info("Tab removed and finished closing.");
     deferred.resolve();
-  }, false);
+  });
 
   targetBrowser.removeTab(aTab);
   return deferred.promise;
 }
 
 function handleError(aError) {
   ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
   finish();
--- a/devtools/client/shared/DOMHelpers.jsm
+++ b/devtools/client/shared/DOMHelpers.jsm
@@ -143,24 +143,24 @@ DOMHelpers.prototype = {
    */
   onceDOMReady: function Helpers_onLocationChange(callback, targetURL) {
     let window = this.window;
     let docShell = window.QueryInterface(Ci.nsIInterfaceRequestor)
                          .getInterface(Ci.nsIWebNavigation)
                          .QueryInterface(Ci.nsIDocShell);
     let onReady = function (event) {
       if (event.target == window.document) {
-        docShell.chromeEventHandler.removeEventListener("DOMContentLoaded", onReady, false);
+        docShell.chromeEventHandler.removeEventListener("DOMContentLoaded", onReady);
         // If in `callback` the URL of the window is changed and a listener to DOMContentLoaded
         // is attached, the event we just received will be also be caught by the new listener.
         // We want to avoid that so we execute the callback in the next queue.
         Services.tm.mainThread.dispatch(callback, 0);
       }
     };
     if ((window.document.readyState == "complete" ||
          window.document.readyState == "interactive") &&
          window.location.href == targetURL) {
       Services.tm.mainThread.dispatch(callback, 0);
     } else {
-      docShell.chromeEventHandler.addEventListener("DOMContentLoaded", onReady, false);
+      docShell.chromeEventHandler.addEventListener("DOMContentLoaded", onReady);
     }
   }
 };
--- a/devtools/client/shared/SplitView.jsm
+++ b/devtools/client/shared/SplitView.jsm
@@ -76,17 +76,17 @@ this.SplitView = function SplitView(aRoo
     if (newFocusOrdinal !== undefined) {
       aEvent.stopPropagation();
       let el = this.getSummaryElementByOrdinal(newFocusOrdinal);
       if (el) {
         el.focus();
       }
       return false;
     }
-  }, false);
+  });
 };
 
 SplitView.prototype = {
   /**
     * Retrieve whether the UI currently has a landscape orientation.
     *
     * @return boolean
     */
@@ -207,17 +207,17 @@ SplitView.prototype = {
     binding._details = aDetails;
     bindings.set(aSummary, binding);
 
     this._nav.appendChild(aSummary);
 
     aSummary.addEventListener("click", (aEvent) => {
       aEvent.stopPropagation();
       this.activeSummary = aSummary;
-    }, false);
+    });
 
     this._side.appendChild(aDetails);
 
     if (binding.onCreate) {
       binding.onCreate(aSummary, aDetails, binding.data);
     }
   },
 
--- a/devtools/client/shared/autocomplete-popup.js
+++ b/devtools/client/shared/autocomplete-popup.js
@@ -72,17 +72,17 @@ function AutocompletePopup(toolboxDoc, o
   if (options.listId) {
     this._list.setAttribute("id", options.listId);
   }
   this._list.className = "devtools-autocomplete-listbox " + theme + "-theme";
 
   this._tooltip.setContent(this._list);
 
   this.onClick = this.onClick.bind(this);
-  this._list.addEventListener("click", this.onClick, false);
+  this._list.addEventListener("click", this.onClick);
 
   // Array of raw autocomplete items
   this.items = [];
   // Map of autocompleteItem to HTMLElement
   this.elements = new WeakMap();
 
   this.selectedIndex = -1;
 }
@@ -187,17 +187,17 @@ AutocompletePopup.prototype = {
    * same code. It is the responsability of the client code to perform DOM
    * cleanup.
    */
   destroy: function () {
     if (this.isOpen) {
       this.hidePopup();
     }
 
-    this._list.removeEventListener("click", this.onClick, false);
+    this._list.removeEventListener("click", this.onClick);
 
     if (this.autoThemeEnabled) {
       this._prefObserver.off("devtools.theme", this._handleThemeChange);
       this._prefObserver.destroy();
     }
 
     this._list.remove();
     this._listClone.remove();
--- a/devtools/client/shared/components/h-split-box.js
+++ b/devtools/client/shared/components/h-split-box.js
@@ -67,27 +67,23 @@ module.exports = createClass({
 
   getInitialState() {
     return {
       mouseDown: false
     };
   },
 
   componentDidMount() {
-    document.defaultView.top.addEventListener("mouseup", this._onMouseUp,
-                                              false);
-    document.defaultView.top.addEventListener("mousemove", this._onMouseMove,
-                                              false);
+    document.defaultView.top.addEventListener("mouseup", this._onMouseUp);
+    document.defaultView.top.addEventListener("mousemove", this._onMouseMove);
   },
 
   componentWillUnmount() {
-    document.defaultView.top.removeEventListener("mouseup", this._onMouseUp,
-                                                 false);
-    document.defaultView.top.removeEventListener("mousemove", this._onMouseMove,
-                                                 false);
+    document.defaultView.top.removeEventListener("mouseup", this._onMouseUp);
+    document.defaultView.top.removeEventListener("mousemove", this._onMouseMove);
   },
 
   _onMouseDown(event) {
     if (event.button !== 0) {
       return;
     }
 
     this.setState({ mouseDown: true });
--- a/devtools/client/shared/components/tabs/tabs.js
+++ b/devtools/client/shared/components/tabs/tabs.js
@@ -75,25 +75,25 @@ define(function (require, exports, modul
 
         // True if tabs can't fit into available horizontal space.
         overflow: false,
       };
     },
 
     componentDidMount: function () {
       let node = findDOMNode(this);
-      node.addEventListener("keydown", this.onKeyDown, false);
+      node.addEventListener("keydown", this.onKeyDown);
 
       // Register overflow listeners to manage visibility
       // of all-tabs-menu. This menu is displayed when there
       // is not enough h-space to render all tabs.
       // It allows the user to select a tab even if it's hidden.
       if (this.props.showAllTabsMenu) {
-        node.addEventListener("overflow", this.onOverflow, false);
-        node.addEventListener("underflow", this.onUnderflow, false);
+        node.addEventListener("overflow", this.onOverflow);
+        node.addEventListener("underflow", this.onUnderflow);
       }
 
       let index = this.state.tabActive;
       if (this.props.onMount) {
         this.props.onMount(index);
       }
     },
 
@@ -108,21 +108,21 @@ define(function (require, exports, modul
           tabActive: newProps.tabActive,
           created: created,
         }));
       }
     },
 
     componentWillUnmount: function () {
       let node = findDOMNode(this);
-      node.removeEventListener("keydown", this.onKeyDown, false);
+      node.removeEventListener("keydown", this.onKeyDown);
 
       if (this.props.showAllTabsMenu) {
-        node.removeEventListener("overflow", this.onOverflow, false);
-        node.removeEventListener("underflow", this.onUnderflow, false);
+        node.removeEventListener("overflow", this.onOverflow);
+        node.removeEventListener("underflow", this.onUnderflow);
       }
     },
 
     // DOM Events
 
     onOverflow: function (event) {
       if (event.target.classList.contains("tabs-menu")) {
         this.setState({
--- a/devtools/client/shared/developer-toolbar.js
+++ b/devtools/client/shared/developer-toolbar.js
@@ -483,18 +483,18 @@ DeveloperToolbar.prototype.show = functi
 
     this.focusManager.onVisibilityChange.add(this.outputPanel._visibilityChanged,
                                              this.outputPanel);
     this.focusManager.onVisibilityChange.add(this.tooltipPanel._visibilityChanged,
                                              this.tooltipPanel);
     this.onOutput.add(this.outputPanel._outputChanged, this.outputPanel);
 
     let tabbrowser = this._chromeWindow.gBrowser;
-    tabbrowser.tabContainer.addEventListener("TabSelect", this, false);
-    tabbrowser.tabContainer.addEventListener("TabClose", this, false);
+    tabbrowser.tabContainer.addEventListener("TabSelect", this);
+    tabbrowser.tabContainer.addEventListener("TabClose", this);
     tabbrowser.addEventListener("load", this, true);
     tabbrowser.addEventListener("beforeunload", this, true);
 
     gDevTools.on("toolbox-ready", this._onToolboxReady);
     gDevTools.on("toolbox-destroyed", this._onToolboxDestroyed);
 
     this._initErrorsCount(tabbrowser.selectedTab);
 
@@ -623,18 +623,18 @@ DeveloperToolbar.prototype._stopErrorsCo
  */
 DeveloperToolbar.prototype.destroy = function () {
   if (this._input == null) {
     // Already destroyed
     return;
   }
 
   let tabbrowser = this._chromeWindow.gBrowser;
-  tabbrowser.tabContainer.removeEventListener("TabSelect", this, false);
-  tabbrowser.tabContainer.removeEventListener("TabClose", this, false);
+  tabbrowser.tabContainer.removeEventListener("TabSelect", this);
+  tabbrowser.tabContainer.removeEventListener("TabClose", this);
   tabbrowser.removeEventListener("load", this, true);
   tabbrowser.removeEventListener("beforeunload", this, true);
 
   gDevTools.off("toolbox-ready", this._onToolboxReady);
   gDevTools.off("toolbox-destroyed", this._onToolboxDestroyed);
 
   Array.prototype.forEach.call(tabbrowser.tabs, this._stopErrorsCount, this);
 
--- a/devtools/client/shared/inplace-editor.js
+++ b/devtools/client/shared/inplace-editor.js
@@ -154,17 +154,17 @@ function editableItem(options, callback)
     if (evt.target.nodeName !== "a") {
       let win = this.ownerDocument.defaultView;
       let selection = win.getSelection();
       if (trigger != "click" || selection.isCollapsed) {
         callback(element, evt);
       }
       evt.stopPropagation();
     }
-  }, false);
+  });
 
   // If focused by means other than a click, start editing by
   // pressing enter or space.
   element.addEventListener("keypress", function (evt) {
     if (isKeyIn(evt.keyCode, "RETURN") || isKeyIn(evt.charCode, "SPACE")) {
       callback(element);
     }
   }, true);
@@ -172,24 +172,24 @@ function editableItem(options, callback)
   // Ugly workaround - the element is focused on mousedown but
   // the editor is activated on click/mouseup.  This leads
   // to an ugly flash of the focus ring before showing the editor.
   // So hide the focus ring while the mouse is down.
   element.addEventListener("mousedown", function (evt) {
     if (evt.target.nodeName !== "a") {
       let cleanup = function () {
         element.style.removeProperty("outline-style");
-        element.removeEventListener("mouseup", cleanup, false);
-        element.removeEventListener("mouseout", cleanup, false);
+        element.removeEventListener("mouseup", cleanup);
+        element.removeEventListener("mouseout", cleanup);
       };
       element.style.setProperty("outline-style", "none");
-      element.addEventListener("mouseup", cleanup, false);
-      element.addEventListener("mouseout", cleanup, false);
+      element.addEventListener("mouseup", cleanup);
+      element.addEventListener("mouseout", cleanup);
     }
-  }, false);
+  });
 
   // Mark the element editable field for tab
   // navigation while editing.
   element._editable = true;
 
   // Save the trigger type so we can dispatch this later
   element._trigger = trigger;
 
@@ -283,29 +283,29 @@ function InplaceEditor(options, event) {
   if (typeof options.selectAll == "undefined" || options.selectAll) {
     this.input.select();
   }
 
   if (this.contentType == CONTENT_TYPES.CSS_VALUE && this.input.value == "") {
     this._maybeSuggestCompletion(false);
   }
 
-  this.input.addEventListener("blur", this._onBlur, false);
-  this.input.addEventListener("keypress", this._onKeyPress, false);
-  this.input.addEventListener("input", this._onInput, false);
-  this.input.addEventListener("dblclick", this._stopEventPropagation, false);
-  this.input.addEventListener("click", this._stopEventPropagation, false);
-  this.input.addEventListener("mousedown", this._stopEventPropagation, false);
-  this.input.addEventListener("contextmenu", this._onContextMenu, false);
-  this.doc.defaultView.addEventListener("blur", this._onWindowBlur, false);
+  this.input.addEventListener("blur", this._onBlur);
+  this.input.addEventListener("keypress", this._onKeyPress);
+  this.input.addEventListener("input", this._onInput);
+  this.input.addEventListener("dblclick", this._stopEventPropagation);
+  this.input.addEventListener("click", this._stopEventPropagation);
+  this.input.addEventListener("mousedown", this._stopEventPropagation);
+  this.input.addEventListener("contextmenu", this._onContextMenu);
+  this.doc.defaultView.addEventListener("blur", this._onWindowBlur);
 
   this.validate = options.validate;
 
   if (this.validate) {
-    this.input.addEventListener("keyup", this._onKeyup, false);
+    this.input.addEventListener("keyup", this._onKeyup);
   }
 
   this._updateSize();
 
   EventEmitter.decorate(this);
 
   if (options.start) {
     options.start(this, event);
@@ -345,25 +345,25 @@ InplaceEditor.prototype = {
    * Get rid of the editor.
    */
   _clear: function () {
     if (!this.input) {
       // Already cleared.
       return;
     }
 
-    this.input.removeEventListener("blur", this._onBlur, false);
-    this.input.removeEventListener("keypress", this._onKeyPress, false);
-    this.input.removeEventListener("keyup", this._onKeyup, false);
-    this.input.removeEventListener("input", this._onInput, false);
-    this.input.removeEventListener("dblclick", this._stopEventPropagation, false);
-    this.input.removeEventListener("click", this._stopEventPropagation, false);
-    this.input.removeEventListener("mousedown", this._stopEventPropagation, false);
-    this.input.removeEventListener("contextmenu", this._onContextMenu, false);
-    this.doc.defaultView.removeEventListener("blur", this._onWindowBlur, false);
+    this.input.removeEventListener("blur", this._onBlur);
+    this.input.removeEventListener("keypress", this._onKeyPress);
+    this.input.removeEventListener("keyup", this._onKeyup);
+    this.input.removeEventListener("input", this._onInput);
+    this.input.removeEventListener("dblclick", this._stopEventPropagation);
+    this.input.removeEventListener("click", this._stopEventPropagation);
+    this.input.removeEventListener("mousedown", this._stopEventPropagation);
+    this.input.removeEventListener("contextmenu", this._onContextMenu);
+    this.doc.defaultView.removeEventListener("blur", this._onWindowBlur);
 
     this._stopAutosize();
 
     this.elt.style.display = this.originalDisplay;
 
     if (this.doc.activeElement == this.input) {
       this.elt.focus();
     }
--- a/devtools/client/shared/output-parser.js
+++ b/devtools/client/shared/output-parser.js
@@ -354,27 +354,27 @@ OutputParser.prototype = {
       "data-angle": angle
     });
 
     if (options.angleSwatchClass) {
       let swatch = this._createNode("span", {
         class: options.angleSwatchClass
       });
       this.angleSwatches.set(swatch, angleObj);
-      swatch.addEventListener("mousedown", this._onAngleSwatchMouseDown, false);
+      swatch.addEventListener("mousedown", this._onAngleSwatchMouseDown);
 
       // Add click listener to stop event propagation when shift key is pressed
       // in order to prevent the value input to be focused.
       // Bug 711942 will add a tooltip to edit angle values and we should
       // be able to move this listener to Tooltip.js when it'll be implemented.
       swatch.addEventListener("click", function (event) {
         if (event.shiftKey) {
           event.stopPropagation();
         }
-      }, false);
+      });
       EventEmitter.decorate(swatch);
       container.appendChild(swatch);
     }
 
     let value = this._createNode("span", {
       class: options.angleClass
     }, angle);
 
@@ -422,18 +422,17 @@ OutputParser.prototype = {
       });
 
       if (options.colorSwatchClass) {
         let swatch = this._createNode("span", {
           class: options.colorSwatchClass,
           style: "background-color:" + color
         });
         this.colorSwatches.set(swatch, colorObj);
-        swatch.addEventListener("mousedown", this._onColorSwatchMouseDown,
-                                false);
+        swatch.addEventListener("mousedown", this._onColorSwatchMouseDown);
         EventEmitter.decorate(swatch);
         container.appendChild(swatch);
       }
 
       if (options.defaultColorType) {
         color = colorObj.toString();
         container.dataset.colorĀ = color;
       }
--- a/devtools/client/shared/test/browser_mdn-docs-01.js
+++ b/devtools/client/shared/test/browser_mdn-docs-01.js
@@ -141,17 +141,17 @@ function checkLinkClick(link) {
     gBrowser.tabContainer.removeEventListener("TabOpen", newTabListener);
     let tab = e.target;
     BrowserTestUtils.browserLoaded(tab.linkedBrowser, false, url => url != "about:blank")
       .then(url => loadListener(tab));
   }
 
   let deferred = defer();
   info("Check that clicking the link opens a new tab with the correct URI");
-  gBrowser.tabContainer.addEventListener("TabOpen", newTabListener, false);
+  gBrowser.tabContainer.addEventListener("TabOpen", newTabListener);
   info("Click the link to MDN");
   link.click();
   return deferred.promise;
 }
 
 /**
  * Utility function to check content of the tooltip.
  */
--- a/devtools/client/shared/test/browser_tableWidget_keyboard_interaction.js
+++ b/devtools/client/shared/test/browser_tableWidget_keyboard_interaction.js
@@ -23,17 +23,17 @@ const {TableWidget} = require("devtools/
 
 var doc, table;
 
 function test() {
   waitForExplicitFinish();
   let win = Services.ww.openWindow(null, TEST_URI, "_blank", TEST_OPT, null);
 
   win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
 
     waitForFocus(function () {
       doc = win.document;
       table = new TableWidget(doc.querySelector("box"), {
         initialColumns: {
           col1: "Column 1",
           col2: "Column 2",
           col3: "Column 3",
--- a/devtools/client/shared/test/browser_tableWidget_mouse_interaction.js
+++ b/devtools/client/shared/test/browser_tableWidget_mouse_interaction.js
@@ -23,17 +23,17 @@ const {TableWidget} = require("devtools/
 
 var doc, table;
 
 function test() {
   waitForExplicitFinish();
   let win = Services.ww.openWindow(null, TEST_URI, "_blank", TEST_OPT, null);
 
   win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
 
     waitForFocus(function () {
       doc = win.document;
       table = new TableWidget(doc.querySelector("box"), {
         initialColumns: {
           col1: "Column 1",
           col2: "Column 2",
           col3: "Column 3",
--- a/devtools/client/shared/test/browser_telemetry_button_scratchpad.js
+++ b/devtools/client/shared/test/browser_telemetry_button_scratchpad.js
@@ -38,17 +38,17 @@ function trackScratchpadWindows() {
 
   let numScratchpads = 0;
 
   return new Promise(resolve => {
     Services.ww.registerNotification(function observer(subject, topic) {
       if (topic == "domwindowopened") {
         let win = subject.QueryInterface(Ci.nsIDOMWindow);
         win.addEventListener("load", function onLoad() {
-          win.removeEventListener("load", onLoad, false);
+          win.removeEventListener("load", onLoad);
 
           if (win.Scratchpad) {
             win.Scratchpad.addObserver({
               onReady: function () {
                 win.Scratchpad.removeObserver(this);
                 numScratchpads++;
                 win.close();
 
@@ -58,17 +58,17 @@ function trackScratchpadWindows() {
                 if (numScratchpads === 4) {
                   Services.ww.unregisterNotification(observer);
                   info("4 scratchpads have been opened and closed, checking results");
                   resolve();
                 }
               },
             });
           }
-        }, false);
+        });
       }
     });
   });
 }
 
 function* testButton(toolbox, Telemetry) {
   info("Testing command-button-scratchpad");
   let button = toolbox.doc.querySelector("#command-button-scratchpad");
--- a/devtools/client/shared/widgets/BreadcrumbsWidget.jsm
+++ b/devtools/client/shared/widgets/BreadcrumbsWidget.jsm
@@ -33,26 +33,26 @@ this.BreadcrumbsWidget = function Breadc
 
   // Create an internal arrowscrollbox container.
   this._list = this.document.createElement("arrowscrollbox");
   this._list.className = "breadcrumbs-widget-container";
   this._list.setAttribute("flex", "1");
   this._list.setAttribute("orient", "horizontal");
   this._list.setAttribute("clicktoscroll", "true");
   this._list.setAttribute("smoothscroll", !!aOptions.smoothScroll);
-  this._list.addEventListener("keypress", e => this.emit("keyPress", e), false);
-  this._list.addEventListener("mousedown", e => this.emit("mousePress", e), false);
+  this._list.addEventListener("keypress", e => this.emit("keyPress", e));
+  this._list.addEventListener("mousedown", e => this.emit("mousePress", e));
   this._parent.appendChild(this._list);
 
   // By default, hide the arrows. We let the arrowscrollbox show them
   // in case of overflow.
   this._list._scrollButtonUp.collapsed = true;
   this._list._scrollButtonDown.collapsed = true;
-  this._list.addEventListener("underflow", this._onUnderflow.bind(this), false);
-  this._list.addEventListener("overflow", this._onOverflow.bind(this), false);
+  this._list.addEventListener("underflow", this._onUnderflow.bind(this));
+  this._list.addEventListener("overflow", this._onOverflow.bind(this));
 
   // This widget emits events that can be handled in a MenuContainer.
   EventEmitter.decorate(this);
 
   // Delegate some of the associated node's methods to satisfy the interface
   // required by MenuContainer instances.
   ViewHelpers.delegateWidgetAttributeMethods(this, aNode);
   ViewHelpers.delegateWidgetEventMethods(this, aNode);
--- a/devtools/client/shared/widgets/FastListWidget.js
+++ b/devtools/client/shared/widgets/FastListWidget.js
@@ -27,19 +27,18 @@ const FastListWidget = module.exports = 
   this._templateElement = this.document.createElement("hbox");
 
   // Create an internal scrollbox container.
   this._list = this.document.createElement("scrollbox");
   this._list.className = "fast-list-widget-container theme-body";
   this._list.setAttribute("flex", "1");
   this._list.setAttribute("orient", "vertical");
   this._list.setAttribute("tabindex", "0");
-  this._list.addEventListener("keypress", e => this.emit("keyPress", e), false);
-  this._list.addEventListener("mousedown", e => this.emit("mousePress", e),
-                              false);
+  this._list.addEventListener("keypress", e => this.emit("keyPress", e));
+  this._list.addEventListener("mousedown", e => this.emit("mousePress", e));
   this._parent.appendChild(this._list);
 
   this._orderedMenuElementsArray = [];
   this._itemsByElement = new Map();
 
   // This widget emits events that can be handled in a MenuContainer.
   EventEmitter.decorate(this);
 
--- a/devtools/client/shared/widgets/MdnDocsWidget.js
+++ b/devtools/client/shared/widgets/MdnDocsWidget.js
@@ -159,18 +159,18 @@ exports.appendSyntaxHighlightedCSS = app
  * The promise is rejected with an error message if
  * we could not load the page.
  */
 function getMdnPage(pageUrl) {
   let deferred = defer();
 
   let xhr = new XMLHttpRequest();
 
-  xhr.addEventListener("load", onLoaded, false);
-  xhr.addEventListener("error", onError, false);
+  xhr.addEventListener("load", onLoaded);
+  xhr.addEventListener("error", onError);
 
   xhr.open("GET", pageUrl);
   xhr.responseType = "document";
   xhr.send();
 
   function onLoaded(e) {
     if (xhr.status != 200) {
       deferred.reject({page: pageUrl, status: xhr.status});
--- a/devtools/client/shared/widgets/SideMenuWidget.jsm
+++ b/devtools/client/shared/widgets/SideMenuWidget.jsm
@@ -51,19 +51,19 @@ this.SideMenuWidget = function SideMenuW
   this._list = this.document.createElement("scrollbox");
   this._list.className = "side-menu-widget-container theme-sidebar";
   this._list.setAttribute("flex", "1");
   this._list.setAttribute("orient", "vertical");
   this._list.setAttribute("with-arrows", this._showArrows);
   this._list.setAttribute("with-item-checkboxes", this._showItemCheckboxes);
   this._list.setAttribute("with-group-checkboxes", this._showGroupCheckboxes);
   this._list.setAttribute("tabindex", "0");
-  this._list.addEventListener("contextmenu", e => this._showContextMenu(e), false);
-  this._list.addEventListener("keypress", e => this.emit("keyPress", e), false);
-  this._list.addEventListener("mousedown", e => this.emit("mousePress", e), false);
+  this._list.addEventListener("contextmenu", e => this._showContextMenu(e));
+  this._list.addEventListener("keypress", e => this.emit("keyPress", e));
+  this._list.addEventListener("mousedown", e => this.emit("mousePress", e));
   this._parent.appendChild(this._list);
 
   // Menu items can optionally be grouped.
   this._groupsByName = new Map(); // Can't use a WeakMap because keys are strings.
   this._orderedGroupElementsArray = [];
   this._orderedMenuElementsArray = [];
   this._itemsByElement = new Map();
 
@@ -704,22 +704,22 @@ function makeCheckbox(aParentNode, aOpti
     checkbox.setAttribute("checked", true);
   } else {
     checkbox.removeAttribute("checked");
   }
 
   // Stop the toggling of the checkbox from selecting the list item.
   checkbox.addEventListener("mousedown", e => {
     e.stopPropagation();
-  }, false);
+  });
 
   // Emit an event from the checkbox when it is toggled. Don't listen for the
   // "command" event! It won't fire for programmatic changes. XUL!!
   checkbox.addEventListener("CheckboxStateChange", e => {
     ViewHelpers.dispatchEvent(checkbox, "check", {
       description: aOptions.description || "item",
       checked: checkbox.checked
     });
-  }, false);
+  });
 
   aParentNode.appendChild(checkbox);
   return checkbox;
 }
--- a/devtools/client/shared/widgets/Spectrum.js
+++ b/devtools/client/shared/widgets/Spectrum.js
@@ -56,17 +56,17 @@ function Spectrum(parentEl, rgb) {
     <div class="spectrum-alpha spectrum-checker spectrum-box">
       <div class="spectrum-alpha-inner">
         <div class="spectrum-alpha-handle spectrum-slider-control"></div>
       </div>
     </div>
   `;
 
   this.onElementClick = this.onElementClick.bind(this);
-  this.element.addEventListener("click", this.onElementClick, false);
+  this.element.addEventListener("click", this.onElementClick);
 
   this.parentEl.appendChild(this.element);
 
   this.slider = this.element.querySelector(".spectrum-hue");
   this.slideHelper = this.element.querySelector(".spectrum-slider");
   Spectrum.draggable(this.slider, this.onSliderMove.bind(this));
 
   this.dragger = this.element.querySelector(".spectrum-color");
@@ -173,38 +173,38 @@ Spectrum.draggable = function (element, 
         dragging = true;
         maxHeight = element.offsetHeight;
         maxWidth = element.offsetWidth;
 
         offset = element.getBoundingClientRect();
 
         move(e);
 
-        doc.addEventListener("selectstart", prevent, false);
-        doc.addEventListener("dragstart", prevent, false);
-        doc.addEventListener("mousemove", move, false);
-        doc.addEventListener("mouseup", stop, false);
+        doc.addEventListener("selectstart", prevent);
+        doc.addEventListener("dragstart", prevent);
+        doc.addEventListener("mousemove", move);
+        doc.addEventListener("mouseup", stop);
 
         prevent(e);
       }
     }
   }
 
   function stop() {
     if (dragging) {
-      doc.removeEventListener("selectstart", prevent, false);
-      doc.removeEventListener("dragstart", prevent, false);
-      doc.removeEventListener("mousemove", move, false);
-      doc.removeEventListener("mouseup", stop, false);
+      doc.removeEventListener("selectstart", prevent);
+      doc.removeEventListener("dragstart", prevent);
+      doc.removeEventListener("mousemove", move);
+      doc.removeEventListener("mouseup", stop);
       onstop.apply(element, arguments);
     }
     dragging = false;
   }
 
-  element.addEventListener("mousedown", start, false);
+  element.addEventListener("mousedown", start);
 };
 
 Spectrum.prototype = {
   set rgb(color) {
     this.hsv = Spectrum.rgbToHsv(color[0], color[1], color[2], color[3]);
   },
 
   get rgb() {
@@ -318,17 +318,17 @@ Spectrum.prototype = {
     let rgbNoAlpha = "rgb(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + ")";
     let rgbAlpha0 = "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + ", 0)";
     let alphaGradient = "linear-gradient(to right, " + rgbAlpha0 + ", " +
       rgbNoAlpha + ")";
     this.alphaSliderInner.style.background = alphaGradient;
   },
 
   destroy: function () {
-    this.element.removeEventListener("click", this.onElementClick, false);
+    this.element.removeEventListener("click", this.onElementClick);
 
     this.parentEl.removeChild(this.element);
 
     this.slider = null;
     this.dragger = null;
     this.alphaSlider = this.alphaSliderInner = this.alphaSliderHelper = null;
     this.parentEl = null;
     this.element = null;
--- a/devtools/client/shared/widgets/TableWidget.js
+++ b/devtools/client/shared/widgets/TableWidget.js
@@ -111,18 +111,18 @@ function TableWidget(node, options = {})
 
   this.onChange = this.onChange.bind(this);
   this.onEditorDestroyed = this.onEditorDestroyed.bind(this);
   this.onEditorTab = this.onEditorTab.bind(this);
   this.onKeydown = this.onKeydown.bind(this);
   this.onMousedown = this.onMousedown.bind(this);
   this.onRowRemoved = this.onRowRemoved.bind(this);
 
-  this.document.addEventListener("keydown", this.onKeydown, false);
-  this.document.addEventListener("mousedown", this.onMousedown, false);
+  this.document.addEventListener("keydown", this.onKeydown);
+  this.document.addEventListener("mousedown", this.onMousedown);
 }
 
 TableWidget.prototype = {
 
   items: null,
 
   /**
    * Getter for the headers context menu popup id.
@@ -564,18 +564,18 @@ TableWidget.prototype = {
       this.emit(EVENTS.FIELDS_EDITABLE, this._editableFieldsEngine);
     }
   },
 
   destroy: function () {
     this.off(EVENTS.ROW_SELECTED, this.bindSelectedRow);
     this.off(EVENTS.ROW_REMOVED, this.onRowRemoved);
 
-    this.document.removeEventListener("keydown", this.onKeydown, false);
-    this.document.removeEventListener("mousedown", this.onMousedown, false);
+    this.document.removeEventListener("keydown", this.onKeydown);
+    this.document.removeEventListener("mousedown", this.onMousedown);
 
     if (this._editableFieldsEngine) {
       this.off(EVENTS.TABLE_CLEARED, this._editableFieldsEngine.cancelEdit);
       this._editableFieldsEngine.off("change", this.onChange);
       this._editableFieldsEngine.off("destroyed", this.onEditorDestroyed);
       this._editableFieldsEngine.destroy();
       this._editableFieldsEngine = null;
     }
@@ -1502,17 +1502,17 @@ function Cell(column, item, nextCell) {
   }
 
   if (column.table.cellContextMenuId) {
     this.label.setAttribute("context", column.table.cellContextMenuId);
     this.label.addEventListener("contextmenu", (event) => {
       // Make the ID of the clicked cell available as a property on the table.
       // It's then available for the popupshowing or command handler.
       column.table.contextMenuRowId = this.id;
-    }, false);
+    });
   }
 
   this.value = item[column.id];
   this.id = item[column.uniqueId];
 }
 
 Cell.prototype = {
 
--- a/devtools/client/shared/widgets/VariablesView.jsm
+++ b/devtools/client/shared/widgets/VariablesView.jsm
@@ -85,18 +85,18 @@ this.VariablesView = function VariablesV
   this._onSearchboxInput = this._onSearchboxInput.bind(this);
   this._onSearchboxKeyPress = this._onSearchboxKeyPress.bind(this);
   this._onViewKeyPress = this._onViewKeyPress.bind(this);
   this._onViewKeyDown = this._onViewKeyDown.bind(this);
 
   // Create an internal scrollbox container.
   this._list = this.document.createElement("scrollbox");
   this._list.setAttribute("orient", "vertical");
-  this._list.addEventListener("keypress", this._onViewKeyPress, false);
-  this._list.addEventListener("keydown", this._onViewKeyDown, false);
+  this._list.addEventListener("keypress", this._onViewKeyPress);
+  this._list.addEventListener("keydown", this._onViewKeyDown);
   this._parent.appendChild(this._list);
 
   for (let name in aFlags) {
     this[name] = aFlags[name];
   }
 
   EventEmitter.decorate(this);
 };
@@ -189,20 +189,20 @@ VariablesView.prototype = {
    * @see VariablesView.empty
    * @see VariablesView.commitHierarchy
    */
   _emptySoon: function (aTimeout) {
     let prevList = this._list;
     let currList = this._list = this.document.createElement("scrollbox");
 
     this.window.setTimeout(() => {
-      prevList.removeEventListener("keypress", this._onViewKeyPress, false);
-      prevList.removeEventListener("keydown", this._onViewKeyDown, false);
-      currList.addEventListener("keypress", this._onViewKeyPress, false);
-      currList.addEventListener("keydown", this._onViewKeyDown, false);
+      prevList.removeEventListener("keypress", this._onViewKeyPress);
+      prevList.removeEventListener("keydown", this._onViewKeyDown);
+      currList.addEventListener("keypress", this._onViewKeyPress);
+      currList.addEventListener("keydown", this._onViewKeyDown);
       currList.setAttribute("orient", "vertical");
 
       this._parent.removeChild(prevList);
       this._parent.appendChild(currList);
 
       if (!this._store.length) {
         this._appendEmptyNotice();
         this._toggleSearchVisibility(false);
@@ -453,35 +453,35 @@ VariablesView.prototype = {
     // properties to display.
     container.hidden = !this._store.length;
 
     let searchbox = this._searchboxNode = document.createElement("textbox");
     searchbox.className = "variables-view-searchinput devtools-filterinput";
     searchbox.setAttribute("placeholder", this._searchboxPlaceholder);
     searchbox.setAttribute("type", "search");
     searchbox.setAttribute("flex", "1");
-    searchbox.addEventListener("command", this._onSearchboxInput, false);
-    searchbox.addEventListener("keypress", this._onSearchboxKeyPress, false);
+    searchbox.addEventListener("command", this._onSearchboxInput);
+    searchbox.addEventListener("keypress", this._onSearchboxKeyPress);
 
     container.appendChild(searchbox);
     ownerNode.insertBefore(container, this._parent);
   },
 
   /**
    * Disables variable and property searching in this view.
    * Use the "searchEnabled" setter to disable searching.
    */
   _disableSearch: function () {
     // If searching was already disabled, no need to re-disable it again.
     if (!this._searchboxContainer) {
       return;
     }
     this._searchboxContainer.remove();
-    this._searchboxNode.removeEventListener("command", this._onSearchboxInput, false);
-    this._searchboxNode.removeEventListener("keypress", this._onSearchboxKeyPress, false);
+    this._searchboxNode.removeEventListener("command", this._onSearchboxInput);
+    this._searchboxNode.removeEventListener("keypress", this._onSearchboxKeyPress);
 
     this._searchboxContainer = null;
     this._searchboxNode = null;
   },
 
   /**
    * Sets the variables searchbox container hidden or visible.
    * It's hidden by default.
@@ -1837,17 +1837,17 @@ Scope.prototype = {
     element.appendChild(enumerable);
     element.appendChild(nonenum);
   },
 
   /**
    * Adds the necessary event listeners for this scope.
    */
   _addEventListeners: function () {
-    this._title.addEventListener("mousedown", this._onClick, false);
+    this._title.addEventListener("mousedown", this._onClick);
   },
 
   /**
    * The click listener for this scope's title.
    */
   _onClick: function (e) {
     if (this.editing ||
         e.button != 0 ||
@@ -2216,19 +2216,19 @@ Variable.prototype = Heritage.extend(Sco
   },
 
   /**
    * Remove this Variable from its parent and remove all children recursively.
    */
   remove: function () {
     if (this._linkedToInspector) {
       this.unhighlightDomNode();
-      this._valueLabel.removeEventListener("mouseover", this.highlightDomNode, false);
-      this._valueLabel.removeEventListener("mouseout", this.unhighlightDomNode, false);
-      this._openInspectorNode.removeEventListener("mousedown", this.openNodeInInspector, false);
+      this._valueLabel.removeEventListener("mouseover", this.highlightDomNode);
+      this._valueLabel.removeEventListener("mouseout", this.unhighlightDomNode);
+      this._openInspectorNode.removeEventListener("mousedown", this.openNodeInInspector);
     }
 
     this.ownerView._store.delete(this._nameString);
     this._variablesView._itemsByElement.delete(this._target);
     this._variablesView._currHierarchy.delete(this.absoluteName);
 
     this._target.remove();
 
@@ -2611,31 +2611,31 @@ Variable.prototype = Heritage.extend(Sco
    */
   _customizeVariable: function () {
     let ownerView = this.ownerView;
     let descriptor = this._initialDescriptor;
 
     if (ownerView.eval && this.getter || this.setter) {
       let editNode = this._editNode = this.document.createElement("toolbarbutton");
       editNode.className = "plain variables-view-edit";
-      editNode.addEventListener("mousedown", this._onEdit.bind(this), false);
+      editNode.addEventListener("mousedown", this._onEdit.bind(this));
       this._title.insertBefore(editNode, this._spacer);
     }
 
     if (ownerView.delete) {
       let deleteNode = this._deleteNode = this.document.createElement("toolbarbutton");
       deleteNode.className = "plain variables-view-delete";
-      deleteNode.addEventListener("click", this._onDelete.bind(this), false);
+      deleteNode.addEventListener("click", this._onDelete.bind(this));
       this._title.appendChild(deleteNode);
     }
 
     if (ownerView.new) {
       let addPropertyNode = this._addPropertyNode = this.document.createElement("toolbarbutton");
       addPropertyNode.className = "plain variables-view-add-property";
-      addPropertyNode.addEventListener("mousedown", this._onAddProperty.bind(this), false);
+      addPropertyNode.addEventListener("mousedown", this._onAddProperty.bind(this));
       this._title.appendChild(addPropertyNode);
 
       // Can't add properties to primitive values, hide the node in those cases.
       if (VariablesView.isPrimitive(descriptor)) {
         addPropertyNode.setAttribute("invisible", "");
       }
     }
 
@@ -2677,24 +2677,24 @@ Variable.prototype = Heritage.extend(Sco
       }
     }
   },
 
   /**
    * Prepares all tooltips for this variable.
    */
   _prepareTooltips: function () {
-    this._target.addEventListener("mouseover", this._setTooltips, false);
+    this._target.addEventListener("mouseover", this._setTooltips);
   },
 
   /**
    * Sets all tooltips for this variable.
    */
   _setTooltips: function () {
-    this._target.removeEventListener("mouseover", this._setTooltips, false);
+    this._target.removeEventListener("mouseover", this._setTooltips);
 
     let ownerView = this.ownerView;
     if (ownerView.preventDescriptorModifiers) {
       return;
     }
 
     let tooltip = this.document.createElement("tooltip");
     tooltip.id = "tooltip-" + this._idString;
@@ -2756,23 +2756,23 @@ Variable.prototype = Heritage.extend(Sco
    * inspector (highlight on hover, and jump to markup-view on click)
    */
   _linkToInspector: function () {
     if (!this._isLinkableToInspector()) {
       return;
     }
 
     // Listen to value mouseover/click events to highlight and jump
-    this._valueLabel.addEventListener("mouseover", this.highlightDomNode, false);
-    this._valueLabel.addEventListener("mouseout", this.unhighlightDomNode, false);
+    this._valueLabel.addEventListener("mouseover", this.highlightDomNode);
+    this._valueLabel.addEventListener("mouseout", this.unhighlightDomNode);
 
     // Add a button to open the node in the inspector
     this._openInspectorNode = this.document.createElement("toolbarbutton");
     this._openInspectorNode.className = "plain variables-view-open-inspector";
-    this._openInspectorNode.addEventListener("mousedown", this.openNodeInInspector, false);
+    this._openInspectorNode.addEventListener("mousedown", this.openNodeInInspector);
     this._title.appendChild(this._openInspectorNode);
 
     this._linkedToInspector = true;
   },
 
   /**
    * In case this variable is a DOMNode and part of a variablesview that has been
    * linked to the toolbox's inspector, then select the corresponding node in
@@ -2900,19 +2900,19 @@ Variable.prototype = Heritage.extend(Sco
       target.setAttribute("pseudo-item", "");
     }
   },
 
   /**
    * Adds the necessary event listeners for this variable.
    */
   _addEventListeners: function () {
-    this._name.addEventListener("dblclick", this._activateNameInput, false);
-    this._valueLabel.addEventListener("mousedown", this._activateValueInput, false);
-    this._title.addEventListener("mousedown", this._onClick, false);
+    this._name.addEventListener("dblclick", this._activateNameInput);
+    this._valueLabel.addEventListener("mousedown", this._activateValueInput);
+    this._title.addEventListener("mousedown", this._onClick);
   },
 
   /**
    * Makes this variable's name editable.
    */
   _activateNameInput: function (e) {
     if (!this._variablesView.alignedValues) {
       this._separatorLabel.hidden = true;
--- a/devtools/client/shared/widgets/VariablesViewController.jsm
+++ b/devtools/client/shared/widgets/VariablesViewController.jsm
@@ -571,17 +571,17 @@ VariablesViewController.prototype = {
     }
 
     // Make sure that properties are always available on expansion.
     aTarget.onexpand = () => this.populate(aTarget, aSource);
 
     // Some variables are likely to contain a very large number of properties.
     // It's a good idea to be prepared in case of an expansion.
     if (aTarget.shouldPrefetch) {
-      aTarget.addEventListener("mouseover", aTarget.onexpand, false);
+      aTarget.addEventListener("mouseover", aTarget.onexpand);
     }
 
     // Register all the actors that this controller now depends on.
     for (let grip of [aTarget.value, aTarget.getter, aTarget.setter]) {
       if (WebConsoleUtils.isActorGrip(grip)) {
         this._actors.add(grip.actor);
       }
     }
--- a/devtools/client/shared/widgets/tooltip/SwatchBasedEditorTooltip.js
+++ b/devtools/client/shared/widgets/tooltip/SwatchBasedEditorTooltip.js
@@ -130,26 +130,26 @@ SwatchBasedEditorTooltip.prototype = {
     }
     if (!callbacks.onCommit) {
       callbacks.onCommit = function () {};
     }
 
     this.swatches.set(swatchEl, {
       callbacks: callbacks
     });
-    swatchEl.addEventListener("click", this._onSwatchClick, false);
+    swatchEl.addEventListener("click", this._onSwatchClick);
   },
 
   removeSwatch: function (swatchEl) {
     if (this.swatches.has(swatchEl)) {
       if (this.activeSwatch === swatchEl) {
         this.hide();
         this.activeSwatch = null;
       }
-      swatchEl.removeEventListener("click", this._onSwatchClick, false);
+      swatchEl.removeEventListener("click", this._onSwatchClick);
       this.swatches.delete(swatchEl);
     }
   },
 
   _onSwatchClick: function (event) {
     let swatch = this.swatches.get(event.target);
 
     if (event.shiftKey) {
--- a/devtools/client/shared/widgets/tooltip/Tooltip.js
+++ b/devtools/client/shared/widgets/tooltip/Tooltip.js
@@ -114,34 +114,34 @@ function Tooltip(doc, {
     this["_onPopup" + eventName] = (name => {
       return e => {
         if (e.target === this.panel) {
           this.emit(name);
         }
       };
     })(eventName);
     this.panel.addEventListener("popup" + eventName,
-      this["_onPopup" + eventName], false);
+      this["_onPopup" + eventName]);
   }
 
   // Listen to keypress events to close the tooltip if configured to do so
   let win = this.doc.querySelector("window");
   this._onKeyPress = event => {
     if (this.panel.hidden) {
       return;
     }
 
     this.emit("keypress", event.keyCode);
     if (this.closeOnKeys.indexOf(event.keyCode) !== -1 &&
         this.isShown()) {
       event.stopPropagation();
       this.hide();
     }
   };
-  win.addEventListener("keypress", this._onKeyPress, false);
+  win.addEventListener("keypress", this._onKeyPress);
 
   // Listen to custom emitters' events to close the tooltip
   this.hide = this.hide.bind(this);
   for (let {emitter, event, useCapture} of this.closeOnEvents) {
     for (let add of ["addEventListener", "on"]) {
       if (add in emitter) {
         emitter[add](event, this.hide, useCapture);
         break;
@@ -224,21 +224,21 @@ Tooltip.prototype = {
   /**
    * Get rid of references and event listeners
    */
   destroy: function () {
     this.hide();
 
     for (let eventName of POPUP_EVENTS) {
       this.panel.removeEventListener("popup" + eventName,
-        this["_onPopup" + eventName], false);
+        this["_onPopup" + eventName]);
     }
 
     let win = this.doc.querySelector("window");
-    win.removeEventListener("keypress", this._onKeyPress, false);
+    win.removeEventListener("keypress", this._onKeyPress);
 
     for (let {emitter, event, useCapture} of this.closeOnEvents) {
       for (let remove of ["removeEventListener", "off"]) {
         if (remove in emitter) {
           emitter[remove](event, this.hide, useCapture);
           break;
         }
       }
--- a/devtools/client/sourceeditor/editor.js
+++ b/devtools/client/sourceeditor/editor.js
@@ -376,17 +376,17 @@ Editor.prototype = {
 
       let popup = this.config.contextMenu;
       if (typeof popup == "string") {
         popup = doc.getElementById(this.config.contextMenu);
       }
 
       this.emit("popupOpen", ev, popup);
       popup.openPopupAtScreen(ev.screenX, ev.screenY, true);
-    }, false);
+    });
 
     cm.on("focus", () => this.emit("focus"));
     cm.on("scroll", () => this.emit("scroll"));
     cm.on("change", () => {
       this.emit("change");
       if (!this._lastDirty) {
         this._lastDirty = true;
         this.emit("dirty-change");
--- a/devtools/client/sourceeditor/test/head.js
+++ b/devtools/client/sourceeditor/test/head.js
@@ -46,33 +46,33 @@ function setup(cb, additionalOpts = {}) 
     cssProperties: getClientCssProperties()
   };
 
   for (let o in additionalOpts) {
     opts[o] = additionalOpts[o];
   }
 
   win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
+    win.removeEventListener("load", onLoad);
 
     waitForFocus(function () {
       let box = win.document.querySelector("box");
       let editor = new Editor(opts);
 
       editor.appendTo(box)
         .then(() => {
           def.resolve({
             ed: editor,
             win: win,
             edWin: editor.container.contentWindow.wrappedJSObject
           });
           cb(editor, win);
         }, err => ok(false, err.message));
     }, win);
-  }, false);
+  });
 
   return def.promise;
 }
 
 function ch(exp, act, label) {
   is(exp.line, act.line, label + " (line)");
   is(exp.ch, act.ch, label + " (ch)");
 }
--- a/devtools/client/styleeditor/StyleEditorUI.jsm
+++ b/devtools/client/styleeditor/StyleEditorUI.jsm
@@ -548,24 +548,24 @@ StyleEditorUI.prototype = {
 
           createdEditor.saveToFile(createdEditor.savedFile);
         });
 
         this._updateSummaryForEditor(createdEditor, summary);
 
         summary.addEventListener("contextmenu", () => {
           this._contextMenuStyleSheet = createdEditor.styleSheet;
-        }, false);
+        });
 
         summary.addEventListener("focus", function onSummaryFocus(event) {
           if (event.target == summary) {
             // autofocus the stylesheet name
             summary.querySelector(".stylesheet-name").focus();
           }
-        }, false);
+        });
 
         let sidebar = details.querySelector(".stylesheet-sidebar");
         sidebar.setAttribute("width",
             Services.prefs.getIntPref(PREF_SIDEBAR_WIDTH));
 
         let splitter = details.querySelector(".devtools-side-splitter");
         splitter.addEventListener("mousemove", () => {
           let sidebarWidth = sidebar.getAttribute("width");
--- a/devtools/client/styleeditor/StyleEditorUtil.jsm
+++ b/devtools/client/styleeditor/StyleEditorUtil.jsm
@@ -153,17 +153,17 @@ function wire(root, selectorOrElement, d
 
   if (typeof descriptor == "function") {
     descriptor = {events: {click: descriptor}};
   }
 
   for (let i = 0; i < matches.length; i++) {
     let element = matches[i];
     forEach(descriptor.events, function (name, handler) {
-      element.addEventListener(name, handler, false);
+      element.addEventListener(name, handler);
     });
     forEach(descriptor.attributes, element.setAttribute);
   }
 }
 
 /**
  * Show file picker and return the file user selected.
  *
--- a/devtools/client/styleeditor/test/browser_styleeditor_bug_851132_middle_click.js
+++ b/devtools/client/styleeditor/test/browser_styleeditor_bug_851132_middle_click.js
@@ -4,17 +4,17 @@
 
 // Test that middle click on style sheet doesn't open styleeditor.xul in a new
 // tab (bug 851132).
 
 const TESTCASE_URI = TEST_BASE_HTTP + "four.html";
 
 add_task(function* () {
   let { ui } = yield openStyleEditorForURL(TESTCASE_URI);
-  gBrowser.tabContainer.addEventListener("TabOpen", onTabAdded, false);
+  gBrowser.tabContainer.addEventListener("TabOpen", onTabAdded);
 
   yield ui.editors[0].getSourceEditor();
   info("first editor selected");
 
   info("Left-clicking on the second editor link.");
   yield clickOnStyleSheetLink(ui.editors[1], 0);
 
   info("Waiting for the second editor to be selected.");
@@ -47,10 +47,10 @@ function* clickOnStyleSheetLink(editor, 
   EventUtils.synthesizeMouseAtCenter(link, { button }, window);
 }
 
 function onTabAdded() {
   ok(false, "middle mouse click has opened a new tab");
 }
 
 registerCleanupFunction(function () {
-  gBrowser.tabContainer.removeEventListener("TabOpen", onTabAdded, false);
+  gBrowser.tabContainer.removeEventListener("TabOpen", onTabAdded);
 });
--- a/devtools/client/webaudioeditor/test/head.js
+++ b/devtools/client/webaudioeditor/test/head.js
@@ -85,20 +85,20 @@ function removeTab(aTab, aWindow) {
   info("Removing tab.");
 
   let deferred = Promise.defer();
   let targetWindow = aWindow || window;
   let targetBrowser = targetWindow.gBrowser;
   let tabContainer = targetBrowser.tabContainer;
 
   tabContainer.addEventListener("TabClose", function onClose(aEvent) {
-    tabContainer.removeEventListener("TabClose", onClose, false);
+    tabContainer.removeEventListener("TabClose", onClose);
     info("Tab removed and finished closing.");
     deferred.resolve();
-  }, false);
+  });
 
   targetBrowser.removeTab(aTab);
   return deferred.promise;
 }
 
 function once(aTarget, aEventName, aUseCapture = false) {
   info("Waiting for event: '" + aEventName + "' on " + aTarget + ".");
 
--- a/devtools/client/webaudioeditor/views/context.js
+++ b/devtools/client/webaudioeditor/views/context.js
@@ -45,33 +45,33 @@ var ContextView = {
    */
   initialize: function () {
     this._onGraphClick = this._onGraphClick.bind(this);
     this._onThemeChange = this._onThemeChange.bind(this);
     this._onStartContext = this._onStartContext.bind(this);
     this._onEvent = this._onEvent.bind(this);
 
     this.draw = debounce(this.draw.bind(this), GRAPH_DEBOUNCE_TIMER);
-    $("#graph-target").addEventListener("click", this._onGraphClick, false);
+    $("#graph-target").addEventListener("click", this._onGraphClick);
 
     window.on(EVENTS.THEME_CHANGE, this._onThemeChange);
     window.on(EVENTS.START_CONTEXT, this._onStartContext);
     gAudioNodes.on("*", this._onEvent);
   },
 
   /**
    * Destruction function, called when the tool is closed.
    */
   destroy: function () {
     // If the graph was rendered at all, then the handler
     // for zooming in will be set. We must remove it to prevent leaks.
     if (this._zoomBinding) {
       this._zoomBinding.on("zoom", null);
     }
-    $("#graph-target").removeEventListener("click", this._onGraphClick, false);
+    $("#graph-target").removeEventListener("click", this._onGraphClick);
 
     window.off(EVENTS.THEME_CHANGE, this._onThemeChange);
     window.off(EVENTS.START_CONTEXT, this._onStartContext);
     gAudioNodes.off("*", this._onEvent);
   },
 
   /**
    * Called when a page is reloaded and waiting for a "start-context" event
--- a/devtools/client/webaudioeditor/views/utils.js
+++ b/devtools/client/webaudioeditor/views/utils.js
@@ -36,17 +36,17 @@ function findGraphNodeParent(el) {
  * visibility options.
  * - `_animated`
  * - `_delayed`
  */
 var ToggleMixin = {
 
   bindToggle: function () {
     this._onToggle = this._onToggle.bind(this);
-    this.button.addEventListener("mousedown", this._onToggle, false);
+    this.button.addEventListener("mousedown", this._onToggle);
   },
 
   unbindToggle: function () {
     this.button.removeEventListener("mousedown", this._onToggle);
   },
 
   show: function () {
     this._viewController({ visible: true });
--- a/devtools/client/webconsole/console-output.js
+++ b/devtools/client/webconsole/console-output.js
@@ -3203,19 +3203,19 @@ Widgets.ObjectRenderers.add({
 
     // Check it again as this method is async!
     if (this._linkedToInspector) {
       return;
     }
     this._linkedToInspector = true;
 
     this.highlightDomNode = this.highlightDomNode.bind(this);
-    this.element.addEventListener("mouseover", this.highlightDomNode, false);
+    this.element.addEventListener("mouseover", this.highlightDomNode);
     this.unhighlightDomNode = this.unhighlightDomNode.bind(this);
-    this.element.addEventListener("mouseout", this.unhighlightDomNode, false);
+    this.element.addEventListener("mouseout", this.unhighlightDomNode);
 
     this._openInspectorNode = this._anchor("", {
       className: "open-inspector",
       onClick: this.openNodeInInspector.bind(this)
     });
     this._openInspectorNode.title = l10n.getStr("openNodeInInspector");
   }),
 
@@ -3268,18 +3268,18 @@ Widgets.ObjectRenderers.add({
     } else {
       throw null;
     }
   }),
 
   destroy: function ()
   {
     if (this.toolbox && this._nodeFront) {
-      this.element.removeEventListener("mouseover", this.highlightDomNode, false);
-      this.element.removeEventListener("mouseout", this.unhighlightDomNode, false);
+      this.element.removeEventListener("mouseover", this.highlightDomNode);
+      this.element.removeEventListener("mouseout", this.unhighlightDomNode);
       this._openInspectorNode.removeEventListener("mousedown", this.openNodeInInspector, true);
 
       if (this._linkedToInspector) {
         this.unhighlightDomNode().then(() => {
           this.toolbox = null;
           this._nodeFront = null;
         });
       } else {
--- a/devtools/client/webconsole/jsterm.js
+++ b/devtools/client/webconsole/jsterm.js
@@ -266,25 +266,25 @@ JSTerm.prototype = {
         !Services.prefs.getBoolPref("devtools.chrome.enabled")) {
       inputContainer.style.display = "none";
     } else {
       let okstring = l10n.getStr("selfxss.okstring");
       let msg = l10n.getFormatStr("selfxss.msg", [okstring]);
       this._onPaste = WebConsoleUtils.pasteHandlerGen(
         this.inputNode, doc.getElementById("webconsole-notificationbox"),
         msg, okstring);
-      this.inputNode.addEventListener("keypress", this._keyPress, false);
+      this.inputNode.addEventListener("keypress", this._keyPress);
       this.inputNode.addEventListener("paste", this._onPaste);
       this.inputNode.addEventListener("drop", this._onPaste);
-      this.inputNode.addEventListener("input", this._inputEventHandler, false);
-      this.inputNode.addEventListener("keyup", this._inputEventHandler, false);
-      this.inputNode.addEventListener("focus", this._focusEventHandler, false);
+      this.inputNode.addEventListener("input", this._inputEventHandler);
+      this.inputNode.addEventListener("keyup", this._inputEventHandler);
+      this.inputNode.addEventListener("focus", this._focusEventHandler);
     }
 
-    this.hud.window.addEventListener("blur", this._blurEventHandler, false);
+    this.hud.window.addEventListener("blur", this._blurEventHandler);
     this.lastInputValue && this.setInputValue(this.lastInputValue);
   },
 
   focus: function () {
     if (!this.inputNode.getAttribute("focused")) {
       this.inputNode.focus();
     }
   },
@@ -1710,26 +1710,26 @@ JSTerm.prototype = {
 
     this.clearCompletion();
     this.clearOutput();
 
     this.autocompletePopup.destroy();
     this.autocompletePopup = null;
 
     if (this._onPaste) {
-      this.inputNode.removeEventListener("paste", this._onPaste, false);
-      this.inputNode.removeEventListener("drop", this._onPaste, false);
+      this.inputNode.removeEventListener("paste", this._onPaste);
+      this.inputNode.removeEventListener("drop", this._onPaste);
       this._onPaste = null;
     }
 
-    this.inputNode.removeEventListener("keypress", this._keyPress, false);
-    this.inputNode.removeEventListener("input", this._inputEventHandler, false);
-    this.inputNode.removeEventListener("keyup", this._inputEventHandler, false);
-    this.inputNode.removeEventListener("focus", this._focusEventHandler, false);
-    this.hud.window.removeEventListener("blur", this._blurEventHandler, false);
+    this.inputNode.removeEventListener("keypress", this._keyPress);
+    this.inputNode.removeEventListener("input", this._inputEventHandler);
+    this.inputNode.removeEventListener("keyup", this._inputEventHandler);
+    this.inputNode.removeEventListener("focus", this._focusEventHandler);
+    this.hud.window.removeEventListener("blur", this._blurEventHandler);
 
     this.hud = null;
   },
 };
 
 function gSequenceId() {
   return gSequenceId.n++;
 }
--- a/devtools/client/webconsole/new-console-output/test/mochitest/test-location-debugger-link-console-log.js
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/test-location-debugger-link-console-log.js
@@ -4,9 +4,9 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 function onLoad123() {
   console.log("Blah Blah");
 }
 
-window.addEventListener("load", onLoad123, false);
+window.addEventListener("load", onLoad123);
--- a/devtools/client/webconsole/new-console-output/test/mochitest/test-location-debugger-link-errors.js
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/test-location-debugger-link-errors.js
@@ -2,9 +2,9 @@
 /* vim: set ft=javascript ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 window.addEventListener("load", function () {
   document.bar();
-}, false);
+});
--- a/devtools/client/webconsole/test/browser_webconsole_bug_578437_page_reload.js
+++ b/devtools/client/webconsole/test/browser_webconsole_bug_578437_page_reload.js
@@ -12,25 +12,25 @@ const TEST_URI = "http://example.com/bro
 
 var browser;
 
 function test() {
   loadTab(TEST_URI).then(() => {
     openConsole().then((tab) => {
       browser = tab.browser;
 
-      browser.addEventListener("DOMContentLoaded", testPageReload, false);
+      browser.addEventListener("DOMContentLoaded", testPageReload);
       content.location.reload();
     });
   });
-  browser.addEventListener("DOMContentLoaded", onLoad, false);
+  browser.addEventListener("DOMContentLoaded", onLoad);
 }
 
 function testPageReload() {
-  browser.removeEventListener("DOMContentLoaded", testPageReload, false);
+  browser.removeEventListener("DOMContentLoaded", testPageReload);
 
   let console = browser.contentWindow.wrappedJSObject.console;
 
   is(typeof console, "object", "window.console is an object, after page reload");
   is(typeof console.log, "function", "console.log is a function");
   is(typeof console.info, "function", "console.info is a function");
   is(typeof console.warn, "function", "console.warn is a function");
   is(typeof console.error, "function", "console.error is a function");
--- a/devtools/client/webconsole/test/browser_webconsole_bug_580001_closing_after_completion.js
+++ b/devtools/client/webconsole/test/browser_webconsole_bug_580001_closing_after_completion.js
@@ -21,23 +21,23 @@ add_task(function* () {
 function testClosingAfterCompletion(hud, browser) {
   let deferred = promise.defer();
 
   let errorWhileClosing = false;
   function errorListener() {
     errorWhileClosing = true;
   }
 
-  browser.addEventListener("error", errorListener, false);
+  browser.addEventListener("error", errorListener);
 
   // Focus the jsterm and perform the keycombo to close the WebConsole.
   hud.jsterm.focus();
 
   gDevTools.once("toolbox-destroyed", function () {
-    browser.removeEventListener("error", errorListener, false);
+    browser.removeEventListener("error", errorListener);
     is(errorWhileClosing, false, "no error while closing the WebConsole");
     deferred.resolve();
   });
 
   if (Services.appinfo.OS == "Darwin") {
     EventUtils.synthesizeKey("i", { accelKey: true, altKey: true });
   } else {
     EventUtils.synthesizeKey("i", { accelKey: true, shiftKey: true });
--- a/devtools/client/webconsole/test/browser_webconsole_bug_597136_network_requests_from_chrome.js
+++ b/devtools/client/webconsole/test/browser_webconsole_bug_597136_network_requests_from_chrome.js
@@ -26,23 +26,23 @@ var xhr;
 
 function test() {
   Services.console.registerListener(listener);
 
   // trigger a lazy-load of the HUD Service
   HUDService;
 
   xhr = new XMLHttpRequest();
-  xhr.addEventListener("load", xhrComplete, false);
+  xhr.addEventListener("load", xhrComplete);
   xhr.open("GET", TEST_URI, true);
   xhr.send(null);
 }
 
 function xhrComplete() {
-  xhr.removeEventListener("load", xhrComplete, false);
+  xhr.removeEventListener("load", xhrComplete);
   window.setTimeout(checkForException, 0);
 }
 
 function checkForException() {
   ok(good, "no exception was thrown when sending a network request from a " +
      "chrome window");
 
   Services.console.unregisterListener(listener);
--- a/devtools/client/webconsole/test/test-bug-595934-canvas-css.js
+++ b/devtools/client/webconsole/test/test-bug-595934-canvas-css.js
@@ -2,9 +2,9 @@
 /* vim: set ft=javascript ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 window.addEventListener("DOMContentLoaded", function () {
   var canvas = document.querySelector("canvas");
   var context = canvas.getContext("2d");
   context.strokeStyle = "foobarCanvasCssParser";
-}, false);
+});
--- a/devtools/client/webconsole/test/test-bug-595934-empty-getelementbyid.js
+++ b/devtools/clien