Review of "Monitor Input Switch" version 3

Details Page Preview

Switch an external monitor's input source (HDMI/DP/USB-C) via ddcutil. Requires ddcutil to be installed and working.

Extension Homepage
https://github.com/nemofq/monitor-input-switch

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

Shexli found 3 issues that may need reviewer attention.

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • ddcutil.js:72
    console.log('[monitor-input-switch] cancelInFlight: force-exiting in-flight ddcutil subprocess')
  • ddcutil.js:86
    console.log(`[monitor-input-switch] subprocess timeout after ${SUBPROCESS_TIMEOUT_MS}ms, killing: ${argv[0]}`)
  • ddcutil.js:105
    console.log('[monitor-input-switch] sysfs pre-check: scanning /sys/class/drm')
  • ddcutil.js:113
    console.log('[monitor-input-switch] sysfs pre-check: enumerate failed, falling through to ddcutil')
  • ddcutil.js:128
    console.log(`[monitor-input-switch] sysfs pre-check: found connected external display (${name})`)
  • ddcutil.js:135
    console.log('[monitor-input-switch] sysfs pre-check: iteration failed, falling through to ddcutil')
  • ddcutil.js:140
    console.log('[monitor-input-switch] sysfs pre-check: no external display connected')
  • ddcutil.js:149
    console.log('[monitor-input-switch] ddcutil detect: starting')
  • ddcutil.js:156
    console.log(`[monitor-input-switch] ddcutil detect: found ${count} monitor(s)`)

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:31
    this._itemsSection = new PopupMenu.PopupMenuSection()

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:31
    this._itemsSection = new PopupMenu.PopupMenuSection()

All Versions

Version Status
4 Active
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

nemofq posted a review
Thanks for reviewing my extension! All of concerns raised from previous two versions have been addressed. We have to use "ddcutil" since there's no equivalent in the Gnome for now and plenty of other extensions are also using it, also we've clearly stated in the extension readme that this relies on ddcutil.
JustPerfection rejected
Also, as mentioned before, "timeout should be removed before creating a new one".