Review of "Jinni (For GNOME)" version 1

Details Page Preview

A quick access task manager app in the GNOME Shell Top Bar

Extension Homepage
https://github.com/udqu/jinni-gnome-extension

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 5

Shexli found 5 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:865
    GLib.file_get_contents(this._tasksFilePath)

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:370
    console.error(`Failed to retrieve settings for the extension: ${error.message}`)
  • extension.js:508
    console.error('Invalid tasklist-window-width setting.')
  • extension.js:525
    console.error(`Failed to load stylesheet: ${error.message}`)
  • extension.js:845
    console.error(`Failed to save tasks to file: ${error.message}`)
  • extension.js:878
    console.error(`Failed to load tasks from file: ${error.message}`)
  • extension.js:889
    console.error(`Failed to clear tasks file: ${error.message}`)

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:384
            this._entry = new St.Entry({
                can_focus: true,
                hint_text: "Type your task here and hit enter",
                style_class: 'counter-entry'
            })
  • extension.js:377
            this._label = new St.Label({
                text: `${this._counter}`,
                y_align: Clutter.ActorAlign.CENTER,
            })
  • extension.js:392
            this._listBox = new St.BoxLayout({
                vertical: true,
                style_class: 'counter-list',
                reactive: true
            })
  • extension.js:44
            this._popupLabel = new St.Label({
                style_class: 'task-preview-label',
                y_align: Clutter.ActorAlign.CENTER,
                x_expand: true,
                y_expand: true,
                width: maxWidth,
            })

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:400
    this._listBoxLeaveHandler = this._listBox.connect('leave-event', this._onListBoxLeaveEvent.bind(this))
  • extension.js:399
    this._listBoxMotionHandler = this._listBox.connect('motion-event', this._onListBoxMotionEvent.bind(this))
  • extension.js:390
    this._entry.clutter_text.connect('activate', this._onTextEntered.bind(this))
  • extension.js:389
    this._entry.clutter_text.connect('button_press_event', this._onEntryClicked.bind(this))
  • extension.js:438
    this._indicator.connect('button_press_event', this._onIndicatorClicked.bind(this))

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:801
            GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
                entryToDestroy.destroy();
                return GLib.SOURCE_REMOVE;
            })

All Versions

Version Status
2 Unreviewed
1 Rejected

Previous Reviews on this Version

utku.eren auto- rejected
Auto-rejected because of new version 2 was uploaded