問題タブ [npapi]
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.
javascript - ブラウザー プラグイン (NPAPI) からの非同期 Javascript イベントの生成
Web ブラウザー プラグイン (NPAPI) を作成しています。
私のプラグインはワーカー スレッドを開始します。ワーカーが進行するにつれて、イベントを Javascript に渡したいと思います。しかし、NPAPI スレッド モデルのため、ワーカー スレッドが NPAPI に直接コールバックすることは合法ではないため、ワーカー スレッドは Javascript を呼び出すことができません。
これに対する 1 つの解決策は、NPN_PluginThreadAsyncCall 関数です。しかし、これは比較的新しい機能です。たとえば、Firefox 3 以降でのみサポートされています。
NPN_PluginThreadAsyncCall を使用せずに NPAPI プラグインから非同期イベント配信/JavaScript 実行を取得する方法はありますか? この機能が追加される前に人々は何をしていましたか?
firefox - npapiプラグインでオブジェクトをリリースするタイミング
npapiの参照カウントについて混乱しています。ほとんどの場合、どの方法で参照数が増えるかわかりません。誰かがこれについて詳しく説明できますか?便宜上、ここに最も一般的に使用されるNPN_ *関数と、私自身の理解をリストしました。
NPN_CreateObject:参照カウントを0に設定します
NPN_RetainObject:inc ref count
NPN_ReleaseObject:dec ref count
NPN_Evaluate:?? (NPObject *を返す場合)
NPN_GetValue:?? (NPObject *を返す場合)
NPN_SetValue:?? (NPObject *に設定されている場合)
NPN_GetProperty:?? (NPObject *を返す場合)
NPN_SetProperty:?? (NPObject *に設定されている場合)
NPN_RemoveProperty:??
NPN_Enumerate:??
NPN_Construct:??
別のこと:npapiはネストされたリリースを行いますか?(NPObject*のプロパティを持つNPObject*の場合、親を解放すると子のrefカウントが減少します)。
ありがとう。
macos - OS X 10.6 で WebKitPluginHost が 32 ビット プラグインをサイレント モードで終了する
ユニバーサル 32 ビット バンドルとしてビルドされたカスタム OS X NPAPI プラグインがあります。Firefox の OS x 10.6 で正常に動作します。また、32 ビット モードで起動された Safari でも正常に動作します。
ただし、64 ビット モードで起動された Safari ではサイレントに失敗します。64 ビット Safari は、別のプロセス (WebKitPluginHost) で 32 ビット プラグインを実行します。プラグイン ログは、ホストがプラグインを開始し、NP_Initialize、NP_GetEntryPoints、NPP_New の順に呼び出し、作成されたインスタンスを正常に返すことを示しています。通常、次に呼び出されるプラグイン メソッドは NPP_SetWindow ですが、ホストがそれを呼び出すことはありません。代わりに、起動後約 10 秒でメッセージなどを表示せずに静かに終了します。GDB を使用してホスト プロセスにアタッチすることはできましたが、運が悪く、プロセスが正常に終了したことを示すだけです。
プラグインで間違っていた可能性のあるヒント、または WebKitPluginHost で動作することが知られているオープンソースの NPAPI プラグインの URL、またはこの問題をデバッグするための最良の方法 (ビルド デバッグ) のヒントをいただければ幸いです。 WebKit のバージョンは最後の手段です。私はそこにいましたが、もう少し早く解決策を見つける必要があります)
google-chrome - NPAPI プラグインが Google Chrome で機能しない
古い Mozilla NPRuntime の例をベースとして使用して、小さな NPAPI プラグインを作成しました。私の問題は、Firefox と Safari (Windows) では問題なく動作しますが、Google Chrome では動作しないことです。
about:plugins でプラグインを確認できます。テスト ページを開くと、Chrome がプラグインを実行するための新しいプロセスを起動していることがわかります。プラグイン プロセスはエラー ダイアログなしで 10 秒以内に終了します。10 秒間、プロセスは実行中ですが、スクリプト可能なプラグイン オブジェクトへのアクセスは機能しません (Firefox または Safari を使用している場合は正常に機能します)。
Chrome が 10 秒後にプラグイン プロセスを強制終了する原因となるアイデアはありますか? プラグインにアクセスしなくても強制終了するため、初期化に関連するものである必要があります。
safari - Mac OS X v10.6でアウトプロセスブラウザプラグインを開発する-プラットフォームAPIに対する制限?
私は現在MacOSX10.6用のブラウザプラグインを開発しており、ブラウザやアーキテクチャ間での移植性のためにnetscapeAPIを使用することを計画しています。Appleのドキュメントによると、10.6の時点で、このようなプラグインはプロセス外で実行され、ブラウザセッションの整合性が向上しています。私が懸念しているのは、ドキュメントに記載されている次のディレクティブです。
プラットフォームAPIは慎重に使用してください。可能な限り、新しいプラグインAPIを使用して必要なことを実行する必要があります。そのようなAPIが存在しない場合は、それらを要求するバグをファイルします。
このディレクティブの性質がわかりません。プラグインの移植性を改善するためのこのアドバイス、オペレーティングシステムの他のAPIにアクセスすると、クライアントがクラッシュしたり、ユーザーのデータが破損したりする可能性があることを思い出させたり、プラットフォームAPIへのアクセスが何らかの形で「壊れている」ことを示したりしますか? 「」
c++ - QtWebKit の NPAPI プラグイン
Qt 4.5 のリリース以降サポートされているため、NPAPI プラグインを QtWebKit と統合できることを知っています。
私の質問は、Mozilla/Gecko のドキュメンテーションに従ってプラグインを設計する必要があるかどうかです。これはおそらく、「プログラミング Netscape プラグイン」と呼ばれる非常に古い本の横にある NPAPI の唯一の入手可能で信頼できるドキュメントです。または、Qt は NPAPI プラグインを処理しますか?別の方法で?
c++ - 非描画のMozillaプラグイン
いくつかのロジックを実装するdllがあります。MozillaFirefoxブラウザのHTMLページのJavaScriptからアクセスできるラッパーを作成したいと思います。npruntimeフレームワークを見つけましたが、ウィンドウコントロールのみをサポートしているようで、GUIは必要ありません。InternetExplorerに実装されているActiveXObjectのようなメカニズムを探しています。
firefox - Firefox 3.6 プラグインは Mac で失敗しますか?
Mac を Firefox 3.6 にアップグレードしたところ、どちらの TIFF 表示プラグインも機能しなくなりました。
3.5 では、Quicktime をオンにしていれば、quicktime で表示された tiff を取得していました。Quicktime を無効にして、自分のプラグインである AcellViewTIFF を有効にすると、ViewTIFF で TIFF が表示されます。私は ViewTIFF の作成者なので、ほとんどの場合、それが私のやり方です。
3.6 にアップグレードした後、ViewTIFF が有効になっていると、空白のスペースが表示されます。ViewTIFF が無効になっている場合は、Quicktime が有効になっているかどうかに関係なく、プレビューに直接進みます。
誰もこれを見たことがありますか?
(私は AccelViewTIFF を書いているため、これはプログラミング関連であり、プラグインのフレームワークが変更された場合は修正する必要があります...)
編集して追加:
これは NPAPI プラグインです。メインを削除またはコメントアウトしたので、これは CFM プラグインの問題ではないと思います。
Mozilla の「basicplugin」 (mozilla-1-9-1-f15a2686e9a6/modules/plugin/sdk/samples/basic/mac の標準 mozilla ソースの下にあります) を調べたところ、動作します。すべての関数を BasicPlugin の関数と比較しましたが、実際の作業を行っているように見える唯一の関数は、drawPlugin 関数です。同等の機能はすべて同じインターフェースを持っています。
AccelViewTIFF を削除または無効にすると、Firefox は画像をダウンロードしてプレビューに使用します。有効にすると、何もしません。これは、Firefox は私がプラグインを持っていることを認識していますが、何らかの理由でそれを実行していないことを示しています。
Firefox のエラー コンソールにも、確認できるコンソール ログにもエラーはありません...
何か案は?
macos - ブラウザ プラグインを XPI に変換する
いくつかの異なるブラウザーで動作する Mac 用の非常に古い (1992 年) ブラウザー プラグインがあります。ただし、Firefox は Firefox 3.6 でプラグインを XPI ファイルに制限したため、プラグインは機能しなくなりました。
プラグインを XPI にするため、または少なくとも Firefox でロード可能にするために必要なことを説明している有用なドキュメントを見つけることができませんでした。誰かそのようなドキュメントを教えてもらえますか? または、私が何をする必要があるかを説明してください。私はXcodeを使用しています。
scripting - NPAPI プラグイン注入スクリプト
npapi プラグインを開発しています。ブラウザの現在の Web ページにスクリプトを挿入しようとしていますが、実行できません。どのように進めるべきかについてのヒントや提案は、本当に役に立ちます。
ありがとう