問題タブ [xpi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
firefox - シェルに Firefox 拡張機能をインストールする最良の方法
アドオンがプリインストールされた新しいプロファイルを作成したい。
機能するもの:
- 初めてFirefoxを実行します。
- addon.xpi を に追加し
profile/extensions/addon.xpi
ます。 - プロフィール
profile/extensions.ini
を編集して追加しExtension0=/full/path/to/extension.xpi
ます。 - ファイアフォックスを再起動します。
必要なもの:
- にアドオンを追加し
profile/extensions/addon.xpi
ます。 - 編集
extensions.ini
または類似のもの。 - 可能であれば、相対パスのみを使用します (extensions.ini には実装されていないようです)。
最後に、いくつかのFirefox設定/アドオンを含むzipファイルを作成したいと思います。これをプロファイルフォルダーに解凍して、プリインストールされたもので新しいプロファイルを作成できます。このためには、すべてが相対パスで機能することが重要です。それが絶対に不可能な場合は、スクリプトを追加できます。しかし、私は「解凍するだけ」のソリューションを好むでしょう。
Mozilla は、外部アドオンのインストールを難しくすることで、他のソフトウェアがツールバーを追加したり、Firefox に似たりするのを防ぎたかったので、少し難しいかもしれません。私がすでに見つけたのは鍵extensions.autoDisableScopes=0
です。
firefox - スクラッチパッドから xpi ファイルを作成する方法
スクラッチパッド環境でアドオンを開発しましたが、開発が終了し、最終的な xpi ファイルを作成したいと考えています。
私はこれだけを置き換えます:
これで:
次に、nodejs (jpm init および jpm xpi コマンド) を使用して xpi ファイルを作成しましたが、これは正しく機能しません。
firefox - Thales HSM で動作するように NSS Signtool を構成しますか?
私は問題があります。私の組織では、XPI ファイル タイプのコード署名を実行する必要があります。証明書とその秘密鍵は、ハードウェア セキュリティ モジュールで保護する必要があります。これはセキュリティ上の理由によるものです。
Mozilla が提供する既存の NSS Signtool では、Java キーストア、Windows の CSP、または Mac のキーチェーンを認識するツールを取得する方法を見つけることができませんでした。調査したすべてのソリューションは、NSS Signtool がデフォルトで使用するように構成されているソフトウェア データベースにキーをコピーする必要があることを示しています。
XPI ファイル タイプに署名する必要があります。Java、Windows CSP、または Mac キーチェーンで動作するソリューションを見つけようとしている理由は、Thales の既存の HSM テクノロジに、モジュールと通信するためのインターフェイスとしてこれら 3 つのオプションがあるためです。 .
XPISigner と呼ばれる Java ベースのファイルがあることを確認しましたが、このソリューションはサポートされなくなりました。現在の Java バージョンとの前方互換性がない方法で、Luna HSM のみで動作する唯一のバージョンが見つかりました。
NSS Signtool で動作するように HSM で保護されたキーを取得できた人はいますか? または、NSS Signtool を Java キーストアと統合するメカニズムはありますか? (Javaオプションのアイデアは、HSMで動作するように上記のソリューションを操作できるということです)
ありがとう!
firefox - bsdtar が firefox xpi のアンパックに失敗する
Firefox や Thunderbird などの Mozilla アプリケーションの拡張機能は、基本的に ZIP アーカイブであるXPI 形式で配布されます。そのため、unzip
ユーティリティはそれを抽出できます。bsdtar
そうすることもできます。
META-INF
ただし、通常は署名ファイルが保存されるディレクトリがアーカイブに含まれている場合、ファイルの内容は正しく解凍されません。で解凍した場合にのみunzip
、拡張機能は Firefox にサインインしたものとして正しく表示されます。
テスト ケースを再作成する場合は、Hide Tab Bar With One Tabなどの署名付き拡張機能を両方のツールでダウンロードして解凍します。Firefox でこのリンクをクリックすると、拡張機能のインストールが提案されるので、代わりにcurl
orを使用することをお勧めします。wget
とは何がbsdtar
違うのですunzip
か? これはバグですか?
firefox - 各ビルドの Firefox アドオン開発での xpi ファイル サイズの指数関数的な増加
私はFirefox用のアドオンを開発することを学んでいます。私が観察したのは、アドオン ファイルの変更が非常に最小限であるにもかかわらず、jpm sign
検証済みのサイズが.xpi
以前のファイル サイズの 2 倍に増加することです。.xpi
以下にシナリオを示します。
この背後にある理由を誰か教えてください。また、相対的なファイル サイズをコードの変更量に合わせて保持するための可能なオプションを知っておくとよいでしょう。
javascript - アドオンは jpm run で問題なくスクリプトを添付しますが、実際の xpi では添付しません
私はまだ addon-sdk にかなり慣れていないので、説明のつかない問題に遭遇しました。これまでのところ、jpm run を使用してすべてをテストしてきましたが、すべてうまく機能しています。今、私は達成したいことの完成に近づいているので、「通常の」ブラウザでテストを実行したいと思いました-主に数日間使用して、すべてが期待どおりに機能するかどうかを確認します.
ただし、インストール プロセスでは、次の 2 つのエラー メッセージが既にスローされます。
[例外...「コンポーネントがエラー コードを返しました: 0x80004005 (NS_ERROR_FAILURE) [nsIURI.hostPort]」 /< :: line 667" data: no] (unknown)
二回投げられる。
まあ、これまでのところ、とても良い(または悪い). 私のアドオンが追加したトグルボタンはまだ表示されています。ボタンをクリックすると、html ページを含むパネルが開きます - まだ機能しています。panel.html にはボタンが含まれており、これが私のトラブルの原因です。
クリックすると、ボタンはメインのアドオン ファイルにメッセージを送信します。
index.js がリッスンする対象:
options.html タブが開かれます (そしてパネルが消えます) が、contentScriptFile が添付されていないように見えます。コードが機能しなくなった場所を正確に把握しようとしましたが、できませんでした。後の「console.log()」
正常に動作しますが、「console.log()」で
(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 にあります。
javascript - Object.defineProperty() はテスト (jpm 実行) 中は機能しますが、実際の xpi を使用する場合は何もしません。
さて、ここで、アドオンの一部に関する別の問題で再び戻ってきました.
オブザーバーを使用して、javascript を介して呼び出された値を変更しています。
これは、'document-element-inserted' を観察することで行っています。
ドキュメントのルート要素が作成された直後、スクリプトを実行する前に送信されます。(ソース)
呼び出されると、アドオンはいくつかのドキュメント/ナビゲーター/スクリーンの値を変更して、navigator.X の値をオーバーライドすることでフィンガープリントを減らします。
この場合、たとえばプラグイン リストで、プラグインがまったくインストールされていないかのように表示されます。
これまでのところ、これは私の開発環境/jpm実行でうまく機能しています。しかし、実際の xpi を作成したので、何も起こりません。コードは引き続き呼び出されます。jSTracking 関数でいくつかのコンソール出力を使用しましたが、それらはすべてブラウザ コンソールに表示されました。ただし、変更されたと思われる値は元の値のままです。
jpm run を使用したときに表示されないエラーは 2 つだけです。
[例外...「コンポーネントがエラー コードを返しました: 0x80004005 (NS_ERROR_FAILURE) [nsIURI.hostPort]」 /< :: line 667" data: no] (unknown)
インストール中に2回スローされます。
コンテンツ プロセスでの nsIFile の使用は非推奨です。Content.js:25:17
コンテンツ プロセスでの nsIFile の使用は非推奨です。NetUtil.jsm:335:12
私のスクリプトとは関係ありませんが、時々現れるもう1つのものです。
私を最も混乱させているのは、なぜ Object.defineProperty は jpm run では機能するのに、xpi では機能しないのですか? 常に機能させるには、何を変更する必要がありますか?
プロジェクト全体は、私の Github リポジトリにあります。
オブザーバーの登録は、pp.js の 452 行目で行われます。
観察機能は436-446行にあります
jsTracking 関数は 193 行目で始まり、433 行目で終わります
引用されたプラグインの例は、399 ~ 403 行にあります。
どんな助けにも感謝します、ありがとう!