0

私はFirefox WebExtensionを持っています。 addons.mozilla.orgによって正式に署名され、一般的に正しく動作します。しかし、それをインストールするユーザーの経験はあまり良くありません。InstallTrigger.installのWebExtensionの灰色のパズルピースをred stopsignと置き換える方法

MozillaのInstallTrigger.install()シーケンスdocumented hereを使用して自分のWebサイトからインストールしています。

しかし、このシーケンスはIconURLパラメータを無視しているようです。代わりに、私のユーザーはこのようにかなり怖いポップアップボックスを取得します。

enter image description here

代わりにその箱の上に自分のアイコンを配置する方法はありますか?インストール順序を簡素化する方法はありますか?

私のコードは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 
} 
+1

インストールを開始するために使用する* manifest.json *(少なくとも関連する部分)とコードを提供してください。基本的にはMCVE。これが可能なように見えますが、回答を与えるにはテストが必要です。コードを最初から作成する必要がない場合は、テストするのがずっと簡単です。 – Makyen

+0

ほとんどの場合、* manifest.json *を使わずに何らかの方法でアイコンを指定する必要があります。 * manifest.json *からアイコンを取得することを期待するには、拡張機能を実際にダウンロードして抽出する必要があります。このポップアップ*は、拡張機能をダウンロードする前に表示するように記述する必要があります。私はそれが事実であることを見るためにコードをチェックしていないが、それはそれを書くより安全な方法であろう。 Firefoxコードは、アイコンの提供をサポートするように見えます。 – Makyen

+0

私はいくつかのコードを追加しました.... –

答えて

1

することはできません。 Firefox source code2)は、このアイコンを指定する方法を提供していません。拡張子やテーマが既にインストールされている場合は、これを変更することは可能ですが、それはあなたが望むものと少し相殺されます。

アイコンは、CSSによってpopupidに基づいて割り当てられます。これは、chrome://browser/skin/browser.cssの行3749(Firefox 53.0)で行われます。 popupidは、通知が表示されている理由に基づいて割り当てられます。この場合はaddon-install-blockedです。

+0

これを見ていただきありがとうございます。 'install()'のパラメータにあるIconURL項目の目的は何ですか? –

+0

@ O.Jones、私はまだ見ていませんでしたが、それが実際にどこで使われているかを実際に判断するには十分です。私は両方向から見ることを始めましたが、そのアイコンに影響を及ぼすために何もできないと判断したら停止しました。このインターフェースは[InstallTriggerData'とそのすぐ上に定義された 'IconURL'で定義されています(https://dxr.mozilla.org/mozilla-central/source/dom/webidl/InstallTrigger.webidl#20)。 – Makyen

関連する問題