1

I'm creating a very simple Firefox addon for testing purposes. I want to set default preferences (e.g. set extensions.myextension.bingo to "http://www.example.com"), however I can't seem to get this to work.

Here's what I did so far:

My lib/main.js looks like this:

var {Cc, Ci} = require("chrome");  

var prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService).getBranch("extensions.myextension.");
var value = prefs.getCharPref("bingo");

console.log("found: " + value);

My defaults/preferences/prefs.js file looks like this:

pref("extensions.myextension.bingo", "http://www.example.com");

When I run "cfx test" in the command line, I see this:

(D:\Users\myuser\addon-sdk-1.16) D:\Users\myuser\Projects\ffaddontest>cfx test
Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'.
Using profile at 'd:\users\myuser\appdata\local\temp\tmpd_6h4q.mozrunner'.
Running tests on Firefox 31.0/Gecko 31.0 ({ec8030f7-c20a-464f-9b0e-13a3a9e97384}) under winnt/x86.
Error: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getCharPref]"  nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///d:/users/myuser/appdata/local/temp/tmpd_6h4q.mozrunner/extensions/jid1-LtJU5H9I2NHnBA@jetpack.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://jid1-ltju5h9i2nhnba-at-jetpack/ffaddontest/lib/main.js :: <TOP_LEVEL> :: line 4"  data: no]
 Traceback (most recent call last):
  File "resource://gre/modules/commonjs/sdk/loader/cuddlefish.js", line 129, in CuddlefishLoader/options<.load
    result = load(loader, module);
  File "resource://jid1-ltju5h9i2nhnba-at-jetpack/ffaddontest/tests/test-main.js", line 1, in
    var main = require("./main");
  File "resource://gre/modules/commonjs/sdk/loader/cuddlefish.js", line 129, in CuddlefishLoader/options<.load
    result = load(loader, module);
  File "undefined", line 4, in
0 of 1 tests passed.
JavaScript strict warning: chrome://browser/content/urlbarBindings.xml, line 692: reference to undefined property this._value
JavaScript error: chrome://browser/content/urlbarBindings.xml, line 674: aUrl is undefined
Total time: 1.966000 seconds
Program terminated unsuccessfully.

Apparently the preference is not set (I don't see it in about:config either when running "cfx run" or creating and loading an xpi file using "cfx xpi").

What is it that I am doing wrong?

Thank you for your response.

a1191853
  • 11
  • 3

0 Answers0