Review of "Tor" version 0.7.12 (15)

Details Page Preview

Control the Tor network from Quick Settings: one-click on/off (uses the distro's own tor.service via polkit — no extra tor instance), exit-country picker, live bootstrap progress, New Identity, obfs4 bridges, circuit viewer. Always-on transparent-proxy mode via bundled tun2socks installer routes ALL TCP traffic through Tor (one-time sudo, zero password at runtime).

Extension Homepage
https://github.com/vipinus/gnome-shell-extension-tor

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

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

  • lib/torController.js:130
    file.load_contents(null)

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

  • ui/quickToggle.js:480
    St.Clipboard.get_default()

EGO-A-004 warning

extension files should not contain excessive ungated console logging

File contains 10 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • ui/quickToggle.js:191
    console.warn('[tor-ext] busy lock auto-released after 60s — a flow forgot to release')
  • ui/quickToggle.js:248
    console.warn(`[tor-ext] toggle failed: ${e.message}`)
  • ui/quickToggle.js:315
    console.warn(`[tor-ext] tun2socks stop step failed/timed out: ${e.message}`)
  • ui/quickToggle.js:325
    console.warn(`[tor-ext] controller.quit timed out: ${e.message}`)
  • ui/quickToggle.js:340
    console.warn(`[tor-ext] service.stop timed out: ${e.message}`)
  • ui/quickToggle.js:416
    console.warn(`[tor-ext] SETEVENTS failed: ${e.message}`)
  • ui/quickToggle.js:551
    console.warn(`[tor-ext] setConf ExitNodes failed: ${e.message}`)
  • ui/quickToggle.js:594
    console.warn('[tor-ext] ControlPort probe failed — restarting tor.service')
  • ui/quickToggle.js:636
    console.warn(`[tor-ext] no exit in {${code}} after 10s — reverting to Any`)
  • ui/quickToggle.js:657
    console.warn(`[tor-ext] exit-country switch failed: ${e.message}`)

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

  • ui/quickToggle.js:147
            this._menuOpenId = this.menu.connect('open-state-changed', (_m, open) => {
                if (open && this.checked && this._controller?.isReady)
                    this._refreshCircuitView();
            })

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

  • ui/quickToggle.js:190
            this._busyTimer = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 60000, () => {
                console.warn('[tor-ext] busy lock auto-released after 60s — a flow forgot to release');
                this._busy = false;
                this._busyTimer = 0;
                try { this._setSubtitle(this._statusSubtit

All Versions

Version Status
0.7.12 (15) Active
0.7.11 (14) Rejected
0.6.3 (13) Rejected
0.6.3 (12) Rejected
0.6.3 (11) Rejected
0.6.3 (10) Rejected
0.5.6 (9) Rejected
0.5.5 (8) Rejected
0.5.5 (7) Rejected
0.5.3 (6) Rejected
0.5.1 (5) Rejected
0.5.0 (4) Rejected
0.3.1 (3) Rejected
0.3.1 (2) Rejected
0.1.0 (1) Rejected

Previous Reviews on this Version

fmuellner active