4

Firefox 拡張機能の開発は初めてです。というわけでちょっと実験してみました。私は現在、最低限の要件のみを備えたブートストラップ拡張機能を作成しようとしています: install.rdf と bootstrap.js のみです。現時点では、この拡張機能は実際には何もしないはずです。問題なくインストールできるようにしたいだけです。機能は後で追加できます。

install.rdf と bootstrap.js は 7zip で .zip ファイルに圧縮されており、ファイル拡張子は .xpi に変更されています。インストールは AddOn Manager を介して行われ、私の Firefox 42.0 では問題なく動作しているようです (Firefox から成功メッセージが表示されます)。

しかし、インストール後にエラーコンソールを見ると、いくつかの警告/エラーが表示されています:

1447258032068 addons.xpi WARN Test-AddOn の bootstrap.js の読み込み中にエラーが発生しました--53d9108a-541b-4209-a62e-3809504dfe6e@example.org: 入力ストリームを開くときにエラーが発生しました (無効なファイル名?): jar:file:///C:/ Users/Stefan/AppData/Roaming/Mozilla/Firefox/Profiles/dlgniy94.default/extensions/Test-AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org.xpi!/bootstrap.js

1447258032068 addons.xpi WARN Add-on Test-AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org にブートストラップ メソッドのアンインストールがありません

1447258032080 addons.xpi 警告 Test-AddOn の bootstrap.js の読み込み中にエラーが発生しました--53d9108a-541b-4209-a62e-3809504dfe6e@example.org: 入力ストリームを開くときにエラーが発生しました (無効なファイル名?): jar:file:///C:/ Users/Stefan/AppData/Roaming/Mozilla/Firefox/Profiles/dlgniy94.default/extensions/Test-AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org.xpi!/bootstrap.js

1447258032080 addons.xpi WARN Add-on Test-AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org にブートストラップ メソッドのインストールがありません

Zeitstempel: 11.11.2015 17:07:12 Fehler: [例外... 「コンポーネントが失敗コードを返しました: 0x80004005 (NS_ERROR_FAILURE) [nsIURI.hostPort]」 nsresult: 「0x80004005 (NS_ERROR_FAILURE)」 場所: 「JS フレーム :: リソース: //gre/modules/PopupNotifications.jsm :: PopupNotifications_refreshPanel/< :: line 579" data: no] Quelldatei: resource://gre/modules/PopupNotifications.jsm Zeile: 583

1447258032112 addons.xpi WARN Add-on Test-AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org にブートストラップ メソッドの起動がありません

これらのエラー/警告の原因がわかりません。特に、欠落していると思われるブートストラップ メソッドは不可解です。

これは私のbootstrap.jsの内容です:

const { classes: Cc, interfaces: Ci, utils: Cu } = Components;

Cu.import('resource://gre/modules/Services.jsm');

function startup(aData, aReason) {}
function shutdown(aData, aReason) {}
function install(aData, aReason) {}
function uninstall(aData, aReason) {}

それほど多くはありませんが、必要なものはすべて揃っているはずですよね? 必要な 4 つのメソッド (startup()、shutdown()、install()、uninstall()) はすべてそこにあります。(アドオンはまだ何もしないはずなので、それらは空です。) では、なぜ私の Firefox 42.0 はこれらのうちの 3 つが欠けていると考えるのでしょうか? そして、なぜ 4 番目の (shutdown()) についてはそう思わないのでしょうか?

いくつかのエラーがあるのに、インストールが機能しているように見えるのはなぜですか (ブラウザーからの成功メッセージ)。

何か重要なことを見逃しましたか?

これは install.rdf です。

<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:install-manifest">
    <em:id>Test-AddOn--53d9108a-541b-4209-a62e-3809504dfe6e@example.org</em:id>
    <em:type>2</em:type>
    <em:name>Test AddOn</em:name>
    <em:version>1.0</em:version>
    <em:bootstrap>true</em:bootstrap>
    <em:description>This is a test.</em:description>
    <em:creator>Anonymous</em:creator>
    <em:targetApplication>
      <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
        <em:minVersion>40.0</em:minVersion>
        <em:maxVersion>45.*</em:maxVersion>
      </Description>
    </em:targetApplication>
  </Description>
</RDF>

https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions#chrome.manifest_in_bootstrapped_add-onsによると 、chrome.manifest ファイルを「使用できます」(これは、必要ではないことを意味すると思います)。

アドオンの .xpi-package 全体に興味がある場合は、ここにアップロードしました: http://www.filedropper.com/testaddon

4

0 に答える 0