問題タブ [firebreath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1434 参照

linux - Mozilla(FireBreath)プラグインをFireFox用の.xpiにパッケージ化しますか?

おそらくこれはFirefox拡張機能でFirebreathで生成されたプラグインの使用に関連していますか?; しかし、私の質問はおそらくもっと具体的なので、ここに行きます...

私はLinux(Ubuntu 11.04)に取り組んでおり、FireBreathを使用してMozilla / Firefox(Firefox 7)プラグインを構築しました。このプラットフォームで作成されたプラグインは" npXXX.so"ファイルであり、これはでシンボリックリンクされてい~/.mozilla/pluginsます。次に、このプラグインを使用する拡張機能をコーディングしました。シンボリックリンクを除けば、他に何も必要ないようです。すべてがスマッシングするだけで機能するようです:)

したがって、「firefoxはXPIを介したプラグインのインストールをサポートしています。これはFireBreathチームによって推奨されていません」ということを知っているので、拡張機能とプラグインをXPIファイルにパッケージ化したいと思います。だから、私はインストール可能なバンドルの構造-MDNについて少し読んでいます、そして私はこれらの2つの可能性を見ることができます:

さて、「プラグイン用の古いXPCOMベースおよびLiveConnectベースのAPIは使用しないでください。」と書かれているので、「/components」ディレクトリは使用しないでください(上記のページに例として示されている場合でも)。そして、これがどこにも明示的に述べられているのを見つけることはできませんが、FireBreathはNPAPIプラグインを構築していると思います-おそらく「/plugins」が進むべき道です。(「」についても言及/platformされていますが、Firefox> 3.6では非推奨になっていることを明確に示しています)。

 

さて、これまでのところとても良いです...それで私はプラグインファイルをplugins/linux拡張ディレクトリ内にコピーしようとします:

...次に、次のように挿入しますchrome.manifest

...次に、拡張ディレクトリ全体(プラグインを含む)を.xpiとして圧縮し、別のコンピューターにインストールしてみます。そこで、.xpiが正常にインストールされ、.soファイルがプロファイルのextensions/XXX/plugins/linux/ディレクトリの下に実際に解凍されます。拡張子のすべてのクロスプラットフォーム(javascript)コードは正常に機能します。プラグインが見つからないことを除いて。

もちろん、ユーザー自身が拡張子.so~/.mozilla/plugins/;にシンボリックリンクすることもできます。しかし、私はそのユーザーを惜しまないようにしたいと思います:)

 

この種のパッケージングについてはどうすればよいですか?推奨される方法はありますか?

よろしくお願いし
ます。

 

