From 2c69e0f810430362bb742bcadfdd3722cf330cb7 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Tue, 22 Dec 2015 23:02:33 -0700 Subject: [PATCH 1/2] Add visual test for #18365 See also https://bugzilla.mozilla.org/show_bug.cgi?id=1228802 --- js/tests/visual/modal.html | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/js/tests/visual/modal.html b/js/tests/visual/modal.html index 2e2f6eb63..7e54f7aa2 100644 --- a/js/tests/visual/modal.html +++ b/js/tests/visual/modal.html @@ -119,12 +119,37 @@ + +

+ + (See Issue #18365) +

@@ -147,12 +172,30 @@ From d12ed5520e5501207baf8089a5f1711cd06d863d Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Tue, 22 Dec 2015 23:02:57 -0700 Subject: [PATCH 2/2] Modal: Ignore spurious `focus` event that Firefox fires at `document` when switching back to its tab Fixes #18365 Refs https://bugzilla.mozilla.org/show_bug.cgi?id=1228802 --- js/src/modal.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/js/src/modal.js b/js/src/modal.js index d40885020..202c5fe94 100644 --- a/js/src/modal.js +++ b/js/src/modal.js @@ -259,8 +259,9 @@ const Modal = (($) => { $(document) .off(Event.FOCUSIN) // guard against infinite focus loop .on(Event.FOCUSIN, (event) => { - if (this._element !== event.target && - (!$(this._element).has(event.target).length)) { + if (document !== event.target && + this._element !== event.target && + (!$(this._element).has(event.target).length)) { this._element.focus() } })