能否有人验证以下关于PPAPI的假设?
我们需要拦截铬流量,将其发送给本地应用程序,并根据分析结果实时阻止它。尝试探索本机消息传递,但问题是它只支持异步通信,不支持后续用例。
interceptHeader是使用“阻塞”、"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};
}发布于 2014-02-13 22:51:55
不可能同步阻塞插件。由于性能和稳定性方面的原因,API是针对这一需求而专门设计的(支持进程之间的同步调用意味着从内部阻塞调用执行重入调用,这几乎保证了代码崩溃或严重混淆)。
https://stackoverflow.com/questions/21721470
复制相似问题