Skip to content

Commit 40af85f

Browse files
committed
Bug 1878629 - part 1: Use EventTarget.addEventListener to add system group event listeners instead of nsIEventListenerService (browser/) r=tabbrowser-reviewers,Gijs,dao
Differential Revision: https://phabricator.services.mozilla.com/D201043
1 parent 3395325 commit 40af85f

File tree

7 files changed

+44
-58
lines changed

7 files changed

+44
-58
lines changed

browser/base/content/browser-ctrlTab.js

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,7 @@ var ctrlTab = {
581581
return;
582582
}
583583

584-
Services.els.addSystemEventListener(document, "keyup", this, false);
584+
document.addEventListener("keyup", this, { mozSystemGroup: true });
585585

586586
let tabs = gBrowser.visibleTabs;
587587
if (tabs.length > 2) {
@@ -706,12 +706,7 @@ var ctrlTab = {
706706
event.stopPropagation();
707707

708708
if (event.keyCode === event.DOM_VK_CONTROL) {
709-
Services.els.removeSystemEventListener(
710-
document,
711-
"keyup",
712-
this,
713-
false
714-
);
709+
document.removeEventListener("keyup", this, { mozSystemGroup: true });
715710

716711
if (this.isOpen) {
717712
this.pick();
@@ -787,9 +782,9 @@ var ctrlTab = {
787782
tabContainer[toggleEventListener]("TabShow", this);
788783

789784
if (enable) {
790-
Services.els.addSystemEventListener(document, "keydown", this, false);
785+
document.addEventListener("keydown", this, { mozSystemGroup: true });
791786
} else {
792-
Services.els.removeSystemEventListener(document, "keydown", this, false);
787+
document.removeEventListener("keydown", this, { mozSystemGroup: true });
793788
}
794789
document[toggleEventListener]("keypress", this);
795790
gBrowser.tabbox.handleCtrlTab = !enable;

browser/base/content/browser.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1694,12 +1694,10 @@ var gBrowserInit = {
16941694

16951695
if (!gMultiProcessBrowser) {
16961696
// There is a Content:Click message manually sent from content.
1697-
Services.els.addSystemEventListener(
1698-
gBrowser.tabpanels,
1699-
"click",
1700-
contentAreaClick,
1701-
true
1702-
);
1697+
gBrowser.tabpanels.addEventListener("click", contentAreaClick, {
1698+
capture: true,
1699+
mozSystemGroup: true,
1700+
});
17031701
}
17041702

17051703
// hook up UI through progress listener

browser/base/content/tabbrowser.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@
119119

120120
Services.obs.addObserver(this, "contextual-identity-updated");
121121

122-
Services.els.addSystemEventListener(document, "keydown", this, false);
123-
Services.els.addSystemEventListener(document, "keypress", this, false);
122+
document.addEventListener("keydown", this, { mozSystemGroup: true });
123+
document.addEventListener("keypress", this, { mozSystemGroup: true });
124124
document.addEventListener("visibilitychange", this);
125125
window.addEventListener("framefocusrequested", this);
126126
window.addEventListener("activate", this);
@@ -5948,14 +5948,11 @@
59485948
}
59495949
}
59505950

5951-
Services.els.removeSystemEventListener(document, "keydown", this, false);
5951+
document.removeEventListener("keydown", this, { mozSystemGroup: true });
59525952
if (AppConstants.platform == "macosx") {
5953-
Services.els.removeSystemEventListener(
5954-
document,
5955-
"keypress",
5956-
this,
5957-
false
5958-
);
5953+
document.removeEventListener("keypress", this, {
5954+
mozSystemGroup: true,
5955+
});
59595956
}
59605957
document.removeEventListener("visibilitychange", this);
59615958
window.removeEventListener("framefocusrequested", this);

browser/components/customizableui/CustomizableUI.sys.mjs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1251,8 +1251,8 @@ var CustomizableUIInternal = {
12511251
},
12521252

12531253
addPanelCloseListeners(aPanel) {
1254-
Services.els.addSystemEventListener(aPanel, "click", this, false);
1255-
Services.els.addSystemEventListener(aPanel, "keypress", this, false);
1254+
aPanel.addEventListener("click", this, { mozSystemGroup: true });
1255+
aPanel.addEventListener("keypress", this, { mozSystemGroup: true });
12561256
let win = aPanel.ownerGlobal;
12571257
if (!gPanelsForWindow.has(win)) {
12581258
gPanelsForWindow.set(win, new Set());
@@ -1261,8 +1261,8 @@ var CustomizableUIInternal = {
12611261
},
12621262

12631263
removePanelCloseListeners(aPanel) {
1264-
Services.els.removeSystemEventListener(aPanel, "click", this, false);
1265-
Services.els.removeSystemEventListener(aPanel, "keypress", this, false);
1264+
aPanel.removeEventListener("click", this, { mozSystemGroup: true });
1265+
aPanel.removeEventListener("keypress", this, { mozSystemGroup: true });
12661266
let win = aPanel.ownerGlobal;
12671267
let panels = gPanelsForWindow.get(win);
12681268
if (panels) {
@@ -5483,7 +5483,10 @@ class OverflowableToolbar {
54835483
let mainViewId = multiview.getAttribute("mainViewId");
54845484
let mainView = doc.getElementById(mainViewId);
54855485
let contextMenu = doc.getElementById(mainView.getAttribute("context"));
5486-
Services.els.addSystemEventListener(contextMenu, "command", this, true);
5486+
contextMenu.addEventListener("command", this, {
5487+
capture: true,
5488+
mozSystemGroup: true,
5489+
});
54875490
let anchor = this.#defaultListButton.icon;
54885491

54895492
let popupshown = false;
@@ -6082,12 +6085,10 @@ class OverflowableToolbar {
60826085
let contextMenuId = this.#defaultListPanel.getAttribute("context");
60836086
if (contextMenuId) {
60846087
let contextMenu = doc.getElementById(contextMenuId);
6085-
Services.els.removeSystemEventListener(
6086-
contextMenu,
6087-
"command",
6088-
this,
6089-
true
6090-
);
6088+
contextMenu.removeEventListener("command", this, {
6089+
capture: true,
6090+
mozSystemGroup: true,
6091+
});
60916092
}
60926093
}
60936094

browser/components/downloads/content/downloads.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,10 @@ var DownloadsPanel = {
528528
},
529529

530530
_startWatchingForSpammyDownloadActivation() {
531-
Services.els.addSystemEventListener(window, "keydown", this, true);
531+
window.addEventListener("keydown", this, {
532+
capture: true,
533+
mozSystemGroup: true,
534+
});
532535
},
533536

534537
_lastBeepTime: 0,
@@ -546,7 +549,10 @@ var DownloadsPanel = {
546549
},
547550

548551
_stopWatchingForSpammyDownloadActivation() {
549-
Services.els.removeSystemEventListener(window, "keydown", this, true);
552+
window.removeEventListener("keydown", this, {
553+
capture: true,
554+
mozSystemGroup: true,
555+
});
550556
},
551557

552558
/**

browser/components/resistfingerprinting/test/mochitest/test_keyboard_event.html

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,26 @@
2424

2525
// This test makes sure that system event group will still get real keyboard event.
2626
function doTestForSystemEventGroup() {
27-
SpecialPowers.addSystemEventListener(document, "keydown",
27+
SpecialPowers.wrap(document).addEventListener("keydown",
2828
function eventHandler(aEvent) {
29-
SpecialPowers.removeSystemEventListener(document,
30-
"keydown", eventHandler, true);
31-
3229
is(aEvent.code, "Minus", "The system group event should get real code.");
3330
is(aEvent.keyCode, 63, "The system group event should get real keyCode.");
3431

3532
doTestModifiersForSystemEventGroup();
36-
}, true);
33+
}, { once: true, capture: true, mozSystemGroup: true });
3734

3835
// Send key event to the system group.
3936
synthesizeKey("\u00DF", {code: "Minus", keyCode: 63});
4037
}
4138

4239
// Test that will system group event still get suppressed modifier keys
4340
function doTestModifiersForSystemEventGroup() {
44-
SpecialPowers.addSystemEventListener(document, "keydown",
41+
SpecialPowers.wrap(document).addEventListener("keydown",
4542
function eventHandler(aEvent) {
46-
SpecialPowers.removeSystemEventListener(document,
47-
"keydown", eventHandler, true);
4843
is(aEvent.key, "Alt", "The system group event get the suppressed keyboard event.");
4944

5045
SimpleTest.finish();
51-
}, true);
46+
}, { once: true, capture: true, mozSystemGroup: true });
5247

5348
// Send key event to the system group.
5449
synthesizeKey("KEY_Alt", {altKey: true});

browser/components/syncedtabs/TabListView.sys.mjs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -411,12 +411,9 @@ TabListView.prototype = {
411411

412412
// Set up the custom context menu
413413
_setupContextMenu() {
414-
Services.els.addSystemEventListener(
415-
this._window,
416-
"contextmenu",
417-
this,
418-
false
419-
);
414+
this._window.addEventListener("contextmenu", this, {
415+
mozSystemGroup: true,
416+
});
420417
for (let getMenu of [getContextMenu, getTabsFilterContextMenu]) {
421418
let menu = getMenu(this._window);
422419
menu.addEventListener("popupshowing", this, true);
@@ -426,12 +423,9 @@ TabListView.prototype = {
426423

427424
_teardownContextMenu() {
428425
// Tear down context menu
429-
Services.els.removeSystemEventListener(
430-
this._window,
431-
"contextmenu",
432-
this,
433-
false
434-
);
426+
this._window.removeEventListener("contextmenu", this, {
427+
mozSystemGroup: true,
428+
});
435429
for (let getMenu of [getContextMenu, getTabsFilterContextMenu]) {
436430
let menu = getMenu(this._window);
437431
menu.removeEventListener("popupshowing", this, true);

0 commit comments

Comments
 (0)