如何在Thunderbird附加contentTab内容中处理Web API通知

时间:2019-02-06 13:42:01

标签: javascript notifications thunderbird thunderbird-addon

我正在使用标签页中的网页内容创建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的通知框架。目前,我什至没有处理内容网页上的通知。

0 个答案:

没有答案