commit ac643c1f38b5b620fd8461f34ea242f03e0d82fb parent cf7fb715f341ca4db5bc9d2e58fa7e294a441a5f Author: agoloman <agoloman@mozilla.com> Date: Tue, 30 Sep 2025 16:39:54 +0300 Revert "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" for causing node failures. This reverts commit ad1956128aafd2f0ec08ba0b39b2b272082edd27. Revert "Bug 1881270 - Fix ESLint rule no-case-declarations issues in browser/ code. r=frontend-codestyle-reviewers,mtigley,credential-management-reviewers,fxview-reviewers,tabbrowser-reviewers,places-reviewers,omc-reviewers,migration-reviewers,home-newtab-reviewers,sthompson,mconley,mimi,daisuke" This reverts commit 6fb55ff3ee7831307b39cab96bd35aa5ed23f2d9. Diffstat:
72 files changed, 136 insertions(+), 228 deletions(-)
diff --git a/browser/actors/AboutProtectionsParent.sys.mjs b/browser/actors/AboutProtectionsParent.sys.mjs @@ -367,7 +367,7 @@ export class AboutProtectionsParent extends JSWindowActorParent { case "OpenSyncPreferences": win.openTrustedLinkIn("about:preferences#sync", "tab"); break; - case "FetchContentBlockingEvents": { + case "FetchContentBlockingEvents": let dataToSend = {}; let displayNames = new Services.intl.DisplayNames(undefined, { type: "weekday", @@ -413,7 +413,6 @@ export class AboutProtectionsParent extends JSWindowActorParent { dataToSend.sumEvents = sumEvents; return dataToSend; - } case "FetchMonitorData": return this.getMonitorData(); @@ -426,7 +425,8 @@ export class AboutProtectionsParent extends JSWindowActorParent { break; case "GetShowProxyCard": - return await this.shouldShowProxyCard(); + let card = await this.shouldShowProxyCard(); + return card; case "RecordEntryPoint": entrypoint = aMessage.data.entrypoint; diff --git a/browser/actors/BrowserProcessChild.sys.mjs b/browser/actors/BrowserProcessChild.sys.mjs @@ -13,14 +13,13 @@ ChromeUtils.defineESModuleGetters(lazy, { export class BrowserProcessChild extends JSProcessActorChild { receiveMessage(message) { switch (message.name) { - case "AboutHomeStartupCache:InputStreams": { + case "AboutHomeStartupCache:InputStreams": let { pageInputStream, scriptInputStream } = message.data; lazy.AboutHomeStartupCacheChild.init( pageInputStream, scriptInputStream ); break; - } } } diff --git a/browser/actors/FormValidationParent.sys.mjs b/browser/actors/FormValidationParent.sys.mjs @@ -81,7 +81,7 @@ export class FormValidationParent extends JSWindowActorParent { receiveMessage(aMessage) { switch (aMessage.name) { - case "FormValidation:ShowPopup": { + case "FormValidation:ShowPopup": let browser = this.browsingContext.top.embedderElement; let window = browser.ownerGlobal; let data = aMessage.data; @@ -103,7 +103,6 @@ export class FormValidationParent extends JSWindowActorParent { this._showPopup(browser, data); break; - } case "FormValidation:HidePopup": this._hidePopup(); break; diff --git a/browser/actors/RefreshBlockerChild.sys.mjs b/browser/actors/RefreshBlockerChild.sys.mjs @@ -157,13 +157,12 @@ export class RefreshBlockerChild extends JSWindowActorChild { let data = message.data; switch (message.name) { - case "RefreshBlocker:Refresh": { + case "RefreshBlocker:Refresh": let docShell = data.browsingContext.docShell; let refreshURI = docShell.QueryInterface(Ci.nsIRefreshURI); let URI = Services.io.newURI(data.URI); refreshURI.forceRefreshURI(URI, null, data.delay); break; - } case "PreferenceChanged": if (data.isEnabled) { diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js @@ -1112,7 +1112,7 @@ var gXPInstallObserver = { case "removed": cancelInstallation(); break; - case "shown": { + case "shown": let addonList = document.getElementById( "addon-install-confirmation-content" ); @@ -1147,7 +1147,6 @@ var gXPInstallObserver = { addonList.appendChild(container); } break; - } } }; diff --git a/browser/base/content/browser-captivePortal.js b/browser/base/content/browser-captivePortal.js @@ -288,7 +288,7 @@ var CaptivePortalWatcher = { case "activate": this._delayedCaptivePortalDetected(); break; - case "TabSelect": { + case "TabSelect": if (this._notificationPromise) { await this._notificationPromise; } @@ -312,7 +312,6 @@ var CaptivePortalWatcher = { button.style.visibility = "visible"; } break; - } } }, diff --git a/browser/base/content/browser-data-submission-info-bar.js b/browser/base/content/browser-data-submission-info-bar.js @@ -94,7 +94,7 @@ var gDataNotificationInfoBar = { observe(subject, topic) { switch (topic) { - case "datareporting:notify-data-policy:request": { + case "datareporting:notify-data-policy:request": let request = subject.wrappedJSObject.object; try { this._displayDataPolicyInfoBar(request); @@ -102,7 +102,6 @@ var gDataNotificationInfoBar = { request.onUserNotifyFailed(ex); } break; - } case "datareporting:notify-data-policy:close": // If this observer fires, it means something else took care of diff --git a/browser/base/content/browser-thumbnails.js b/browser/base/content/browser-thumbnails.js @@ -67,13 +67,12 @@ var gBrowserThumbnails = { handleEvent: function Thumbnails_handleEvent(aEvent) { switch (aEvent.type) { - case "scroll": { + case "scroll": let browser = aEvent.currentTarget; if (this._timeouts.has(browser)) { this._delayedCapture(browser); } break; - } case "TabSelect": this._delayedCapture(aEvent.target.linkedBrowser); break; diff --git a/browser/base/content/test/fullscreen/FullscreenFrame.sys.mjs b/browser/base/content/test/fullscreen/FullscreenFrame.sys.mjs @@ -44,7 +44,7 @@ export class FullscreenFrameChild extends JSWindowActorChild { return this.contentWindow.document.exitFullscreen(); case "RequestFullscreen": return Promise.all([this.changed(), this.requestFullscreen()]); - case "CreateChild": { + case "CreateChild": let child = msg.data; let iframe = this.contentWindow.document.createElement("iframe"); iframe.allow = child.allow_fullscreen ? "fullscreen" : ""; @@ -60,13 +60,12 @@ export class FullscreenFrameChild extends JSWindowActorChild { iframe.src = child.url; this.contentWindow.document.body.appendChild(iframe); return loaded; - } case "GetEvents": return Promise.resolve(this.fullscreen_events); case "ClearEvents": this.fullscreen_events = []; return Promise.resolve(); - case "GetFullscreenElement": { + case "GetFullscreenElement": let document = this.contentWindow.document; let child_iframe = this.contentWindow.document.getElementsByTagName( "iframe" @@ -85,7 +84,6 @@ export class FullscreenFrameChild extends JSWindowActorChild { default: return Promise.resolve("other"); } - } } return Promise.reject("Unexpected Message"); diff --git a/browser/base/content/test/startup/browser_preXULSkeletonUIRegistry.js b/browser/base/content/test/startup/browser_preXULSkeletonUIRegistry.js @@ -26,11 +26,10 @@ function readRegKeyExtended(aRoot, aPath, aKey, aRegistryNode = 0) { 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: diff --git a/browser/components/aboutlogins/content/aboutLoginsImportReport.mjs b/browser/components/aboutlogins/content/aboutLoginsImportReport.mjs @@ -16,7 +16,7 @@ document.dispatchEvent( function importReportDataHandler(event) { switch (event.detail.messageType) { - case "ImportReportData": { + case "ImportReportData": const logins = event.detail.value; const report = { added: 0, @@ -77,7 +77,6 @@ function importReportDataHandler(event) { new CustomEvent("AboutLoginsImportReportReady", { bubbles: true }) ); break; - } } } diff --git a/browser/components/aboutwelcome/content-src/components/SubmenuButton.jsx b/browser/components/aboutwelcome/content-src/components/SubmenuButton.jsx @@ -40,7 +40,7 @@ function addMenuitems(items, popup) { case "separator": popup.appendChild(document.createXULElement("menuseparator")); break; - case "menu": { + case "menu": let menu = document.createXULElement("menu"); menu.className = "fxms-multi-stage-menu"; translateMenuitem(item, menu); @@ -56,8 +56,7 @@ function addMenuitems(items, popup) { menu.appendChild(submenuPopup); addMenuitems(item.submenu, submenuPopup); break; - } - case "action": { + case "action": let menuitem = document.createXULElement("menuitem"); translateMenuitem(item, menuitem); menuitem.config = item; @@ -70,7 +69,6 @@ function addMenuitems(items, popup) { } popup.appendChild(menuitem); break; - } } } } diff --git a/browser/components/asrouter/modules/ASRouterTriggerListeners.sys.mjs b/browser/components/asrouter/modules/ASRouterTriggerListeners.sys.mjs @@ -700,7 +700,7 @@ export const ASRouterTriggerListeners = new Map([ observe(aSubject, aTopic) { switch (aTopic) { - case "SiteProtection:ContentBlockingEvent": { + case "SiteProtection:ContentBlockingEvent": const { browser, host, event } = aSubject.wrappedJSObject; if (this._events.filter(e => (e & event) === e).length) { this._triggerHandler(browser, { @@ -715,7 +715,6 @@ export const ASRouterTriggerListeners = new Map([ }); } break; - } case "SiteProtection:ContentBlockingMilestone": if (this._events.includes(aSubject.wrappedJSObject.event)) { this._triggerHandler( @@ -781,7 +780,7 @@ export const ASRouterTriggerListeners = new Map([ observe(aSubject, aTopic) { switch (aTopic) { - case "captive-portal-login-success": { + case "captive-portal-login-success": const browser = Services.wm.getMostRecentBrowserWindow(); // The check is here rather than in init because some // folks leave their browsers running for a long time, @@ -794,7 +793,6 @@ export const ASRouterTriggerListeners = new Map([ }); } break; - } } }, @@ -829,7 +827,7 @@ export const ASRouterTriggerListeners = new Map([ observe(aSubject, aTopic, aData) { switch (aTopic) { - case "nsPref:changed": { + case "nsPref:changed": const browser = Services.wm.getMostRecentBrowserWindow(); if (browser && this._observedPrefs.includes(aData)) { this._triggerHandler(browser.gBrowser.selectedBrowser, { @@ -840,7 +838,6 @@ export const ASRouterTriggerListeners = new Map([ }); } break; - } } }, @@ -1204,7 +1201,7 @@ export const ASRouterTriggerListeners = new Map([ lastWakeTime: this._lastWakeTime, }); switch (topic) { - case "idle": { + case "idle": const now = Date.now(); // If the idle notification is within 1 second of the last wake // notification, ignore it. We do this to avoid counting time the @@ -1216,7 +1213,6 @@ export const ASRouterTriggerListeners = new Map([ this._idleSince = now - subject.idleTime; } break; - } case "active": // Trigger when user returns from being idle. if (this._isVisible) { diff --git a/browser/components/asrouter/modules/CFRPageActions.sys.mjs b/browser/components/asrouter/modules/CFRPageActions.sys.mjs @@ -600,8 +600,8 @@ export class PageAction { } switch (content.layout) { - case "icon_and_message": { - // Clearing content and styles that may have been set by a prior addon_recommendation CFR + case "icon_and_message": + //Clearing content and styles that may have been set by a prior addon_recommendation CFR this._setAddonRating(this.window.document, content); author.appendChild( lazy.RemoteL10n.createElement(this.window.document, "span", { @@ -639,8 +639,7 @@ export class PageAction { ...options, }; break; - } - default: { + default: const authorText = await this.getStrings({ string_id: "cfr-doorhanger-extension-author", args: { name: content.addon.author }, @@ -694,7 +693,6 @@ export class PageAction { }); RecommendationMap.delete(browser); }; - } } const primaryBtnStrings = await this.getStrings(primary.label); diff --git a/browser/components/asrouter/modules/FeatureCalloutBroker.sys.mjs b/browser/components/asrouter/modules/FeatureCalloutBroker.sys.mjs @@ -194,13 +194,12 @@ export class _FeatureCalloutBroker { handleFeatureCalloutCallback(win, event) { switch (event) { - case "end": { + case "end": const item = this.#calloutMap.get(win); if (item) { item.showing = false; } break; - } } } diff --git a/browser/components/asrouter/modules/MomentsPageHub.sys.mjs b/browser/components/asrouter/modules/MomentsPageHub.sys.mjs @@ -79,7 +79,7 @@ export class _MomentsPageHub { executeAction(message) { const { id, data } = message.content.action; switch (id) { - case "moments-wnp": { + case "moments-wnp": const { url, expireDelta } = data; let { expire } = data; if (!expire) { @@ -96,7 +96,6 @@ export class _MomentsPageHub { this._addImpression(message); this._blockMessageById(message.id); break; - } } } diff --git a/browser/components/downloads/DownloadsViewUI.sys.mjs b/browser/components/downloads/DownloadsViewUI.sys.mjs @@ -1102,12 +1102,12 @@ DownloadsViewUI.DownloadElementShell.prototype = { return this.download.target.exists; case "downloadsCmd_show": - case "downloadsCmd_deleteFile": { + case "downloadsCmd_deleteFile": let { target } = this.download; return ( !this.download.deleted && (target.exists || target.partFileExists) ); - } + case "downloadsCmd_delete": case "cmd_delete": // We don't want in-progress downloads to be removed accidentally. diff --git a/browser/components/downloads/test/browser/browser_pdfjs_preview.js b/browser/components/downloads/test/browser/browser_pdfjs_preview.js @@ -577,7 +577,7 @@ async function testOpenPDFPreview({ contextMenu = uiWindow.document.querySelector("#downloadsContextMenu"); break; - case "allDownloads": { + case "allDownloads": // we'll be interacting with the library dialog uiWindow = await openLibrary("Downloads"); @@ -595,8 +595,7 @@ async function testOpenPDFPreview({ contextMenu = uiWindow.document.querySelector("#downloadsContextMenu"); break; - } - case "aboutDownloads": { + case "aboutDownloads": info("Preparing about:downloads browser window"); // Because of bug 1329912, we sometimes get a bogus last-pb-context-exited notification @@ -658,7 +657,6 @@ async function testOpenPDFPreview({ } ); break; - } } if (contextMenu) { diff --git a/browser/components/enterprisepolicies/tests/xpcshell/test_requestedlocales.js b/browser/components/enterprisepolicies/tests/xpcshell/test_requestedlocales.js @@ -14,12 +14,11 @@ function promiseLocaleChanged(requestedLocale) { let localeObserver = { observe(aSubject, aTopic) { switch (aTopic) { - case REQ_LOC_CHANGE_EVENT: { + case REQ_LOC_CHANGE_EVENT: let reqLocs = Services.locale.requestedLocales; equal(reqLocs[0], requestedLocale); Services.obs.removeObserver(localeObserver, REQ_LOC_CHANGE_EVENT); resolve(); - } } }, }; diff --git a/browser/components/firefoxview/firefox-view-tabs-setup-manager.sys.mjs b/browser/components/firefoxview/firefox-view-tabs-setup-manager.sys.mjs @@ -247,7 +247,7 @@ export const TabsSetupFlowManager = new (class { } this._lastFxASignedIn = this.fxaSignedIn; break; - case TOPIC_DEVICELIST_UPDATED: { + case TOPIC_DEVICELIST_UPDATED: this.logger.debug("Handling observer notification:", topic, data); const { deviceStateChanged, deviceAdded } = await this.refreshDevices(); if (deviceStateChanged) { @@ -261,7 +261,6 @@ export const TabsSetupFlowManager = new (class { } } break; - } case FXA_DEVICE_CONNECTED: case FXA_DEVICE_DISCONNECTED: await lazy.fxAccounts.device.refreshDeviceList({ ignoreCached: true }); diff --git a/browser/components/migration/ChromeProfileMigrator.sys.mjs b/browser/components/migration/ChromeProfileMigrator.sys.mjs @@ -491,7 +491,7 @@ export class ChromeProfileMigrator extends MigratorBase { }; switch (row.getResultByName("scheme")) { - case AUTH_TYPE.SCHEME_HTML: { + case AUTH_TYPE.SCHEME_HTML: let action_url = row.getResultByName("action_url"); if (!action_url) { // If there is no action_url, store the wildcard "" value. @@ -505,7 +505,6 @@ export class ChromeProfileMigrator extends MigratorBase { } loginInfo.formActionOrigin = action_uri.prePath; break; - } case AUTH_TYPE.SCHEME_BASIC: case AUTH_TYPE.SCHEME_DIGEST: // signon_realm format is URIrealm, so we need remove URI diff --git a/browser/components/migration/tests/unit/test_Edge_db_migration.js b/browser/components/migration/tests/unit/test_Edge_db_migration.js @@ -136,18 +136,17 @@ function convertValueForWriting(value, valueType) { return [buffer, KERNEL.FILETIME.size]; } throw new Error("Unrecognized value for longlong column"); - case COLUMN_TYPES.JET_coltypLongText: { + case COLUMN_TYPES.JET_coltypLongText: let wchar_tArray = ctypes.ArrayType(ctypes.char16_t); buffer = new wchar_tArray(value.length + 1); buffer.value = String(value); return [buffer, buffer.length * 2]; - } case COLUMN_TYPES.JET_coltypBit: buffer = new ctypes.uint8_t(); // Bizarre boolean values, but whatever: buffer.value = value ? 255 : 0; return [buffer, 1]; - case COLUMN_TYPES.JET_coltypGUID: { + case COLUMN_TYPES.JET_coltypGUID: let byteArray = ctypes.ArrayType(ctypes.uint8_t); buffer = new byteArray(16); let j = 0; @@ -160,7 +159,6 @@ function convertValueForWriting(value, valueType) { i++; } return [buffer, 16]; - } } throw new Error("Unknown type " + valueType); diff --git a/browser/components/places/content/treeView.js b/browser/components/places/content/treeView.js @@ -1589,7 +1589,7 @@ PlacesTreeView.prototype = { return node.uri; } return ""; - case this.COLUMN_TYPE_DATE: { + case this.COLUMN_TYPE_DATE: let nodeTime = node.time; if (nodeTime == 0 || !PlacesUtils.nodeIsURI(node)) { // hosts and days shouldn't have a value for the date column. @@ -1601,7 +1601,6 @@ PlacesTreeView.prototype = { } return this._convertPRTimeToString(nodeTime); - } case this.COLUMN_TYPE_VISITCOUNT: return node.accessCount; case this.COLUMN_TYPE_DATEADDED: diff --git a/browser/components/places/tests/browser/browser_bookmarksProperties.js b/browser/components/places/tests/browser/browser_bookmarksProperties.js @@ -119,7 +119,7 @@ gTests.push({ .getElementById("bookmarkpropertiesdialog") .cancelDialog(); break; - case "popupshown": { + case "popupshown": tagsField.popup.removeEventListener("popupshown", this, true); // In case this test fails the window will close, the test will fail // since we didn't set _cleanShutdown. @@ -140,7 +140,6 @@ gTests.push({ richlistbox.focus(); EventUtils.synthesizeKey("VK_RETURN", {}, self.window); break; - } default: Assert.ok(false, "unknown event: " + aEvent.type); } @@ -248,7 +247,7 @@ gTests.push({ .getElementById("bookmarkpropertiesdialog") .cancelDialog(); break; - case "popupshown": { + case "popupshown": tagsField.popup.removeEventListener("popupshown", this, true); // In case this test fails the window will close, the test will fail // since we didn't set _cleanShutdown. @@ -269,7 +268,6 @@ gTests.push({ richlistbox.focus(); EventUtils.synthesizeKey("VK_ESCAPE", {}, self.window); break; - } default: Assert.ok(false, "unknown event: " + aEvent.type); } diff --git a/browser/components/places/tests/chrome/test_treeview_date.xhtml b/browser/components/places/tests/chrome/test_treeview_date.xhtml @@ -121,7 +121,7 @@ case "url": is(text, node.uri, "Uri is correct"); break; - case "date": { + case "date": let timeObj = new Date(node.time / 1000); // Default is short date format. let dtOptions = { @@ -142,7 +142,6 @@ is(text, timeStr, "Date format is correct"); break; - } case "visitCount": is(text, 1, "Visit count is correct"); break; diff --git a/browser/components/protections/content/monitor-card.mjs b/browser/components/protections/content/monitor-card.mjs @@ -80,7 +80,7 @@ export default class MonitorClass { case "monitor-stored-emails-link": this.doc.sendTelemetryEvent("clickMtrReportLink", "stored_emails"); break; - case "monitor-known-breaches-link": { + case "monitor-known-breaches-link": const knownBreaches = this.doc.querySelector( "span[data-type='known-breaches']" ); @@ -98,8 +98,7 @@ export default class MonitorClass { ); } break; - } - case "monitor-exposed-passwords-link": { + case "monitor-exposed-passwords-link": const exposedPasswords = this.doc.querySelector( "span[data-type='exposed-passwords']" ); @@ -121,7 +120,6 @@ export default class MonitorClass { ); } break; - } } } diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js @@ -673,7 +673,7 @@ var ctrlTab = { } } break; - case "TabSelect": { + case "TabSelect": this.attachTab(event.target, 0); // If the previous tab was hidden (e.g. Firefox View), remove it from // the list when it's deselected. @@ -682,7 +682,6 @@ var ctrlTab = { this.detachTab(previousTab); } break; - } case "TabOpen": this.attachTab(event.target, 1); break; diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js @@ -244,14 +244,13 @@ handleEvent(aEvent) { switch (aEvent.type) { - case "mouseout": { + case "mouseout": // If the "related target" (the node to which the pointer went) is not // a child of the current document, the mouse just left the window. let relatedTarget = aEvent.relatedTarget; if (relatedTarget && relatedTarget.ownerDocument == document) { break; } - } // fall through case "mousemove": if ( @@ -264,14 +263,13 @@ case "mouseleave": this.previewPanel?.deactivate(); break; - default: { + default: let methodName = `on_${aEvent.type}`; if (methodName in this) { this[methodName](aEvent); } else { throw new Error(`Unexpected event ${aEvent.type}`); } - } } } @@ -1100,7 +1098,7 @@ observe(aSubject, aTopic) { switch (aTopic) { - case "nsPref:changed": { + case "nsPref:changed": // This is has to deal with changes in // privacy.userContext.enabled and // privacy.userContext.newTabContainerOnLeftClick.enabled. @@ -1167,7 +1165,6 @@ } break; - } } } diff --git a/browser/components/touchbar/MacTouchBar.sys.mjs b/browser/components/touchbar/MacTouchBar.sys.mjs @@ -442,7 +442,7 @@ export class TouchBarHelper { observe(subject, topic, data) { switch (topic) { - case "touchbar-location-change": { + case "touchbar-location-change": let updatedInputs = ["Back", "Forward"]; gBuiltInInputs.Back.disabled = !TouchBarHelper.window.gBrowser.canGoBack; @@ -458,7 +458,6 @@ export class TouchBarHelper { } this._updateTouchBarInputs(...updatedInputs); break; - } case "fullscreen-painted": if (TouchBarHelper.window.document.fullscreenElement) { gBuiltInInputs.OpenLocation.title = "touchbar-fullscreen-exit"; diff --git a/browser/extensions/newtab/lib/RecommendationProvider.sys.mjs b/browser/extensions/newtab/lib/RecommendationProvider.sys.mjs @@ -279,11 +279,10 @@ export class RecommendationProvider { break; } break; - case at.DISCOVERY_STREAM_PERSONALIZATION_TOGGLE: { + case at.DISCOVERY_STREAM_PERSONALIZATION_TOGGLE: let enabled = this.store.getState().Prefs.values[PREF_PERSONALIZATION]; this.store.dispatch(ac.SetPref(PREF_PERSONALIZATION, !enabled)); break; - } case at.DISCOVERY_STREAM_PERSONALIZATION_OVERRIDE: this.personalizationOverride(action.data.override); break; diff --git a/browser/extensions/newtab/lib/TopStoriesFeed.sys.mjs b/browser/extensions/newtab/lib/TopStoriesFeed.sys.mjs @@ -640,7 +640,7 @@ export class TopStoriesFeed { case at.INIT: this.lazyLoadTopStories(); break; - case at.SYSTEM_TICK: { + case at.SYSTEM_TICK: let stories; let topics; if (Date.now() - this.storiesLastUpdated >= STORIES_UPDATE_TIME) { @@ -651,7 +651,6 @@ export class TopStoriesFeed { } this.doContentUpdate({ stories, topics }, false); break; - } case at.UNINIT: this.uninit(); break; 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 = 37; +const ERROR_LINE_NUMBER = 36; 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,6 +106,23 @@ export default [ }, }, { + // Bug 1881270 - Gradually roll-out no-case-declarations to more areas. + name: "rollout-no-case-declarations", + files: [ + "browser/actors/**", + "browser/base/content/**", + "browser/components/**", + "browser/extensions/newtab/**", + "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,7 +39,6 @@ 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,13 +92,12 @@ 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,7 +62,6 @@ 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,17 +222,15 @@ 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; @@ -256,7 +254,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" @@ -267,8 +265,7 @@ export class NetErrorParent extends EscapablePageParent { excludedDomains ); break; - } - case "OpenTRRPreferences": { + case "OpenTRRPreferences": let browser = this.browsingContext.top.embedderElement; if (!browser) { break; @@ -277,7 +274,6 @@ 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,7 +402,6 @@ export class PictureInPictureToggleChild extends JSWindowActorChild { } this.changeToIconIfDurationEnd(firstSeenSeconds); break; - } } } @@ -2678,7 +2677,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 && @@ -2697,7 +2696,6 @@ 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; @@ -2706,7 +2704,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; } @@ -2719,7 +2717,6 @@ 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,7 +360,6 @@ export var SelectParentHelper = { this._currentMenulist.menupopup.state == "open"; this._actor.sendAsyncMessage("Forms:MouseUp", { onAnchor }); break; - } case "mouseover": if ( @@ -402,7 +401,7 @@ export var SelectParentHelper = { } break; - case "popuphidden": { + case "popuphidden": this._actor.sendAsyncMessage("Forms:DismissedDropDown", {}); let popup = event.target; this._unregisterListeners(popup); @@ -416,7 +415,6 @@ 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,12 +19,11 @@ 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,12 +27,11 @@ 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,13 +23,12 @@ 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,11 +435,10 @@ 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,11 +27,10 @@ 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,7 +243,6 @@ 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,7 +239,6 @@ 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,8 +143,7 @@ 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) { @@ -161,7 +160,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,16 +1242,14 @@ 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,7 +130,6 @@ 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,7 +1411,6 @@ var DownloadObserver = { promise.catch(ex => console.error(ex)); } break; - } case "sleep_notification": case "suspend_process_notification": case "network:offline-about-to-go-offline": @@ -1434,7 +1433,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 @@ -1448,7 +1447,6 @@ 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,7 +602,6 @@ export const SpecialMessageActions = { action.data.where || "tab" ); break; - } case "OPEN_FIREFOX_VIEW": window.FirefoxViewHandler.openTab(); break; @@ -617,7 +616,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", { @@ -625,7 +624,6 @@ export const SpecialMessageActions = { }); } break; - } case "INSTALL_ADDON_FROM_URL": await this.installAddonFromURL( browser, @@ -663,22 +661,20 @@ 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; } @@ -694,15 +690,13 @@ 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; @@ -753,13 +747,12 @@ 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; @@ -790,12 +783,11 @@ 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; @@ -810,12 +802,10 @@ 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,30 +48,27 @@ 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; @@ -87,14 +84,13 @@ 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; @@ -105,7 +101,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; @@ -121,15 +117,13 @@ 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,7 +29,6 @@ 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,7 +84,6 @@ 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,7 +591,6 @@ 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,7 +1305,6 @@ var PrintSettingsViewProxy = { default: PrintEventHandler.getMarginPresets("default", paperWrapper), custom: PrintEventHandler.getMarginPresets("custom", paperWrapper), }; - } case "marginOptions": { let allMarginPresets = this.get(target, "marginPresets"); @@ -1324,7 +1323,7 @@ var PrintSettingsViewProxy = { return marginsEnabled; } - case "margins": { + case "margins": let marginSettings = { marginTop: target.marginTop, marginLeft: target.marginLeft, @@ -1364,7 +1363,6 @@ var PrintSettingsViewProxy = { // Fall back to custom for other values return "custom"; - } case "defaultMargins": return PrintEventHandler.getMarginPresets( @@ -1441,7 +1439,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"; @@ -1457,7 +1455,6 @@ var PrintSettingsViewProxy = { target.honorPageRuleMargins = value == "default"; target.ignoreUnwriteableMargins = value == "none"; break; - } case "paperId": { let paperId = value; @@ -1535,7 +1532,7 @@ var PrintSettingsViewProxy = { case "customMarginTop": case "customMarginBottom": case "customMarginLeft": - case "customMarginRight": { + case "customMarginRight": let customMarginName = "margin" + name.substring(12); this.set( target, @@ -1545,7 +1542,6 @@ 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,13 +1058,12 @@ 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,7 +120,6 @@ 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,7 +1142,6 @@ 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. @@ -1154,7 +1153,7 @@ var Impl = { }); break; - case "application-background": { + case "application-background": if (AppConstants.platform !== "android") { break; } @@ -1185,7 +1184,6 @@ 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,7 +104,6 @@ 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,7 +66,6 @@ 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,7 +298,6 @@ 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,7 +110,6 @@ this.mLastMoveTime = Date.now(); break; - } } }, }; diff --git a/toolkit/content/widgets/datetimebox.js b/toolkit/content/widgets/datetimebox.js @@ -924,14 +924,13 @@ 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; - } } }); } @@ -1535,16 +1534,14 @@ 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,14 +202,13 @@ 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,7 +867,6 @@ e.stopPropagation(); } break; - } } } } diff --git a/toolkit/content/widgets/videocontrols.js b/toolkit/content/widgets/videocontrols.js @@ -912,12 +912,11 @@ 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(); @@ -927,7 +926,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. @@ -952,7 +951,6 @@ 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,9 +530,8 @@ export var E10SUtils = { } return NOT_REMOTE; - } - case "chrome": { + case "chrome": let chromeReg = Cc["@mozilla.org/chrome/chrome-registry;1"].getService( Ci.nsIXULChromeRegistry ); @@ -548,7 +547,6 @@ 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,14 +556,13 @@ 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,12 +731,11 @@ 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,11 +29,10 @@ 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: