File CVE-2024-36472.patch of Package gnome-shell.37036
diff --git a/js/ui/status/network.js b/dev/shm/leap/gnome-shell-js/ui/status/network.js
index 469c2d3..3bd428b 100644
--- a/js/ui/status/network.js
+++ b/dev/shm/leap/gnome-shell-js/ui/status/network.js
@@ -1982,6 +1982,7 @@ class Indicator extends SystemIndicator {
this._mainConnection = null;
this._notification = null;
+ this._PortalNotification = null;
this._wiredToggle = new NMWiredToggle();
this._wirelessToggle = new NMWirelessToggle();
@@ -2092,8 +2093,10 @@ class Indicator extends SystemIndicator {
}
_mainConnectionStateChanged() {
- if (this._mainConnection.state === NM.ActiveConnectionState.ACTIVATED)
+ if (this._mainConnection.state === NM.ActiveConnectionState.ACTIVATED) {
this._notification?.destroy();
+ this._PortalNotification?.destroy();
+ }
}
_flushConnectivityQueue() {
@@ -2146,10 +2149,30 @@ class Indicator extends SystemIndicator {
if (!isPortal || Main.sessionMode.isGreeter)
return;
+ let name = this._mainConnection.get_id();
let path = this._mainConnection.get_path();
if (this._connectivityQueue.has(path))
return;
+ this._PortalNotification?.destroy();
+ const source = new MessageTray.Source(
+ _('Network Manager'), 'network-wireless-acquiring-symbolic');
+ source.policy =
+ new MessageTray.NotificationApplicationPolicy('gnome-network-panel')
+
+ this._PortalNotification = new MessageTray.Notification(source,
+ _('Sign Into Wi–Fi Network'),
+ _(name));
+ this._PortalNotification.connect('destroy',
+ () => (this._PortalNotification = null))
+ this._PortalNotification.connect('activated',
+ () => this._onNotificationActivated(path));
+
+ Main.messageTray.add(source);
+ source.showNotification(this._PortalNotification)
+ }
+
+ async _onNotificationActivated(path) {
let timestamp = global.get_current_time();
if (!this._portalHelperProxy) {
this._portalHelperProxy = new Gio.DBusProxy({