tor-browser

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

commit a662298aa9fba344c2fd19624ed3e500e3bf853a
parent 1ac2a776f09d49cc124e0bebeaf061de597b5eb1
Author: Mark Banner <standard8@mozilla.com>
Date:   Tue, 30 Sep 2025 15:38:55 +0000

Bug 1881270 - Fix ESLint rule no-case-declarations issues in toolkit/ code. r=frontend-codestyle-reviewers,credential-management-reviewers,omc-reviewers,toolkit-telemetry-reviewers,kpatenio,emz,mkennedy,Gijs,mtigley,mimi

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

Diffstat:
Mdom/ipc/tests/JSWindowActor/browser_sendQuery.js | 2+-
Meslint-rollouts.config.mjs | 13-------------
Mtoolkit/actors/AutoScrollParent.sys.mjs | 3++-
Mtoolkit/actors/ContentMetaChild.sys.mjs | 3++-
Mtoolkit/actors/NetErrorChild.sys.mjs | 3++-
Mtoolkit/actors/NetErrorParent.sys.mjs | 12++++++++----
Mtoolkit/actors/PictureInPictureChild.sys.mjs | 9++++++---
Mtoolkit/actors/SelectParent.sys.mjs | 6++++--
Mtoolkit/actors/TestProcessActorChild.sys.mjs | 3++-
Mtoolkit/actors/TestWindowChild.sys.mjs | 3++-
Mtoolkit/actors/TestWindowParent.sys.mjs | 4++--
Mtoolkit/actors/ViewSourceChild.sys.mjs | 3++-
Mtoolkit/components/antitracking/URLQueryStrippingListService.sys.mjs | 3++-
Mtoolkit/components/antitracking/test/browser/3rdPartyRelay.html | 3++-
Mtoolkit/components/antitracking/test/browser/browser_subResourcesPartitioned.js | 3++-
Mtoolkit/components/antitracking/test/browser/browser_subResourcesPartitioned_alwaysPartition.js | 3++-
Mtoolkit/components/certviewer/content/certDecoder.mjs | 5+++--
Mtoolkit/components/contentprefs/ContentPrefService2.sys.mjs | 6++++--
Mtoolkit/components/contentprefs/ContentPrefServiceParent.sys.mjs | 3++-
Mtoolkit/components/downloads/DownloadIntegration.sys.mjs | 6++++--
Mtoolkit/components/messaging-system/lib/SpecialMessageActions.sys.mjs | 30++++++++++++++++++++----------
Mtoolkit/components/normandy/content/ShieldFrameChild.sys.mjs | 18++++++++++++------
Mtoolkit/components/passwordmgr/test/unit/test_notifications.js | 3++-
Mtoolkit/components/pdfjs/content/GeckoViewPdfjsParent.sys.mjs | 3++-
Mtoolkit/components/pdfjs/content/PdfStreamConverter.sys.mjs | 3++-
Mtoolkit/components/printing/content/print.js | 12++++++++----
Mtoolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs | 3++-
Mtoolkit/components/telemetry/pings/EventPing.sys.mjs | 3++-
Mtoolkit/components/telemetry/pings/TelemetrySession.sys.mjs | 6++++--
Mtoolkit/components/timermanager/UpdateTimerManager.sys.mjs | 3++-
Mtoolkit/components/url-classifier/tests/unit/test_channelClassifierService.js | 3++-
Mtoolkit/components/utils/JsonSchemaValidator.sys.mjs | 3++-
Mtoolkit/content/widgets/autocomplete-popup.js | 3++-
Mtoolkit/content/widgets/datetimebox.js | 9++++++---
Mtoolkit/content/widgets/findbar.js | 3++-
Mtoolkit/content/widgets/panel-list/panel-list.js | 3++-
Mtoolkit/content/widgets/videocontrols.js | 6++++--
Mtoolkit/modules/E10SUtils.sys.mjs | 6++++--
Mtoolkit/modules/Finder.sys.mjs | 3++-
Mtoolkit/modules/PropertyListUtils.sys.mjs | 3++-
Mtoolkit/modules/WindowsRegistry.sys.mjs | 3++-
41 files changed, 140 insertions(+), 85 deletions(-)

