Review of "GBing" version 1

Details Page Preview

Unofficial extension that sets Bing's image of the day as your desktop wallpaper and shows what the picture is about in the top bar. Checks once an hour, downloads the 4K image when it changes and applies it to both the light and dark backgrounds. Includes a switch between the full-color and a monochrome panel icon; no other settings.

Extension Homepage
https://github.com/hadmir/gbing

No comments.

FAQ

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) error 2 warning 4

Shexli found 6 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:479
    GLib.file_get_contents(this._settingsPath())
  • extension.js:515
    GLib.file_get_contents(this._statePath())

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-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:163
    this._creditLabel = new St.Label({style_class: 'gbing-credit', x_expand: true})
  • extension.js:161
    this._dateLabel = new St.Label({style_class: 'gbing-date'})
  • extension.js:162
    this._descLabel = new St.Label({style_class: 'gbing-description', x_expand: true})
  • extension.js:77
            this._icon = new St.Icon({
                style_class: 'system-status-icon',
                // The logo is full-bleed, so keep it a bit under the 16px theme size.
                style: 'icon-size: 14px;',
            })
  • extension.js:182
            this._iconSwitch = new PopupMenu.PopupSwitchMenuItem(
                'Monochrome icon', this._monochrome)
  • extension.js:178
    this._linkItem = new PopupMenu.PopupMenuItem('Open image page')
  • extension.js:198
    this._statusLabel = new St.Label({style_class: 'gbing-status', x_expand: true})
  • extension.js:156
            this._thumb = new St.Widget({
                style_class: 'gbing-thumb',
                visible: false,
            })
  • extension.js:160
    this._titleLabel = new St.Label({style_class: 'gbing-title', x_expand: true})

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:163
    this._creditLabel = new St.Label({style_class: 'gbing-credit', x_expand: true})
  • extension.js:161
    this._dateLabel = new St.Label({style_class: 'gbing-date'})
  • extension.js:162
    this._descLabel = new St.Label({style_class: 'gbing-description', x_expand: true})
  • extension.js:77
            this._icon = new St.Icon({
                style_class: 'system-status-icon',
                // The logo is full-bleed, so keep it a bit under the 16px theme size.
                style: 'icon-size: 14px;',
            })
  • extension.js:182
            this._iconSwitch = new PopupMenu.PopupSwitchMenuItem(
                'Monochrome icon', this._monochrome)
  • extension.js:178
    this._linkItem = new PopupMenu.PopupMenuItem('Open image page')
  • extension.js:198
    this._statusLabel = new St.Label({style_class: 'gbing-status', x_expand: true})
  • extension.js:156
            this._thumb = new St.Widget({
                style_class: 'gbing-thumb',
                visible: false,
            })
  • extension.js:160
    this._titleLabel = new St.Label({style_class: 'gbing-title', x_expand: true})

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:204
            menu.connect('open-state-changed', (_menu, isOpen) => {
                if (isOpen)
                    this._refreshMenu();
            })

EGO-M-004 error

metadata shell-version must only include plausible stable releases and at most one development release

Field `shell-version` contains invalid values, more than one development release, or implausible future releases.

metadata.json must be well-formed

  • metadata.json
    shell-version=['51']

All Versions

Version Status
1 Unreviewed