Review of "Dropbeat" version 50.0.0 (2)

Details Page Preview

A flashy extension to view your music/media. REQUIRES: ImageMagick FEATURES: - Control your media player from the top bar - View album art, track title, and artist name - Play, pause, and skip tracks - Works with any MPRIS player such as Firefox, Spotify, VLC, etc. - Configurable global shortcut to toggle open the card Screenshot uses art from Magnific.

Extension Homepage
https://github.com/romanlefler/dropbeat

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 4

Shexli found 4 issues that may need reviewer attention.

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • wndbus.js:43
    console.log(msg)
  • wndbus.js:51
    console.log(`DropbeatWnd stdout: ${txt.trimEnd()}`)
  • wndbus.js:46
    console.error(msg)
  • wndbus.js:56
    console.error(e)
  • wndbus.js:107
    console.error(e)
  • wndbus.js:113
    console.error(e)
  • wndbus.js:136
    console.error(`DropbeatWnd stdin write failed: ${e}`)
  • wndbus.js:140
    console.error(e)
  • wndbus.js:48
    console.warn(msg)

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

  • wnd/design.js
  • wnd/main.js
  • wnd/update.js
  • wnd/utils.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

  • extension.js:120
            this.#panelIcon = new St.Icon({
                icon_name: "folder-music-symbolic",
                style_class: "system-status-icon"
            })
  • prereqs.js:93
    this.#okay = okay

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

  • extension.js:45
    this.#gsettings = this.getSettings()
  • extension.js:144
    this.#indicator = indic
  • extension.js:120
            this.#panelIcon = new St.Icon({
                icon_name: "folder-music-symbolic",
                style_class: "system-status-icon"
            })
  • prereqs.js:93
    this.#okay = okay

All Versions

Version Status
50.0.1 (3) Active
50.0.0 (2) Rejected
49.0.0 (1) Active

Previous Reviews on this Version

Roman Lefler posted a review
I believe all of the Shexli warnings are false-positives. The freeing/disable warnings either don't apply or are freed and set to undefined. The unreadable JS files come from spawning in a separate GJS process to create a GTK window. As far as I know this is really the only way to create a fullscreen window. Most of the other logging warnings come from this GJS process communication and mostly just echoes stderr from the process. - Thanks, and let me know if anything needs to be changed.
JustPerfection rejected
The files in `wnd` should start with `#!@GJS@ -m` since they are scripts running as a separate app.