1

誰かがPPAPIに関する次の仮定を検証してもらえますか?

  1. PPAPI プラグインは、API 制限を適用する Nacl コンパイラでコンパイルする必要があります。
  2. さらに、PPAPI プラグインの読み込みは、Chrome ウェブストア経由で公開されている場合にのみ可能であるようです
  3. PPAPI は今後、https: //developers.google.com/native-client/devguide/coding/message-system に従ってネイティブ メッセージングのような非同期通信をサポート します。次のページに従って、PPAPI を使用した同期通信は推奨されません。 http://code.google.com/p/ppapi/wiki/InterfacingWithJavaScript

Chrome トラフィックを傍受し、分析のためにネイティブ アプリケーションに送信し、分析結果に応じてリアルタイムでブロックする必要があります。ネイティブ メッセージングを調べてみましたが、問題は、非同期通信のみをサポートし、次のユース ケースをサポートしていないことです。

InterceptHeader は、["blocking", "requestHeaders"] 仕様で chrome.webRequest.onBeforeSendHeaders に追加されたリスナーです。

interceptHeaders: function(details)
{
    var verdict = false;

    //send request for scanning only if it is a POST request                         
    if (details.method == "POST")
    {
        //create new responseObject
        var responseObject = new ResponseObject();

        /use native messaging to send request for scanning
       chrome.runtime.sendNativeMessage('com.my_company.my_application',
                                          requestObject,
                                          responseObject.Callback
                                        );

        // wait for response - how to efficiently wait unitl responseObject.Callback is processed
        // so that responseObject.verdict can be used as a return value of interceptHeaders as shown below
        ??????????????           

        //update the verdict (true or false)
        verdict = responseObject.verdict;

        console.log ("verdict " + verdict + "for RequestId " + details.requestId);

        //delete the responseObject
        delete responseObject;
    }

    return {cancel: verdict};
}
4

1 に答える 1