0

https://github.com/terrafrost/firefox-x-forwarded-for-spoofer

これは私が復活させようとしているアドオンで、最新バージョンの Firefox では機能しません。その理由を突き止めようとしています。

コンポーネントが機能していないことがわかりますが、その理由はわかりません。

chrome.manifest ファイルを次のように読み取ってみました。

content x-forwarded-for chrome/content/
overlay chrome://browser/content/browser.xul chrome://x-forwarded-for/content/overlay.xul
locale x-forwarded-for en-US chrome/locale/en-US/
component ec8030f7-c20a-464f-9b0e-13a3a9e97384 components/x-forwarded-for.js
contract @x-forwarded-for@frostjedi.com/x-forwarded-for.js;1 ec8030f7-c20a-464f-9b0e-13a3a9e97384

@frostjedi.com/x-forwarded-for;1 (これは x-forwarded-for.js がコントラクト ID として持っているものですが、役に立ちませんでした) も試しましたが、役に立ちませんでした。

何か案は?

4

1 に答える 1

1

リストするchrome.manifestID は、拡張 ID ではなく、コンポーネント ID である必要があります。また、コントラクト ID が間違っているようです。おそらくコピペミスです。正しい行は次のようになります。

component {f3bbf109-6d66-46ca-960e-4b78014023b3} components/x-forwarded-for.js
contract @frostjedi.com/x-forwarded-for;1 {f3bbf109-6d66-46ca-960e-4b78014023b3}

コンポーネント自体も変更する必要があります。Firefox 4 以降と互換性を持たせるNSGetFactoryには、NSGetModule. XPCOMUtils.jsmそのためにモジュールを使用することを強くお勧めします。それはほとんどの作業を行います。モジュール定義全体を破棄して、次の行に置き換えることができます。

Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
var NSGetFactory = XPCOMUtils.generateNSGetFactory([XForwardedForProxy]);

コンポーネント自体でコンポーネント ID とコントラクト ID を宣言する必要がなくなったことに注意してくださいchrome.manifest。Firefox 4 以降では、エントリで十分です。

参考までに: Gecko 2.0 での XPCOM の変更点

于 2012-09-25T20:03:23.607 に答える