Firefox正在使用addon在http请求上崩溃

时间:2011-10-19 18:26:24

标签: firefox-addon

我正在尝试这段代码:

// This is an active module of the goelvivek (10) Add-on
// This is an active module of the goelvivek (9) Add-on

var pageMod = require("page-mod");
var request = require('request');
pageMod.PageMod({
  include: "*",
  contentScriptWhen: "end",
  contentScript: 'var doc_c=document.title;console.log(doc_c);var body_uri=document.URI;self.postMessage(body_uri);',  
   onAttach:function(body_c){
       console.log("onattach");
       var req = request.Request({
           url:"http://google.com",
           content:{
               v:"1",
               body:body_c               
               },
               oncomplete: function (response){
                   console.log(response);
                   }
       });
       req.get();
       } 
});

但Firefox正在崩溃。为什么呢?

您可以在https://builder.addons.mozilla.org/addon/1021520/latest/

测试插件

1 个答案:

答案 0 :(得分:2)

最近的Nightly,这对我来说并没有崩溃。相反,它消耗大量内存并挂起,直到出现无响应脚本对话框。

挂起的原因是您希望body_c的{​​{1}}参数是来自内容脚本的消息,但它是worker object,有很多子参考,甚至可能是用圆形的。

SDK的onAttachcode将传递为Request的对象转换为字符串,然后再发送到请求中。它应该递归地遍历对象,显然它会在你传入的worker对象上窒息。