Bug 1203330 Part 2 Convert EventManager uses to SingletonEventManager r=kmag
MozReview-Commit-ID: A12TPwAYzTS
This commit is contained in:
@@ -18,7 +18,7 @@ Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
|||||||
Cu.import("resource://gre/modules/Task.jsm");
|
Cu.import("resource://gre/modules/Task.jsm");
|
||||||
|
|
||||||
var {
|
var {
|
||||||
EventManager,
|
SingletonEventManager,
|
||||||
IconDetails,
|
IconDetails,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
@@ -446,10 +446,10 @@ extensions.registerSchemaAPI("browserAction", "addon_parent", context => {
|
|||||||
let {extension} = context;
|
let {extension} = context;
|
||||||
return {
|
return {
|
||||||
browserAction: {
|
browserAction: {
|
||||||
onClicked: new EventManager(context, "browserAction.onClicked", fire => {
|
onClicked: new SingletonEventManager(context, "browserAction.onClicked", fire => {
|
||||||
let listener = () => {
|
let listener = () => {
|
||||||
let tab = TabManager.activeTab;
|
let tab = TabManager.activeTab;
|
||||||
fire(TabManager.convert(extension, tab));
|
fire.async(TabManager.convert(extension, tab));
|
||||||
};
|
};
|
||||||
BrowserAction.for(extension).on("click", listener);
|
BrowserAction.for(extension).on("click", listener);
|
||||||
return () => {
|
return () => {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ Cu.import("resource://devtools/shared/event-emitter.js");
|
|||||||
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
||||||
|
|
||||||
var {
|
var {
|
||||||
EventManager,
|
SingletonEventManager,
|
||||||
PlatformInfo,
|
PlatformInfo,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
@@ -245,9 +245,9 @@ extensions.registerSchemaAPI("commands", "addon_parent", context => {
|
|||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
onCommand: new EventManager(context, "commands.onCommand", fire => {
|
onCommand: new SingletonEventManager(context, "commands.onCommand", fire => {
|
||||||
let listener = (eventName, commandName) => {
|
let listener = (eventName, commandName) => {
|
||||||
fire(commandName);
|
fire.async(commandName);
|
||||||
};
|
};
|
||||||
commandsMap.get(extension).on("command", listener);
|
commandsMap.get(extension).on("command", listener);
|
||||||
return () => {
|
return () => {
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ Cu.import("resource://gre/modules/Services.jsm");
|
|||||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||||
|
|
||||||
var {
|
var {
|
||||||
EventManager,
|
|
||||||
ExtensionError,
|
ExtensionError,
|
||||||
IconDetails,
|
IconDetails,
|
||||||
|
SingletonEventManager,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
const ACTION_MENU_TOP_LEVEL_LIMIT = 6;
|
const ACTION_MENU_TOP_LEVEL_LIMIT = 6;
|
||||||
@@ -625,9 +625,9 @@ extensions.registerSchemaAPI("contextMenus", "addon_parent", context => {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onClicked: new EventManager(context, "contextMenus.onClicked", fire => {
|
onClicked: new SingletonEventManager(context, "contextMenus.onClicked", fire => {
|
||||||
let listener = (event, info, tab) => {
|
let listener = (event, info, tab) => {
|
||||||
fire(info, tab);
|
fire.async(info, tab);
|
||||||
};
|
};
|
||||||
|
|
||||||
extension.on("webext-contextmenu-menuitem-click", listener);
|
extension.on("webext-contextmenu-menuitem-click", listener);
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
Cu.import("resource://gre/modules/Task.jsm");
|
Cu.import("resource://gre/modules/Task.jsm");
|
||||||
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
||||||
var {
|
var {
|
||||||
EventManager,
|
SingletonEventManager,
|
||||||
IconDetails,
|
IconDetails,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
@@ -244,9 +244,9 @@ extensions.registerSchemaAPI("pageAction", "addon_parent", context => {
|
|||||||
let {extension} = context;
|
let {extension} = context;
|
||||||
return {
|
return {
|
||||||
pageAction: {
|
pageAction: {
|
||||||
onClicked: new EventManager(context, "pageAction.onClicked", fire => {
|
onClicked: new SingletonEventManager(context, "pageAction.onClicked", fire => {
|
||||||
let listener = (evt, tab) => {
|
let listener = (evt, tab) => {
|
||||||
fire(TabManager.convert(extension, tab));
|
fire.async(TabManager.convert(extension, tab));
|
||||||
};
|
};
|
||||||
let pageAction = PageAction.for(extension);
|
let pageAction = PageAction.for(extension);
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "Services",
|
|||||||
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
||||||
|
|
||||||
var {
|
var {
|
||||||
EventManager,
|
SingletonEventManager,
|
||||||
ignoreEvent,
|
ignoreEvent,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
@@ -283,12 +283,12 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
let tab = event.originalTarget;
|
let tab = event.originalTarget;
|
||||||
let tabId = TabManager.getId(tab);
|
let tabId = TabManager.getId(tab);
|
||||||
let windowId = WindowManager.getId(tab.ownerGlobal);
|
let windowId = WindowManager.getId(tab.ownerGlobal);
|
||||||
fire({tabId, windowId});
|
fire.async({tabId, windowId});
|
||||||
}).api(),
|
}).api(),
|
||||||
|
|
||||||
onCreated: new EventManager(context, "tabs.onCreated", fire => {
|
onCreated: new SingletonEventManager(context, "tabs.onCreated", fire => {
|
||||||
let listener = (eventName, event) => {
|
let listener = (eventName, event) => {
|
||||||
fire(TabManager.convert(extension, event.tab));
|
fire.async(TabManager.convert(extension, event.tab));
|
||||||
};
|
};
|
||||||
|
|
||||||
tabListener.on("tab-created", listener);
|
tabListener.on("tab-created", listener);
|
||||||
@@ -307,12 +307,12 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
let tab = event.originalTarget;
|
let tab = event.originalTarget;
|
||||||
let tabIds = [TabManager.getId(tab)];
|
let tabIds = [TabManager.getId(tab)];
|
||||||
let windowId = WindowManager.getId(tab.ownerGlobal);
|
let windowId = WindowManager.getId(tab.ownerGlobal);
|
||||||
fire({tabIds, windowId});
|
fire.async({tabIds, windowId});
|
||||||
}).api(),
|
}).api(),
|
||||||
|
|
||||||
onAttached: new EventManager(context, "tabs.onAttached", fire => {
|
onAttached: new SingletonEventManager(context, "tabs.onAttached", fire => {
|
||||||
let listener = (eventName, event) => {
|
let listener = (eventName, event) => {
|
||||||
fire(event.tabId, {newWindowId: event.newWindowId, newPosition: event.newPosition});
|
fire.async(event.tabId, {newWindowId: event.newWindowId, newPosition: event.newPosition});
|
||||||
};
|
};
|
||||||
|
|
||||||
tabListener.on("tab-attached", listener);
|
tabListener.on("tab-attached", listener);
|
||||||
@@ -321,9 +321,9 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
};
|
};
|
||||||
}).api(),
|
}).api(),
|
||||||
|
|
||||||
onDetached: new EventManager(context, "tabs.onDetached", fire => {
|
onDetached: new SingletonEventManager(context, "tabs.onDetached", fire => {
|
||||||
let listener = (eventName, event) => {
|
let listener = (eventName, event) => {
|
||||||
fire(event.tabId, {oldWindowId: event.oldWindowId, oldPosition: event.oldPosition});
|
fire.async(event.tabId, {oldWindowId: event.oldWindowId, oldPosition: event.oldPosition});
|
||||||
};
|
};
|
||||||
|
|
||||||
tabListener.on("tab-detached", listener);
|
tabListener.on("tab-detached", listener);
|
||||||
@@ -332,9 +332,9 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
};
|
};
|
||||||
}).api(),
|
}).api(),
|
||||||
|
|
||||||
onRemoved: new EventManager(context, "tabs.onRemoved", fire => {
|
onRemoved: new SingletonEventManager(context, "tabs.onRemoved", fire => {
|
||||||
let listener = (eventName, event) => {
|
let listener = (eventName, event) => {
|
||||||
fire(event.tabId, {windowId: event.windowId, isWindowClosing: event.isWindowClosing});
|
fire.async(event.tabId, {windowId: event.windowId, isWindowClosing: event.isWindowClosing});
|
||||||
};
|
};
|
||||||
|
|
||||||
tabListener.on("tab-removed", listener);
|
tabListener.on("tab-removed", listener);
|
||||||
@@ -345,7 +345,7 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
|
|
||||||
onReplaced: ignoreEvent(context, "tabs.onReplaced"),
|
onReplaced: ignoreEvent(context, "tabs.onReplaced"),
|
||||||
|
|
||||||
onMoved: new EventManager(context, "tabs.onMoved", fire => {
|
onMoved: new SingletonEventManager(context, "tabs.onMoved", fire => {
|
||||||
// There are certain circumstances where we need to ignore a move event.
|
// There are certain circumstances where we need to ignore a move event.
|
||||||
//
|
//
|
||||||
// Namely, the first time the tab is moved after it's created, we need
|
// Namely, the first time the tab is moved after it's created, we need
|
||||||
@@ -373,7 +373,7 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fire(TabManager.getId(tab), {
|
fire.async(TabManager.getId(tab), {
|
||||||
windowId: WindowManager.getId(tab.ownerGlobal),
|
windowId: WindowManager.getId(tab.ownerGlobal),
|
||||||
fromIndex: event.detail,
|
fromIndex: event.detail,
|
||||||
toIndex: tab._tPos,
|
toIndex: tab._tPos,
|
||||||
@@ -388,7 +388,7 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
};
|
};
|
||||||
}).api(),
|
}).api(),
|
||||||
|
|
||||||
onUpdated: new EventManager(context, "tabs.onUpdated", fire => {
|
onUpdated: new SingletonEventManager(context, "tabs.onUpdated", fire => {
|
||||||
const restricted = ["url", "favIconUrl", "title"];
|
const restricted = ["url", "favIconUrl", "title"];
|
||||||
|
|
||||||
function sanitize(extension, changeInfo) {
|
function sanitize(extension, changeInfo) {
|
||||||
@@ -410,7 +410,7 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
let tabElem = gBrowser.getTabForBrowser(browser);
|
let tabElem = gBrowser.getTabForBrowser(browser);
|
||||||
|
|
||||||
let tab = TabManager.convert(extension, tabElem);
|
let tab = TabManager.convert(extension, tabElem);
|
||||||
fire(tab.id, changeInfo, tab);
|
fire.async(tab.id, changeInfo, tab);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -447,7 +447,7 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
for (let prop of needed) {
|
for (let prop of needed) {
|
||||||
changeInfo[prop] = tab[prop];
|
changeInfo[prop] = tab[prop];
|
||||||
}
|
}
|
||||||
fire(tab.id, changeInfo, tab);
|
fire.async(tab.id, changeInfo, tab);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let progressListener = {
|
let progressListener = {
|
||||||
@@ -1025,7 +1025,7 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
},
|
},
|
||||||
|
|
||||||
onZoomChange: new EventManager(context, "tabs.onZoomChange", fire => {
|
onZoomChange: new SingletonEventManager(context, "tabs.onZoomChange", fire => {
|
||||||
let getZoomLevel = browser => {
|
let getZoomLevel = browser => {
|
||||||
let {ZoomManager} = browser.ownerGlobal;
|
let {ZoomManager} = browser.ownerGlobal;
|
||||||
|
|
||||||
@@ -1075,7 +1075,7 @@ extensions.registerSchemaAPI("tabs", "addon_parent", context => {
|
|||||||
zoomLevels.set(browser, newZoomFactor);
|
zoomLevels.set(browser, newZoomFactor);
|
||||||
|
|
||||||
let tabId = TabManager.getId(tab);
|
let tabId = TabManager.getId(tab);
|
||||||
fire({
|
fire.async({
|
||||||
tabId,
|
tabId,
|
||||||
oldZoomFactor,
|
oldZoomFactor,
|
||||||
newZoomFactor,
|
newZoomFactor,
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
|||||||
|
|
||||||
var {
|
var {
|
||||||
DefaultWeakMap,
|
DefaultWeakMap,
|
||||||
EventManager,
|
|
||||||
promiseEvent,
|
promiseEvent,
|
||||||
|
SingletonEventManager,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
// This file provides some useful code for the |tabs| and |windows|
|
// This file provides some useful code for the |tabs| and |windows|
|
||||||
@@ -1281,16 +1281,16 @@ global.AllWindowEvents = {
|
|||||||
|
|
||||||
AllWindowEvents.openListener = AllWindowEvents.openListener.bind(AllWindowEvents);
|
AllWindowEvents.openListener = AllWindowEvents.openListener.bind(AllWindowEvents);
|
||||||
|
|
||||||
// Subclass of EventManager where we just need to call
|
// Subclass of SingletonEventManager where we just need to call
|
||||||
// add/removeEventListener on each XUL window.
|
// add/removeEventListener on each XUL window.
|
||||||
global.WindowEventManager = function(context, name, event, listener) {
|
global.WindowEventManager = class extends SingletonEventManager {
|
||||||
EventManager.call(this, context, name, fire => {
|
constructor(context, name, event, listener) {
|
||||||
let listener2 = (...args) => listener(fire, ...args);
|
super(context, name, fire => {
|
||||||
AllWindowEvents.addListener(event, listener2);
|
let listener2 = (...args) => listener(fire, ...args);
|
||||||
return () => {
|
AllWindowEvents.addListener(event, listener2);
|
||||||
AllWindowEvents.removeListener(event, listener2);
|
return () => {
|
||||||
};
|
AllWindowEvents.removeListener(event, listener2);
|
||||||
});
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
WindowEventManager.prototype = Object.create(EventManager.prototype);
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
|
|||||||
|
|
||||||
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
||||||
var {
|
var {
|
||||||
EventManager,
|
SingletonEventManager,
|
||||||
promiseObserved,
|
promiseObserved,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
@@ -26,15 +26,15 @@ extensions.registerSchemaAPI("windows", "addon_parent", context => {
|
|||||||
windows: {
|
windows: {
|
||||||
onCreated:
|
onCreated:
|
||||||
new WindowEventManager(context, "windows.onCreated", "domwindowopened", (fire, window) => {
|
new WindowEventManager(context, "windows.onCreated", "domwindowopened", (fire, window) => {
|
||||||
fire(WindowManager.convert(extension, window));
|
fire.async(WindowManager.convert(extension, window));
|
||||||
}).api(),
|
}).api(),
|
||||||
|
|
||||||
onRemoved:
|
onRemoved:
|
||||||
new WindowEventManager(context, "windows.onRemoved", "domwindowclosed", (fire, window) => {
|
new WindowEventManager(context, "windows.onRemoved", "domwindowclosed", (fire, window) => {
|
||||||
fire(WindowManager.getId(window));
|
fire.async(WindowManager.getId(window));
|
||||||
}).api(),
|
}).api(),
|
||||||
|
|
||||||
onFocusChanged: new EventManager(context, "windows.onFocusChanged", fire => {
|
onFocusChanged: new SingletonEventManager(context, "windows.onFocusChanged", fire => {
|
||||||
// Keep track of the last windowId used to fire an onFocusChanged event
|
// Keep track of the last windowId used to fire an onFocusChanged event
|
||||||
let lastOnFocusChangedWindowId;
|
let lastOnFocusChangedWindowId;
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ extensions.registerSchemaAPI("windows", "addon_parent", context => {
|
|||||||
let window = Services.focus.activeWindow;
|
let window = Services.focus.activeWindow;
|
||||||
let windowId = window ? WindowManager.getId(window) : WindowManager.WINDOW_ID_NONE;
|
let windowId = window ? WindowManager.getId(window) : WindowManager.WINDOW_ID_NONE;
|
||||||
if (windowId !== lastOnFocusChangedWindowId) {
|
if (windowId !== lastOnFocusChangedWindowId) {
|
||||||
fire(windowId);
|
fire.async(windowId);
|
||||||
lastOnFocusChangedWindowId = windowId;
|
lastOnFocusChangedWindowId = windowId;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
|||||||
|
|
||||||
const {
|
const {
|
||||||
DefaultMap,
|
DefaultMap,
|
||||||
EventManager,
|
|
||||||
SingletonEventManager,
|
SingletonEventManager,
|
||||||
SpreadArgs,
|
SpreadArgs,
|
||||||
defineLazyGetter,
|
defineLazyGetter,
|
||||||
@@ -119,17 +118,17 @@ class Port {
|
|||||||
this.postMessage(json);
|
this.postMessage(json);
|
||||||
},
|
},
|
||||||
|
|
||||||
onDisconnect: new EventManager(this.context, "Port.onDisconnect", fire => {
|
onDisconnect: new SingletonEventManager(this.context, "Port.onDisconnect", fire => {
|
||||||
return this.registerOnDisconnect(error => {
|
return this.registerOnDisconnect(error => {
|
||||||
portError = error && this.context.normalizeError(error);
|
portError = error && this.context.normalizeError(error);
|
||||||
fire.withoutClone(portObj);
|
fire.asyncWithoutClone(portObj);
|
||||||
});
|
});
|
||||||
}).api(),
|
}).api(),
|
||||||
|
|
||||||
onMessage: new EventManager(this.context, "Port.onMessage", fire => {
|
onMessage: new SingletonEventManager(this.context, "Port.onMessage", fire => {
|
||||||
return this.registerOnMessage(msg => {
|
return this.registerOnMessage(msg => {
|
||||||
msg = Cu.cloneInto(msg, this.context.cloneScope);
|
msg = Cu.cloneInto(msg, this.context.cloneScope);
|
||||||
fire.withoutClone(msg, portObj);
|
fire.asyncWithoutClone(msg, portObj);
|
||||||
});
|
});
|
||||||
}).api(),
|
}).api(),
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
|
|||||||
|
|
||||||
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
||||||
var {
|
var {
|
||||||
EventManager,
|
SingletonEventManager,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
// WeakMap[Extension -> Map[name -> Alarm]]
|
// WeakMap[Extension -> Map[name -> Alarm]]
|
||||||
@@ -140,9 +140,9 @@ extensions.registerSchemaAPI("alarms", "addon_parent", context => {
|
|||||||
return Promise.resolve(cleared);
|
return Promise.resolve(cleared);
|
||||||
},
|
},
|
||||||
|
|
||||||
onAlarm: new EventManager(context, "alarms.onAlarm", fire => {
|
onAlarm: new SingletonEventManager(context, "alarms.onAlarm", fire => {
|
||||||
let callback = alarm => {
|
let callback = alarm => {
|
||||||
fire(alarm.data);
|
fire.sync(alarm.data);
|
||||||
};
|
};
|
||||||
|
|
||||||
alarmCallbacksMap.get(extension).add(callback);
|
alarmCallbacksMap.get(extension).add(callback);
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "ContextualIdentityService",
|
|||||||
"resource://gre/modules/ContextualIdentityService.jsm");
|
"resource://gre/modules/ContextualIdentityService.jsm");
|
||||||
|
|
||||||
var {
|
var {
|
||||||
EventManager,
|
SingletonEventManager,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
var DEFAULT_STORE = "firefox-default";
|
var DEFAULT_STORE = "firefox-default";
|
||||||
@@ -438,13 +438,13 @@ extensions.registerSchemaAPI("cookies", "addon_parent", context => {
|
|||||||
return Promise.resolve(result);
|
return Promise.resolve(result);
|
||||||
},
|
},
|
||||||
|
|
||||||
onChanged: new EventManager(context, "cookies.onChanged", fire => {
|
onChanged: new SingletonEventManager(context, "cookies.onChanged", fire => {
|
||||||
let observer = (subject, topic, data) => {
|
let observer = (subject, topic, data) => {
|
||||||
let notify = (removed, cookie, cause) => {
|
let notify = (removed, cookie, cause) => {
|
||||||
cookie.QueryInterface(Ci.nsICookie2);
|
cookie.QueryInterface(Ci.nsICookie2);
|
||||||
|
|
||||||
if (extension.whiteListedHosts.matchesCookie(cookie)) {
|
if (extension.whiteListedHosts.matchesCookie(cookie)) {
|
||||||
fire({removed, cookie: convert({cookie, isPrivate: topic == "private-cookie-changed"}), cause});
|
fire.async({removed, cookie: convert({cookie, isPrivate: topic == "private-cookie-changed"}), cause});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "EventEmitter",
|
|||||||
"resource://devtools/shared/event-emitter.js");
|
"resource://devtools/shared/event-emitter.js");
|
||||||
|
|
||||||
var {
|
var {
|
||||||
EventManager,
|
SingletonEventManager,
|
||||||
ignoreEvent,
|
ignoreEvent,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
@@ -131,10 +131,10 @@ extensions.registerSchemaAPI("notifications", "addon_parent", context => {
|
|||||||
return Promise.resolve(result);
|
return Promise.resolve(result);
|
||||||
},
|
},
|
||||||
|
|
||||||
onClosed: new EventManager(context, "notifications.onClosed", fire => {
|
onClosed: new SingletonEventManager(context, "notifications.onClosed", fire => {
|
||||||
let listener = (event, notificationId) => {
|
let listener = (event, notificationId) => {
|
||||||
// FIXME: Support the byUser argument.
|
// FIXME: Support the byUser argument.
|
||||||
fire(notificationId, true);
|
fire.async(notificationId, true);
|
||||||
};
|
};
|
||||||
|
|
||||||
notificationsMap.get(extension).on("closed", listener);
|
notificationsMap.get(extension).on("closed", listener);
|
||||||
@@ -143,9 +143,9 @@ extensions.registerSchemaAPI("notifications", "addon_parent", context => {
|
|||||||
};
|
};
|
||||||
}).api(),
|
}).api(),
|
||||||
|
|
||||||
onClicked: new EventManager(context, "notifications.onClicked", fire => {
|
onClicked: new SingletonEventManager(context, "notifications.onClicked", fire => {
|
||||||
let listener = (event, notificationId) => {
|
let listener = (event, notificationId) => {
|
||||||
fire(notificationId, true);
|
fire.async(notificationId, true);
|
||||||
};
|
};
|
||||||
|
|
||||||
notificationsMap.get(extension).on("clicked", listener);
|
notificationsMap.get(extension).on("clicked", listener);
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "AddonManagerPrivate",
|
|||||||
|
|
||||||
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
Cu.import("resource://gre/modules/ExtensionUtils.jsm");
|
||||||
var {
|
var {
|
||||||
EventManager,
|
|
||||||
ExtensionError,
|
ExtensionError,
|
||||||
|
SingletonEventManager,
|
||||||
} = ExtensionUtils;
|
} = ExtensionUtils;
|
||||||
|
|
||||||
function enforceNoTemporaryAddon(extensionId) {
|
function enforceNoTemporaryAddon(extensionId) {
|
||||||
@@ -63,12 +63,12 @@ function storageApiFactory(context) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
onChanged: new EventManager(context, "storage.onChanged", fire => {
|
onChanged: new SingletonEventManager(context, "storage.onChanged", fire => {
|
||||||
let listenerLocal = changes => {
|
let listenerLocal = changes => {
|
||||||
fire(changes, "local");
|
fire.async(changes, "local");
|
||||||
};
|
};
|
||||||
let listenerSync = changes => {
|
let listenerSync = changes => {
|
||||||
fire(changes, "sync");
|
fire.async(changes, "sync");
|
||||||
};
|
};
|
||||||
|
|
||||||
ExtensionStorage.addOnChangedListener(extension.id, listenerLocal);
|
ExtensionStorage.addOnChangedListener(extension.id, listenerLocal);
|
||||||
|
|||||||
Reference in New Issue
Block a user