Bug 1472491: Part 5δ - Add UnselectedTabHoverChild actor. r=mconley
MozReview-Commit-ID: JYAYb8NshrW
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",