diff --git a/dom/ipc/tests/JSWindowActor/browser_sendQuery.js b/dom/ipc/tests/JSWindowActor/browser_sendQuery.js @@ -2,7 +2,7 @@ http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; -const ERROR_LINE_NUMBER = 36; +const ERROR_LINE_NUMBER = 37; const EXCEPTION_LINE_NUMBER = ERROR_LINE_NUMBER + 3; const ERROR_COLUMN_NUMBER = 31; const EXCEPTION_COLUMN_NUMBER = 22; diff --git a/eslint-rollouts.config.mjs b/eslint-rollouts.config.mjs @@ -106,19 +106,6 @@ export default [ }, }, { - // Bug 1881270 - Gradually roll-out no-case-declarations to more areas. - name: "rollout-no-case-declarations", - files: [ - "toolkit/actors/**", - "toolkit/components/**", - "toolkit/modules/**", - "toolkit/content/widgets/**", - ], - rules: { - "no-case-declarations": "warn", - }, - }, - { // Bug 1881268 - Gradually roll-out no-constant-condition to more areas. name: "rollout-no-constant-condition", files: [ diff --git a/toolkit/actors/AutoScrollParent.sys.mjs b/toolkit/actors/AutoScrollParent.sys.mjs @@ -28,7 +28,7 @@ export class AutoScrollParent extends JSWindowActorParent { return Promise.resolve({ autoscrollEnabled: false, usingAPZ: false }); } return Promise.resolve(browser.startScroll(data)); - case "Autoscroll:MaybeStartInParent": + case "Autoscroll:MaybeStartInParent": { // Don't start autoscroll if the tab has already been a background tab. if (!requestedInForegroundTab) { return Promise.resolve({ autoscrollEnabled: false, usingAPZ: false }); @@ -39,6 +39,7 @@ export class AutoScrollParent extends JSWindowActorParent { actor.sendAsyncMessage("Autoscroll:MaybeStart", data); } break; + } case "Autoscroll:Cancel": browser.cancelScroll(); break; diff --git a/toolkit/actors/ContentMetaChild.sys.mjs b/toolkit/actors/ContentMetaChild.sys.mjs @@ -92,12 +92,13 @@ export class ContentMetaChild extends JSWindowActorChild { handleEvent(event) { switch (event.type) { - case "DOMContentLoaded": + case "DOMContentLoaded": { const metaTags = this.contentWindow.document.querySelectorAll("meta"); for (let metaTag of metaTags) { this.onMetaTag(metaTag); } break; + } case "DOMMetaAdded": this.onMetaTag(event.originalTarget); break; diff --git a/toolkit/actors/NetErrorChild.sys.mjs b/toolkit/actors/NetErrorChild.sys.mjs @@ -51,7 +51,7 @@ export class NetErrorChild extends RemotePageChild { let doc = aEvent.originalTarget.ownerDocument || aEvent.originalTarget; switch (aEvent.type) { - case "click": + case "click": { let elem = aEvent.originalTarget; if (elem.id == "viewCertificate") { // Call through the superclass to avoid the security check. @@ -62,6 +62,7 @@ export class NetErrorChild extends RemotePageChild { }); } break; + } } } diff --git a/toolkit/actors/NetErrorParent.sys.mjs b/toolkit/actors/NetErrorParent.sys.mjs @@ -213,7 +213,7 @@ export class NetErrorParent extends EscapablePageParent { Services.prefs.clearUserPref("security.enterprise_roots.enabled"); Services.prefs.clearUserPref("security.enterprise_roots.auto-enabled"); break; - case "Browser:ResetSSLPreferences": + case "Browser:ResetSSLPreferences": { let prefSSLImpact = PREF_SSL_IMPACT_ROOTS.reduce((prefs, root) => { return prefs.concat(Services.prefs.getChildList(root)); }, []); @@ -222,15 +222,17 @@ export class NetErrorParent extends EscapablePageParent { } this.browser.reload(); break; + } case "Browser:SSLErrorGoBack": this.leaveErrorPage(this.browser); break; - case "GetChangedCertPrefs": + case "GetChangedCertPrefs": { let hasChangedCertPrefs = this.hasChangedCertPrefs(); this.sendAsyncMessage("HasChangedCertPrefs", { hasChangedCertPrefs, }); break; + } case "DisplayOfflineSupportPage": this.displayOfflineSupportPage(message.data.supportPageSlug); break; @@ -254,7 +256,7 @@ export class NetErrorParent extends EscapablePageParent { } } break; - case "Browser:AddTRRExcludedDomain": + case "Browser:AddTRRExcludedDomain": { let domain = message.data.hostname; let excludedDomains = Services.prefs.getStringPref( "network.trr.excluded-domains" @@ -265,7 +267,8 @@ export class NetErrorParent extends EscapablePageParent { excludedDomains ); break; - case "OpenTRRPreferences": + } + case "OpenTRRPreferences": { let browser = this.browsingContext.top.embedderElement; if (!browser) { break; @@ -274,6 +277,7 @@ export class NetErrorParent extends EscapablePageParent { let win = browser.ownerGlobal; win.openPreferences("privacy-doh"); break; + } } } } diff --git a/toolkit/actors/PictureInPictureChild.sys.mjs b/toolkit/actors/PictureInPictureChild.sys.mjs @@ -393,7 +393,7 @@ export class PictureInPictureToggleChild extends JSWindowActorChild { } switch (data) { - case TOGGLE_FIRST_SEEN_PREF: + case TOGGLE_FIRST_SEEN_PREF: { const firstSeenSeconds = Services.prefs.getIntPref( TOGGLE_FIRST_SEEN_PREF ); @@ -402,6 +402,7 @@ export class PictureInPictureToggleChild extends JSWindowActorChild { } this.changeToIconIfDurationEnd(firstSeenSeconds); break; + } } } @@ -2677,7 +2678,7 @@ export class PictureInPictureChild extends JSWindowActorChild { this.videoWrapper.setCurrentTime(video, newval >= 0 ? newval : 0); break; case "rightArrow": /* Seek forward 5 seconds */ - case "accel-rightArrow" /* Seek forward 10% */: + case "accel-rightArrow" /* Seek forward 10% */: { if ( this.isKeyDisabled(lazy.KEYBOARD_CONTROLS.SEEK) || (isVideoStreaming && @@ -2696,6 +2697,7 @@ export class PictureInPictureChild extends JSWindowActorChild { let selectedTime = newval <= maxtime ? newval : maxtime; this.videoWrapper.setCurrentTime(video, selectedTime); break; + } case "home" /* Seek to beginning */: if (this.isKeyDisabled(lazy.KEYBOARD_CONTROLS.SEEK)) { return; @@ -2704,7 +2706,7 @@ export class PictureInPictureChild extends JSWindowActorChild { this.videoWrapper.setCurrentTime(video, 0); } break; - case "end" /* Seek to end */: + case "end" /* Seek to end */: { if (this.isKeyDisabled(lazy.KEYBOARD_CONTROLS.SEEK)) { return; } @@ -2717,6 +2719,7 @@ export class PictureInPictureChild extends JSWindowActorChild { this.videoWrapper.setCurrentTime(video, duration); } break; + } default: } } catch (e) { diff --git a/toolkit/actors/SelectParent.sys.mjs b/toolkit/actors/SelectParent.sys.mjs @@ -342,7 +342,7 @@ export var SelectParentHelper = { handleEvent(event) { switch (event.type) { - case "mouseup": + case "mouseup": { function inRect(rect, x, y) { return ( x >= rect.left && @@ -360,6 +360,7 @@ export var SelectParentHelper = { this._currentMenulist.menupopup.state == "open"; this._actor.sendAsyncMessage("Forms:MouseUp", { onAnchor }); break; + } case "mouseover": if ( @@ -401,7 +402,7 @@ export var SelectParentHelper = { } break; - case "popuphidden": + case "popuphidden": { this._actor.sendAsyncMessage("Forms:DismissedDropDown", {}); let popup = event.target; this._unregisterListeners(popup); @@ -415,6 +416,7 @@ export var SelectParentHelper = { this._currentZoom = 1; this._actor = null; break; + } } }, diff --git a/toolkit/actors/TestProcessActorChild.sys.mjs b/toolkit/actors/TestProcessActorChild.sys.mjs @@ -19,11 +19,12 @@ export class TestProcessActorChild extends JSProcessActorChild { aMessage.data.toChild = true; this.sendAsyncMessage("toParent", aMessage.data); break; - case "asyncAdd": + case "asyncAdd": { let { a, b } = aMessage.data; return new Promise(resolve => { resolve({ result: a + b }); }); + } case "error": return Promise.reject(new SyntaxError(aMessage.data.message)); case "exception": diff --git a/toolkit/actors/TestWindowChild.sys.mjs b/toolkit/actors/TestWindowChild.sys.mjs @@ -27,11 +27,12 @@ export class TestWindowChild extends JSWindowActorChild { aMessage.data.toChild = true; this.sendAsyncMessage("toParent", aMessage.data); break; - case "asyncAdd": + case "asyncAdd": { let { a, b } = aMessage.data; return new Promise(resolve => { resolve({ result: a + b }); }); + } case "error": return Promise.reject(new SyntaxError(aMessage.data.message)); case "exception": diff --git a/toolkit/actors/TestWindowParent.sys.mjs b/toolkit/actors/TestWindowParent.sys.mjs @@ -24,10 +24,10 @@ export class TestWindowParent extends JSWindowActorParent { aMessage.data.toParent = true; this.sendAsyncMessage("done", aMessage.data); break; - case "asyncMul": + case "asyncMul": { let { a, b } = aMessage.data; return { result: a * b }; - + } case "event": Services.obs.notifyObservers( this, diff --git a/toolkit/actors/ViewSourceChild.sys.mjs b/toolkit/actors/ViewSourceChild.sys.mjs @@ -23,12 +23,13 @@ export class ViewSourceChild extends JSWindowActorChild { data.baseURI ); break; - case "ViewSource:GetSelection": + case "ViewSource:GetSelection": { let selectionDetails; try { selectionDetails = this.getSelection(this.document.ownerGlobal); } catch (e) {} return selectionDetails; + } } return undefined; diff --git a/toolkit/components/antitracking/URLQueryStrippingListService.sys.mjs b/toolkit/components/antitracking/URLQueryStrippingListService.sys.mjs @@ -435,10 +435,11 @@ export class URLQueryStrippingListService { case "xpcom-shutdown": this.#shutdown(); break; - case "nsPref:changed": + case "nsPref:changed": { let prefValue = Services.prefs.getStringPref(data, ""); this._onPrefUpdate(data, prefValue); break; + } default: console.error(`Unexpected event ${topic}`); } diff --git a/toolkit/components/antitracking/test/browser/3rdPartyRelay.html b/toolkit/components/antitracking/test/browser/3rdPartyRelay.html @@ -27,10 +27,11 @@ onmessage = function(e) { case "info": parent.postMessage(e.data, "*"); break; - default: + default: { let iframe = document.querySelector("iframe"); iframe.contentWindow.postMessage(e.data, "*"); break; + } } }; diff --git a/toolkit/components/antitracking/test/browser/browser_subResourcesPartitioned.js b/toolkit/components/antitracking/test/browser/browser_subResourcesPartitioned.js @@ -228,7 +228,7 @@ async function runTests(topPage, limitForeignContexts) { info(trackerOrigin); switch (trackerOrigin) { case "https://example.org": - case "https://example.com": + case "https://example.com": { let numEntries = 1; if (limitForeignContexts) { ++numEntries; @@ -243,6 +243,7 @@ async function runTests(topPage, limitForeignContexts) { expectCookiesBlockedForeign(originLog[1]); } break; + } case "https://tracking.example.org": is( originLog.length, diff --git a/toolkit/components/antitracking/test/browser/browser_subResourcesPartitioned_alwaysPartition.js b/toolkit/components/antitracking/test/browser/browser_subResourcesPartitioned_alwaysPartition.js @@ -224,7 +224,7 @@ async function runTests(topPage, limitForeignContexts) { info(trackerOrigin); switch (trackerOrigin) { case "https://example.org": - case "https://example.com": + case "https://example.com": { let numEntries = 1; if (limitForeignContexts) { ++numEntries; @@ -239,6 +239,7 @@ async function runTests(topPage, limitForeignContexts) { expectCookiesBlockedForeign(originLog[1]); } break; + } case "https://tracking.example.org": is( originLog.length, diff --git a/toolkit/components/certviewer/content/certDecoder.mjs b/toolkit/components/certviewer/content/certDecoder.mjs @@ -143,7 +143,8 @@ const getSubjectAltNames = (x509, criticalExtensions) => { strings.san[type], parseSubsidiary(san.altNames[index].value.typesAndValues).dn, ]; - case 7: // ip address + case 7: { + // ip address let address = san.altNames[index].value.valueBlock.valueHex; if (address.length === 8) { @@ -160,7 +161,7 @@ const getSubjectAltNames = (x509, criticalExtensions) => { return [strings.san[type], hexToIpv6Repr(address)]; } return [strings.san[type], "Unknown IP address"]; - + } default: return [strings.san[type], san.altNames[index].value]; } diff --git a/toolkit/components/contentprefs/ContentPrefService2.sys.mjs b/toolkit/components/contentprefs/ContentPrefService2.sys.mjs @@ -1242,14 +1242,16 @@ ContentPrefService2.prototype = { case "last-pb-context-exited": this._pbStore.removeAll(); break; - case "test:reset": + case "test:reset": { let fn = subj.QueryInterface(Ci.xpcIJSWeakReference).get(); this._reset(fn); break; - case "test:db": + } + case "test:db": { let obj = subj.QueryInterface(Ci.xpcIJSWeakReference).get(); obj.value = this.conn; break; + } } }, diff --git a/toolkit/components/contentprefs/ContentPrefServiceParent.sys.mjs b/toolkit/components/contentprefs/ContentPrefServiceParent.sys.mjs @@ -73,7 +73,7 @@ export class ContentPrefsParent extends JSProcessActorParent { break; } - case "ContentPrefs:FunctionCall": + case "ContentPrefs:FunctionCall": { let data = msg.data; let signature; @@ -130,6 +130,7 @@ export class ContentPrefsParent extends JSProcessActorParent { // And call the function. lazy.cps2[data.call](...args); }); + } } return undefined; diff --git a/toolkit/components/downloads/DownloadIntegration.sys.mjs b/toolkit/components/downloads/DownloadIntegration.sys.mjs @@ -1391,7 +1391,7 @@ var DownloadObserver = { "ON_LEAVE_PRIVATE_BROWSING" ); break; - case "last-pb-context-exited": + case "last-pb-context-exited": { let promise = (async function () { let list = await Downloads.getList(Downloads.PRIVATE); let downloads = await list.getAll(); @@ -1411,6 +1411,7 @@ var DownloadObserver = { promise.catch(ex => console.error(ex)); } break; + } case "sleep_notification": case "suspend_process_notification": case "network:offline-about-to-go-offline": @@ -1433,7 +1434,7 @@ var DownloadObserver = { } break; case "wake_notification": - case "resume_process_notification": + case "resume_process_notification": { let wakeDelay = Services.prefs.getIntPref( "browser.download.manager.resumeOnWakeDelay", 10000 @@ -1447,6 +1448,7 @@ var DownloadObserver = { ); } break; + } case "network:offline-status-changed": if (aData == "online") { this._resumeOfflineDownloads(); diff --git a/toolkit/components/messaging-system/lib/SpecialMessageActions.sys.mjs b/toolkit/components/messaging-system/lib/SpecialMessageActions.sys.mjs @@ -592,7 +592,7 @@ export const SpecialMessageActions = { } ); break; - case "OPEN_ABOUT_PAGE": + case "OPEN_ABOUT_PAGE": { let aboutPageURL = new URL(`about:${action.data.args}`); if (action.data.entrypoint) { aboutPageURL.search = action.data.entrypoint; @@ -602,6 +602,7 @@ export const SpecialMessageActions = { action.data.where || "tab" ); break; + } case "OPEN_FIREFOX_VIEW": window.FirefoxViewHandler.openTab(); break; @@ -616,7 +617,7 @@ export const SpecialMessageActions = { case "OPEN_APPLICATIONS_MENU": lazy.UITour.showMenu(window, action.data.args); break; - case "HIGHLIGHT_FEATURE": + case "HIGHLIGHT_FEATURE": { const highlight = await lazy.UITour.getTarget(window, action.data.args); if (highlight) { await lazy.UITour.showHighlight(window, highlight, "none", { @@ -624,6 +625,7 @@ export const SpecialMessageActions = { }); } break; + } case "INSTALL_ADDON_FROM_URL": await this.installAddonFromURL( browser, @@ -661,20 +663,22 @@ export const SpecialMessageActions = { true ); break; - case "CONFIRM_LAUNCH_ON_LOGIN": + case "CONFIRM_LAUNCH_ON_LOGIN": { const { WindowsLaunchOnLogin } = ChromeUtils.importESModule( "resource://gre/modules/WindowsLaunchOnLogin.sys.mjs" ); await WindowsLaunchOnLogin.createLaunchOnLogin(); break; - case "PIN_CURRENT_TAB": + } + case "PIN_CURRENT_TAB": { let tab = window.gBrowser.selectedTab; window.gBrowser.pinTab(tab); window.ConfirmationHint.show(tab, "confirmation-hint-pin-tab", { descriptionId: "confirmation-hint-pin-tab-description", }); break; - case "SHOW_FIREFOX_ACCOUNTS": + } + case "SHOW_FIREFOX_ACCOUNTS": { if (!(await lazy.FxAccounts.canConnectAccount())) { break; } @@ -690,13 +694,15 @@ export const SpecialMessageActions = { Services.scriptSecurityManager.createNullPrincipal({}), }); break; + } case "FXA_SIGNIN_FLOW": /** @returns {Promise<boolean>} */ return this.fxaSignInFlow(action.data, browser); - case "OPEN_PROTECTION_PANEL": + case "OPEN_PROTECTION_PANEL": { let { gProtectionsHandler } = window; gProtectionsHandler.showProtectionsPopup({}); break; + } case "OPEN_PROTECTION_REPORT": window.gProtectionsHandler.openProtections(); break; @@ -747,12 +753,13 @@ export const SpecialMessageActions = { throw new Error( `Special message action with type ${action.type} is unsupported.` ); - case "CLICK_ELEMENT": + case "CLICK_ELEMENT": { const clickElement = window.document.querySelector( action.data.selector ); clickElement?.click(); break; + } case "RELOAD_BROWSER": browser.reload(); break; @@ -783,11 +790,12 @@ export const SpecialMessageActions = { window.gURLBar.searchMode = action.data; window.gURLBar.focus(); break; - case "SUMMARIZE_PAGE": + case "SUMMARIZE_PAGE": { const entry = action.data ?? "message"; await lazy.GenAI.summarizeCurrentPage(window, entry); break; - case "OPEN_PANEL": + } + case "OPEN_PANEL": { let { anchor_id, widget_id, panel_id, fallback_to_app_menu } = action.data; let anchor; @@ -802,10 +810,12 @@ export const SpecialMessageActions = { } await window.PanelUI.showSubView(panel_id, anchor); break; - case "CREATE_TASKBAR_TAB": + } + case "CREATE_TASKBAR_TAB": { let currentTab = window.gBrowser.selectedTab; await lazy.TaskbarTabs.moveTabIntoTaskbarTab(currentTab); break; + } } return undefined; }, diff --git a/toolkit/components/normandy/content/ShieldFrameChild.sys.mjs b/toolkit/components/normandy/content/ShieldFrameChild.sys.mjs @@ -48,27 +48,30 @@ export class ShieldFrameChild extends JSWindowActorChild { } switch (event.detail.action) { // Actions that require the parent process - case "GetRemoteValue:AddonStudyList": + case "GetRemoteValue:AddonStudyList": { let addonStudies = await this.sendQuery("Shield:GetAddonStudyList"); this.triggerPageCallback( "ReceiveRemoteValue:AddonStudyList", addonStudies ); break; - case "GetRemoteValue:PreferenceStudyList": + } + case "GetRemoteValue:PreferenceStudyList": { let prefStudies = await this.sendQuery("Shield:GetPreferenceStudyList"); this.triggerPageCallback( "ReceiveRemoteValue:PreferenceStudyList", prefStudies ); break; - case "GetRemoteValue:MessagingSystemList": + } + case "GetRemoteValue:MessagingSystemList": { let experiments = await this.sendQuery("Shield:GetMessagingSystemList"); this.triggerPageCallback( "ReceiveRemoteValue:MessagingSystemList", experiments ); break; + } case "RemoveAddonStudy": this.sendAsyncMessage("Shield:RemoveAddonStudy", event.detail.data); break; @@ -84,13 +87,14 @@ export class ShieldFrameChild extends JSWindowActorChild { event.detail.data ); break; - case "GetRemoteValue:StudiesEnabled": + case "GetRemoteValue:StudiesEnabled": { let studiesEnabled = await this.sendQuery("Shield:GetStudiesEnabled"); this.triggerPageCallback( "ReceiveRemoteValue:StudiesEnabled", studiesEnabled ); break; + } case "NavigateToDataPreferences": this.sendAsyncMessage("Shield:OpenDataPreferences"); break; @@ -101,7 +105,7 @@ export class ShieldFrameChild extends JSWindowActorChild { lazy.AboutPages.aboutStudies.getShieldLearnMoreHref() ); break; - case "GetRemoteValue:ShieldTranslations": + case "GetRemoteValue:ShieldTranslations": { const strings = {}; for (let str of lazy.gStringBundle.getSimpleEnumeration()) { strings[str.key] = str.value; @@ -117,13 +121,15 @@ export class ShieldFrameChild extends JSWindowActorChild { strings ); break; - case "ExperimentOptIn": + } + case "ExperimentOptIn": { const message = await this.sendQuery( "Shield:ExperimentOptIn", event.detail.data ); this.triggerPageCallback("ReceiveRemoteValue:OptInMessage", message); break; + } } } diff --git a/toolkit/components/passwordmgr/test/unit/test_notifications.js b/toolkit/components/passwordmgr/test/unit/test_notifications.js @@ -21,7 +21,7 @@ let TestObserver = { Assert.ok(subject instanceof Ci.nsILoginMetaInfo); Assert.ok(expectedData.equals(subject)); // nsILoginInfo.equals() break; - case "modifyLogin": + case "modifyLogin": { Assert.ok(subject instanceof Ci.nsIArray); Assert.equal(subject.length, 2); let oldLogin = subject.queryElementAt(0, Ci.nsILoginInfo); @@ -29,6 +29,7 @@ let TestObserver = { Assert.ok(expectedData[0].equals(oldLogin)); // nsILoginInfo.equals() Assert.ok(expectedData[1].equals(newLogin)); break; + } case "removeLogin": Assert.ok(subject instanceof Ci.nsILoginInfo); Assert.ok(subject instanceof Ci.nsILoginMetaInfo); diff --git a/toolkit/components/pdfjs/content/GeckoViewPdfjsParent.sys.mjs b/toolkit/components/pdfjs/content/GeckoViewPdfjsParent.sys.mjs @@ -72,7 +72,7 @@ class FindHandler { "GeckoViewPdfjs" ); break; - case "GeckoView:FindInPage": + case "GeckoView:FindInPage": { const type = this.#getFindType(aData); this.#browser.sendMessageToActor( "PDFJS:Child:handleEvent", @@ -84,6 +84,7 @@ class FindHandler { ); this.#callbacks.push([aCallback, this.#state]); break; + } } } diff --git a/toolkit/components/pdfjs/content/PdfStreamConverter.sys.mjs b/toolkit/components/pdfjs/content/PdfStreamConverter.sys.mjs @@ -582,7 +582,7 @@ class ChromeActions { case "number": currentPrefs[key] = Services.prefs.getIntPref(prefName, prefValue); break; - case "string": + case "string": { // The URL contains some dynamic values (%VERSION%, ...), so we need to // format it. const str = Services.prefs.getStringPref(prefName, prefValue); @@ -591,6 +591,7 @@ class ChromeActions { ? Services.urlFormatter.formatURLPref(prefName) : str; break; + } } } diff --git a/toolkit/components/printing/content/print.js b/toolkit/components/printing/content/print.js @@ -1297,7 +1297,7 @@ var PrintSettingsViewProxy = { return paperId && this.availablePaperSizes[paperId]; } - case "marginPresets": + case "marginPresets": { let paperWrapper = this.get(target, "currentPaper"); return { none: PrintEventHandler.getMarginPresets("none", paperWrapper), @@ -1305,6 +1305,7 @@ var PrintSettingsViewProxy = { default: PrintEventHandler.getMarginPresets("default", paperWrapper), custom: PrintEventHandler.getMarginPresets("custom", paperWrapper), }; + } case "marginOptions": { let allMarginPresets = this.get(target, "marginPresets"); @@ -1323,7 +1324,7 @@ var PrintSettingsViewProxy = { return marginsEnabled; } - case "margins": + case "margins": { let marginSettings = { marginTop: target.marginTop, marginLeft: target.marginLeft, @@ -1363,6 +1364,7 @@ var PrintSettingsViewProxy = { // Fall back to custom for other values return "custom"; + } case "defaultMargins": return PrintEventHandler.getMarginPresets( @@ -1439,7 +1441,7 @@ var PrintSettingsViewProxy = { set(target, name, value) { switch (name) { - case "margins": + case "margins": { if (!["default", "minimum", "none", "custom"].includes(value)) { logger.warn("Unexpected margin preset name: ", value); value = "default"; @@ -1455,6 +1457,7 @@ var PrintSettingsViewProxy = { target.honorPageRuleMargins = value == "default"; target.ignoreUnwriteableMargins = value == "none"; break; + } case "paperId": { let paperId = value; @@ -1532,7 +1535,7 @@ var PrintSettingsViewProxy = { case "customMarginTop": case "customMarginBottom": case "customMarginLeft": - case "customMarginRight": + case "customMarginRight": { let customMarginName = "margin" + name.substring(12); this.set( target, @@ -1542,6 +1545,7 @@ var PrintSettingsViewProxy = { }) ); break; + } case "sourceVersion": this._sourceVersion = value; diff --git a/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs b/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs @@ -1058,12 +1058,13 @@ EnvironmentCache.prototype = { // the session was restored. this._updateDefaultBrowser(); break; - case PREF_CHANGED_TOPIC: + case PREF_CHANGED_TOPIC: { let options = this._watchedPrefs.get(aData); if (options && !options.requiresRestart) { this._onPrefChanged(aData); } break; + } case AUTO_UPDATE_PREF_CHANGE_TOPIC: this._currentEnvironment.settings.update.autoDownload = aData == "true"; Glean.updateSettings.autoDownload.set( diff --git a/toolkit/components/telemetry/pings/EventPing.sys.mjs b/toolkit/components/telemetry/pings/EventPing.sys.mjs @@ -105,7 +105,7 @@ export var TelemetryEventPing = { observe(aSubject, aTopic) { switch (aTopic) { - case EVENT_LIMIT_REACHED_TOPIC: + case EVENT_LIMIT_REACHED_TOPIC: { this._log.trace("event limit reached"); let now = Utils.monotonicNow(); if (now - this._lastSendTime < this.maxFrequency) { @@ -120,6 +120,7 @@ export var TelemetryEventPing = { this._submitPing(this.Reason.MAX); } break; + } } }, diff --git a/toolkit/components/telemetry/pings/TelemetrySession.sys.mjs b/toolkit/components/telemetry/pings/TelemetrySession.sys.mjs @@ -1133,7 +1133,7 @@ var Impl = { Glean.startupIo.write.windowVisible.set(counters[1]); } break; - case "sessionstore-windows-restored": + case "sessionstore-windows-restored": { this.removeObserver("sessionstore-windows-restored"); // Check whether debugger was attached during startup let debugService = Cc["@mozilla.org/xpcom/debug;1"].getService( @@ -1142,6 +1142,7 @@ var Impl = { gWasDebuggerAttached = debugService.isDebuggerAttached; this.gatherStartup(); break; + } case "idle-daily": // Enqueue to main-thread, otherwise components may be inited by the // idle-daily category and miss the gather-telemetry notification. @@ -1153,7 +1154,7 @@ var Impl = { }); break; - case "application-background": + case "application-background": { if (AppConstants.platform !== "android") { break; } @@ -1184,6 +1185,7 @@ var Impl = { options ); break; + } case "user-interaction-active": this._onActiveTick(true); break; diff --git a/toolkit/components/timermanager/UpdateTimerManager.sys.mjs b/toolkit/components/timermanager/UpdateTimerManager.sys.mjs @@ -82,7 +82,7 @@ TimerManager.prototype = { minInterval = 500; minFirstInterval = 500; // fall through - case "profile-after-change": + case "profile-after-change": { this._timerMinimumDelay = Math.max( 1000 * Services.prefs.getIntPref(PREF_APP_UPDATE_TIMERMINIMUMDELAY, 120), @@ -104,6 +104,7 @@ TimerManager.prototype = { this._canEnsureTimer = true; this._ensureTimer(firstInterval); break; + } case "profile-before-change": Services.obs.removeObserver(this, "profile-before-change"); diff --git a/toolkit/components/url-classifier/tests/unit/test_channelClassifierService.js b/toolkit/components/url-classifier/tests/unit/test_channelClassifierService.js @@ -44,7 +44,7 @@ function waitForBeforeBlockEvent(expected, callback) { return new Promise(function (resolve) { let observer = function observe(aSubject, aTopic) { switch (aTopic) { - case "urlclassifier-before-block-channel": + case "urlclassifier-before-block-channel": { let channel = aSubject.QueryInterface( Ci.nsIUrlClassifierBlockedChannel ); @@ -66,6 +66,7 @@ function waitForBeforeBlockEvent(expected, callback) { service.removeListener(observer); resolve(channel); break; + } } }; diff --git a/toolkit/components/utils/JsonSchemaValidator.sys.mjs b/toolkit/components/utils/JsonSchemaValidator.sys.mjs @@ -257,7 +257,7 @@ export class JsonSchemaValidator { return result; } - case "array": + case "array": { if (!Array.isArray(param)) { return { valid: false, @@ -298,6 +298,7 @@ export class JsonSchemaValidator { } return { valid: true, parsedValue: parsedArray }; + } case "object": { if (typeof param != "object" || !param) { diff --git a/toolkit/content/widgets/autocomplete-popup.js b/toolkit/content/widgets/autocomplete-popup.js @@ -87,7 +87,7 @@ } this._disabledItemClicked = false; break; - case "mousemove": + case "mousemove": { if (Date.now() - this.mLastMoveTime <= 30) { return; } @@ -110,6 +110,7 @@ this.mLastMoveTime = Date.now(); break; + } } }, }; diff --git a/toolkit/content/widgets/datetimebox.js b/toolkit/content/widgets/datetimebox.js @@ -924,13 +924,14 @@ this.DateTimeBoxWidget = class { // Give aria autocomplete hint for am/pm this.mDayPeriodField.setAttribute("aria-autocomplete", "inline"); break; - default: + default: { let span = this.shadowRoot.createElementAndAppendChildAt( root, "span" ); span.textContent = part.value; break; + } } }); } @@ -1534,14 +1535,16 @@ this.DateTimeBoxWidget = class { this.incrementFieldValue(targetField, 0 - interval); break; } - case "Home": + case "Home": { let min = targetField.getAttribute("min"); this.setFieldValue(targetField, min); break; - case "End": + } + case "End": { let max = targetField.getAttribute("max"); this.setFieldValue(targetField, max); break; + } } this.setInputValueFromFields(); } diff --git a/toolkit/content/widgets/findbar.js b/toolkit/content/widgets/findbar.js @@ -202,13 +202,14 @@ this._finishFAYT(event); } break; - case KeyEvent.DOM_VK_TAB: + case KeyEvent.DOM_VK_TAB: { let shouldHandle = !event.altKey && !event.ctrlKey && !event.metaKey; if (shouldHandle && this.findMode != this.FIND_NORMAL) { this._finishFAYT(event); } break; + } case KeyEvent.DOM_VK_PAGE_UP: case KeyEvent.DOM_VK_PAGE_DOWN: if ( diff --git a/toolkit/content/widgets/panel-list/panel-list.js b/toolkit/content/widgets/panel-list/panel-list.js @@ -856,7 +856,7 @@ case "mouseleave": this.submenuPanel.toggle(e); break; - case "keydown": + case "keydown": { let [arrowOpenKey, arrowCloseKey] = this.setArrowKeyRTL(); if (e.key === arrowOpenKey) { this.submenuPanel.show(e, e.target); @@ -867,6 +867,7 @@ e.stopPropagation(); } break; + } } } } diff --git a/toolkit/content/widgets/videocontrols.js b/toolkit/content/widgets/videocontrols.js @@ -912,11 +912,12 @@ this.VideoControlsImplWidget = class { case this.controlsSpacer: this.clickToPlayClickHandler(aEvent); break; - case this.textTrackList: + case this.textTrackList: { const index = +aEvent.originalTarget.getAttribute("index"); this.changeTextTrack(index); this.closedCaptionButton.focus(); break; + } case this.videocontrols: // Prevent any click event within media controls from dispatching through to video. aEvent.stopPropagation(); @@ -926,7 +927,7 @@ this.VideoControlsImplWidget = class { case "dblclick": this.toggleFullscreen(); break; - case "resizevideocontrols": + case "resizevideocontrols": { // Since this event come from the layout, this is the only place // we are sure of that probing into layout won't trigger or force // reflow. @@ -951,6 +952,7 @@ this.VideoControlsImplWidget = class { } this.updatePictureInPictureToggleDisplay(); break; + } case "fullscreenchange": this.onFullscreenChange(); break; diff --git a/toolkit/modules/E10SUtils.sys.mjs b/toolkit/modules/E10SUtils.sys.mjs @@ -472,7 +472,7 @@ export var E10SUtils = { ? FILE_REMOTE_TYPE : DEFAULT_REMOTE_TYPE; - case "about": + case "about": { let module = this.getAboutModule(aURI); // If the module doesn't exist then an error page will be loading, that // should be ok to load in any process @@ -530,8 +530,9 @@ export var E10SUtils = { } return NOT_REMOTE; + } - case "chrome": + case "chrome": { let chromeReg = Cc["@mozilla.org/chrome/chrome-registry;1"].getService( Ci.nsIXULChromeRegistry ); @@ -547,6 +548,7 @@ export var E10SUtils = { } return NOT_REMOTE; + } case "moz-extension": // Extension iframes should load in the same process diff --git a/toolkit/modules/Finder.sys.mjs b/toolkit/modules/Finder.sys.mjs @@ -556,13 +556,14 @@ Finder.prototype = { ); } break; - case aEvent.DOM_VK_TAB: + case aEvent.DOM_VK_TAB: { let direction = Services.focus.MOVEFOCUS_FORWARD; if (aEvent.shiftKey) { direction = Services.focus.MOVEFOCUS_BACKWARD; } Services.focus.moveFocus(this._getWindow(), null, direction, 0); break; + } case aEvent.DOM_VK_PAGE_UP: controller.scrollPage(false); break; diff --git a/toolkit/modules/PropertyListUtils.sys.mjs b/toolkit/modules/PropertyListUtils.sys.mjs @@ -731,11 +731,12 @@ XMLPropertyListReader.prototype = { } case "date": return new Date(aDOMElt.textContent); - case "data": + case "data": { // Strip spaces and new lines. let base64str = aDOMElt.textContent.replace(/\s*/g, ""); let decoded = atob(base64str); return new Uint8Array(Array.from(decoded, c => c.charCodeAt(0))); + } case "dict": return this._wrapDictionary(aDOMElt); case "array": diff --git a/toolkit/modules/WindowsRegistry.sys.mjs b/toolkit/modules/WindowsRegistry.sys.mjs @@ -29,10 +29,11 @@ export var WindowsRegistry = { if (registry.hasValue(aKey)) { let type = registry.getValueType(aKey); switch (type) { - case kRegMultiSz: + case kRegMultiSz: { // nsIWindowsRegKey doesn't support REG_MULTI_SZ type out of the box. let str = registry.readStringValue(aKey); return str.split("\0").filter(v => v); + } case Ci.nsIWindowsRegKey.TYPE_STRING: return registry.readStringValue(aKey); case Ci.nsIWindowsRegKey.TYPE_INT: