3

私が取り組んでいるプロジェクトの1つでは、DOMInspectorを使用してFirefox拡張機能をデバッグする必要があります。

DOMインスペクターの問題は、コードの下にブラウザーが表示されるだけで、ブラウザーを切り離したり、コードセクションやブラウザーを並べて表示したりする方法がないことです。

デバッグしているプラ​​グインに大きなxulオーバーレイがあり、問題のある領域が下部にあるため、その領域のコードとその領域自体を物理的に確認する方法がないため、機能しませんでした。

そこで、DOM Inspector自体を変更して、ブラウザーをコードエディターの横に配置することにしました。

これが私が行ったステップです:

  1. プロファイルディレクトリから既存のxpiファイルを取得しました。
  2. zipに変更しました。
  3. inspector.jar中に入って、を使用して抽出しましたjar -xf <filename>
  4. 行ってhboxにinspectorOverlay.xul変更しました。<vbox id="bxInspectorMain">(これは、これら2つのウィンドウを水平に配置するのに十分なはずです。)
  5. 次に、を使用してjarファイルを再作成しましjar cfた。
  6. 名前が同じであることを確認してディレクトリを圧縮し、拡張子をxpiに戻しました。

ただし、実行しようとすると、次の警告が表示されます。

Warning: WARN addons.xpi: Add-on is invalid: [Exception... "Component returned failure code: 0x80520006 (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) [nsIZipReader.getInputStream]"  nsresult: "0x80520006 (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST)"  location: "JS frame :: resource://gre/modules/XPIProvider.jsm :: loadManifestFromZipReader :: line 740"  data: no]
Source File: resource://gre/modules/XPIProvider.jsm
Line: 740

Warning: WARN addons.xpi: Could not uninstall invalid item from locked install location
Source File: resource://gre/modules/XPIProvider.jsm
Line: 2042

私の質問は、xpiが適切に解釈されるために、一般的に他にどのような変更を加える必要があるかということです。

4

2 に答える 2

7

名前が同じであることを確認してディレクトリを圧縮し、拡張子をxpiに戻しました。

このステップで何か間違ったことをしたと思います。ソースコードを見ると、メッセージはメソッドから来てupdateMetadata()います-Firefoxはファイルが変更されたことに気づき、再度読み込もうとしますinstall.rdf。そのファイルはXPIファイルの最上位にあるはずですが、あなたの場合は見つかりません。ファイルを再パックした後、おそらくinstall.rdfトップレベルではなくなります。unzip次のコマンドでテストできます。

unzip -l inspector@mozilla.org.xpi

XPIファイルの内容が表示されます。これには、ディレクトリ名が付加されていないものが含まinstall.rdfれます。chrome.manifest

于 2011-09-16T06:57:49.387 に答える
4

@ルカ、ウラジミール・パラントは正しいと思います。既存のプロジェクトのソースコードを変更する際のエラーを避けるために、作業環境で作業することをお勧めします。

ソースコードを編集するための推奨される方法:

  1. Eclipseをインストールする
  2. Xulブースターをインストールします(プロジェクト/ドキュメント
  3. FFプロファイルからサワーコードを抽出します。
  4. 抽出した.Zippyファイル(FF拡張子)に正確に指定されているメインフォルダーとサブフォルダーの名前を確認します。
  5. XULブースター環境のEclipseで新しいプロジェクトを作成します。FF拡張機能のメインフォルダーとサブフォルダーと同じ名前を使用してください。
  6. 次に、抽出したファイルをEclipseのXULプロジェクトにコピーして貼り付けます。
  7. コードを変更して.XPiファイルとして抽出し、FFブラウザにインストールします。

このようにして、すべてが自動的に分類されるため、あらゆる種類のエラーを回避できます(Chromeフォルダー、マニフェスト、install.rdf、did diesなど)。

注:ソースコードを変更する高度な方法があり、FFブラウザーは、FF拡張プロファイルフォルダーに環境を設定することにより、ソースコードの変更を自動的に検出します。

  1. batファイルを作成し、プロジェクトフォルダーのパスを見つけて、FF拡張プロファイルフォルダー内に拡張IDを入力します。(ガイド
于 2011-09-16T09:02:46.207 に答える