commit 1ac2a776f09d49cc124e0bebeaf061de597b5eb1 parent 88916cf7fb084563e9df258bc8286ddeee1c2771 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 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 Differential Revision: https://phabricator.services.mozilla.com/D266005 Diffstat:
33 files changed, 117 insertions(+), 76 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,6 +413,7 @@ export class AboutProtectionsParent extends JSWindowActorParent { dataToSend.sumEvents = sumEvents; return dataToSend; + } case "FetchMonitorData": return this.getMonitorData(); @@ -425,8 +426,7 @@ export class AboutProtectionsParent extends JSWindowActorParent { break; case "GetShowProxyCard": - let card = await this.shouldShowProxyCard(); - return card; + return await this.shouldShowProxyCard(); case "RecordEntryPoint": entrypoint = aMessage.data.entrypoint; diff --git a/browser/actors/BrowserProcessChild.sys.mjs b/browser/actors/BrowserProcessChild.sys.mjs @@ -13,13 +13,14 @@ 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,6 +103,7 @@ 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,12 +157,13 @@ 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 @@ -1109,7 +1109,7 @@ var gXPInstallObserver = { case "removed": cancelInstallation(); break; - case "shown": + case "shown": { let addonList = document.getElementById( "addon-install-confirmation-content" ); @@ -1144,6 +1144,7 @@ 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,6 +312,7 @@ 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,6 +102,7 @@ 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 @@ -64,12 +64,13 @@ 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,12 +60,13 @@ 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" @@ -84,6 +85,7 @@ 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,10 +26,11 @@ 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,6 +77,7 @@ 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,7 +56,8 @@ 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; @@ -69,6 +70,7 @@ function addMenuitems(items, popup) { } popup.appendChild(menuitem); break; + } } } } diff --git a/browser/components/aboutwelcome/content/aboutwelcome.bundle.js b/browser/components/aboutwelcome/content/aboutwelcome.bundle.js @@ -2067,34 +2067,38 @@ function addMenuitems(items, popup) { popup.appendChild(document.createXULElement("menuseparator")); break; case "menu": - let menu = document.createXULElement("menu"); - menu.className = "fxms-multi-stage-menu"; - translateMenuitem(item, menu); - if (item.id) { - menu.value = item.id; - } - if (item.icon) { - menu.classList.add("menu-iconic"); - menu.setAttribute("image", item.icon); + { + let menu = document.createXULElement("menu"); + menu.className = "fxms-multi-stage-menu"; + translateMenuitem(item, menu); + if (item.id) { + menu.value = item.id; + } + if (item.icon) { + menu.classList.add("menu-iconic"); + menu.setAttribute("image", item.icon); + } + popup.appendChild(menu); + let submenuPopup = document.createXULElement("menupopup"); + menu.appendChild(submenuPopup); + addMenuitems(item.submenu, submenuPopup); + break; } - popup.appendChild(menu); - let submenuPopup = document.createXULElement("menupopup"); - menu.appendChild(submenuPopup); - addMenuitems(item.submenu, submenuPopup); - break; case "action": - let menuitem = document.createXULElement("menuitem"); - translateMenuitem(item, menuitem); - menuitem.config = item; - if (item.id) { - menuitem.value = item.id; - } - if (item.icon) { - menuitem.classList.add("menuitem-iconic"); - menuitem.setAttribute("image", item.icon); + { + let menuitem = document.createXULElement("menuitem"); + translateMenuitem(item, menuitem); + menuitem.config = item; + if (item.id) { + menuitem.value = item.id; + } + if (item.icon) { + menuitem.classList.add("menuitem-iconic"); + menuitem.setAttribute("image", item.icon); + } + popup.appendChild(menuitem); + break; } - 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,6 +715,7 @@ export const ASRouterTriggerListeners = new Map([ }); } break; + } case "SiteProtection:ContentBlockingMilestone": if (this._events.includes(aSubject.wrappedJSObject.event)) { this._triggerHandler( @@ -780,7 +781,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, @@ -793,6 +794,7 @@ export const ASRouterTriggerListeners = new Map([ }); } break; + } } }, @@ -827,7 +829,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, { @@ -838,6 +840,7 @@ export const ASRouterTriggerListeners = new Map([ }); } break; + } } }, @@ -1201,7 +1204,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 @@ -1213,6 +1216,7 @@ 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,7 +639,8 @@ export class PageAction { ...options, }; break; - default: + } + default: { const authorText = await this.getStrings({ string_id: "cfr-doorhanger-extension-author", args: { name: content.addon.author }, @@ -693,6 +694,7 @@ 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,12 +194,13 @@ 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,6 +96,7 @@ 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,7 +595,8 @@ 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 @@ -657,6 +658,7 @@ 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,11 +14,12 @@ 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,6 +261,7 @@ 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,6 +505,7 @@ 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,17 +136,18 @@ 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; @@ -159,6 +160,7 @@ 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,6 +1601,7 @@ 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,6 +140,7 @@ gTests.push({ richlistbox.focus(); EventUtils.synthesizeKey("VK_RETURN", {}, self.window); break; + } default: Assert.ok(false, "unknown event: " + aEvent.type); } @@ -247,7 +248,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. @@ -268,6 +269,7 @@ 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,6 +142,7 @@ 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 @@ -78,7 +78,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']" ); @@ -96,7 +96,8 @@ 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']" ); @@ -118,6 +119,7 @@ export default class MonitorClass { ); } break; + } } } diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js @@ -670,7 +670,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. @@ -679,6 +679,7 @@ 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 @@ -242,13 +242,14 @@ 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 ( @@ -261,13 +262,14 @@ 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}`); } + } } } @@ -1096,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. @@ -1163,6 +1165,7 @@ } 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,6 +458,7 @@ 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,10 +279,11 @@ 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,6 +651,7 @@ export class TopStoriesFeed { } this.doContentUpdate({ stories, topics }, false); break; + } case at.UNINIT: this.uninit(); break; diff --git a/eslint-rollouts.config.mjs b/eslint-rollouts.config.mjs @@ -109,10 +109,6 @@ 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/**",