有人可以验证以下关于 PPAPI 的假设吗?
- PPAPI 插件需要使用 Nacl 编译器编译,这对其设置了 API 限制。
- 此外,PPAPI 插件的加载似乎只有在通过 Chrome Webstore 发布时才有可能
- 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};
}