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({
openSUSE Build Service is sponsored by