Review of "Bar Enhanced" version 4.5.0 (2)

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) error 1 warning 12 manual_review 1

Shexli found 14 issues that may need reviewer attention.

EGO-I-004 warning

extensions should not use imports._gi directly

Direct use of `imports._gi` is discouraged in extensions.

InjectionManager

  • dash-to-dock/utils.js:411
    Gi.gobject_prototype_symbol
  • dash-to-dock/utils.js:412
    Gi.gobject_prototype_symbol
  • dash-to-dock/utils.js:414
    Gi.hook_up_vfunc_symbol

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

  • dynamic-music-pill/controller.js:1512
    httpCachedFile.load_contents(null)
  • extension.js:2572
    GLib.file_get_contents(walPath)

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-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • extension.js:646
    console.log('BarEnhanced: Error unloading stylesheet: ', e)
  • extension.js:657
    console.log('BarEnhanced: Error loading stylesheet: ', e)
  • extension.js:668
    console.log('BarEnhanced: Error loading dash-to-dock stylesheet: ', e)
  • extension.js:679
    console.log('BarEnhanced: Error unloading dash-to-dock stylesheet: ', e)
  • extension.js:1961
    console.log('BarEnhanced: Failed to initialize Pywal file monitor: ', e)
  • extension.js:2168
    console.log('BarEnhanced: Error instantiating DockManager: ', e)
  • extension.js:2178
    console.log('BarEnhanced: Error destroying DockManager: ', e)
  • extension.js:2190
    console.log('BarEnhanced: Error instantiating MusicController: ', e)
  • extension.js:2200
    console.log('BarEnhanced: Error destroying MusicController: ', e)
  • extension.js:2213
    console.log('BarEnhanced: Error instantiating Vitals: ', e)

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • prefs.js:1551
    console.log(`Bar Enhanced: Setting ${key} (type ${type}) to ${JSON.stringify(value)}`)
  • prefs.js:1586
    console.log('Bar Enhanced: Starting JSON import...')
  • prefs.js:1682
    console.log('Bar Enhanced: Releasing Silent Mode and reloading...')
  • prefs.js:1699
    console.log('Bar Enhanced: Applying TXT profile...')
  • prefs.js:1945
    console.log(`Bar Enhanced: Profile successfully saved as ${isJson ? 'JSON' : 'TXT'} to ${path}`)
  • prefs.js:2002
    console.log('Bar Enhanced: Generating theme code...')
  • prefs.js:2071
    console.log('Bar Enhanced: Opening theme import dialog...')
  • prefs.js:2097
    console.log('Bar Enhanced: Decoding theme code...')
  • prefs.js:2123
    console.log('Bar Enhanced: Releasing Silent Mode and reloading...')
  • prefs.js:2129
    console.log('Bar Enhanced: Theme code applied successfully')

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • vitals/sensors.js:786
    console.log("Bar Enhanced Vitals: Iniciando descubrimiento de sensores...")
  • vitals/sensors.js:803
    console.log("Bar Enhanced Vitals: Tipos de sensores a monitorizar: " + JSON.stringify(sensor_types))
  • vitals/sensors.js:807
    console.log("Bar Enhanced Vitals: Directorios en hwmon encontrados: " + JSON.stringify(files))
  • vitals/sensors.js:811
    console.log("Bar Enhanced Vitals: Sensor detectado '" + name + "' en " + file)
  • vitals/sensors.js:827
    console.log("Bar Enhanced Vitals: Falló lectura directa de nombre en " + file + ", probando ruta alternativa...")
  • vitals/sensors.js:974
    console.log("Bar Enhanced Vitals: Procesando temp/volt/fan para " + name + " en " + path)
  • vitals/sensors.js:1003
    console.log("Bar Enhanced Vitals: Trisensors descubiertos para " + name + ": " + JSON.stringify(trisensors))
  • vitals/sensors.js:1007
    console.log("Bar Enhanced Vitals: Omitiendo sensor sin archivo de entrada: " + JSON.stringify(obj))
  • vitals/sensors.js:1014
    console.log("Bar Enhanced Vitals: Valor leído para " + obj['input'] + " = " + value)
  • vitals/sensors.js:1028
    console.log("Bar Enhanced Vitals: Sensor " + obj['input'] + " filtrado por valor <= 0 (hide-zeros está activo)")

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-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.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.accessibility' path='/org/gnome/shell/extensions/bar-enhanced/gdm/accessibility/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.appearance' path='/org/gnome/shell/extensions/bar-enhanced/gdm/appearance/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.fonts' path='/org/gnome/shell/extensions/bar-enhanced/gdm/fonts/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.main' path='/org/gnome/shell/extensions/bar-enhanced/gdm/main/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.misc' path='/org/gnome/shell/extensions/bar-enhanced/gdm/misc/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.mouse' path='/org/gnome/shell/extensions/bar-enhanced/gdm/mouse/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.night-light' path='/org/gnome/shell/extensions/bar-enhanced/gdm/night-light/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.pointing' path='/org/gnome/shell/extensions/bar-enhanced/gdm/pointing/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.power' path='/org/gnome/shell/extensions/bar-enhanced/gdm/power/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.sound' path='/org/gnome/shell/extensions/bar-enhanced/gdm/sound/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.tools' path='/org/gnome/shell/extensions/bar-enhanced/gdm/tools/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.top-bar' path='/org/gnome/shell/extensions/bar-enhanced/gdm/top-bar/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.touchpad' path='/org/gnome/shell/extensions/bar-enhanced/gdm/touchpad/'
  • schemas/org.gnome.shell.extensions.bar-enhanced.gschema.xml
    id='org.gnome.shell.extensions.bar-enhanced.gdm.window-state' path='/org/gnome/shell/extensions/bar-enhanced/gdm/window-state/'

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) => {
                                    // console.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:2677
                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

Previous Reviews on this Version

MrVanguardia auto- rejected
Auto-rejected because of new version 4.5.0 (3) was uploaded