Review of "Dock Stacks" version 1

Details Page Preview

macOS-style stacks for the GNOME Dash

Extension Homepage
https://github.com/dragosol/dock-stacks

No comments.

FAQ

Files

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

Shexli (experimental) warning 4 manual_review 1

Shexli found 5 issues that may need reviewer attention.

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:191
    St.Clipboard.get_default()

EGO-A-004 warning

extension files should not contain excessive ungated console logging

File contains 12 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • extension.js:109
    console.error(`[Dock Stacks] Source file does not exist: ${data.uri}`)
  • extension.js:143
    console.error(`[Dock Stacks] Failed to create Desktop dir: ${e}`)
  • extension.js:154
    console.error(`[Dock Stacks] Failed to copy to Desktop: ${e}`)
  • extension.js:181
    console.error(`[Dock Stacks] Failed to move to Nautilus dir: ${e}`)
  • extension.js:185
    console.error('[Dock Stacks] Could not determine Nautilus directory, cancelling drop.')
  • extension.js:536
    console.error(`[Dock Stacks] Failed to open ${data.name}:`, e)
  • extension.js:631
    console.error('[Dock Stacks] Sushi DBus spawn error:', e)
  • extension.js:1007
    console.error(`[Dock Stacks] Failed to open ${data.name}:`, e)
  • extension.js:1094
    console.error('[Dock Stacks] Sushi DBus spawn error:', e)
  • extension.js:1380
    console.error(`[Dock Stacks] Failed reading folder: ${e}`)

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-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

  • extension.js:719
            GLib.timeout_add(GLib.PRIORITY_DEFAULT, 200, () => {
                try {
                    if (_isActorAlive(this)) {
                        if (this.get_parent() === global.window_group)
                            global.window_group.remove_child(this);
                        this.destroy();
               
  • extension.js:1461
                GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
                    if (!this.button || !_isActorAlive(this.button) || !this.button.hover || !this._label) return GLib.SOURCE_REMOVE;
    
                    const [x, y] = this.button.get_transformed_position();
                    const [w, h] = this.butto

EGO-L-007 warning

main loop sources should be removed before being recreated

Main loop sources should be removed before creating a new source on the same field.

Remove main loop sources

  • extension.js:1519
    this._enableRetryId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 500, trySync)

All Versions

Version Status
1 Unreviewed