2009-06-24 10 views
0

Firefoxのステータスメッセージをプラグインコードから更新する際に問題が発生しました。Firefoxのステータスメッセージをどのスレッドからも更新するにはどうしたらいいですか?

ドキュメントでは、NPN_Statusを呼び出すと、メインスレッドから呼び出されたときにのみ機能します。私の要件は、Firefoxプロセス内の任意のスレッドからステータスを更新することです。

助けていただけたら幸いです!

答えて

1

スレッドセーフなルールの一部に違反するため、スレッドから更新することはできません。更新プログラムをメインスレッドにプロキシする必要があります。

+0

あなたはこのプロキシの事を達成することができる方法上の任意のコード例/詳細を私に提供することができます? – atVelu

+0

https://developer.mozilla.org/en/NPN_PluginThreadAsyncCallを使用することができますが、わかりません。 – sdwilsh

0

sdwilshと同様に、NPN_*関数はメインスレッドからのみ呼び出す必要があります。 NPN_PluginThreadAsyncCallはGecko 1.9でのみ導入され、現在のすべてのブラウザでサポートされていません。

回避策は、プラットフォームに依存します。Windows上の

  • ポスト/それにメッセージを送信し、使用することができますココアとMacでの取り扱いウィンドウプロセス
  • からコールを呼び出し、あなたのプラグインが受信ウィンドウをサブクラス化例えばあなたがnullのイベント
  • でコールを呼び出す使用できるカーボンとMac上performSelectorOnMainThread
  • ...など
関連する問題