2016-04-04 4 views
0

ここで、私のアドオンの一部に関するもう1つの問題が再びあります。Object.defineProperty()はテスト(jpm run)中に動作しますが、実際のxpiを使用しているときは何もしません。

私はオブザーバを使用して、JavaScriptから呼び出された値を変更しています。

var observerService = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService); 
observerService.addObserver(this, "document-element-inserted", false); 

私は「文書要素挿入」、文書のルート要素が作成された直後に送信され

で観察することによってこれを行うが、それに任意のスクリプトを実行する前にしています。この場合

Object.defineProperty(XPCNativeWrapper.unwrap(navigator), "plugins", { 
    value: "", 
}); 

例えばプラグインリスト、(Source

呼び出された場合、私のアドオンはnavigator.X値を上書きすることによってフィンガープリントを低減するために、いくつかの文書/ナビゲーター/スクリーン値を変更あたかもプラグインがインストールされていないかのように表示されます。

これまでのところ、これは開発環境/ jpmが正常に動作しています。しかし、実際のxpiを作成したので、何も起こりません。コードはまだ呼び出され、私はjSTracking関数でいくつかのコンソール出力を使用し、それらはすべてブラウザコンソールに表示されました。ただし、変更された値は依然として元の値です。

JPMの実行使用している場合は表示されませんだけで2つのエラーがあります。

[例外... "コンポーネントは障害コードを返しました:0x80004005の(NS_ERROR_FAILURE)[nsIURI.hostPort]" nsresult:「0x80004005の(NS_ERROR_FAILURE)」場所: "JSフレーム::リソース://gre/modules/PopupNotifications.jsm :: PopupNotifications_refreshPanel/< ::ライン667" のデータ:なし](不明)

は、インストール中に2回投げます。

コンテンツプロセスでnsIFileを使用することは推奨されていません。 Content.js:25:17

コンテンツプロセスでのnsIFileの使用は推奨されていません。 NetUtil.jsm:335:12

私のスクリプトとは決して関連しないものの、他のものは時々出現しますか?

私を最も混乱させるもの:なぜObject.definePropertyはjpmで動作しますが、xpiでは動作しませんか?常に機能するように変更する必要がありますか?

プロジェクト全体は、観察者の登録がPPであるmy Github repository.

で見つけることができます。ライン452でのJS、

観察機能は、ライン

436から446とjsTracking機能がライン193で開始しており、行に見出すことができるライン433

引用プラグイン例で終了します399-403

ご協力いただき、ありがとうございます。ありがとうございます!

答えて

0

これは、私が思っていたより「修正する」方が簡単でした。

私はe10s/firefoxのマルチプロセッサー機能について言及したときに、すべてのアドオンが互換性がないわけではないので、Firefoxのトピックを無作為にブラウズしていました。

夜間のビルドではなく、私の標準的なfirefoxで試してみました。

したがって、私の質問に答えて、今はe10の互換性について心配する必要があります。

bugzilla.mozilla.orgでバグレポートを調べて、簡単に修正できるかどうか、あるいは最後にドキュメントに追加できるかどうかを確認します。

+0

あなたがオブザーバーでコンテンツ文書にアクセスしている場合は、アドオンがe10sと互換性がなくfirefoxではないという問題があります。 – the8472

+0

あなたは正しいのですが、アドオンで修正する必要があります。私が実際に言いたかったのは、これ以上のものでした。 'bugzilla.mozilla.orgでバグ報告を探して、今修正できるかどうか、彼らが最後に行うことができるかどうか/ addドキュメントに。 のように、おそらくオブザーバーページで[https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts#Observers_in_the_chrome_process]という短いメモを付けてください。コメントを編集してより明確にします。 – Sintho

関連する問題