Review of "Bar Enhanced" version 4.5.0 (3)

Details Page Preview

Reinventa la Barra Superior de GNOME con una interfaz equilibrada, controles visuales y temas listos para el futuro. Diseño limpio, componentes simétricos y una experiencia de configuración moderna.

Extension Homepage
https://github.com/mrvanguardia/bar-enhanced

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 7 manual_review 1

Shexli found 8 issues that may need reviewer attention.

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

  • dynamic-music-pill/uiExpandedPlayer.js:1634
    St.Clipboard.get_default()

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Package contains files that often should not be shipped for review.

Don't include unnecessary files

  • dash-to-dock/po/POTFILES.in
    dash-to-dock/po/POTFILES.in

EGO-P-007 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • bar-enhanced-gdm-app/apply.js
  • bar-enhanced-gdm-app/main.js
  • bar-enhanced-gdm-app/tabs/accessibility.js
  • bar-enhanced-gdm-app/tabs/appearance.js
  • bar-enhanced-gdm-app/tabs/display.js
  • bar-enhanced-gdm-app/tabs/fonts.js
  • bar-enhanced-gdm-app/tabs/loginScreen.js
  • bar-enhanced-gdm-app/tabs/nightLight.js
  • bar-enhanced-gdm-app/tabs/pointing.js
  • bar-enhanced-gdm-app/tabs/power.js
  • bar-enhanced-gdm-app/tabs/sound.js
  • bar-enhanced-gdm-app/tabs/tools.js
  • bar-enhanced-gdm-app/tabs/topBar.js
  • dash-to-dock/locationsWorker.js
  • dash-to-dock/prefs.js

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

  • dash-to-dock/docking.js:264
    this._staticBox = new Clutter.ActorBox()
  • extension.js:315
                this._badge = new St.Label({
                    style_class: 'notification-count',
                    text: this._getNotificationCount(),
                    x_align: Clutter.ActorAlign.END,
                    y_align: Clutter.ActorAlign.START
                })
  • extension.js:305
    this._icon = new St.Icon({ icon_size: actualIconSize, style_class: 'topbar-notification-icon' })
  • extension.js:304
    this._widget = new St.Widget({ layout_manager: new Clutter.BinLayout() })

EGO-L-001 warning

extension must not create GObject instances or modify shell before enable()

Resource creation or signal/source setup was found outside `enable()`.

Only use initialization for static resources

  • dash-to-dock/appIcons.js:46
    tracker = Shell.WindowTracker.get_default()

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

  • dash-to-dock/appIconIndicators.js:270
            this._area = new IndicatorDrawingArea({
                x_expand: true,
                y_expand: true,
            })
  • dash-to-dock/docking.js:264
    this._staticBox = new Clutter.ActorBox()
  • extension.js:315
                this._badge = new St.Label({
                    style_class: 'notification-count',
                    text: this._getNotificationCount(),
                    x_align: Clutter.ActorAlign.END,
                    y_align: Clutter.ActorAlign.START
                })
  • extension.js:305
    this._icon = new St.Icon({ icon_size: actualIconSize, style_class: 'topbar-notification-icon' })
  • extension.js:304
    this._widget = new St.Widget({ layout_manager: new Clutter.BinLayout() })

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:1201
    this._connections.connect(panelColumn, this.addedSignal, this.updatePanelStyle.bind(this))
  • extension.js:1203
            this._connections.connect(menu.box, this.addedSignal, (obj, signal, panelColumn, callbk_param) => {
                this._connections.connect(panelColumn, this.addedSignal, this.updatePanelStyle.bind(this));
            })
  • extension.js:1204
    this._connections.connect(panelColumn, this.addedSignal, this.updatePanelStyle.bind(this))
  • extension.js:1367
    this._connections.connect(global.window_group, this.addedSignal, this.onWindowAdded.bind(this))
  • extension.js:1368
    this._connections.connect(global.window_group, this.removedSignal, this.onWindowRemoved.bind(this))
  • extension.js:1471
    this._connections.connect(Main.layoutManager._bgManagers[pMonitorIdx], 'changed', this.updateBguri.bind(this))
  • extension.js:1472
    this._connections.connect(this._bgSettings, 'changed::picture-uri', this.updateBguri.bind(this))
  • extension.js:1473
    this._connections.connect(this._bgSettings, 'changed::picture-uri-dark', this.updateBguri.bind(this))
  • extension.js:1474
    this._connections.connect(this._intSettings, 'changed::color-scheme', this.updatePanelStyle.bind(this), 'color-scheme')
  • extension.js:1535
                this._connections.connect(btn.FittsWidget, 'enter-event', (actor, signal, event) => {
                    btn.child.add_style_pseudo_class('hover');
                    return Clutter.EVENT_PROPAGATE;
                })
  • extension.js:1539
                this._connections.connect(btn.FittsWidget, 'leave-event', (actor, signal, event) => {
                    btn.child.remove_style_pseudo_class('hover');
                    return Clutter.EVENT_PROPAGATE;
                })
  • extension.js:1545
                this._connections.connect(btn.FittsWidget, 'captured-event', (actor, signal, event) => {
                    btn.child.event(event, false);
                    return Clutter.EVENT_PROPAGATE;
                })
  • extension.js:1698
    this._connections.connect(btn.child, 'notify::visible', this.updateFittsWidgetVisible.bind(this, btn))
  • extension.js:1743
    this._connections.connect(box, this.addedSignal, this.updateFittsWidgetAddRemove.bind(this))
  • extension.js:1744
    this._connections.connect(box, this.removedSignal, this.updateFittsWidgetAddRemove.bind(this))
  • extension.js:803
                                this._connections.connect(sectionList, this.addedSignal, (container, actor) => {
                                    // log('section added: ', actor.constructor.name);
                                    this.applySectionStyles(sectionList, add);
                                })
  • extension.js:2017
            this._settings.connect('changed::system-accent-sync', () => {
                this._syncWithSystemAccent();
            })
  • extension.js:226
    this.obar._settings.connect('changed::bartype', updateActiveLayoutHighlight)
  • extension.js:259
    this.obar._settings.connect('changed::focus-glow', updateFocusGlowBtn)
  • extension.js:289
    this.obar._settings.connect('changed::pywal-sync', updatePywalSyncBtn)
  • extension.js:314
    this._signal = source.connect('notify::count', this._updateNotificationCount.bind(this))

EGO-L-004 warning

main loop sources should be removed in disable()

Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.

Remove main loop sources

  • extension.js:2678
                    GLib.timeout_add(GLib.PRIORITY_DEFAULT, 150, () => {
                        this._settings.set_boolean('pause-reload', false);
                        this._settings.set_boolean('trigger-reload', !this._settings.get_boolean('trigger-reload'));
                        return GLib.SOURCE_REMOVE;
    

All Versions

Version Status
4.5.0 (3) Unreviewed
4.5.0 (2) Rejected
1 Rejected