Review of "Desktop Icons NG (DING)" version 84

Details Page Preview

Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .

Extension Homepage
https://gitlab.com/rastersoft/desktop-icons-ng

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) error 1 warning 6 manual_review 1

Shexli found 8 issues that may need reviewer attention.

EGO-C49-003 error

extensions targeting GNOME 49 must not call maximize or unmaximize with Meta.MaximizeFlags

This extension explicitly targets GNOME Shell 49 but still passes `Meta.MaximizeFlags` to `maximize()` or `unmaximize()`.

Meta.Window

  • emulateX11WindowType.js:81
    window.maximize(Meta.MaximizeFlags.VERTICAL)
  • emulateX11WindowType.js:95
    window.maximize(Meta.MaximizeFlags.HORIZONTAL)

EGO-X-004 warning

extensions should avoid synchronous file IO in shell code

Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.

File Operations

  • extension.js:400
    processUser.load_bytes(null)

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • extension.js:33
    St.Clipboard.get_default()

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

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

  • app/askRenamePopup.js
  • app/autoAr.js
  • app/createThumbnail.js
  • app/dbusInterfaces.js
  • app/dbusUtils.js
  • app/desktopGrid.js
  • app/desktopIconItem.js
  • app/desktopIconsUtil.js
  • app/desktopManager.js
  • app/ding.js
  • app/enums.js
  • app/fileItem.js
  • app/fileItemMenu.js
  • app/fileUtils.js
  • app/notifyX11UnderWayland.js
  • app/preferences.js
  • app/prefswindow.js
  • app/promiseUtils.js
  • app/showErrorPopup.js
  • app/signalManager.js

EGO-L-001 warning

extension must not create GObject instances or modify shell before enable()

Resource creation or signal/source setup was found outside `enable()`.

Only use initialization for static resources

  • extension.js:412
    new Gio.Subprocess({argv: ['/bin/kill', filename]})

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

  • emulateX11WindowType.js:51
    window.connect_after('raised', () => {
                if (this._keepAtBottom && !this._keepAtTop) {
                    this._window.lower();
                }
            })

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

  • emulateX11WindowType.js:107
            this._moveIntoPlaceID = GLib.timeout_add(GLib.PRIORITY_LOW, 250, () => {
                if (this._fixed && (this._x !== null) && (this._y !== null)) {
                    this._window.move_frame(true, this._x, this._y);
                }
                this._moveIntoPlaceID = 0;
                return GLib.SO

All Versions

Previous Reviews on this Version

rastersoft posted a review
Note from the author: the error and the warning aren't really there; there is code to check the gnome shell version and use one piece of code or the other, and also the signals are being disconnected when the extension is disabled.
fmuellner active