Closed Bug 1094017 Opened 10 years ago Closed 10 years ago

Attempt to register component with null contractID throws error

Categories

(Toolkit :: General, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla36

People

(Reporter: irakli, Assigned: mossop)

Details

Attachments

(1 file)

We got a regression in SDK tests, with an exception:

console.error: addon-sdk:
  Message: TypeError: contractID is null
  Stack:
    ComponentRegistrarInterposition.methods.registerFactory@resource://gre/modules/RemoteAddonsParent.jsm:260:1
AddonInterpositionService.prototype.interpose/desc.value@resource://gre/components/multiprocessShims.js:133:52
register@resource://gre/modules/addons/XPIProvider.jsm -> file:///var/folders/0z/nztt5n4d4kg7b43dg9nv_3fc0000gp/T/tmpIAfau6.mozrunner/extensions/f7cddaeb-0355-4b31-88f9-e95fddff932a@jetpack/bootstrap.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/toolkit/loader.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/sdk/platform/xpcom.js:171:3
initialize@resource://gre/modules/addons/XPIProvider.jsm -> file:///var/folders/0z/nztt5n4d4kg7b43dg9nv_3fc0000gp/T/tmpIAfau6.mozrunner/extensions/f7cddaeb-0355-4b31-88f9-e95fddff932a@jetpack/bootstrap.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/toolkit/loader.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/sdk/platform/xpcom.js:119:7
constructor@resource://gre/modules/addons/XPIProvider.jsm -> file:///var/folders/0z/nztt5n4d4kg7b43dg9nv_3fc0000gp/T/tmpIAfau6.mozrunner/extensions/f7cddaeb-0355-4b31-88f9-e95fddff932a@jetpack/bootstrap.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/toolkit/loader.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/sdk/core/heritage.js:146:23
exports["test implement factory without contract"]@resource://gre/modules/addons/XPIProvider.jsm -> file:///var/folders/0z/nztt5n4d4kg7b43dg9nv_3fc0000gp/T/tmpIAfau6.mozrunner/extensions/f7cddaeb-0355-4b31-88f9-e95fddff932a@jetpack/bootstrap.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/toolkit/loader.js -> resource://f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack/addon-sdk/tests/test-xpcom.js:58:16
@resource://gre/modules/addons/XPIProvider.jsm -> file:///var/folders/0z/nztt5n4d4kg7b43dg9nv_3fc0000gp/T/tmpIAfau6.mozrunner/extensions/f7cddaeb-0355-4b31-88f9-e95fddff932a@jetpack/bootstrap.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/toolkit/loader.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/sdk/test.js:76:13
start@resource://gre/modules/addons/XPIProvider.jsm -> file:///var/folders/0z/nztt5n4d4kg7b43dg9nv_3fc0000gp/T/tmpIAfau6.mozrunner/extensions/f7cddaeb-0355-4b31-88f9-e95fddff932a@jetpack/bootstrap.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/toolkit/loader.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/sdk/deprecated/unit-test.js:541:7
startMany/runNextTest/<@resource://gre/modules/addons/XPIProvider.jsm -> file:///var/folders/0z/nztt5n4d4kg7b43dg9nv_3fc0000gp/T/tmpIAfau6.mozrunner/extensions/f7cddaeb-0355-4b31-88f9-e95fddff932a@jetpack/bootstrap.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/toolkit/loader.js -> resource://extensions.modules.f7cddaeb-0355-4b31-88f9-e95fddff932a-at-jetpack.commonjs.path/sdk/deprecated/unit-test.js:504:11
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:868:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:7


This is a source to a test:
https://github.com/mozilla/addon-sdk/blob/master/test/test-xpcom.js#L57-L65

This code was attempts to register component with null contractID that used to work before.
Attached patch patchSplinter Review
For add-ons using the e10s shims (all of them now) any attempts to register a factory go through the ComponentRegistrarInterposition which assumed contractID is non-null.
https://hg.mozilla.org/mozilla-central/rev/5928b7171c8d
Assignee: nobody → dtownsend+bugmail
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: