Review of "Dash to Dock" version 105

Details Page Preview

A dock for the Gnome Shell. This extension moves the dash out of the overview transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops. Side and bottom placement options are available.

Extension Homepage
https://micheleg.github.io/dash-to-dock/

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 10

Shexli found 10 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`

  • desktopIconsIntegration.js:72
    Extension.lookupByURL(import.meta.url)

EGO-I-004 warning

extensions should not use imports._gi directly

Direct use of `imports._gi` is discouraged in extensions.

InjectionManager

  • utils.js:403
    Gi.gobject_prototype_symbol
  • utils.js:404
    Gi.gobject_prototype_symbol
  • utils.js:406
    Gi.hook_up_vfunc_symbol

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

  • locationsWorker.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

  • docking.js:263
    this.staticBox = new Clutter.ActorBox()

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

  • appIcons.js:46
    tracker = Shell.WindowTracker.get_default()

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

  • appIconIndicators.js:270
            this._area = new IndicatorDrawingArea({
                x_expand: true,
                y_expand: true,
            })
  • docking.js:263
    this.staticBox = new Clutter.ActorBox()

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

  • appIcons.js:1035
    source.connect('destroy', () => this.destroy())
  • docking.js:1023
                this._pressureBarrier.connect('trigger', _barrier => {
                    if (!settings.autohideInFullscreen && this._monitor.inFullscreen)
                        return;
                    this._onPressureSensed();
                })
  • docking.js:1398
                    Main.wm._workspaceSwitcherPopup.connect('destroy', actor => {
                        if (Main.wm._workspaceSwitcherPopup === actor)
                            delete Main.wm._workspaceSwitcherPopup;
                    })

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

  • docking.js:1374
                        this._optionalScrollWorkspaceSwitchDeadTimeId = GLib.timeout_add(
                            GLib.PRIORITY_DEFAULT, 250, () => {
                                this._optionalScrollWorkspaceSwitchDeadTimeId = 0;
                            })

EGO-C45-001 warning

45+ preferences should use fillPreferencesWindow instead of getPreferencesWidget

45+ preferences code should use `fillPreferencesWindow()` instead of `getPreferencesWidget()`.

Preferences

  • prefs.js:1163
        getPreferencesWidget() {
            const settings = new DockSettings(this);
            const {widget} = settings;
            return widget;
        }

All Versions

Version Status
105 Unreviewed
104 Active
103 Active
102 Active
101 Active
100 Active
99 Active
98 Active
97 Active
96 Active
95 Active
94 Active
93 Active
92 Active
91 Active
90 Rejected
89 Active
88 Rejected
87 Active
86 Rejected
85 Rejected
84 Active
83 Active
82 Active
81 Active
80 Active
79 Active
78 Active
77 Active
76 Rejected
75 Active
74 Active
73 Active
72 Rejected
71 Active
70 Active
69 Active
68 Active
67 Active
66 Active
65 Active
64 Active
63 Active
62 Active
61 Active
60 Active
59 Active
58 Rejected
57 Active
56 Active
55 Active
54 Active
53 Active
52 Active
51 Active
50 Active
49 Active
48 Active
47 Active
46 Active
45 Active
44 Active
43 Active
42 Active
41 Active
40 Active
39 Active
38 Active
37 Active
36 Active
35 Active
34 Active
33 Active
32 Rejected
31 Rejected
30 Active
29 Active
28 Active
27 Active
26 Rejected
25 Active
24 Active
23 Active
22 Active
21 Active
20 Active
19 Active
18 Active
17 Active
16 Active
15 Inactive
14 Active
13 Active
12 Active
11 Active
10 Active
9 Active
8 Rejected
7 Active
6 Active
5 Rejected
4 Active
3 Active
2 Rejected
1 Active