Review of "EasyScreenCast" version 55

Details Page Preview

This extension simplifies the use of the video recording function integrated in gnome shell, allows quickly to change the various settings of the desktop recording. SOURCE CODE -> https://github.com/EasyScreenCast/EasyScreenCast VIDEO -> https://youtu.be/81E9AruraKU **NOTICE** if an error occurs during the update is recommended to reload GNOME Shell (Alt + F2, 'r') and reload the extension's installation page.

Extension Homepage
https://github.com/EasyScreenCast/EasyScreenCast

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 5

Shexli found 6 issues that may need reviewer attention.

EGO-X-002 warning

extensions should not use synchronous subprocess APIs in shell code

Shell code should avoid synchronous subprocess APIs like `GLib.spawn_command_line_sync()` and `GLib.spawn_sync()`.

Complete Examples

  • utilexecmd.js:165
    GLib.spawn_sync(
                        null,
                        argv,
                        null,
                        GLib.SpawnFlags.SEARCH_PATH,
                        () => {}
                    )

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

EGO-P-004 error

GSettings schema XML filename must match schema id

GSettings schema filename must match `<schema-id>.gschema.xml`.

GSettings Schemas

  • schemas/org.gnome.shell.extensions.easyscreencast.gschema.xml
    id='org.gnome.shell.extensions.EasyScreenCast' path='/org/gnome/shell/extensions/EasyScreenCast/'

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

  • selection.js:61
            this._areaResolution = new St.Label({
                style_class: 'area-resolution',
                text: '',
            })
  • selection.js:50
            this._areaSelection = new St.Widget({
                name: 'area-selection',
                style_class: 'area-selection',
                visible: 'true',
                reactive: 'true',
                x: -10,
                y: -10,
            })

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

  • selection.js:61
            this._areaResolution = new St.Label({
                style_class: 'area-resolution',
                text: '',
            })
  • selection.js:50
            this._areaSelection = new St.Widget({
                name: 'area-selection',
                style_class: 'area-selection',
                visible: 'true',
                reactive: 'true',
                x: -10,
                y: -10,
            })

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:60
            this._settings._settings.connect(
                `changed::${Settings.VERBOSE_DEBUG_SETTING_KEY}`,
                () => {
                    Lib.setDebugEnabled(this._settings.getOption('b', Settings.VERBOSE_DEBUG_SETTING_KEY));
                }
            )
  • extension.js:571
    this.TimeSlider.connect('drag-end', () => this._onDelayTimeChanged())
  • extension.js:565
            this.TimeSlider.connect('notify::value', item => {
                this.DelayTimeLabel.set_text(
                    Math.floor(item.value * 100).toString() + _(' Sec')
                );
            })
  • extension.js:572
            this.TimeSlider.connect('scroll-event', () =>
                this._onDelayTimeChanged()
            )
  • selection.js:73
                this._signalCapturedEvent = this._areaSelection.connect(
                    'captured-event',
                    this._onCaptureEvent.bind(this)
                )

All Versions

Previous Reviews on this Version

fmuellner active