tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 76ecbc0e47abeb920c55b13e9479da1ec4ab8636
parent aae8c979bbbda0f4ec09324efd9dd984b53672a1
Author: Emilio Cobos Álvarez <emilio@crisal.io>
Date:   Wed, 29 Oct 2025 13:22:26 +0000

Bug 1996868 - More thoroughly clean up DateTimePickerParent's listeners too. r=smaug

Differential Revision: https://phabricator.services.mozilla.com/D270479

Diffstat:
Mtoolkit/actors/DateTimePickerParent.sys.mjs | 32++++++++++++--------------------
1 file changed, 12 insertions(+), 20 deletions(-)

diff --git a/toolkit/actors/DateTimePickerParent.sys.mjs b/toolkit/actors/DateTimePickerParent.sys.mjs @@ -94,6 +94,7 @@ export class DateTimePickerParent extends JSWindowActorParent { } } + this._cleanupPicker(); let doc = window.document; let panel = doc.getElementById("DateTimePickerPanel"); if (!panel) { @@ -116,34 +117,16 @@ export class DateTimePickerParent extends JSWindowActorParent { this._oldFocus = doc.activeElement; this._picker = new lazy.DateTimePickerPanel(panel); this._picker.openPicker(type, rect, detail); - this.addPickerListeners(); - } - - // Close the picker and do some cleanup. - close() { - this._picker.closePicker(); - // Restore focus to where it was before the picker opened. - this._oldFocus?.focus(); - this._oldFocus = null; - this.removePickerListeners(); - this._picker = null; - } - - // Listen to picker's event. - addPickerListeners() { - if (!this._picker) { - return; - } this._picker.element.addEventListener("popuphidden", this); this._picker.element.addEventListener("DateTimePickerValueChanged", this); this._picker.element.addEventListener("DateTimePickerValueCleared", this); } - // Stop listening to picker's event. - removePickerListeners() { + _cleanupPicker() { if (!this._picker) { return; } + this._picker.closePicker(); this._picker.element.removeEventListener("popuphidden", this); this._picker.element.removeEventListener( "DateTimePickerValueChanged", @@ -153,5 +136,14 @@ export class DateTimePickerParent extends JSWindowActorParent { "DateTimePickerValueCleared", this ); + this._picker = null; + } + + // Close the picker and do some cleanup. + close() { + this._cleanupPicker(); + // Restore focus to where it was before the picker opened. + this._oldFocus?.focus(); + this._oldFocus = null; } }