2011-12-09 3 views
3

사용자가 내 사이트에 로그인 한 후 해당 도메인의 세션 ID를 읽고 애드온과의 추가 상호 작용에 사용할 애드온을 작성하려고합니다. 나는 온라인 firefox addon builder를 사용하며,이 예제를 시도했다. cookies mdn.애드온으로 쿠키 읽기

Fehler: An exception occurred. 
Traceback (most recent call last): 
    File "C:\Users\tasos\AppData\Roaming\Mozilla\Firefox\Profiles\812iobvo.default\flightdeck\resources\jid0-d0ba10rpeed0a0ftwmx80raes0q-at-jetpack-tasosthegreat-2-data\process.js", line 4, in 
Error: <https://builder.addons.mozilla.org> wurde die Erlaubnis für das Lesen der Eigenschaft XPCComponents.classes verweigert. 

online addon builder으로 사용할 수있는 권리 코드 : 그것은 나를 반환이 코드를 사용하여 나는 XPCComponents.classes을 읽을 수있는 권한이없는 것을?

이 지금까지 내 모든 코드 :

main.js :

var data = require("self").data; 

var cm = require("context-menu"); 
cm.Item({ 
    label: "My Menu Item", 
    contentScriptFile: data.url('process.js') 
     }); 

및 process.js : 직접 Components.classes에 액세스 할 수 없습니다 SDK로 구축

self.on("click", function (node, data) { 


     var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); 
    var uri = ios.newURI("http://www.google.com/", null, null); 
    var cookieSvc = Components.classes["@mozilla.org/cookieService;1"].getService(Components.interfaces.nsICookieService); 
    var cookie = cookieSvc.getCookieString(uri, null); 
}); 

답변

5

부가 기능 . Components.interfaces를 들어, Components.classes에 대한 Ci 스탠드

var {Cc, Ci} = require("chrome"); 
var cookieSvc = Cc["@mozilla.org/cookieService;1"].getService(Ci.nsICookieService); 

Cc 스탠드 대신 그들은 chrome package를 사용해야합니다.

+0

콘텐츠 스크립트에 크롬 권한이 필요하지 않으므로 여전히 도움이되지 않습니까? – canuckistani

+0

@canuckistani : 맞습니다. 물론'main.js '에서해야합니다. –