From fccc02f84c5165faeade8787f73188373e692acb Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 6 Sep 2023 09:31:13 -0400 Subject: [PATCH] Fix JS Error in log about background apps --- ...on-t-crash-if-app-id-can-t-be-looked.patch | 88 +++++++++++++++++++ gnome-shell.spec | 8 +- 2 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 0001-backgroundApps-Don-t-crash-if-app-id-can-t-be-looked.patch diff --git a/0001-backgroundApps-Don-t-crash-if-app-id-can-t-be-looked.patch b/0001-backgroundApps-Don-t-crash-if-app-id-can-t-be-looked.patch new file mode 100644 index 0000000..8ff6f6d --- /dev/null +++ b/0001-backgroundApps-Don-t-crash-if-app-id-can-t-be-looked.patch @@ -0,0 +1,88 @@ +From e442e9daf632d2ceb276f9e254d5850a33f91667 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Wed, 6 Sep 2023 09:23:51 -0400 +Subject: [PATCH] backgroundApps: Don't crash if app id can't be looked up + +I'm looking at a log file with this trace back: + + JS ERROR: TypeError: a.app is null + _sync/<@resource:///org/gnome/shell/ui/status/backgroundApps.js:226:17 + _sync@resource:///org/gnome/shell/ui/status/backgroundApps.js:225:14 + _init/ 0); + } + + _sync() { + this._syncVisibility(); + + if (!this._proxy) + return; + + const {BackgroundApps: backgroundApps} = this._proxy; + + this._appsSection.removeAll(); + + const items = new Map(); + (backgroundApps ?? []) + .map(backgroundApp => { + const appId = backgroundApp.app_id.deepUnpack(); + const app = this._appSystem.lookup_app(`${appId}.desktop`); + const message = backgroundApp.message?.deepUnpack(); + + return {app, message}; + }) ++ .filter(backgroundApp => backgroundApp.app) + .sort((a, b) => { + return a.app.get_name().localeCompare(b.app.get_name()); + }) + .forEach(backgroundApp => { + const {app, message} = backgroundApp; + + let item = items.get(app); + if (!item) { + item = new BackgroundAppMenuItem(app); + items.set(app, item); + this._appsSection.addMenuItem(item); + } + + if (message) + item.set({message}); + }); + + const nBackgroundApps = items.size; + this.title = nBackgroundApps === 0 + ? _('No Background Apps') + : ngettext( + '%d Background App', + '%d Background Apps', + nBackgroundApps).format(nBackgroundApps); + this._listTitle.visible = nBackgroundApps > 0; + } + + vfunc_clicked() { + this.menu.open(); + } +-- +2.41.0 + diff --git a/gnome-shell.spec b/gnome-shell.spec index 772b802..3fc7527 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -2,7 +2,7 @@ Name: gnome-shell Version: 45~beta.1 -Release: %autorelease -b 2 +Release: %autorelease Summary: Window management and application launching for GNOME License: GPLv2+ @@ -10,16 +10,18 @@ URL: https://wiki.gnome.org/Projects/GnomeShell Source0: https://download.gnome.org/sources/gnome-shell/45/%{name}-%{tarball_version}.tar.xz # Replace Epiphany with Firefox in the default favourite apps list -Patch10001: gnome-shell-favourite-apps-firefox.patch +Patch: gnome-shell-favourite-apps-firefox.patch # Some users might have a broken PAM config, so we really need this # downstream patch to stop trying on configuration errors. -Patch40001: 0001-gdm-Work-around-failing-fingerprint-auth.patch +Patch: 0001-gdm-Work-around-failing-fingerprint-auth.patch Patch: 0001-status-keyboard-Add-a-catch-around-reload-call.patch Patch: 0002-status-keyboard-Load-keyboard-from-system-settings-i.patch Patch: 0003-status-keyboard-Use-gnome-desktop-API-for-getting-de.patch +Patch: 0001-backgroundApps-Don-t-crash-if-app-id-can-t-be-looked.patch + %define eds_version 3.45.1 %define gnome_desktop_version 44.0-7 %define glib2_version 2.56.0