Bug 1472491: Part 5f - Add ClickHandlerChild actor. r=felipe draft
authorKris Maglione <maglione.k@gmail.com>
Sun, 29 Jul 2018 20:11:22 -0700
changeset 828441 b40de2621073026c626b676c67bfa12862b2cd6d
parent 828440 593304ce7f6e43e7ae4126e138e4e84945491547
child 828442 b09cc5f25d9d7ee1e03b16d17acaaf0e8ff3fb9a
push id118680
push usermaglione.k@gmail.com
push dateFri, 10 Aug 2018 23:04:22 +0000
reviewersfelipe
bugs1472491
milestone63.0a1
Bug 1472491: Part 5f - Add ClickHandlerChild actor. r=felipe MozReview-Commit-ID: 881jtz6qDCa
browser/actors/ClickHandlerChild.jsm
browser/actors/moz.build
browser/base/content/content.js
browser/components/nsBrowserGlue.js
browser/modules/ClickEventHandler.jsm
browser/modules/moz.build
rename from browser/modules/ClickEventHandler.jsm
rename to browser/actors/ClickHandlerChild.jsm
--- a/browser/modules/ClickEventHandler.jsm
+++ b/browser/actors/ClickHandlerChild.jsm
@@ -1,33 +1,30 @@
 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-var EXPORTED_SYMBOLS = ["ClickEventHandler"];
+var EXPORTED_SYMBOLS = ["ClickHandlerChild"];
 
+ChromeUtils.import("resource://gre/modules/ActorChild.jsm");
 ChromeUtils.import("resource://gre/modules/Services.jsm");
 
 ChromeUtils.defineModuleGetter(this, "BlockedSiteContent",
                                "resource:///modules/BlockedSiteContent.jsm");
 ChromeUtils.defineModuleGetter(this, "BrowserUtils",
                                "resource://gre/modules/BrowserUtils.jsm");
 ChromeUtils.defineModuleGetter(this, "NetErrorContent",
                                "resource:///modules/NetErrorContent.jsm");
 ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils",
                                "resource://gre/modules/PrivateBrowsingUtils.jsm");
 ChromeUtils.defineModuleGetter(this, "WebNavigationFrames",
                                "resource://gre/modules/WebNavigationFrames.jsm");
 
-class ClickEventHandler {
-  constructor(mm) {
-    this.mm = mm;
-  }
-
+class ClickHandlerChild extends ActorChild {
   handleEvent(event) {
     if (!event.isTrusted || event.defaultPrevented || event.button == 2) {
       return;
     }
 
     let originalTarget = event.originalTarget;
     let ownerDoc = originalTarget.ownerDocument;
     if (!ownerDoc) {
--- a/browser/actors/moz.build
+++ b/browser/actors/moz.build
@@ -5,12 +5,13 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 with Files("PageStyleChild.jsm"):
     BUG_COMPONENT = ("Firefox", "Menus")
 
 FINAL_TARGET_FILES.actors += [
     'AboutReaderChild.jsm',
     'BrowserTabChild.jsm',
+    'ClickHandlerChild.jsm',
     'ContentSearchChild.jsm',
     'ContextMenuChild.jsm',
     'PageStyleChild.jsm',
 ]
--- a/browser/base/content/content.js
+++ b/browser/base/content/content.js
@@ -25,22 +25,16 @@ XPCOMUtils.defineLazyModuleGetters(this,
   PluginContent: "resource:///modules/PluginContent.jsm",
   FormSubmitObserver: "resource:///modules/FormSubmitObserver.jsm",
   NetErrorContent: "resource:///modules/NetErrorContent.jsm",
   PageMetadata: "resource://gre/modules/PageMetadata.jsm",
   WebNavigationFrames: "resource://gre/modules/WebNavigationFrames.jsm",
   ContextMenuChild: "resource:///modules/ContextMenuChild.jsm",
 });
 
-XPCOMUtils.defineLazyProxy(this, "ClickEventHandler", () => {
-  let tmp = {};
-  ChromeUtils.import("resource:///modules/ClickEventHandler.jsm", tmp);
-  return new tmp.ClickEventHandler(global);
-});
-
 XPCOMUtils.defineLazyGetter(this, "LoginManagerContent", () => {
   let tmp = {};
   ChromeUtils.import("resource://gre/modules/LoginManagerContent.jsm", tmp);
   tmp.LoginManagerContent.setupEventListeners(global);
   return tmp.LoginManagerContent;
 });
 
 XPCOMUtils.defineLazyProxy(this, "formSubmitObserver", () => {
@@ -164,18 +158,16 @@ this.AboutNetAndCertErrorListener = {
       return;
     }
 
     NetErrorContent.handleEvent(global, aEvent);
   },
 };
 AboutNetAndCertErrorListener.init(this);
 
-Services.els.addSystemEventListener(global, "click", ClickEventHandler, true);
-
 new ContentLinkHandler(this);
 ContentMetaHandler.init(this);
 
 var PluginContentStub = {
   EVENTS: [
     "PluginCrashed",
     "PluginOutdated",
     "PluginInstantiated",
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -48,16 +48,26 @@ let ACTORS = {
         "Browser:Reload",
         "MixedContent:ReenableProtection",
         "SwitchDocumentDirection",
         "UpdateCharacterSet",
       ],
     },
   },
 
+  ClickHandler: {
+    child: {
+      module: "resource:///actors/ClickHandlerChild.jsm",
+      group: "browsers",
+      events: {
+        "click": {capture: true, mozSystemGroup: true},
+      }
+    },
+  },
+
   ContextMenu: {
     child: {
       module: "resource:///actors/ContextMenuChild.jsm",
       events: {
         "contextmenu": {mozSystemGroup: true},
       },
     },
   },
--- a/browser/modules/moz.build
+++ b/browser/modules/moz.build
@@ -130,17 +130,16 @@ XPCSHELL_TESTS_MANIFESTS += ['test/unit/
 
 EXTRA_JS_MODULES += [
     'AboutNewTab.jsm',
     'AsyncTabSwitcher.jsm',
     'BlockedSiteContent.jsm',
     'BrowserErrorReporter.jsm',
     'BrowserUsageTelemetry.jsm',
     'BrowserWindowTracker.jsm',
-    'ClickEventHandler.jsm',
     'ContentClick.jsm',
     'ContentCrashHandlers.jsm',
     'ContentLinkHandler.jsm',
     'ContentMetaHandler.jsm',
     'ContentObservers.js',
     'ContentSearch.jsm',
     'ContentWebRTC.jsm',
     'ExtensionsUI.jsm',