Closed Bug 844055 Opened 7 years ago Closed 4 years ago

Gecko profiler add-on no longer works with Firefox 21.0a2 builds (commonjs/promise/core.js not found)

Categories

(Core :: Gecko Profiler, defect, critical)

defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: whimboo, Unassigned)

Details

Since I have upgraded my Aurora build from 20.0a2 to 21.0a2 the profiler add-on no longer works. Enabling the extension the following failure is thrown:

[JavaScript Error: "geckoprofiler: An exception occurred.
Traceback (most recent call last):
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/l10n/loader.js", line 23, in request.onload
    resolve(request.responseText);
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 122, in then
    else result.then(resolved, rejected)
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 54, in effort
    try { return f(options) }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 142, in resolve
    while (pending.length) result.then.apply(result, pending.shift())
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 36, in then
    return { then: function then(resolve) { resolve(value) } }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 116, in resolved
    function resolved(value) { deferred.resolve(resolve(value)) }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/promise.js", line 54, in effort
    try { return f(options) }
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/addon/runner.js", line 91, in onLocalizationReady
    run(options);
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/addon/runner.js", line 123, in run
    let program = main(options.loader, options.main);
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/loader.js", line 286, in main
    return load(loader, module).exports;
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/loader.js", line 199, in load
    evaluate(sandbox, module.uri);
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/loader.js", line 173, in evaluate
    : loadSubScript(uri, sandbox, encoding);
  File "resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/geckoprofiler/lib/main.js", line 42, in null
    Cu.import("resource://gre/modules/commonjs/promise/core.js");
[Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIXPCComponents_Utils.import]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: resource://gre/modules/XPIProvider.jsm -> jar:file:///Volumes/data/profiles/firefox/Profiles/henrik/extensions/jid0-edalmuivkozlouyij0lpdx548bc@jetpack.xpi!/bootstrap.js -> resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/api-utils/lib/loader.js -> resource://jid0-edalmuivkozlouyij0lpdx548bc-at-jetpack/geckoprofiler/lib/main.js :: <TOP_LEVEL> :: line 42"  data: no]
"]
I think because the file has been moved to:

resource://gre/modules/commonjs/sdk/core/promise.js
The fix will be:

try {
  Cu.import("resource://gre/modules/commonjs/sdk/core/promise.js");
} catch (e) {
  Cu.import("resource://gre/modules/commonjs/promise/core.js");
}

Not sure where the code is located to create the patch.
Looks like an updated version of the add-on has already been uploaded to AMO but it's still under review. 

https://addons.mozilla.org/en-us/firefox/addon/gecko-profiler/versions/?page=1#version-1.11.11

Jorge, can we give the review a higher priority? Thanks.
This specific issue might have been gone meanwhile but will we ever release version 1.11.* to AMO?
Flags: needinfo?(bgirard)
I've been ask part of the review process to properly escape the parameters when launching addr2line to symbolicate stacks. The patch still needs testing. I've got several big changes coming in the next month or two so I'm just going to wait until everything is updated and do a big regression test then.

In the mean time I've been contemplating taking the extension off AMO and having people use the github one which I can update in a whim.
Flags: needinfo?(bgirard)
surely this is solved?
Flags: needinfo?(hskupin)
I haven't used the extension for a long time. Trying to get it installed now via https://github.com/bgirard/Gecko-Profiler-Addon/blob/master/geckoprofiler-signed.xpi shows me a failure for a corrupt XPI.
Flags: needinfo?(hskupin) → needinfo?(bgirard)
Perhaps you're not grabbing the raw data but just the HTML page that github is serving. In any case the add-on is now working against recent version of FF. This bug is no longer interesting as far as I can see.
Status: NEW → RESOLVED
Closed: 4 years ago
Flags: needinfo?(bgirard)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.