Review of "Cronomix" version 42

Details Page Preview

All-in-one timer, stopwatch, pomodoro, alarm, todo, and flashcards extension.

Extension Homepage
https://github.com/zagortenay333/cronomix

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

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

  • utils/fs.js:43
    file.load_contents(null)

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

  • utils/misc.js:166
    St.Clipboard.get_default()

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

  • applets/alarm.js:324
    this.actor = new St.BoxLayout({ vertical: true, style_class: 'cronomix-box' })
  • applets/todo/filter.js:126
    this.actor = new St.BoxLayout({ vertical: true, x_expand: true, style_class: 'cronomix-spacing' })

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

  • extension.js:141
    dummy = new St.Widget({ visible: false, style_class: 'popup-menu-content' })
  • extension.js:141
    new St.Widget({ visible: false, style_class: 'popup-menu-content' })
  • extension.js:175
    dummy = new St.Widget({ visible: false, style_class: 'cronomix-custom-css' })
  • extension.js:175
    new St.Widget({ visible: false, style_class: 'cronomix-custom-css' })

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

  • applets/alarm.js:163
    this.actor = new St.BoxLayout({ vertical: true, style_class: 'cronomix-spacing' })
  • applets/alarm.js:324
    this.actor = new St.BoxLayout({ vertical: true, style_class: 'cronomix-box' })
  • applets/flashcards.js:189
    this.actor = new St.BoxLayout({ vertical: true, style_class: 'cronomix-spacing' })
  • applets/pomodoro.js:238
    this.actor = new St.BoxLayout({ vertical: true, style_class: 'cronomix-spacing' })
  • applets/pomodoro.js:358
    this.actor = new St.BoxLayout({ vertical: true, style_class: 'cronomix-spacing' })
  • applets/stopwatch.js:147
    this.actor = new St.BoxLayout({ vertical: true, style: 'min-width: 256px;', style_class: 'cronomix-spacing' })
  • applets/timer.js:199
    this.actor = new St.BoxLayout({ vertical: true, style_class: 'cronomix-spacing' })
  • applets/timer.js:328
    this.actor = new St.BoxLayout({ vertical: true, style_class: 'cronomix-spacing' })
  • applets/timer.js:438
    this.actor = new St.BoxLayout({ vertical: true, style_class: 'cronomix-spacing' })
  • applets/todo/filter.js:126
    this.actor = new St.BoxLayout({ vertical: true, x_expand: true, style_class: 'cronomix-spacing' })

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

  • applets/pomodoro.js:322
            header.label.connect('scroll-event', (_, event) => {
                const direction = event.get_scroll_direction();
                let font_size = applet.storage.read.clock_size.value;
                
                if (direction === Clutter.ScrollDirection.UP) {
                    font_size += 20;
           
  • applets/stopwatch.js:249
            header.label.connect('scroll-event', (_, event) => {
                const direction = event.get_scroll_direction();
                let font_size = applet.storage.read.clock_size.value;
                
                if (direction === Clutter.ScrollDirection.UP) {
                    font_size += 20;
           

All Versions

Version Status
42 Active
41 Rejected
40 Active
39 Active
38 Active
37 Active
36 Active
35 Active
34 Active
33 Active
32 Active
31 Active
30 Active
29 Active
28 Active
27 Active
26 Active
25 Active
24 Rejected
23 Rejected
22 Active
21 Active
20 Active
19 Active
18 Active
17 Rejected
16 Rejected
15 Rejected
14 Active
13 Active
12 Active
11 Active
10 Active
9 Active
8 Active
7 Rejected
6 Active
5 Active
4 Active
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

fmuellner active