Review of "Now Playing Card" version 1.0.7 (10)

Details Page Preview

Animated Now Playing indicator with a compact media card: cover art, a seekable progress bar and transport controls for any MPRIS player.

Extension Homepage
https://github.com/epogonii/nowplaying-card

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 2

Shexli found 3 issues that may need reviewer attention.

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

  • extension.js:461
                this._frameId = this._timeline.connect('new-frame',
                    () => this._onFrame())
  • extension.js:1137
            this._frameId = this._timeline.connect('new-frame',
                () => this._onFrame())
  • extension.js:1970
            loader.connect('size-prepared', (_loader, w, h) => {
                width = w;
                height = h;
            })

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:1911
            this._artRetryId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
                ART_RETRY_INTERVAL, () => {
                    this._artRetryTries++;
                    const artwork = this._artworkIcon(coverUrl);
    
                    // A picture that arrived is worth showing even before it can
                  
  • extension.js:2230
            this._pollId = GLib.timeout_add(GLib.PRIORITY_LOW, delayMs, () => {
                this._pollId = null;
                this._fetchPosition();
                this._updatePoll();
                return GLib.SOURCE_REMOVE;
            })
  • extension.js:2164
            this._seekPendingId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
                SEEK_COALESCE_MS, () => {
                    this._seekPendingId = null;
                    this._seekToSlider();
                    return GLib.SOURCE_REMOVE;
                })
  • extension.js:1789
            this._volumePendingId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
                VOLUME_COALESCE_MS, () => {
                    this._volumePendingId = null;
                    this._pushVolume();
                    return GLib.SOURCE_REMOVE;
                })
  • extension.js:2717
            this._retryId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, PROPERTY_RETRY_MS,
                () => {
                    this._retryId = null;
                    missing.forEach(([proxy, iface]) => this._fetchProperties(proxy, iface));
                    return GLib.SOURCE_REMOVE;
                })

EGO-M-004 error

metadata shell-version must only include plausible stable releases and at most one development release

Field `shell-version` contains invalid values, more than one development release, or implausible future releases.

metadata.json must be well-formed

  • metadata.json
    shell-version=['45', '46', '47', '48', '49', '50', '51']

All Versions

Version Status
1.0.10 (13) Active
1.0.9 (12) Active
1.0.8 (11) Active
1.0.7 (10) Rejected
1.0.6 (9) Active
1.0.5 (8) Rejected
1.0.4 (7) Rejected
1.0.3 (6) Active
1.0.3 (5) Rejected
1.0.3 (4) Rejected
1.0.2 (3) Rejected
1.0.1 (2) Rejected
1.0 (1) Rejected

Previous Reviews on this Version

JustPerfection rejected
Use `disconnectObject()` on destroy (line 1003 `extension.js`).