extensionSytem: Rename ENABLED/DISABLED states

The ENABLED state means that an extension's `enable()` method
was called successfully.

This usually matches whether an extension *should* be enabled
according to the enabled-extensions/disabled-extensions settings,
but not necessarily: If an extension had an error or does not
support the currently active mode, its actual state is different.

We currently only expose the actual state to external tooling,
but whether an extension should be enabled is relevant as well,
for example to disable a lock-screen only extension from the
regular session.

For that purpose we will expose a separate `enabled` property.
To avoid confusion with the existing states, change the exposed
names to (IN)ACTIVE.

This does not affect the D-Bus API, as the numeric values of
the states remain unchanged.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>
This commit is contained in:
Florian Müllner 2023-12-21 18:59:33 +01:00 committed by Marge Bot
parent 32d4bc43ea
commit e6624f8ba1
5 changed files with 27 additions and 27 deletions

View File

@ -71,14 +71,14 @@
<listitem><para>
The state the extension is in:
<simplelist>
<member>1: ENABLED</member>
<member>2: DISABLED</member>
<member>1: ACTIVE</member>
<member>2: INACTIVE</member>
<member>3: ERROR</member>
<member>4: OUT_OF_DATE</member>
<member>5: DOWNLOADING</member>
<member>6: INITIALIZED</member>
<member>7: DISABLING</member>
<member>8: ENABLING</member>
<member>7: DEACTIVATING</member>
<member>8: ACTIVATING</member>
<member>99: UNINSTALLED</member>
</simplelist>
</para></listitem>

View File

@ -13,14 +13,14 @@ export const ExtensionType = {
* @enum {number}
*/
export const ExtensionState = {
ENABLED: 1,
DISABLED: 2,
ACTIVE: 1,
INACTIVE: 2,
ERROR: 3,
OUT_OF_DATE: 4,
DOWNLOADING: 5,
INITIALIZED: 6,
DISABLING: 7,
ENABLING: 8,
DEACTIVATING: 7,
ACTIVATING: 8,
// Used as an error state for operations on unknown extensions,
// should never be in a real extensionMeta object.

View File

@ -119,8 +119,8 @@ export class ExtensionManager extends Signals.EventEmitter {
}
_loadExtensionStylesheet(extension) {
if (extension.state !== ExtensionState.ENABLED &&
extension.state !== ExtensionState.ENABLING)
if (extension.state !== ExtensionState.ACTIVE &&
extension.state !== ExtensionState.ACTIVATING)
return;
const variant = Main.getStyleVariant();
@ -182,10 +182,10 @@ export class ExtensionManager extends Signals.EventEmitter {
if (!extension)
return;
if (extension.state !== ExtensionState.ENABLED)
if (extension.state !== ExtensionState.ACTIVE)
return;
this._changeExtensionState(extension, ExtensionState.DISABLING);
this._changeExtensionState(extension, ExtensionState.DEACTIVATING);
// "Rebase" the extension order by disabling and then enabling extensions
// in order to help prevent conflicts.
@ -231,7 +231,7 @@ export class ExtensionManager extends Signals.EventEmitter {
this._extensionOrder.splice(orderIdx, 1);
if (extension.state !== ExtensionState.ERROR)
this._changeExtensionState(extension, ExtensionState.DISABLED);
this._changeExtensionState(extension, ExtensionState.INACTIVE);
}
async _callExtensionEnable(uuid) {
@ -246,10 +246,10 @@ export class ExtensionManager extends Signals.EventEmitter {
await this._callExtensionInit(uuid);
if (extension.state !== ExtensionState.DISABLED)
if (extension.state !== ExtensionState.INACTIVE)
return;
this._changeExtensionState(extension, ExtensionState.ENABLING);
this._changeExtensionState(extension, ExtensionState.ACTIVATING);
try {
this._loadExtensionStylesheet(extension);
@ -260,7 +260,7 @@ export class ExtensionManager extends Signals.EventEmitter {
try {
await extension.stateObj.enable();
this._changeExtensionState(extension, ExtensionState.ENABLED);
this._changeExtensionState(extension, ExtensionState.ACTIVE);
this._extensionOrder.push(uuid);
} catch (e) {
this._unloadExtensionStylesheet(extension);
@ -469,7 +469,7 @@ export class ExtensionManager extends Signals.EventEmitter {
if (!await this._callExtensionInit(uuid))
return;
if (extension.state === ExtensionState.DISABLED)
if (extension.state === ExtensionState.INACTIVE)
await this._callExtensionEnable(uuid);
} else {
extension.state = ExtensionState.INITIALIZED;
@ -560,7 +560,7 @@ export class ExtensionManager extends Signals.EventEmitter {
}
extension.stateObj = extensionState;
this._changeExtensionState(extension, ExtensionState.DISABLED);
this._changeExtensionState(extension, ExtensionState.INACTIVE);
return true;
}

View File

@ -801,21 +801,21 @@ const Extensions = GObject.registerClass({
_stateToString(extensionState) {
switch (extensionState) {
case ExtensionState.ENABLED:
return _('Enabled');
case ExtensionState.DISABLED:
case ExtensionState.ACTIVE:
return _('Active');
case ExtensionState.INACTIVE:
case ExtensionState.INITIALIZED:
return _('Disabled');
return _('Inactive');
case ExtensionState.ERROR:
return _('Error');
case ExtensionState.OUT_OF_DATE:
return _('Out of date');
case ExtensionState.DOWNLOADING:
return _('Downloading');
case ExtensionState.DISABLING:
return _('Disabling');
case ExtensionState.ENABLING:
return _('Enabling');
case ExtensionState.DEACTIVATING:
return _('Deactivating');
case ExtensionState.ACTIVATING:
return _('Activating');
}
return 'Unknown'; // Not translated, shouldn't appear
}

View File

@ -115,7 +115,7 @@ export const ExtensionRow = GObject.registerClass({
}
_updateState() {
const state = this._extension.state === ExtensionState.ENABLED;
const state = this._extension.state === ExtensionState.ACTIVE;
const action = this._actionGroup.lookup_action('enabled');
action.set_state(new GLib.Variant('b', state));