extensionUtils: Use a unique 'subdir' to create new importers

Apparently importers for the 'same' path are shared, even when the
relative paths resolve to different absolute ones. Until this bug
is fixed properly, we can work around this by expressing the current
extension path as the UUID relative to the parent directory.

https://bugzilla.gnome.org/show_bug.cgi?id=772386
This commit is contained in:
Florian Müllner 2016-10-17 23:05:05 +02:00
parent a3439a5230
commit d769b72c43

View File

@ -151,10 +151,10 @@ function createExtensionObject(uuid, dir, type) {
function installImporter(extension) { function installImporter(extension) {
let oldSearchPath = imports.searchPath.slice(); // make a copy let oldSearchPath = imports.searchPath.slice(); // make a copy
imports.searchPath = [extension.path]; imports.searchPath = [extension.dir.get_parent().get_path()];
// importing a "subdir" creates a new importer object that doesn't affect // importing a "subdir" creates a new importer object that doesn't affect
// the global one // the global one
extension.imports = imports['.']; extension.imports = imports[extension.uuid];
imports.searchPath = oldSearchPath; imports.searchPath = oldSearchPath;
} }