Firefox拡張機能でFirebreathで作成された.dllを使用することは可能ですか?
現在、JavaScriptを使用してドキュメントのHTMLを取得し、.dllから関数を呼び出して、ドキュメントのHTMLをパラメーターとして渡すGoogleChrome用に作成した拡張機能を移植しようとしています。次に、.dllはファイルを保存し、プログラムを起動します。
この機能をFirefoxに移植する簡単な方法はありますか?または、XPCOMを使用してコードを書き直す必要がありますか?
Firefox拡張機能でFirebreathで作成された.dllを使用することは可能ですか?
現在、JavaScriptを使用してドキュメントのHTMLを取得し、.dllから関数を呼び出して、ドキュメントのHTMLをパラメーターとして渡すGoogleChrome用に作成した拡張機能を移植しようとしています。次に、.dllはファイルを保存し、プログラムを起動します。
この機能をFirefoxに移植する簡単な方法はありますか?または、XPCOMを使用してコードを書き直す必要がありますか?
XPCOMは単純なものには複雑すぎるため、Firefox 4以降にはjs-ctypesがあります(概要についてはhttps://developer.mozilla.org/en/js-ctypesを、https://developer.mozilla.org/enを参照してください) 。 / js-ctypes / Using_js-ctypes#Calling_Windows_routines(例))。これにより、DLLをロードし、エクスポートされたネイティブ関数を簡単に呼び出すことができます。このDLLをNPAPIプラグインとして実際に使用する必要がある場合は、プラグインをロードするためのウィンドウが必要であり、Chromeとは異なりFirefoxには専用のバックグラウンドウィンドウがないため、事態はさらに複雑になります。しかし、Chromeで使用できるようにするには、DLLをプラグインに変えただけだと思います。
ctypes.open()で使用するDLLを見つけるには、ここで私の答えを参照してください:バイナリコンポーネントをjs-ctypesに参照します
シンプルな機能のために、js-ctypesもお勧めします。使いやすく、優れた分離を提供します(ページ上のスクリプトはインポートされたライブラリにアクセスできないため)。
本当に任意のページからNPAPIプラグインにアクセスする必要がある場合、標準的なアプローチは、拡張機能を作成し、プラグインを含めるように各ページのDOMを変更することのようです。
はい、Firefoxの拡張機能としてfirebreathdllを使用できます。FirefoxとHTMLの場合は、 XULを使用する必要がありますが、同じJavaScriptをいくつか変更して使用できます。デフォルトのfirfoxをオーバーレイするXULにスクリプトをロードする必要がありますbrowser.xul
overlay chrome://browser/content/browser.xul chrome://Yourproject/content/Youroverlay.xul
Youroverlay.xul内に、Firebreathdllを埋め込むために以下の行を追加できます
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/"?>
<overlay id="myOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml">
<script type="application/javascript" src="chrome://Yourproject/content/background.js"/>
<vbox style="height:0;">
<html:embed type="application/x-myproject" id="myproject1" style="height:0;"/>
</vbox>
</overlay>