Review of "Gnotch" version 0.2 (2)

Details Page Preview

A dynamic notch at the top of the screen. It shows the time, the music that's playing and the battery, peeks for notifications and volume or brightness changes, and opens into tabs: media, Wi-Fi and Bluetooth, calendar, to-dos, notifications, drives, prayer times and a Pomodoro timer. Optional, off by default (turn on in preferences): - Share: send and receive files with LocalSend-compatible devices on your network. It runs a file server on port 53317 and uses the LocalSend app's own device name and certificate when that app is installed. - Web chat calls: messages and calls from WhatsApp Web in Google Chrome. During a call it reads microphone and call loudness (never recorded) to animate voice waves, and a local-only server lets an optional companion Chrome extension hang up. The Share and chat features can copy received text to the clipboard when you press Copy.

Extension Homepage
https://github.com/kflmattukz/gnotch

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

Shexli found 7 issues that may need reviewer attention.

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • src/localsend.js:238
    console.warn(`gnotch: LocalSend: ${e.message}`)
  • src/localsend.js:308
    console.warn(`gnotch: LocalSend can't receive (${e.message}); is the LocalSend app running?`)
  • src/localsend.js:396
    console.warn(`gnotch: LocalSend: can't write ${part.get_path()}: ${e.message}`)
  • src/localsend.js:409
    console.warn(`gnotch: LocalSend: writing ${info.fileName}: ${e.message}`)
  • src/localsend.js:451
    console.warn(`gnotch: LocalSend: saving ${upload.info.fileName}: ${e.message}`)
  • src/localsend.js:471
    console.warn(`gnotch: LocalSend multicast: ${e.message}`)
  • src/localsend.js:508
    console.warn(`gnotch: LocalSend announce: ${e.message}`)
  • src/localsend.js:586
    console.warn(`gnotch: LocalSend: sending to ${peer.alias} (${peer.ip}:${peer.port}): ${e.message}`)

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

  • src/widgets/share.js:618
    St.Clipboard.get_default()

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

  • src/widgets/share.js:251
    console.warn(`gnotch: can't share ${path}: ${e.message}`)
  • src/widgets/share.js:656
    console.warn(`gnotch: can't read the dragged files: ${e.message}`)
  • src/widgets/share.js:680
    console.warn('gnotch: files were dropped on the notch but no file paths came with them')
  • src/widgets/share.js:697
    console.warn(`gnotch: file chooser helper: ${e.message}`)
  • src/widgets/share.js:739
    console.warn(`gnotch: file chooser helper: ${e.message}`)
  • src/widgets/share.js:753
    console.warn(`gnotch: can't read received files: ${e.message}`)

EGO-P-007 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • helper/gnotch-drop.js

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

  • src/widgets/whatsapp.js:53
    this.actor = new St.BoxLayout({style_class: `gnotch-wave ${styleClass}`, y_align: Clutter.ActorAlign.CENTER})

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

  • src/localsend.js:158
            msg.connect('disconnected', () => {
                if (this.state === 'pending')
                    this._end('cancelled');
            })

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

  • src/localsend.js:152
            this._timeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, ANSWER_TIMEOUT_SECONDS, () => {
                this._timeoutId = 0;
                this.decline();
                return GLib.SOURCE_REMOVE;
            })

All Versions

Version Status
0.2 (3) Unreviewed
0.2 (2) Rejected
0.2 (1) Rejected

Previous Reviews on this Version

mattukz auto- rejected
Auto-rejected because of new version 0.2 (3) was uploaded