Review of "All-in-One Clipboard" version 21

Details Page Preview

A powerful clipboard manager that combines your clipboard history, emojis, GIFs, kaomojis, and symbols into a single, searchable interface. External Services: • Klipy & Tenor - GIF search and browsing • Google S2 Favicons - Favicon fallback for URLs • Cloudflare Workers - API key storage Extension Homepage: https://github.com/NiffirgkcaJ/all-in-one-clipboard https://gitlab.com/NiffirgkcaJ/all-in-one-clipboard

Extension Homepage
https://github.com/NiffirgkcaJ/all-in-one-clipboard

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

Shexli found 2 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

  • shared/utilities/utilityClipboard.js:10
    St.Clipboard.get_default()
  • shared/utilities/utilityClipboard.js:23
    St.Clipboard.get_default()
  • shared/utilities/utilityClipboard.js:36
    St.Clipboard.get_default()
  • shared/utilities/utilityClipboard.js:51
    St.Clipboard.get_default()

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

  • features/Clipboard/constants/clipboardLayoutConstants.js
  • features/Clipboard/integrations/clipboardMenuDefinition.js
  • features/Clipboard/integrations/clipboardSearchProvider.js
  • features/Clipboard/services/clipboardSearchService.js
  • features/Clipboard/services/clipboardSelectionService.js
  • features/Clipboard/tabClipboard.js
  • features/Clipboard/utilities/clipboardKeyboardShortcuts.js
  • features/Clipboard/utilities/clipboardSearchUtils.js
  • features/Clipboard/view/clipboardActionBar.js
  • features/Clipboard/view/clipboardBaseItemConfig.js
  • features/Clipboard/view/clipboardBaseView.js
  • features/Clipboard/view/clipboardBaseWidgetFactory.js
  • features/Clipboard/view/clipboardGridItemFactory.js
  • features/Clipboard/view/clipboardGridView.js
  • features/Clipboard/view/clipboardListItemFactory.js
  • features/Clipboard/view/clipboardListView.js
  • features/Emoji/constants/emojiConstants.js
  • features/Emoji/integrations/emojiMenuDefinition.js
  • features/Emoji/integrations/emojiSearchProvider.js
  • features/Emoji/logic/emojiModifier.js

All Versions

Version Status
21 Unreviewed
20 Rejected
19 Active
18 Rejected
17 Rejected
16 Rejected
15 Active
14 Rejected
13 Active
12 Rejected
11 Rejected
10 Active
9 Rejected
8 Active
7 Active
6 Rejected
5 Active
4 Rejected
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

NiffirgkcaJ posted a review
1. EGO-P-007: Reachability of JavaScript Files Message: "Some JavaScript files are not reachable from extension.js or prefs.js imports." Explanation: These warnings are false positives resulting from a limitation in static analysis. The files are not "unnecessary"; they are loaded dynamically to optimize performance. - Mechanism: The extension uses a Modular Registry Pattern. Instead of statically importing every feature tab at startup (which would increase memory overhead), the extension uses the asynchronous import() function. - Implementation: - shared/menu/menuOrder.js defines the module paths as strings. - shared/menu/menuRegistry.js iterates through these paths and calls await import(modulePath). - Conclusion: Static linters like shexli cannot follow string-based dynamic imports. All flagged files are vital components of the extension’s UI and logic that are loaded on demand. 2. EGO-A-005: Direct Clipboard Access Message: "Direct clipboard access via St.Clipboard.get_default() requires reviewer scrutiny." Explanation: This warning is triggered because the extension interacts with the system clipboard. Since the core purpose of this extension is to be a Clipboard Manager, this access is mandatory. - Transparency: To assist the manual review process, all clipboard read/write operations have been abstracted and centralized into a single, dedicated utility file: gnome-extensions/extension/shared/utilities/utilityClipboard.js. - Data Integrity: The implementation uses standard GJS/Shell APIs (St.Clipboard) to listen for selection changes and provide the user the ability to cycle through their clipboard history. - Scope: Clipboard access is strictly limited to capturing new entries for the history and restoring selected historical entries back to the system clipboard at the user's request.