From 7da0f398a560420b31a5bd68d9340b83c84d2ac4 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Wed, 27 Jun 2012 11:47:51 -0400 Subject: [PATCH] shellDBus: Split extensions API out into a separate DBus interface The generic "Shell" interface was getting a bit too crowded. https://bugzilla.gnome.org/show_bug.cgi?id=679099 --- browser-plugin/browser-plugin.c | 2 +- js/ui/shellDBus.js | 102 +++++++++++++++++++------------- 2 files changed, 61 insertions(+), 43 deletions(-) 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) {