Closed Bug 1069524 Opened 10 years ago Closed 9 years ago

Something in addon sdk tries to access frame.contentDocument even in e10s setup and throws an exception

Categories

(Add-on SDK Graveyard :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(e10s+)

RESOLVED DUPLICATE of bug 1118364
Tracking Status
e10s + ---

People

(Reporter: smaug, Unassigned)

References

Details

Memchaser doesn't seem to work properly in e10s.

"DEPRECATED: The widget module is deprecated.  Please consider using the sdk/ui module instead.
Traceback (most recent call last):
  File "resource://gre/modules/commonjs/sdk/addon/runner.js", line 86, in startup/</<
    run(options);
  File "resource://gre/modules/commonjs/sdk/addon/runner.js", line 145, in run
    let program = main(options.loader, options.main);
  File "resource://gre/modules/commonjs/toolkit/loader.js", line 679, in main
    return loader.load(loader, module).exports;
  File "resource://gre/modules/commonjs/sdk/loader/cuddlefish.js", line 129, in CuddlefishLoader/options<.load
    result = load(loader, module);
  File "resource://gre/modules/commonjs/toolkit/loader.js", line 313, in load
    evaluate(sandbox, module.uri);
  File "resource://gre/modules/commonjs/toolkit/loader.js", line 262, in evaluate
    : loadSubScript(uri, sandbox, encoding);
  File "resource://memchaser-at-quality-dot-mozilla-dot-org/memchaser/lib/main.js", line 13, in null
    const widgets = require("sdk/widget");
  File "resource://gre/modules/commonjs/toolkit/loader.js", line 586, in require
    freeze(load(loader, module));
  File "resource://gre/modules/commonjs/sdk/loader/cuddlefish.js", line 129, in CuddlefishLoader/options<.load
    result = load(loader, module);
  File "resource://gre/modules/commonjs/toolkit/loader.js", line 313, in load
    evaluate(sandbox, module.uri);
  File "resource://gre/modules/commonjs/toolkit/loader.js", line 262, in evaluate
    : loadSubScript(uri, sandbox, encoding);
  File "resource://gre/modules/commonjs/sdk/widget.js", line 59, in null
    require("./util/deprecate").deprecateUsage(
  File "resource://gre/modules/commonjs/sdk/util/deprecate.js", line 18, in deprecateUsage
    let stack = get().slice(2);" deprecate.js:21
TypeError: frame.contentDocument is undefined
Stack trace:
_reallyInitFrame@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/deprecated/symbiont.js:151:1
_initFrame@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/deprecated/symbiont.js:112:7
Symbiont@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/deprecated/symbiont.js:63:7
Trait@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/deprecated/traits.js:114:14
WC_setContent@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/widget.js:809:20
WC_fill@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/widget.js:770:3
BW__addItemToWindow@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/widget.js:622:5
BW_addItems@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/widget.js:602:5
browserManager_addItem/<@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/widget.js:572:39
browserManager_addItem@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/widget.js:572:5
_initWidget@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/widget.js:281:5
Widget@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/widget.js:376:3
exports.main@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://memchaser-at-quality-dot-mozilla-dot-org/memchaser/lib/main.js:86:16
run@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/addon/runner.js:151:1
startup/</<@resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/smaug/.mozilla/firefox/zqfopf05.fb/extensions/memchaser@quality.mozilla.org.xpi!/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/addon/runner.js:86:7
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:865:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:744:7
 runner.js:164
TypeError: frame.contentDocument is undefined
In terms of the widget warning this is known given that we do not support the new panel yet. We work on that via https://github.com/mozilla/memchaser/issues/183.

But even by using the widget no exception of such type should be thrown.

Olli, what exactly does not work in MemChaser for you given this TypeError? I can't yet reproduce it with the Nightly from yesterday. I'm also on a x86-64 Linux system.
Nothing works. Memchaser just says "Initializing MemChaser..."
Works for me too on Mozilla/5.0 (X11; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0 ID:20140918030202 CSet: 426497473505 with and without e10s.

FYI /lib/main.js:86:16 is the Widget constructor call [1]:
>  var widget = widgets.Widget({
>    id: "memchaser-widget",
>    label: "MemChaser",
>    tooltip: "MemChaser",
>    contentURL: self.data.url("widget/widget.html"),
>    contentScriptFile: [self.data.url("widget/widget.js")],
>    contentScriptWhen: "ready",
>    panel: contextPanel,
>    width: 360,
>    onClick: function () {
>      contextPanel.postMessage({ type: "update", data: { logger_active: logger.active }});
>    }
>  });



[1]: https://github.com/mozilla/memchaser/blob/0.6/extension/lib/main.js#L86
Olli, do you see this in a Nightly build or a self-built version?
Nightly from yesterday.
Are you really using version 0.6 of memchaser? It is known that Memchaser 0.5.x is not running in current Aurora and Nightly builds.
Summary: Something in addon adk tries to access frame.contentDocument even in e10s setup and throws an exception → Something in addon sdk tries to access frame.contentDocument even in e10s setup and throws an exception
Flags: needinfo?(rFobic)
Widget API has not being updated to be compatible with e10s, neither I'm aware of such plans. As far as I can tell we want everyone to migrate off widget API to a toolbar button APIs. I let Jeff comment on this though.
Flags: needinfo?(rFobic) → needinfo?(jgriffiths)
(In reply to Irakli Gozalishvili [:irakli] [:gozala] [@gozala] from comment #7)
> Widget API has not being updated to be compatible with e10s, neither I'm
> aware of such plans. As far as I can tell we want everyone to migrate off
> widget API to a toolbar button APIs. I let Jeff comment on this though.

It looks like memchaser is working on moving off of widget. I think we should actually throw an exception if someone tries to load widget,  at least on an e10s browser. It's dead, man.
Flags: needinfo?(jgriffiths)
We're removing widget really soon.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.