首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于PPAPI的问题

关于PPAPI的问题
EN

Stack Overflow用户
提问于 2014-02-12 07:34:19
回答 1查看 601关注 0票数 1

能否有人验证以下关于PPAPI的假设?

  1. PPAPI插件需要使用Nacl编译器进行编译,这会对其施加API限制。
  2. 此外,只有通过Chrome发布PPAPI插件,才有可能加载它们
  3. PPAPI将支持异步通信,就像https://developers.google.com/native-client/devguide/coding/message-system中的本地消息传递一样,并且按照下面的页面,禁止使用PPAPI进行同步通信。http://code.google.com/p/ppapi/wiki/InterfacingWithJavaScript

我们需要拦截铬流量,将其发送给本地应用程序,并根据分析结果实时阻止它。尝试探索本机消息传递,但问题是它只支持异步通信,不支持后续用例。

interceptHeader是使用“阻塞”、"requestHeaders“规范添加到chrome.webRequest.onBeforeSendHeaders中的侦听器。

代码语言:javascript
复制
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};
}
EN

回答 1

Stack Overflow用户

发布于 2014-02-13 22:51:55

不可能同步阻塞插件。由于性能和稳定性方面的原因,API是针对这一需求而专门设计的(支持进程之间的同步调用意味着从内部阻塞调用执行重入调用,这几乎保证了代码崩溃或严重混淆)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21721470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档