我正在使用标签页中的网页内容创建Thunderbird(60.4.0)加载项。该网页使用Web API通知弹出一些消息。如何处理它们以及如何将它们显示为Thunderbird的通知?
我试图将window.Notification对象与新的Proxy对象重新绑定-我找到了contentTab /浏览器面板的内部窗口,但未调用Proxy。
overlay.js
var gogotab = {
onLoad: function() {
this.initialized = true;
this.strings = document.getElementById("gogotab-strings");
},
onToolbarButtonCommand: function(e) {
var mailPane = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getMostRecentWindow("mail:3pane");
var weburl = "https://gogotab.example.com/";
var tab = mailPane.document.getElementById("tabmail").openTab("contentTab", {
contentPage: weburl,
type: "gogotab",
clickHandler: "gogotab._siteClickHandler(event);"
});
tab.browser.contentWindow.Notification = new Proxy({}, {
//... implemented 'construct', 'apply' and 'get' methods reporting calls to console.
});
},
_siteClickHandler: function(event) {
return specialTabs.siteClickHandler(event, gogotab._gogoRegExp);
},
_gogoRegExp: new RegExp("^(http|https):\\/\\/([^/][^/]*\\.|)gogotab\\.example\\.com\\/")
};
首先,我要处理来自网页的通知。然后,我想找到一种方法如何将消息传递到覆盖脚本中的某个处理程序,并将其应用于Thunderbird的通知框架。目前,我什至没有处理内容网页上的通知。