Review of "Mute spotify ads" version 31

Details Page Preview

Mute spotify ads

Extension Homepage
https://github.com/danigm/spotify-ad-blocker

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 5

Shexli found 5 issues that may need reviewer attention.

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • extension.js:148
    console.log('Debug: muteStreams called')
  • extension.js:163
    console.log('Debug: mute called')
  • extension.js:202
    console.log('Debug: unmute called')
  • extension.js:234
    console.log('Debug: isAd called with blocklist: ' + blocklist)
  • extension.js:235
    console.log('Debug: isAd called with trackId: ' + trackId)
  • extension.js:247
    console.log('Debug: update called')

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:46
            this.ad_icon = new St.Icon({
                icon_name: 'tv-symbolic',
                style_class: 'system-status-icon'
            })
  • extension.js:36
            this.button = new St.Bin({ style_class: 'panel-button',
                                       reactive: true,
                                       can_focus: true,
                                       track_hover: true })
  • extension.js:91
    this.debugMute = new St.Bin({ style_class: 'panel-button', reactive: true, can_focus: true, track_hover: true })
  • extension.js:99
            this.debugTrackId = new St.Label({
                text: "track-id",
                x_align: Clutter.ActorAlign.CENTER,
                y_align: Clutter.ActorAlign.CENTER,
            })
  • extension.js:92
    this.debugUnmute = new St.Bin({ style_class: 'panel-button', reactive: true, can_focus: true, track_hover: true })
  • extension.js:41
            this.music_icon = new St.Icon({
                icon_name: 'folder-music-symbolic',
                style_class: 'system-status-icon'
            })

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:46
            this.ad_icon = new St.Icon({
                icon_name: 'tv-symbolic',
                style_class: 'system-status-icon'
            })
  • extension.js:36
            this.button = new St.Bin({ style_class: 'panel-button',
                                       reactive: true,
                                       can_focus: true,
                                       track_hover: true })
  • extension.js:91
    this.debugMute = new St.Bin({ style_class: 'panel-button', reactive: true, can_focus: true, track_hover: true })
  • extension.js:99
            this.debugTrackId = new St.Label({
                text: "track-id",
                x_align: Clutter.ActorAlign.CENTER,
                y_align: Clutter.ActorAlign.CENTER,
            })
  • extension.js:92
    this.debugUnmute = new St.Bin({ style_class: 'panel-button', reactive: true, can_focus: true, track_hover: true })
  • extension.js:41
            this.music_icon = new St.Icon({
                icon_name: 'folder-music-symbolic',
                style_class: 'system-status-icon'
            })

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:52
    this.button.connect('button-press-event', this.toggle.bind(this))
  • extension.js:95
    this.debugMute.connect('button-press-event', this.mute.bind(this))
  • extension.js:96
    this.debugUnmute.connect('button-press-event', this.unmute.bind(this))
  • extension.js:68
            this.settings.connect('changed::debug-mode', () => {
                this.debugMode = this.settings.get_boolean('debug-mode');
                this.showDebugControls();
            })
  • extension.js:58
            this.settings.connect('changed::show-indicator', () => {
                if (this.settings.get_boolean('show-indicator')) {
                    Main.panel._rightBox.insert_child_at_index(this.button, 0);
                } else {
                    Main.panel._rightBox.remove_child(this.button);
               

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:174
            this.remuteTimeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 200,
                () => {
                    if (this.isAd()) {
                        this.muteStreams();
                        return GLib.SOURCE_CONTINUE;
                    }
                    this.remuteTimeout = 0;
                    return G

All Versions

Version Status
31 Active
30 Active
29 Rejected
28 Active
27 Rejected
26 Active
25 Active
24 Active
23 Active
22 Active
21 Active
20 Active
19 Active
18 Active
17 Active
16 Rejected
15 Active
14 Active
13 Active
12 Active
11 Active
10 Active
9 Active
8 Active
7 Active
6 Active
5 Active
4 Active
3 Rejected
2 Active
1 Active

Previous Reviews on this Version

JustPerfection active