0

Firefox WebExtension이 있습니다. addons.mozilla.org에서 정식으로 서명했으며 일반적으로 올바르게 작동합니다. 그러나 그것을 설치하는 사용자 경험은별로 좋지 않습니다.회색 퍼즐 조각을 InstallTrigger.install의 WebExtension에 빨간색 조리개로 바꾸는 방법

Mozilla의 InstallTrigger.install() 시퀀스 documented here을 사용하여 제 웹 사이트에서 설치하고 있습니다.

그러나이 시퀀스는 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> 

자바 스크립트

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 code (2)은이 아이콘을 지정할 수있는 방법을 제공하지 않습니다. 이미 확장 기능이나 테마가 이미 설치되어 있다면 그렇게 할 수 있지만 원하는 것은 조금 다릅니다.

아이콘은 popupid을 기반으로 CSS에 의해 지정됩니다. 이 작업은 chrome://browser/skin/browser.css 라인 3749 (Firefox 53.0)에서 수행됩니다. popupid은 알림이 표시되는 이유에 따라 지정됩니다. 이 경우는 addon-install-blocked입니다.

+0

고마워요. 'install()'에 대한 매개 변수에서 IconURL 항목의 목적은 무엇입니까? –

+0

@ O.Jones, 나는 아직 보지 못했지만 실제로 어디에서 사용되는지를 결정하기에 충분합니다. 나는 두 방향에서보고하기 시작했지만, 일단 그 아이콘에 영향을 미치기 위해 할 수있는 일이 없다고 결정하면 멈췄다. 인터페이스는 [InstallTriggerData]와 함께 바로 위에 정의 된 [여기] (https://dxr.mozilla.org/mozilla-central/source/dom/webidl/InstallTrigger.webidl#20) 및'IconURL'로 정의됩니다. – Makyen