Review of "system-monitor-next" version 84

Details Page Preview

Display system information in GNOME Shell status bar, such as memory, CPU, disk and battery usages, network rates… Please see the extension homepage for prerequisite packages that must be installed first. If you get an error after updating, try restarting GNOME Shell or logging out and logging back in.

Extension Homepage
https://github.com/mgalgs/gnome-shell-system-monitor-next-applet

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 7

Shexli found 7 issues that may need reviewer attention.

EGO-X-004 warning

extensions should avoid synchronous file IO in shell code

Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.

File Operations

  • common.js:23
    file.load_contents(null)
  • migration.js:9
    file.load_contents(null)
  • widgets/network.js:41
    Gio.File.new_for_path('/proc/net/dev').load_contents(null)
  • widgets/network.js:46
    Gio.File.new_for_path(
                                '/sys/class/net/' + ifc + '/operstate').load_contents(null)

EGO-X-002 warning

extensions should not use synchronous subprocess APIs in shell code

Shell code should avoid synchronous subprocess APIs like `GLib.spawn_command_line_sync()` and `GLib.spawn_sync()`.

Complete Examples

  • common.js:111
    GLib.spawn_command_line_sync('sensors -jA')

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-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:286
    this.__sm.box = new St.BoxLayout({style: 'spacing: ' + spacing + 'px;'})
  • widgets/icon.js:8
            this.actor = new St.Icon({
                icon_name: 'org.gnome.SystemMonitor-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:222
    this._Schema = this.getSettings()
  • widgets/icon.js:8
            this.actor = new St.Icon({
                icon_name: 'org.gnome.SystemMonitor-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:260
    this._MountsMonitor.connect()
  • extension.js:327
            tray.menu.connect(
                'open-state-changed',
                (menu, isOpen) => {
                    if (isOpen) {
                        this.__sm.pie.actor.queue_repaint();
    
                        this.menuTimeout = GLib.timeout_add_seconds(
                            GLib.PRIORITY_DEFAULT,
           

EGO-L-008 warning

Soup.Session instances should be aborted during cleanup

Soup.Session instances should be aborted during cleanup.

Soup.Session.abort

  • widgets/prometheus.js:31
    this._session = new Soup.Session({timeout: 10})

All Versions

Previous Reviews on this Version

JustPerfection rejected
Please fix Shexli errors and send it again. REVIEWERS NOTE: Didn't review since Shexli warnings need to be fixed first.