Review of "Draw On Gnome" version 10.0 (10)

Details Page Preview

Annotation tool for the GNOME desktop. Documentation at: https://daveprowse.github.io/Draw-On-Gnome/ GitHub Page: https://github.com/daveprowse/Draw-On-Gnome ------ Note: This extension accesses the clipboard when you press Ctrl+V to paste images. Credits: This is a fork of the original DrawOnYourScreen by abakkk.

Extension Homepage
https://github.com/daveprowse/Draw-On-Gnome

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) error 1 warning 4 manual_review 1

Shexli found 6 issues that may need reviewer attention.

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • area.js:1800
    St.Clipboard.get_default()
  • files.js:205
    St.Clipboard.get_default()

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

  • files.js:568
    this.file.load_contents(null)
  • files.js:637
    this.file.load_contents(null)
  • files.js:566
    this.file.load_bytes(null)

EGO-P-004 error

GSettings schema XML filename must match schema id

GSettings schema filename must match `<schema-id>.gschema.xml`.

GSettings Schemas

  • schemas/org.gnome.shell.extensions.draw-on-gnome.gschema.xml
    id='org.gnome.shell.extensions.draw-on-gnome.drawing' path='/org/gnome/shell/extensions/draw-on-gnome/drawing/'
  • schemas/org.gnome.shell.extensions.draw-on-gnome.gschema.xml
    id='org.gnome.shell.extensions.draw-on-gnome.internal-shortcuts' path='/org/gnome/shell/extensions/draw-on-gnome/internal-shortcuts/'

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

  • menu.js:972
            this.clearIcon = new St.Icon({
                style_class: 'search-entry-icon',
                icon_name: 'edit-clear-symbolic'
            })
  • menu.js:957
            this.entry = new St.Entry({
                hint_text: params.hint_text || "",
                style_class: 'search-entry draw-on-gnome-menu-entry',
                track_hover: true,
                reactive: true,
                can_focus: true,
                x_expand: true
            })
  • menu.js:950
            this.item = new PopupMenu.PopupBaseMenuItem({ style_class: 'draw-on-gnome-menu-entry-item',
                                                          activate: false,
                                                          reactive: true,
                                                          can_f

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:90
    this.settings = this.getSettings()
  • menu.js:972
            this.clearIcon = new St.Icon({
                style_class: 'search-entry-icon',
                icon_name: 'edit-clear-symbolic'
            })
  • menu.js:957
            this.entry = new St.Entry({
                hint_text: params.hint_text || "",
                style_class: 'search-entry draw-on-gnome-menu-entry',
                track_hover: true,
                reactive: true,
                can_focus: true,
                x_expand: true
            })
  • menu.js:950
            this.item = new PopupMenu.PopupBaseMenuItem({ style_class: 'draw-on-gnome-menu-entry-item',
                                                          activate: false,
                                                          reactive: true,
                                                          can_f

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

  • menu.js:970
    this.entry.clutter_text.connect('activate', this._onTextActivated.bind(this))
  • menu.js:976
    this.entry.connect('secondary-icon-clicked', this._reset.bind(this))
  • menu.js:969
    this.entry.clutter_text.connect('text-changed', this._onTextChanged.bind(this))

All Versions

Version Status
11.0 (11) Active
10.0 (10) Rejected
9.0 (9) Active
8.0 (8) Rejected
7.0 (7) Inactive
6.0 (6) Rejected
5.0 (5) Rejected
4.0 (4) Inactive
1.6 (3) Rejected
1.5 (2) Rejected
1.1 (1) Rejected

Previous Reviews on this Version

dpro42 auto- rejected
Auto-rejected because of new version 11.0 (11) was uploaded