Review of "Net speed Simplified" version 48

Details Page Preview

A Net Speed extension With Loads of Customization. Fork of simplenetspeed Full CHANGELOG can be found on github releases page Features 1. Clean UI 2. Adjustable Refresh rate 3. Preferences to manage extension 4. Vertical Alignment Support 5. Two Icon sets for Indicators Feature Highlights for Preferences 1. Lock Mouse Actions option 2. Advance Position options to pinpoint where to place the indicator on the Panel. 3. Refresh time option by which you can change refresh rate value between 1.0 and 10.0 seconds. 4. Option to show upload speed first 5. Color Customizations for speed indicators 6. Option to Hide when Disconnected 7. Option to use shorter units like K/s instead of KB/s 8. Limit Unit option and more... Modes 1. Total net speed in terms of bits per second 2. Total net speed in terms of bytes per second 3. Combined Up & down speed in terms of bits per second 4. Combined Up & down speed in terms of bytes per second 5. Total transferred data in terms of bytes (Right click to reset counter) Mouse Events - Left click to change modes - Right click(in 1-4 modes): Toggle the visibility of total transfer data. - Right click(in 5th mode): Reset total transfer data. - Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. - Middle click: Cycle through the font sizes.

Extension Homepage
https://github.com/prateekmedia/netspeedsimplified

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

  • extension.js:306
    input_file.load_contents(null)

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Package contains files that often should not be shipped for review.

Don't include unnecessary files

  • __MACOSX/._LICENSE
    __MACOSX/._LICENSE
  • __MACOSX/._prefs.js
    __MACOSX/._prefs.js
  • __MACOSX/._metadata.json
    __MACOSX/._metadata.json
  • __MACOSX/._stylesheet.css
    __MACOSX/._stylesheet.css
  • __MACOSX/._schemas
    __MACOSX/._schemas
  • __MACOSX/._extension.js
    __MACOSX/._extension.js
  • __MACOSX/schemas/._org.gnome.shell.extensions.netspeedsimplified.gschema.xml
    __MACOSX/schemas/._org.gnome.shell.extensions.netspeedsimplified.gschema.xml

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

  • __MACOSX/._extension.js
  • __MACOSX/._prefs.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:162
        dsIcon = new St.Label({
            text: DIcons(0),
            y_align: Clutter.ActorAlign.CENTER,
            style_class: getStyle(true),
            style: extraInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.dsColor)
        })
  • extension.js:135
        dsLabel = new St.Label({
            text: '--',
            y_align: Clutter.ActorAlign.CENTER,
            style_class: getStyle(),
            style: extraLabelInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.dsColor)
        })
  • extension.js:211
        nsActor = new Clutter.Actor({
            layout_manager: nsLayout,
            y_align: Clutter.ActorAlign.CENTER
        })
  • extension.js:205
    nsLayout = new Clutter.GridLayout()
  • extension.js:176
        tdIcon = new St.Label({
            text: "Σ",
            y_align: Clutter.ActorAlign.CENTER,
            style_class: getStyle(true),
            style: extraInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.tdColor)
        })
  • extension.js:149
        tdLabel = new St.Label({
            text: '--',
            y_align: Clutter.ActorAlign.CENTER,
            style_class: getStyle(),
            style: extraLabelInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.tdColor)
        })
  • extension.js:169
        tsIcon = new St.Label({
            text: "⇅",
            y_align: Clutter.ActorAlign.CENTER,
            style_class: getStyle(true),
            style: extraInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.tsColor)
        })
  • extension.js:142
        tsLabel = new St.Label({
            text: '--',
            y_align: Clutter.ActorAlign.CENTER,
            style_class: getStyle(),
            style: extraLabelInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.tsColor)
        })
  • extension.js:155
        usIcon = new St.Label({
            text: DIcons(1),
            y_align: Clutter.ActorAlign.CENTER,
            style_class: getStyle(true),
            style: extraInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.usColor)
        })
  • extension.js:128
        usLabel = new St.Label({
            text: '--',
            y_align: Clutter.ActorAlign.CENTER,
            style_class: getStyle(),
            style: extraLabelInfo + (currentSettings.systemColr ? "" : "color: " + currentSettings.usColor)
        })

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:211
        nsActor = new Clutter.Actor({
            layout_manager: nsLayout,
            y_align: Clutter.ActorAlign.CENTER
        })
  • extension.js:205
    nsLayout = new Clutter.GridLayout()
  • extension.js:278
    startTime = new Date()

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:394
    this._settingsChangedId = settings.connect('changed', () => this._settingsChanged())

EGO-C45-001 warning

45+ preferences should use fillPreferencesWindow instead of getPreferencesWidget

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

Preferences

  • prefs.js:243
        getPreferencesWidget() {
            settings = this.getSettings(schema)
            window._settings = settings
    
            fetchSettings()
    
            let frame = new Gtk.ScrolledWindow()
            let label = new Gtk.Label({
                label: "<b>General Settings</b>",
                use_markup: true,
            

All Versions

Previous Reviews on this Version

fmuellner active
You should remove those __MACOSX artifacts. Addressing the other shexli warnings would also be good.