diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 02:30:12 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 02:30:12 +0000 |
commit | ac282b5848d90db100955fee6ce47745f67e0f40 (patch) | |
tree | a7f1cb23c9be53cc524781feccc0ad1f5a59ab97 /toolkit/modules | |
parent | Releasing progress-linux version 115.8.0esr-1~progress7.99u1. (diff) | |
download | firefox-esr-ac282b5848d90db100955fee6ce47745f67e0f40.tar.xz firefox-esr-ac282b5848d90db100955fee6ce47745f67e0f40.zip |
Merging upstream version 115.9.0esr.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/modules')
-rw-r--r-- | toolkit/modules/PopupNotifications.sys.mjs | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/toolkit/modules/PopupNotifications.sys.mjs b/toolkit/modules/PopupNotifications.sys.mjs index ca51346625..0c33220174 100644 --- a/toolkit/modules/PopupNotifications.sys.mjs +++ b/toolkit/modules/PopupNotifications.sys.mjs @@ -309,9 +309,11 @@ export function PopupNotifications(tabbrowser, panel, iconBox, options = {}) { ); Services.obs.addObserver(this, "fullscreen-transition-start"); + Services.obs.addObserver(this, "pointer-lock-entered"); this.window.addEventListener("unload", () => { Services.obs.removeObserver(this, "fullscreen-transition-start"); + Services.obs.removeObserver(this, "pointer-lock-entered"); }); this.window.addEventListener("activate", this, true); @@ -361,7 +363,11 @@ PopupNotifications.prototype = { }, observe(subject, topic) { - if (topic == "fullscreen-transition-start") { + // These observers apply to all windows. + if ( + topic == "fullscreen-transition-start" || + topic == "pointer-lock-entered" + ) { // Extend security delay if the panel is open. if (this.isPanelOpen) { let notification = this.panel.firstChild?.notification; @@ -1336,9 +1342,12 @@ PopupNotifications.prototype = { n._recordTelemetryStat(TELEMETRY_STAT_OFFERED); }, this); - // We're about to open the panel while in a full screen transition. Extend - // the security delay. - if (this.window.isInFullScreenTransition) { + // We're about to open the panel while in a full screen transition or + // during pointer lock. Extend the security delay to avoid clickjacking. + if ( + this.window.isInFullScreenTransition || + this.window.PointerLock?.isActive + ) { this._extendSecurityDelay(notificationsToShow); } |