Search code examples
javascriptfirefoxfirefox-addonfirefox-addon-sdk

System JS : WARNING error running cfx run once updated to Firefox v25


Was trying to test an add-on I'm developing which was working until I upgraded to Firefox v25. Then I started getting the following error:

System JS : WARNING chrome://browser/content/tabbrowser.xml:2635
        function loadURI does not always return a value
System JS : WARNING chrome://browser/content/tabbrowser.xml:2655
        function loadURIWithFlags does not always return a value

followed by a plethora of js errors when I clicked on anything. I ran cfx testall and got a bunch of errors. I then downloaded a fresh installation and still was getting errors when running cfx testall.

The complete results of the last cfx testall I ran: http://www.otherrealm.org/cfxErrorMessages.txt The entire error trace was to long to fit in one stackoverflow question, but here's a part of it:

(C:\xampp\htdocs\firefoxaddon\addon-sdk-master) C:\xampp\htdocs\firefoxaddon\addon-sdk-master>cfx testall
Testing cfx...
.....................................................................................
----------------------------------------------------------------------
Ran 85 tests in 43.652s

OK
Testing all examples...
Testing annotator...
Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'.
Using profile at 'c:\users\aaron~1.eva\appdata\local\temp\tmpixuz5_.mozrunner'.
Running tests on Firefox 25.0/Gecko 25.0 ({ec8030f7-c20a-464f-9b0e-13a3a9e97384}) under winnt/x86-msvc.
Error: TypeError: mr.collectReports is not a function
 Traceback (most recent call last):
  File "resource://extensions.modules.anonid0-annotator-at-jetpack.commonjs.path/sdk/timers.js", line 40, in notify
    callback.apply(null, args);
  File "resource://extensions.modules.anonid0-annotator-at-jetpack.commonjs.path/sdk/test/runner.js", line 46, in runTests/<
    onDone: onDone
  File "resource://extensions.modules.anonid0-annotator-at-jetpack.commonjs.path/sdk/test/harness.js", line 588, in runTests
    startLeaks = getPotentialLeaks();
  File "resource://extensions.modules.anonid0-annotator-at-jetpack.commonjs.path/sdk/test/harness.js", line 383, in getPotentialLeaks
    mr.collectReports(logReporter, null);
0 of 1 tests passed.
JavaScript error: chrome://browser/content/urlbarBindings.xml, line 654: aUrl is undefined
Total time: 2.666000 seconds
Program terminated unsuccessfully.
Testing library-detector...
Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'.
Using profile at 'c:\users\aaron~1.eva\appdata\local\temp\tmpok6vjq.mozrunner'.
Running tests on Firefox 25.0/Gecko 25.0 ({ec8030f7-c20a-464f-9b0e-13a3a9e97384}) under winnt/x86-msvc.
Error: TypeError: mr.collectReports is not a function
 Traceback (most recent call last):
  File "resource://extensions.modules.jid1-r4rsvnkbannvgq-at-jetpack.commonjs.path/sdk/timers.js", line 40, in notify
    callback.apply(null, args);
  File "resource://extensions.modules.jid1-r4rsvnkbannvgq-at-jetpack.commonjs.path/sdk/test/runner.js", line 46, in runTests/<
    onDone: onDone
  File "resource://extensions.modules.jid1-r4rsvnkbannvgq-at-jetpack.commonjs.path/sdk/test/harness.js", line 588, in runTests
    startLeaks = getPotentialLeaks();
  File "resource://extensions.modules.jid1-r4rsvnkbannvgq-at-jetpack.commonjs.path/sdk/test/harness.js", line 383, in getPotentialLeaks
    mr.collectReports(logReporter, null);
0 of 1 tests passed.
JavaScript error: chrome://browser/content/urlbarBindings.xml, line 654: aUrl is undefined
Total time: 2.571000 seconds
Program terminated unsuccessfully.
Testing reading-data...
Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'.
Using profile at 'c:\users\aaron~1.eva\appdata\local\temp\tmp8oghkx.mozrunner'.
Running tests on Firefox 25.0/Gecko 25.0 ({ec8030f7-c20a-464f-9b0e-13a3a9e97384}) under winnt/x86-msvc.
Error: TypeError: mr.collectReports is not a function
 Traceback (most recent call last):
  File "resource://extensions.modules.reading-data-example-at-jetpack-dot-mozillalabs-dot-com.commonjs.path/sdk/timers.js", line 40, in notify
    callback.apply(null, args);
  File "resource://extensions.modules.reading-data-example-at-jetpack-dot-mozillalabs-dot-com.commonjs.path/sdk/test/runner.js", line 46, in runTests/<
    onDone: onDone
  File "resource://extensions.modules.reading-data-example-at-jetpack-dot-mozillalabs-dot-com.commonjs.path/sdk/test/harness.js", line 588, in runTests
    startLeaks = getPotentialLeaks();
  File "resource://extensions.modules.reading-data-example-at-jetpack-dot-mozillalabs-dot-com.commonjs.path/sdk/test/harness.js", line 383, in getPotentialLeaks
    mr.collectReports(logReporter, null);
