Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-A-005 manual_review
extensions should not access the clipboard directly
Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.
lib/misc/clipboard.js:73
St.Clipboard.get_default()
EGO-P-004 error
GSettings schema XML filename must match schema id
GSettings schema filename must match `<schema-id>.gschema.xml`.
schemas/org.gnome.shell.extensions.copyous.gschema.xml
id='org.gnome.shell.extensions.copyous.text-item' path='/org/gnome/shell/extensions/copyous/text-item/'
schemas/org.gnome.shell.extensions.copyous.gschema.xml
id='org.gnome.shell.extensions.copyous.code-item' path='/org/gnome/shell/extensions/copyous/code-item/'
schemas/org.gnome.shell.extensions.copyous.gschema.xml
id='org.gnome.shell.extensions.copyous.image-item' path='/org/gnome/shell/extensions/copyous/image-item/'
schemas/org.gnome.shell.extensions.copyous.gschema.xml
id='org.gnome.shell.extensions.copyous.file-item' path='/org/gnome/shell/extensions/copyous/file-item/'
schemas/org.gnome.shell.extensions.copyous.gschema.xml
id='org.gnome.shell.extensions.copyous.link-item' path='/org/gnome/shell/extensions/copyous/link-item/'
schemas/org.gnome.shell.extensions.copyous.gschema.xml
id='org.gnome.shell.extensions.copyous.character-item' path='/org/gnome/shell/extensions/copyous/character-item/'
schemas/org.gnome.shell.extensions.copyous.gschema.xml
id='org.gnome.shell.extensions.copyous.theme' path='/org/gnome/shell/extensions/copyous/theme/'
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.
lib/ui/components/editDialog.js:282
this._entry = new MultilineEntry({
style_class: 'clipboard-item-edit-dialog-entry',
can_focus: true,
})
lib/ui/components/editDialog.js:277
this._languageButton = new LanguageButton(ext, metadata.language)
lib/ui/items/characterItem.js:34
this._character = new St.Label({
style_class: 'character-item-content',
text: entry.content.trim(),
min_width: 0,
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER,
y_expand: true,
style: 'font-size: 16px',
})
lib/ui/items/characterItem.js:48
this._chars = new St.Label({
style_class: 'character-item-chars',
text: chars,
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.END,
})
lib/ui/items/colorItem.js:54
this._effect = new Clutter.BrightnessContrastEffect({ enabled: false })
lib/ui/items/fileItem.js:61
this._file = new St.Label({
style_class: 'file-item-file',
text: formatFile(Gio.File.new_for_uri(this.entry.content)),
y_align: Clutter.ActorAlign.START,
y_expand: true,
})
lib/ui/items/linkItem.js:297
this._linkPreview = new LinkPreview(ext, this.entry.content.trim())
lib/ui/items/linkItem.js:299
this._url = new St.Label({ style_class: 'link-url', text: this.entry.content.trim() })
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`.
extension.js:38
this.settings = this.getSettings()
lib/ui/components/editDialog.js:282
this._entry = new MultilineEntry({
style_class: 'clipboard-item-edit-dialog-entry',
can_focus: true,
})
lib/ui/components/editDialog.js:277
this._languageButton = new LanguageButton(ext, metadata.language)
lib/ui/items/characterItem.js:34
this._character = new St.Label({
style_class: 'character-item-content',
text: entry.content.trim(),
min_width: 0,
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER,
y_expand: true,
style: 'font-size: 16px',
})
lib/ui/items/characterItem.js:48
this._chars = new St.Label({
style_class: 'character-item-chars',
text: chars,
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.END,
})
lib/ui/items/colorItem.js:54
this._effect = new Clutter.BrightnessContrastEffect({ enabled: false })
lib/ui/items/fileItem.js:61
this._file = new St.Label({
style_class: 'file-item-file',
text: formatFile(Gio.File.new_for_uri(this.entry.content)),
y_align: Clutter.ActorAlign.START,
y_expand: true,
})
lib/ui/items/linkItem.js:297
this._linkPreview = new LinkPreview(ext, this.entry.content.trim())
lib/ui/items/linkItem.js:299
this._url = new St.Label({ style_class: 'link-url', text: this.entry.content.trim() })
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.
lib/ui/clipboardDialog.js:124
this._clearButton.connect('clicked', () => this.emit('clear-history'))
lib/ui/clipboardDialog.js:108
this._settingsButton.connect('clicked', () => this.emit('open-settings'))
lib/ui/clipboardDialog.js:115
this.searchEntry.clutter_text.connect('key-focus-in', () => this.updateHeader(true))
lib/ui/components/editDialog.js:123
text.connect('cursor-changed', () => {
const [success, x, y, h] = text.position_to_coords(text.cursor_position);
if (success) {
if (x > box.allocation.get_width()) return;
const y1 = box.vadjustment.value;
const y2 = y1 + box.vadjustment.page_size;
if (y < y1) {
box.vadj
lib/ui/components/tagsItem.js:156
this._leftArrow.connect('clicked', () => this._tagsBox.previousPage())
lib/ui/components/tagsItem.js:157
this._rightArrow.connect('clicked', () => this._tagsBox.nextPage())
lib/ui/components/tagsItem.js:133
this._tagsBox.hadjustment.connect('changed', this.updateButtons.bind(this))
lib/ui/components/tagsItem.js:132
this._tagsBox.hadjustment.connect('notify::value', this.updateButtons.bind(this))
lib/ui/indicator.js:229
dialog.connect('clear-history', (_dialog, history) => this.emit('clear-history', history))
lib/ui/items/clipboardItem.js:313
target.connect('notify::allocation', () => this.queue_repaint())
lib/ui/items/clipboardItemHeader.js:344
this._titleEntry.clutter_text.connect('key-focus-out', () => {
if (this._isEditing) {
this.finishEditing(true);
}
})
lib/ui/items/clipboardItemHeader.js:333
this._titleEntry.clutter_text.connect('key-press-event', (_text, event) => {
const key = event.get_key_symbol();
if (key === Clutter.KEY_Return || key === Clutter.KEY_KP_Enter) {
this.finishEditing(true);
return Clutter.EVENT_STOP;
} else if (key === Clutter.KEY_Escape) {
this
lib/ui/items/codeItem.js:73
this._code.connect('notify::language', () => {
this.entry.metadata = { language: this._code.language };
})
lib/ui/searchEntry.js:191
this.actor.connect('captured-event', (_actor, event) => {
if (event.type() === Clutter.EventType.KEY_PRESS) {
const key = event.get_key_symbol();
const unicode = Clutter.keysym_to_unicode(key);
if (unicode === 0) return;
// Select tag with number
if (key === Clutter.KEY_0 |
lib/ui/searchEntry.js:305
this._itemButton.connect('clicked', (_btn, button) => {
if (button === Clutter.BUTTON_PRIMARY) {
this._menu.toggle();
} else if (button === Clutter.BUTTON_MIDDLE) {
this.type = null;
this.tag = null;
}
})
lib/ui/searchEntry.js:335
this._menu.connect('selected-changed', (_menu, type) => {
this.type = type;
if (type) {
searchIcon.gicon = this._icons[type];
} else {
searchIcon.gicon = this._icons.search;
}
return undefined;
})
lib/ui/searchEntry.js:331
this._menu.connect('tag-changed', (_menu, tag) => {
this.tag = tag;
return undefined;
})
lib/ui/searchEntry.js:376
this.clutter_text.connect('key-press-event', (_text, event) => this._keyPressEvent(event))
| Version | Status |
|---|---|
| 2.0.1 (9) | Active |
| 2.0.0 (8) | Active |
| 1.3.0 (7) | Active |
| 1.2.0 (6) | Inactive |
| 1.1.3 (5) | Inactive |
| 1.1.2 (4) | Inactive |
| 1.1.1 (3) | Inactive |
| 1.1.0 (2) | Inactive |
| 1.0.0 (1) | Rejected |