2011-01-18 3 views
3

カスタムの方法で音声対話機能にアクセスするためにChromiumのカスタムビルドを作成していますが、アクセスを公開する方法がわかりませんJavaScriptによる新しいネイティブメソッドです。ChromiumのネイティブコードにアクセスできるカスタムメソッドでJavaScript APIを拡張するには

WebKitの他のバージョンでは、addToJavaScriptWindowObject(Qtにあります)のようなメソッドがありますが、Chromiumで同じことをする方法がわかりません。

答えて

2

プロセス間APIは狭いインターフェイスなので、本質的に最小限のコール数しかありません。

まず第一に、私は(あなたがこれについての詳細を学ぶために、リストの「カーニタス」を検索することができます)クロスブラウザAPIに新しい機能を追加するための文書化の方法にあなたを指すようにたいと思います: https://sites.google.com/a/chromium.org/dev/developers/design-documents/multi-process-architecture/how-to-add-new-features

私の場合は、既存のAPI呼び出しにフックするソリューションを思いついた。基本的には、JavaScriptコールをjavascriptの "prompt()"関数を呼び出して同期呼び出し(完全なタブをフリーズする)非同期メッセージの場合は "externalHost.postMessage"。ブラウザ側では、私はこれらの2つの呼び出しをフックし、それらを処理します。オプションで応答を返します。

あなたは、私がバークリウム、ここではクロムラッパー・ライブラリーのために書いたコードを見ることができます: https://github.com/sirikata/berkelium/blob/chromium8/src/WindowImpl.cpp同じ技術が可能 (私はこれらのAPIにフック方法を確認するには、「javascriptCallは」参照されているすべての場所を検索) render_view_host.ccまたはTabContentを変更する場合は、Chromium自体に適用されます。

あなたのAPIには、どのレベルの統合が必要であるかを考慮する必要があります。また、テキストベースの機能をChromeコードベースに受け入れることに興味がある場合は、他の機能実装されています。

+0

私はすべてが意味をなさないと思います!今実際にそれを試してみてください。助けてくれてありがとう! – davejohnson

関連する問題