0

私はまだ addon-sdk にかなり慣れていないので、説明のつかない問題に遭遇しました。これまでのところ、jpm run を使用してすべてをテストしてきましたが、すべてうまく機能しています。今、私は達成したいことの完成に近づいているので、「通常の」ブラウザでテストを実行したいと思いました-主に数日間使用して、すべてが期待どおりに機能するかどうかを確認します.

ただし、インストール プロセスでは、次の 2 つのエラー メッセージが既にスローされます。

[例外...「コンポーネントがエラー コードを返しました: 0x80004005 (NS_ERROR_FAILURE) [nsIURI.hostPort]」 /< :: line 667" data: no] (unknown)

二回投げられる。

まあ、これまでのところ、とても良い(または悪い). 私のアドオンが追加したトグルボタンはまだ表示されています。ボタンをクリックすると、html ページを含むパネルが開きます - まだ機能しています。panel.html にはボタンが含まれており、これが私のトラブルの原因です。

クリックすると、ボタンはメインのアドオン ファイルにメッセージを送信します。

optionsButton.addEventListener("click", function(){
    self.port.emit("options-clicked");
});

index.js がリッスンする対象:

panel.port.on("options-clicked", function () {
    
    tabs.open("./privacyProtector/options.html");
    panel.hide();

    var optionsTab = tabs[tabs.length - 1];
    var worker = optionsTab.attach({
        contentScriptFile: "./privacyProtector/js/internalOptions.js",
    });

    /* send current settings to options */
    worker.port.emit("initialize", createSettingsJSON());
});

options.html タブが開かれます (そしてパネルが消えます) が、contentScriptFile が添付されていないように見えます。コードが機能しなくなった場所を正確に把握しようとしましたが、できませんでした。後の「console.log()」

worker.port.emit("initialize", createSettingsJSON());

正常に動作しますが、「console.log()」で

self.port.on("initialize", function (message) {
    initialize(message);
});

(internalOptions.js にあります) はコンソールに表示されません。

とにかく、ブラウザコンソールは次のように報告します:

コンテンツ プロセスでの nsIFile の使用は非推奨です。NetUtil.jsm:335:12

<利用不可> timers.js:43

これらはすべて「jpm run」で完全に機能しているため、どうすればよいかわかりません。したがって、ここで何が起こっているのかまったくわからないので、何か助けていただければ幸いです。

必要に応じて、さらにコードを投稿することもできますが、この投稿はそのままで十分長いと思いました。

ありがとう!

編集:コードをgithubにアップロードしました。多分これは私を助けやすくします。

https://github.com/Azlond/TrackingProtector

前述のコードは、data/privacyProtector/js/panel.js、index.js の 66 ~ 91 行目、および data/privacyProtector/js/internalOptions.js にあります。

4

1 に答える 1