Review of "Bing Wallpaper" version 53

Details Page Preview

Sync your wallpaper to today's Microsoft Bing image of the day (the image you see when you visit Bing.com). *Disclaimer*: this extension is unofficial and not affiliated with Bing or Microsoft in any way. Images are protected by copyright and are licensed only for use as wallpapers. Features: * UHD resolution wallpapers * Automatically fetches current Bing wallpaper of the day and sets as both lock screen and desktop wallpaper (user selectable on GNOME versions that support it) * Doesn't poll continuously - only once per day and on startup (schedules a refresh when Bing is due to update) * random mode (from previously downloaded wallpapers) * select/cycle wallpaper through previously downloaded images * Language support: English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN, zh_TW), French (fr), Portuguese (pt), Ukrainian (uk), Russian (ru_RU), Spanish (es), Korean (ko), Indonesian (id), Catalan (ca), Norwegian Bokmål (nb) & Nynorsk (ni), Swedish (sv), Arabic (ar), Hungarian (hu) and Japanese (ja) - a HUGE thanks to the translators This extension was forked from the NASA APOD extension by Elinvention (https://github.com/Elinvention) and inspired by Bing Desktop Wallpaper Changer by Utkarsh Gupta (https://github.com/UtkarshGpta). Always restart GNOME after manually updating extensions. Please report bugs to the GitHub page below:

Extension Homepage
https://github.com/neffo/bing-wallpaper-gnome-extension

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 4

Shexli found 4 issues that may need reviewer attention.

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:147
    this.settingsSubMenu = new PopupMenu.PopupSubMenuMenuItem(_("Quick settings"), false)
  • extension.js:163
    this.thumbnailItem = new PopupMenu.PopupBaseMenuItem({ style_class: 'wp-thumbnail-image'})
  • extension.js:141
    this.titleItem = new PopupMenu.PopupSubMenuMenuItem(_("Awaiting refresh..."), false)

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:122
    this._settings = this._extension.getSettings()
  • extension.js:147
    this.settingsSubMenu = new PopupMenu.PopupSubMenuMenuItem(_("Quick settings"), false)
  • extension.js:163
    this.thumbnailItem = new PopupMenu.PopupBaseMenuItem({ style_class: 'wp-thumbnail-image'})
  • extension.js:141
    this.titleItem = new PopupMenu.PopupSubMenuMenuItem(_("Awaiting refresh..."), false)

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:266
    this.dwallpaperItem.connect('activate', this._setBackgroundDesktop.bind(this))
  • extension.js:296
    this.folderItem.connect('activate', Utils.openImageFolder.bind(this, this._settings))
  • extension.js:265
    this.openImageInfoLinkItem.connect('activate', this._openImageInfoLink.bind(this))
  • extension.js:263
    this.openImageItem.connect('activate', this._openInSystemViewer.bind(this))
  • extension.js:267
    this.refreshItem.connect('activate', this._refresh.bind(this))
  • extension.js:268
    this.settingsItem.connect('activate', this._openPrefs.bind(this))
  • extension.js:262
    this.thumbnailItem.connect('activate', this._openInSystemViewer.bind(this))
  • extension.js:290
                e.toggle.connect('toggled', (item, state) => {
                    BingLog(e.key+' switch toggled to '+ (state?'true':'false'));
                    this._setBooleanSetting(e.key, state);
                })
  • extension.js:223
                this._settings.connect('changed::hide', () => {
                    this.visible = !this._settings.get_boolean('hide');
                })

EGO-L-008 warning

Soup.Session instances should be aborted during cleanup

Soup.Session instances should be aborted during cleanup.

Soup.Session.abort

  • extension.js:214
    this.httpSession = new Soup.Session()

All Versions

Previous Reviews on this Version

neffo posted a review
Notes for reviewer, I've checked the shexli reviews and just two warnings. There were a few errors which I have already actioned (really appreciate having a way to flag these issues prior to upload!). I've made some significant changes to the code to remove some of the functionality and make it a much more simple extension, so the changes will appear mostly in the form of deletions. I've moved to async file read/write. I've also removed clipboard functions, the lockscreen blur, etc.
neffo posted a review
Sorry looks like there are 4 warnings, not 2.
fmuellner active