Bug 1298716 - Serialize extension in ExtensionTestUtils.loadExtension r=billm

MozReview-Commit-ID: BUK2QnMmXp7

--HG--
extra : rebase_source : f98d167db8067a59666c1b260e2c031fb6fbbbae
This commit is contained in:
Rob Wu 2016-08-28 16:35:00 -07:00
Родитель 64b87bb682
Коммит 105b7c01d0
1 изменённых файлов: 17 добавлений и 0 удалений

Просмотреть файл

@ -83,6 +83,23 @@ ExtensionTestUtils.loadExtension = function(ext)
},
};
// Mimic serialization of functions as done in `Extension.generateXPI` and
// `Extension.generateZipFile` because functions are dropped when `ext` object
// is sent to the main process via the message manager.
ext = Object.assign({}, ext);
if (ext.files) {
ext.files = Object.assign({}, ext.files);
for (let filename of Object.keys(ext.files)) {
let file = ext.files[filename];
if (typeof file == "function") {
ext.files[filename] = `(${file})();`
}
}
}
if (typeof ext.background == "function") {
ext.background = `(${ext.background})();`
}
var extension = SpecialPowers.loadExtension(ext, handler);
registerCleanup(() => {