Review of "Aurora Shell" version 18

Details Page Preview

A customizable GNOME Shell extension that enhances the user experience with various modules and features. The optional Clipboard History module reads and stores clipboard text locally so it can be browsed and restored; no clipboard data is shared with third parties, and its open shortcut is unset by default.

Extension Homepage
https://github.com/luminusOS/aurora-shell

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 6

Shexli found 6 issues that may need reviewer attention.

EGO-X-006 warning

extensions should not use lookupByURL or lookupByUUID for current extension access

Use `this`, `this.getSettings()` or `this.path` instead of `lookupByURL()` or `lookupByUUID()` for the current extension.

`extensionUtils`

  • shared/icons.js:12
    Extension.lookupByURL(import.meta.url)

EGO-P-007 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • moduleDefinition.js

EGO-L-002 warning

objects created by extension should be destroyed in disable()

Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.

Destroy all objects

  • modules/bluetoothMenu/deviceItem.js:43
        this._batteryLabel = new St.Label({
          style_class: 'aurora-bt-battery-label',
          y_align: Clutter.ActorAlign.CENTER,
          x_expand: false,
        })
  • modules/bluetoothMenu/deviceItem.js:49
        this._stateIcon = new St.Icon({
          icon_size: 16,
          style_class: 'popup-menu-icon',
          y_align: Clutter.ActorAlign.CENTER,
          x_expand: false,
        })
  • modules/volumeMixer/mixerPanel.js:37
    this._scroll = scroll

EGO-L-005 warning

owned object references should be released in disable()

Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.

Destroy all objects

  • modules/bluetoothMenu/deviceItem.js:43
        this._batteryLabel = new St.Label({
          style_class: 'aurora-bt-battery-label',
          y_align: Clutter.ActorAlign.CENTER,
          x_expand: false,
        })
  • modules/bluetoothMenu/deviceItem.js:49
        this._stateIcon = new St.Icon({
          icon_size: 16,
          style_class: 'popup-menu-icon',
          y_align: Clutter.ActorAlign.CENTER,
          x_expand: false,
        })
  • modules/volumeMixer/mixerPanel.js:37
    this._scroll = scroll

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • modules/bluetoothMenu/bluetoothMenu.js:89
        item.connect('destroy', () => {
          this._patchers.delete(item);
        })
  • modules/bluetoothMenu/deviceItem.js:70
        this._batteryNotifyId = item._device.connect('notify::battery-percentage', () => {
          this._updateBatteryLabel();
        })
  • modules/bluetoothMenu/deviceItem.js:73
        this._connectedNotifyId = item._device.connect('notify::connected', () => {
          this._updateBatteryLabel();
          this._updateStateIcon();
        })
  • modules/bluetoothMenu/deviceItem.js:59
        this._spinnerNotifyId = item._spinner.connect('notify::visible', () => {
          if (item._spinner.visible) {
            this._updateStateIcon();
            this._updateBatteryLabel();
          } else {
            this._scheduleUpdate();
          }
        })
  • modules/volumeMixer/streamSlider.js:33
    this._sliderChangedId = this.slider.connect('notify::value', () => this._sliderChanged())
  • modules/volumeMixer/streamSlider.js:23
          this._soundSettings.connect(`changed::${ALLOW_AMPLIFIED_VOLUME_KEY}`, () =>
            this._updateAllowAmplified(),
          )
  • modules/volumeMixer/streamSlider.js:34
          this.slider.connect('drag-begin', () => {
            this._inDrag = true;
          })
  • modules/volumeMixer/streamSlider.js:37
          this.slider.connect('drag-end', () => {
            this._inDrag = false;
          })
  • modules/volumeMixer/volumeMixer.js:119
        this._toggleButton.connect('clicked', () => {
          if (!this._panel || !this._menuSection || !this._settingsSection) return;
          this._menuSection.box.show();
          this._settingsSection.box.show();
          slider._deviceSection?.box.hide();
          slider.menu._setSettingsVisibility?.(false);
      

EGO-L-004 warning

main loop sources should be removed in disable()

Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.

Remove main loop sources

  • modules/bluetoothMenu/deviceItem.js:108
            this._animationTimeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 250, () => {
              this._animationFrame = (this._animationFrame % 4) + 1;
              this._stateIcon.gicon = this._loadIcon(
                `bbm-bluetooth-${this._animatingState}-${this._animationFrame}-symbolic`,
              )
  • modules/bluetoothMenu/deviceItem.js:84
        this._pendingUpdateId = GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
          this._pendingUpdateId = 0;
          this._updateStateIcon();
          this._updateBatteryLabel();
          return GLib.SOURCE_REMOVE;
        })
  • shared/ui/dash.js:588
                  this._springLoadTimerId = GLib.timeout_add(
                    GLib.PRIORITY_DEFAULT,
                    SPRING_LOAD_DELAY,
                    () => {
                      this._springLoadTimerId = 0;
                      if (this._isDestroyed) return GLib.SOURCE_REMOVE;
                      const windo
  • shared/ui/dash.js:721
          this._workAreaUpdateId = GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
            this._workAreaUpdateId = 0;
            if (this._workArea) {
              this.applyWorkArea(this._workArea);
            }
            return GLib.SOURCE_REMOVE;
          })

All Versions

Version Status
50.9 (26) Active
50.8 (25) Active
50.6 (24) Active
50.5 (23) Rejected
50.4 (22) Rejected
50.2 (21) Rejected
50.3 (20) Rejected
50.2 (19) Rejected
18 Rejected
17 Active
16 Active
15 Rejected
14 Rejected
13 Rejected
12 Rejected
11 Rejected
10 Active
9 Rejected
8 Active
7 Rejected
6 Active
5 Active
4 Rejected
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

leandromqrs auto- rejected
Auto-rejected because of new version 50.2 (19) was uploaded