2011-12-09 5 views
3

ユーザーが自分のサイトにログインした後、そのドメインのセッションIDを読み込んでアドオンとのやりとりに使用するアドオンを作成しようとしています。私はオンラインのFirefoxのアドオンビルダーを使用し、私はこの例を試しましたcookies mdn。このコードを使用することにより、それは私がXPCComponents.classesの読み取り権限を持っていないことを私に返します。アドオンでクッキーを読む

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. 

は​​で使用する権利のコードですか?

これは今まで私の全体のコードです:

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

アドオン。代わりに、彼らはchrome packageを使用する必要があります。

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

CcComponents.interfacesの略CiComponents.classesの略です。

+0

コンテンツスクリプトではクローム権限を必要としないため、これはまだ役に立ちませんか? – canuckistani

+0

@canuckistani:もちろん、これはもちろん 'main.js'で行うべきです。 –

関連する問題