Review of "Twingate Status" version 0.4.0 (2)

Details Page Preview

Twingate VPN status in the top bar: connection state, signed-in user, searchable resource list, start and stop of the Twingate service, and sign-in prompts. Clicking a resource opens it in the browser or copies its address to the clipboard.

Extension Homepage
https://github.com/hanikesn/gnome-twingate-status

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 3 manual_review 1

Shexli found 4 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

  • extension.js:838
    St.Clipboard.get_default()

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:497
    this._controlServiceItem = new PopupMenu.PopupMenuItem(_("Connect"))
  • extension.js:495
    this._resourcesSection = new PopupMenu.PopupMenuSection()
  • extension.js:482
        this._searchEntry = new St.Entry({
          style_class: "twingate-search-entry",
          hint_text: _("Search resources"),
          can_focus: true,
          x_expand: true
        })
  • extension.js:469
    this._statusItem = new PopupMenu.PopupImageMenuItem("", STATUS_ICONS.connecting)

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:497
    this._controlServiceItem = new PopupMenu.PopupMenuItem(_("Connect"))
  • extension.js:495
    this._resourcesSection = new PopupMenu.PopupMenuSection()
  • extension.js:482
        this._searchEntry = new St.Entry({
          style_class: "twingate-search-entry",
          hint_text: _("Search resources"),
          can_focus: true,
          x_expand: true
        })
  • extension.js:469
    this._statusItem = new PopupMenu.PopupImageMenuItem("", STATUS_ICONS.connecting)

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:503
        menu.connect("open-state-changed", (_menu, open) => {
          if (open) {
            this._searchEntry.grab_key_focus();
          } else {
            this._searchEntry.set_text("");
          }
        })
  • extension.js:717
    notification.connect("activated", () => this._openUri(msg.url))
  • extension.js:719
        notification.connect("destroy", () => {
          if (this._authNotification === notification) this._authNotification = null;
        })
  • extension.js:643
          source.connect("destroy", () => {
            if (this._notificationSource === source) this._notificationSource = null;
          })

All Versions

Version Status
0.5.0 (5) Unreviewed
0.5.0 (4) Rejected
0.4.0 (3) Rejected
0.4.0 (2) Rejected
0.4.0 (1) Rejected

Previous Reviews on this Version

morricone auto- rejected
Auto-rejected because of new version 0.4.0 (3) was uploaded