0 of 1 tests passed.
Total time: 2.652000 seconds
Program terminated unsuccessfully.
Testing reddit-panel...
Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'.
Using profile at 'c:\users\aaron~1.eva\appdata\local\temp\tmp22os34.mozrunner'.
Running tests on Firefox 25.0/Gecko 25.0 ({ec8030f7-c20a-464f-9b0e-13a3a9e97384}) under winnt/x86-msvc.
Error: TypeError: mr.collectReports is not a function
 Traceback (most recent call last):
  File "resource://extensions.modules.anonid0-reddit-panel-at-jetpack.commonjs.path/sdk/timers.js", line 40, in notify
    callback.apply(null, args);
  File "resource://extensions.modules.anonid0-reddit-panel-at-jetpack.commonjs.path/sdk/test/runner.js", line 46, in runTests/<
    onDone: onDone
  File "resource://extensions.modules.anonid0-reddit-panel-at-jetpack.commonjs.path/sdk/test/harness.js", line 588, in runTests
    startLeaks = getPotentialLeaks();
  File "resource://extensions.modules.anonid0-reddit-panel-at-jetpack.commonjs.path/sdk/test/harness.js", line 383, in getPotentialLeaks
    mr.collectReports(logReporter, null);
0 of 1 tests passed.
JavaScript error: chrome://browser/content/urlbarBindings.xml, line 654: aUrl is undefined
Total time: 2.656000 seconds
Program terminated unsuccessfully.
Some examples tests were unsuccessful.
Testing all unit-test addons...
Testing addon-page...
Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'.
Using profile at 'c:\users\aaron~1.eva\appdata\local\temp\tmp8r3n4v.mozrunner'.
console.error: addon-page:
  Message: SyntaxError: missing ( before formal parameters
  Stack:
    @resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/deprecated/list.js:119
CuddlefishLoader/options<.load@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/loader/cuddlefish.js:129
@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/windows/firefox.js:8
CuddlefishLoader/options<.load@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/loader/cuddlefish.js:129
@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/windows.js:18
CuddlefishLoader/options<.load@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/loader/cuddlefish.js:129
@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/tabs/tabs-firefox.js:7
CuddlefishLoader/options<.load@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/loader/cuddlefish.js:129
@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/tabs/tabs.js:18
CuddlefishLoader/options<.load@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/loader/cuddlefish.js:129
@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/tabs.js:10
CuddlefishLoader/options<.load@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/loader/cuddlefish.js:129
@resource://test-addon-page-at-jetpack/addon-page/lib/main.js:19
CuddlefishLoader/options<.load@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/loader/cuddlefish.js:129
run@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/addon/runner.js:146
startup/<@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/addon/runner.js:113
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:118
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:118
then@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:43
then@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:153
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:185
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:118
then@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:43
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:185
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:118
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:118
then@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:43
then@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:153
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:185
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:118
then@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:43
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:185
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:118
then@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:43
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:185
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:118
then@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:43
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:185
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:118
then@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:43
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:185
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:118
then@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:43
resolve@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/core/promise.js:185
readAsync/<@resource://extensions.modules.test-addon-page-at-jetpack.commonjs.path/sdk/net/url.js:49
@resource://gre/modules/NetUtil.jsm:137

JavaScript error: chrome://browser/content/urlbarBindings.xml, line 654: aUrl is undefined
JavaScript error: chrome://browser/content/urlbarBindings.xml, line 654: aUrl is undefined
Total time: 38.135000 seconds
Program terminated successfully.
Testing chrome...
Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'.
Using profile at 'c:\users\aaron~1.eva\appdata\local\temp\tmppcscos.mozrunner'.
Running tests on Firefox 25.0/Gecko 25.0 ({ec8030f7-c20a-464f-9b0e-13a3a9e97384}) under winnt/x86-msvc.
Error: TypeError: mr.collectReports is not a function
 Traceback (most recent call last):
  File "resource://extensions.modules.test-chrome-at-jetpack.commonjs.path/sdk/timers.js", line 40, in notify
    callback.apply(null, args);
  File "resource://extensions.modules.test-chrome-at-jetpack.commonjs.path/sdk/test/runner.js", line 46, in runTests/<
    onDone: onDone
  File "resource://extensions.modules.test-chrome-at-jetpack.commonjs.path/sdk/test/harness.js", line 588, in runTests
    startLeaks = getPotentialLeaks();
  File "resource://extensions.modules.test-chrome-at-jetpack.commonjs.path/sdk/test/harness.js", line 383, in getPotentialLeaks
    mr.collectReports(logReporter, null);
0 of 1 tests passed.
JavaScript error: chrome://browser/content/urlbarBindings.xml, line 654: aUrl is undefined
Total time: 2.342000 seconds
Program terminated successfully.

Solution

  • The Javascript strict warnings, and that includes the tabbrowser warnings you gave, can be safely ignored, come from Firefox code itself and just appear because of how the SDK sets up javascript.options.strict.

    I tested some stuff from github using the SDK 1.14, and while there are indeed quite a bunch of strict warnings (and a few unrelated Firefox errors which can be ignored as well), stuff generally seems to work as it should.

    If you have any specific problems of stuff not working, then amend your question.

    The testall errors are expected: You're running the SDK master against Firefox Release, which does not yet support function* nor does it have bug 910517 yet (the collectReports stuff). Again, this is nothing to worry about, as the version of the SDK library that ships with Firefox will be used unless you explicitly tell cfx otherwise (which isn't supported anyway).