如何在 InstallTrigger.install 调用的 WebExtension 上用红色停止标志替换灰色拼图

how to replace the gray puzzle-piece with red stopsign on WebExtension on InstallTrigger.install call

我有一个 Firefox WebExtension。它由 addons.mozilla.org 正式签署并且通常工作正常。但是安装体验不是很好

我正在使用 Mozilla 的 InstallTrigger.install() 序列 documented here 从我自己的网站安装它。

但是这个序列似乎忽略了 IconURL 参数。相反,我的用户会得到一个像这样的相当可怕的弹出框。

有没有办法把我自己的图标放在那个盒子上?有什么办法可以简化安装顺序吗?

我的代码几乎来自 mozilla 文档。在这里。

HTML 按钮

          <button id="extension-button-1" type="button" 
            class="btn btn-default btn-primary"
            onclick="return EgetExtension(event);"
            data-xpi="/install/browserextension/extension.xpi"
            data-iconurl="/install/browserextension/icon32.png"
            data-hash="sha256:aacf102b0cc6c9ffe370redacteddd1a8cac05cd4b2e9redactedd31394fb1a0"> Cobrowse </button>

Javascript

    var params = {
        "Extennsion": {
            URL: event.target.getAttribute('data-xpi'),
            IconURL: event.target.getAttribute('data-iconurl'),
            Hash: event.target.getAttribute('data-hash'),
            toString: function () { return this.URL; }
        }
    };
    InstallTrigger.install(params);

manifest.json

{
  "name": "Cobrowse",
  "short_name": "C3PO",
  "version": "3.7.1.17",
  "manifest_version": 2,
  "author": "Example.",
  "description": "example. ",
  "homepage_url": "http://ww2.glance.net/products/panorama/co-browse/",
  "icons": {"128": "g128.png"},
  "background": {
    "scripts": ["background.js"],
    "persistent": true },
  "permissions": [
    "https://*/*",
    "http://*/*",
    "tabs",
    "storage"
  ],
  ... etc
}

你想要的是不可能的。 Firefox source code (2) 不提供指定此图标的方法。如果您已经安装了扩展程序或主题,则可以更改此设置,但这与您想要的有点相反。

图标由 CSS 基于 popupid 分配。这是在第 3749 行的 chrome://browser/skin/browser.css 中完成的(在 Firefox 53.0 上)。 popupid 是根据显示通知的原因分配的。在这种情况下是 addon-install-blocked.