Bug 1472491: Part 5δ - Add UnselectedTabHoverChild actor. r=mconley draft
authorKris Maglione <maglione.k@gmail.com>
Mon, 30 Jul 2018 10:11:41 -0700
changeset 828465 9d3e9ff2a60aa01ac44ef6b66b4e8d06011fe617
parent 828464 bb638221f8681760e78f06b70ed14066f049b1f8
child 828466 43731b34415fe16f23b0582fc24165faa7f1aa1a
push id118680
push usermaglione.k@gmail.com
push dateFri, 10 Aug 2018 23:04:22 +0000
reviewersmconley
bugs1472491
milestone63.0a1
Bug 1472491: Part 5δ - Add UnselectedTabHoverChild actor. r=mconley MozReview-Commit-ID: JYAYb8NshrW
toolkit/actors/UnselectedTabHoverChild.jsm
toolkit/actors/moz.build
toolkit/content/browser-content.js
toolkit/modules/ActorManagerParent.jsm
new file mode 100644
--- /dev/null
+++ b/toolkit/actors/UnselectedTabHoverChild.jsm
@@ -0,0 +1,22 @@
+/* vim: set ts=2 sw=2 sts=2 et tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+var EXPORTED_SYMBOLS = ["UnselectedTabHoverChild"];
+
+ChromeUtils.import("resource://gre/modules/ActorChild.jsm");
+ChromeUtils.import("resource://gre/modules/Services.jsm");
+
+class UnselectedTabHoverChild extends ActorChild {
+  receiveMessage(message) {
+    Services.obs.notifyObservers(this.content, "unselected-tab-hover",
+                                 message.data.hovered);
+  }
+
+  handleEvent(event) {
+    this.mm.sendAsyncMessage("UnselectedTabHover:Toggle",
+                             { enable: event.type == "UnselectedTabHover:Enable" });
+  }
+}
--- a/toolkit/actors/moz.build
+++ b/toolkit/actors/moz.build
@@ -9,11 +9,12 @@ FINAL_TARGET_FILES.actors += [
     'DateTimePickerChild.jsm',
     'ExtFindChild.jsm',
     'FindBarChild.jsm',
     'PopupBlockingChild.jsm',
     'PrintingChild.jsm',
     'SelectChild.jsm',
     'SelectionSourceChild.jsm',
     'ThumbnailsChild.jsm',
+    'UnselectedTabHoverChild.jsm',
     'WebChannelChild.jsm',
     'ZoomChild.jsm',
 ]
--- a/toolkit/content/browser-content.js
+++ b/toolkit/content/browser-content.js
@@ -39,45 +39,16 @@ var AutoScrollListener = {
         this._controller = new AutoScrollController(global);
       }
       this._controller.handleEvent(event);
     }
   }
 };
 Services.els.addSystemEventListener(global, "mousedown", AutoScrollListener, true);
 
-var UnselectedTabHoverObserver = {
-  init() {
-    addMessageListener("Browser:UnselectedTabHover", this);
-    addEventListener("UnselectedTabHover:Enable", this);
-    addEventListener("UnselectedTabHover:Disable", this);
-    this.init = null;
-  },
-  receiveMessage(message) {
-    Services.obs.notifyObservers(content.window, "unselected-tab-hover",
-                                 message.data.hovered);
-  },
-  handleEvent(event) {
-    sendAsyncMessage("UnselectedTabHover:Toggle",
-                     { enable: event.type == "UnselectedTabHover:Enable" });
-  }
-};
-UnselectedTabHoverObserver.init();
-
-
-var AudibleAutoplayObserver = {
-  init() {
-    addEventListener("AudibleAutoplayMediaOccurred", this);
-  },
-  handleEvent(event) {
-    sendAsyncMessage("AudibleAutoplayMediaOccurred");
-  }
-};
-AudibleAutoplayObserver.init();
-
 addMessageListener("Browser:PurgeSessionHistory", function BrowserPurgeHistory() {
   let sessionHistory = docShell.QueryInterface(Ci.nsIWebNavigation).sessionHistory;
   if (!sessionHistory) {
     return;
   }
 
   // place the entry at current index at the end of the history list, so it won't get removed
   if (sessionHistory.index < sessionHistory.count - 1) {
--- a/toolkit/modules/ActorManagerParent.jsm
+++ b/toolkit/modules/ActorManagerParent.jsm
@@ -191,16 +191,29 @@ let ACTORS = {
       messages: [
         "Browser:Thumbnail:Request",
         "Browser:Thumbnail:CheckState",
         "Browser:Thumbnail:GetOriginalURL",
       ],
     },
   },
 
+  UnselectedTabHover: {
+    child: {
+      module: "resource://gre/actors/UnselectedTabHoverChild.jsm",
+      events: {
+        "UnselectedTabHover:Enable": {},
+        "UnselectedTabHover:Disable": {},
+      },
+      messages: [
+        "Browser:UnselectedTabHover",
+      ],
+    },
+  },
+
   WebChannel: {
     child: {
       module: "resource://gre/actors/WebChannelChild.jsm",
       events: {
         "WebChannelMessageToChrome": {capture: true, wantUntrusted: true},
       },
       messages: [
         "WebChannelMessageToContent",