2012-01-03 8 views
1

Webアプリケーションには小さなブラウザプラグインが必要な機能があります。アプリケーションの99%がASP.NET + javascriptであり、私たちはブラウザープラグインやそれを維持するための訓練への興味がないので、フリーランサーのWebサイトを使って大成功を収めて、動作中のFirefoxプラグインを入手しました/アドオン/拡張。firefoxプラグインを将来のリリースと互換性を持たせるにはどうすればいいですか

しかし、新しいFirefoxの新しいリリースでは、新しい拡張が必要な​​ように見えるため、新しいFirefoxの迅速なリリーススケジュールではこの計画全体が混乱することになりました。これは、単にRDFファイルのem:maxVersionバージョンとは関係ありません。プラグインは実際に読み込みを拒否しているので、6週間ごとに次のバージョンのFirefoxのプラグインを更新するためにフリーランサーに委託する必要があります。私の限られた理解から、これは、geckoの各バージョンが前のバージョンと互換性がないためです。

ここで何か不足していると思います。例えば、IEプラグインはIE6のために約2005年に書かれたもので、私たちはそれに触れる必要は一度もありませんでした。 IE9でも動作します。すべてのFirefoxのプラグインを6週間ごとに書き直さなければならないのか、それとも間違っているのですか?

プラグインの基本機能は、ウィンドウ・タイマーを使用して共有メモリーをポーリングし、DOMをトラバースして特定のjavascript関数を持つページを検索して呼び出すことです。

私の質問は、より合理的な寿命(すなわち年以上)でFirefoxのプラグインを作成する方法があるのか​​、それとも新しいバージョンを毎回新しいものにする必要があるfirefoxの出てくる?

+0

アドオンはバイナリコード(例:C++)を使用していますか?もしそうならば、Firefoxは各リリースとバイナリ互換性を壊すので、6週間ごとに再ビルドする必要があります。これを避ける方法は、JavaScriptを使用してアドオンを完全に書き込むことです。可能であれば、アドオンがMozillaのアドオンSDKによって提供される上位レベルのAPIを使用して完全に記述されるようにしてください。あなたのアドオンがSDKのapis内で動作できる場合は、互換性の問題を修正するためにアドオンを頻繁に更新する必要はありません。 – canuckistani

+0

お返事ありがとうございます。現時点ではC++を使用しており、Windows共有メモリにアクセスする必要があるため、JavaScriptを使用することはできません。私に関係するもう1つの問題は、各Firefoxリリースで新しい拡張機能を発行しても、 Firefoxがアップデートする度にそれを再インストールする必要があります。これはFirefox製品チームに代わって自殺行動のようです。 – Andy

+0

これの脚注として、私はちょうど(請負業者経由で)geckoとXPCOMではなくNPAPI(私が思う)を使って関数を再実装しました。同じDLLは3.6から10まで試したfirefoxのすべてのバージョンで動作し、またGoogle Chromeで(再パッケージ化されたとき)動作します。だから今私は満足しています – Andy

答えて

2

バイナリコード(c/C++)を使用しているときにFirefoxアドオンとの互換性の問題を回避する最も良い方法は、JSCtypeを使用することです。ここでは、これがどのように動作するかの最近の概要です:ここでは

http://blog.mozilla.com/dwitte/2010/03/12/extension-authors-browser-hackers-meet-js-ctypes/

はJSCtypes上のMDNドキュメントへのエントリポイントは次のとおりです。

https://developer.mozilla.org/en/js-ctypes

互換性を持つこの長期的な問題を回避するために、私はxpcomからjsctypesにあなたのC++コードのポートを作っています。あなたが作業している請負業者にとっては厳しい要件です。

+0

ありがとう、これは非常に興味深いです、私はそれについて知りませんでした。 – Andy

+0

元の質問に対処していると感じたらこの回答を投票してください:) – canuckistani

+0

これをしました。また、他のいくつかの議論を通して、gecko/xulrunnerとリンクする代わりにNSAPIを使用して問題を解決できる可能性があります。 – Andy

関連する問題