Review of "Big Shot" version 2

Details Page Preview

Extends GNOME's native Print Screen interface — no separate editor window. • 16 annotation tools: pen, arrows, shapes, text, highlighter, censor, blur, invert, magnify callouts, numbered badges • OCR with automatic language detection, copies text to the clipboard • Full-screen, area, and window screencasts • Desktop audio and microphone capture, independently or mixed • Hardware encoding on NVIDIA, AMD, and Intel, with software fallback • Draggable webcam overlay with 8 masks and 5 sizes • Live annotation while recording, plus pause/resume with lossless merge Optional: tesseract (OCR), ffmpeg (pause/resume), gst-plugins-ugly (x264).

Extension Homepage
https://github.com/big-comm/gnome-shell-big-shot

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

  • extension.js:1981
    Gio.File
                            .new_for_path(`/sys/class/drm/${name}/device/vendor`)
                            .load_contents(null)
  • parts/partwebcam.js:191
    GLib.file_get_contents(nameFile)

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:1180
    St.Clipboard.get_default()
  • extension.js:1681
    St.Clipboard.get_default()
  • extension.js:1698
    St.Clipboard.get_default()
  • extension.js:1734
    St.Clipboard.get_default()

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • extension.js:526
    console.error(`[Big Shot] Failed to rename file: ${e.message}`)
  • extension.js:589
    console.error('[Big Shot] ScreenshotUI not found')
  • extension.js:643
    console.error(`[Big Shot] Failed to load deps: ${e.message}\n${e.stack}`)
  • extension.js:688
    console.error(`[Big Shot] step "${label}" failed: ${e.message}\n${e.stack}`)
  • extension.js:896
    console.error(`[Big Shot] Error destroying part: ${e.message}`)
  • extension.js:1088
    console.error(`[Big Shot] drawReal failed for ${action.constructor.name}: ${err.message}\n${err.stack}`)
  • extension.js:1149
    console.error(`[Big Shot] Annotation compositing failed: ${e.message}`)
  • extension.js:1325
    console.error(`[Big Shot] Could not open screenshot: ${e.message}`)
  • extension.js:1436
    console.error(`[Big Shot] drawReal failed: ${err.message}`)
  • extension.js:1673
    console.error('[Big Shot] Failed to capture screenshot')

EGO-P-003 error

GSettings schema XML must be present in package

Extension appears to use GSettings but no `.gschema.xml` file is included in the package.

GSettings Schemas

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:1256
            source.connect('destroy', () => {
                if (this._notificationSource === source)
                    this._notificationSource = null;
            })

All Versions

Version Status
3 Unreviewed
2 Rejected
1 Rejected

Previous Reviews on this Version

talesam auto- rejected
Auto-rejected because of new version 3 was uploaded