diff --git a/browser-plugin/browser-plugin.c b/browser-plugin/browser-plugin.c
index 170372432..d16f8056c 100644
--- a/browser-plugin/browser-plugin.c
+++ b/browser-plugin/browser-plugin.c
@@ -225,7 +225,7 @@ NPP_New(NPMIMEType mimetype,
NULL, /* interface info */
"org.gnome.Shell",
"/org/gnome/Shell",
- "org.gnome.Shell",
+ "org.gnome.Shell.Extensions",
NULL, /* GCancellable */
&error);
if (!data->proxy)
diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js
index 55de25741..910d5cfc8 100644
--- a/js/ui/shellDBus.js
+++ b/js/ui/shellDBus.js
@@ -18,17 +18,6 @@ const GnomeShellIface =
-
-
-
-
-
-
-
-
-
-
-
@@ -57,26 +46,8 @@ const GnomeShellIface =
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
;
const GnomeShell = new Lang.Class({
@@ -85,8 +56,8 @@ const GnomeShell = new Lang.Class({
_init: function() {
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(GnomeShellIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell');
- ExtensionSystem.connect('extension-state-changed',
- Lang.bind(this, this._extensionStateChanged));
+
+ this._extensionsSerivce = new GnomeShellExtensions();
},
/**
@@ -198,6 +169,64 @@ const GnomeShell = new Lang.Class({
flashspot.fire();
},
+ get OverviewActive() {
+ return Main.overview.visible;
+ },
+
+ set OverviewActive(visible) {
+ if (visible)
+ Main.overview.show();
+ else
+ Main.overview.hide();
+ },
+
+ ShellVersion: Config.PACKAGE_VERSION
+});
+
+const GnomeShellExtensionsIface =
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+;
+
+const GnomeShellExtensions = new Lang.Class({
+ Name: 'GnomeShellExtensionsDBus',
+
+ _init: function() {
+ this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(GnomeShellExtensionsIface, this);
+ this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell');
+ ExtensionSystem.connect('extension-state-changed',
+ Lang.bind(this, this._extensionStateChanged));
+ },
+
+
ListExtensions: function() {
let out = {};
for (let uuid in ExtensionUtils.extensions) {
@@ -276,17 +305,6 @@ const GnomeShell = new Lang.Class({
ExtensionSystem.loadExtension(uuid);
},
- get OverviewActive() {
- return Main.overview.visible;
- },
-
- set OverviewActive(visible) {
- if (visible)
- Main.overview.show();
- else
- Main.overview.hide();
- },
-
ShellVersion: Config.PACKAGE_VERSION,
_extensionStateChanged: function(_, newState) {