編集:プラグインをツールキットバンドルとして出荷することがわかりました-MDNのみを要求しinstall.rdf、aplugins/obj.soが必要です。次に、Linux上のFirefox 4、5、6でQuake Liveを実行していることを発見しました[内部の修正]QuakeLivePlugin_433-modded_ff10.xpiを参照しており、実際にそのような単純な構造に従っています。これをインストールすると、両方が得られます。 Quake拡張機能とQuakeプラグイン(そして、エラーコンソールが「chromeマニフェストファイルを読み取れませんでした」/path/to/extensions/quakeliveplugin@idsoftware.com/chrome.manifest'。」と文句を言っていても)....しかし、試してみると私のFireBreathプラグインでも同じです(たとえば、install.rdfとプラグインだけ/plugins)、拡張機能のみが表示されます-プラグインはありません(そして合理的なエラーメッセージもありません)。これはFireBreathの問題でしょうか?

0 投票する
1 に答える
886 参照

c++ - 含まれているタイプライブラリにあるインターフェイスのインターフェイスIDを見つける方法は?

私のfirebreathプロジェクトでは、このようにプロジェクトに必要なdllを含めました

dllで定義されているいくつかのインターフェイスのiidを使用する必要があります。

タイプiidを見つけて使用するにはどうすればよいですか?

dllのソースコードと.idlコードもありますが、そこから必要な情報を見つけることができますか?

0 投票する
3 に答える
306 参照

c++ - C ++でのさまざまなサイズのさまざまな動作(Firebreathソースコード)

firebreathのソースコード(src / ScriptingCore / Variant.h)を調べると、混乱した質問に遭遇します。

問題は、大きな値型(void *よりも大きい)の静的関数の実装が小さなものと異なる理由です。

たとえば、小さい値型のstatic_deleteは、Tインスタンスでデストラクタを呼び出すだけですが、大きい値型のstatic_deleteは、「delete」を使用します。

トリックはありますか?前もって感謝します。

0 投票する
2 に答える
1586 参照

c++ - BSTRデータ型の使用中にエラーが発生しました

私のfirebreathプラグインプロジェクトには、アクティブXコントロールのラッパークラスがあります。

メソッドの1つは、入力としてBSTRデータ型変数を取りますが、メソッドを呼び出してBSTRを渡そうとすると、エラーが発生します。

「WTypes.h」ヘッダーファイルもインクルードしました。しかし、それで問題が解決するわけではないようです。

だから誰かが代替案を提案します。

Makecall関数は、これらのパラメーターを使用して、アクティブXコントロールによって実装されたMakecall関数を呼び出します。

エラー

PS:エラーについて検索した後、火吹きはワイド文字、つまりユニコードをサポートしていないことがわかりました。それで、firebreathでユニコードデータ型を使用する方法があります。

0 投票する
1 に答える
688 参照

javascript - FireBreathでの発砲イベント

FireBreathプラグインを使用してActiveXコントロールのラッパークラスを作成しています。

FireBreathのドキュメントからリンクされているFireBreathActiveXラッパーの例では、プロジェクトの作成者はFireEventを使用して、ActiveXコンテナクラスからイベントを非同期的に発生させます。

しかし、FireBreathのドキュメントには、FireEventメソッドの下に次のようなメモがあります。

「注:この方法での発砲イベントは、FireBreath1.5.0で非推奨になりました。」

また、この例では、イベントは次の形式を使用してルートJSAPIオブジェクトに登録されていません。

それで、これはそれを行う正しい方法ですか?または、を使用してコンテナクラスからイベントを呼び出すことは可能ですか?

方法?

0 投票する
1 に答える
233 参照

plugins - プラグイン上のマウス カーソルの変更\非表示

FF/Chrome/IE/Gecko 用のプラグインを開発しています。プラグイン内で、マウス カーソルを変更または非表示にする必要があります。プラグインはウィンドウレスです (そのままにしておく必要があります)。

プラグインを含む DOM のスタイルを変更するのに疲れましたが、機能しません。

私はこれが技術的に可能であることを知っています (Adobe Flash はマウス カーソルを変更でき、IE YouTube フラッシュ プレーヤー)

ありがとう、コビー

0 投票する
1 に答える
735 参照

cocoa - Firebreath フレームワークを使用して cocoa アプリケーションを NPAPI プラグインに変換する

私は最近、Webkit モデルが Apple の Lion と Safari の最終リリースでサポートされなくなり、NPAPI を使用するために全員が Firebreath プロジェクトに移行していることを知りました。

次のネイティブ フレームワークとリンクする基本的な Cocoa アプリケーションがあります。

  1. コアグラフィックス
  2. コアデータ
  3. IOKit
  4. PFEventTaps (これは Pfiddlesoft.com によるサードパーティ フレームワークです)

私はプラグインを使用したことがないので、これは私にとって少し新しいことです。Richard bateman によって書かれた MAC チュートリアルから始め、ガイドラインに従った後、最終的には個人プロジェクト用の firebreath プロジェクト テンプレートにたどり着きました。私が行った次のステップは、すべての Objective-C クラスをソース ファイル フォルダーに配置し、4 つのフレームワークとのリンクを追加することでした。最後に、プラグインで公開する必要がある新しいパブリック メソッドを MyProjectPluinApi.h に追加しました。 registerMethod("MyMethod", make_method(this, &WilmerPlugInAPI::MyMethod ));

firebreath プロジェクトをビルドすると、多くのコンパイル エラーが発生します。そのうちの 1 つは非常に繰り返し発生するエラーです NSString was not declared in this scope.。エラーは NSObjCRuntime.h を指しています

今まで、XCODE 3.2.6 でこのビルドを正常に取得できませんでした

ここで何が問題なのですか?このテンプレート プロジェクトで CPP スタイルを実現するには、すべてのコードを変更する必要がありますか? または、何らかの方法でフレームワークをリンクできますか? 見ることができるサンプルはありますか?

詳細: 2011 年 11 月 7 日: 簡単なプロジェクトでテストしようとしていました。

  • まず、プロジェクト testOfFB を作成します
    • /users/Me/Firebreath-dev/build/projects/testofFB に生成されます
  • 次に、クラス testFBApi.cpp を変更し、名前を testFBApi.mm に変更します。
  • testMath.m という名前の Objective-c クラスを作成し、名前を testMath.mm に変更しました。
  • 署名付きの Add メソッドを追加します。

    /li>
  • 最後に、ファイル testFBApi.mm を次のように変更します。

    /li>
  • add メソッドの実装では、objective-c クラス メソッド「add」のインスタンスを作成して、objective-c メソッドの呼び出しをテストします。インクルードを行い、ファイル /Mac/projectDef.cmake を次のように変更しました。

    /li>

prepmac.sh スクリプトを実行してから xcode ソリューションをビルドすると、同じエラーが表示され、testFBApi が宣言されていないなどのエラーが表示されます。

0 投票する
1 に答える
471 参照

xcode - Firebreath プロジェクトで wxWidgets を使用する

xcode の FireBreath プラグイン プロジェクトで wxWidgets を使用しています。

追加しました

  1. C++ フラグ( -I/usr/lib/wx/include/mac-unicode-debug-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXDEBUG__ -D__WXMAC__)

  2. -framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime -framework OpenGL -framework AGL -lwx_macud-2.8プロジェクト設定のその他のリンカー フラグ( )。

しかし、次のエラーが発生しています...

ビルドに失敗しました。

誰かが私が行方不明になっていることを教えてもらえますか??

前もって感謝します..

0 投票する
2 に答える
3494 参照

javascript - NPObject のメソッド呼び出しエラー! JavaScript で

PortAudio を使用してストリームを開きたい Visual C++ コード (FireBreath) があります。すべての初期操作を行った後、次のコードを作成しました。

この関数は JavaScript から呼び出され、特定の秒数が経過するとプラグインがクラッシュError calling method on NPObject!し、JavaScript で呼び出された行でエラーが発生します。