Review of "Cap" version 1

Details Page Preview

Daily Wi-Fi data limiter. Tracks usage via /proc/net/dev and terminates the Wi-Fi interface with nmcli when the daily limit is reached.

Extension Homepage
https://github.com/anorak999/Cap

No comments.

FAQ

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 3

Shexli found 3 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:555
    GLib.file_get_contents('/proc/net/dev')

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-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:228
    this._entry.clutter_text.connect('activate', this._onEntryCommitted.bind(this))
  • extension.js:332
    this._orbitReenableBtn.connect('clicked', () => this._onReenableClicked())
  • extension.js:284
            this._orbitRing.connect('notify::allocation', () => {
                // First layout gives us real dimensions — repaint so the ring
                // doesn't stay blank from the initial 0x0 paint.
                if (this._orbitRing.get_surface_size()[0] > 0)
                    this._orbitRing.queue_repa
  • extension.js:283
    this._orbitRing.connect('repaint', this._drawOrbitRing.bind(this))
  • extension.js:321
    this._orbitSlider.connect('drag-end', this._onOrbitSliderCommitted.bind(this))
  • extension.js:320
    this._orbitSlider.connect('notify::value', () => this._onOrbitSliderChanged())
  • extension.js:172
            this._progressTrack.connect('notify::allocation',
                this._onProgressTrackAllocated.bind(this))
  • extension.js:245
    this._reenableBtn.connect('clicked', this._onReenableClicked.bind(this))
  • extension.js:194
    this._slider.connect('drag-end', this._onSliderCommitted.bind(this))
  • extension.js:193
    this._slider.connect('notify::value', this._onSliderDragged.bind(this))
  • extension.js:415
            this._strataBarTrack.connect('notify::allocation',
                this._onStrataBarAllocated.bind(this))
  • extension.js:431
    this._strataReenableBtn.connect('clicked', () => this._onReenableClicked())
  • extension.js:467
    this._strataSlider.connect('drag-end', this._onStrataSliderCommitted.bind(this))
  • extension.js:466
    this._strataSlider.connect('notify::value', () => this._onStrataSliderChanged())

All Versions

Version Status
1 Unreviewed