Migrate breakpoints-active setting to SettingDescriptor

Move breakpoints-active setting definition from sdk-meta.ts to
SDKSettings.ts as a SettingDescriptor. Update all call sites to use
resolve(breakpointsActiveSettingDescriptor).

Bug: 535451658
Change-Id: Icac7e68ad7148fa92481784b74f0e53a92c859d4
TAG=agy
CONV=be04dab5-6365-426e-a74b-e01f2db639bd
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/8248219
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
diff --git a/front_end/core/sdk/DebuggerModel.test.ts b/front_end/core/sdk/DebuggerModel.test.ts
index 669794c..e0b1603 100644
--- a/front_end/core/sdk/DebuggerModel.test.ts
+++ b/front_end/core/sdk/DebuggerModel.test.ts
@@ -40,7 +40,7 @@
         }
         return {};
       });
-      universe.settings.moduleSetting('breakpoints-active').set(false);
+      universe.settings.resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor).set(false);
       universe.createTarget({connection});
       assert.isTrue(breakpointsDeactivated);
     });
@@ -60,7 +60,7 @@
       await target.suspend();
 
       // Deactivate breakpoints while suspended.
-      universe.settings.moduleSetting('breakpoints-active').set(false);
+      universe.settings.resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor).set(false);
 
       // Verify that the backend received the message.
       assert.isTrue(breakpointsDeactivated);
@@ -85,15 +85,15 @@
         return {};
       });
 
-      // Deactivate breakpoints befroe the target is created.
-      universe.settings.moduleSetting('breakpoints-active').set(false);
+      // Deactivate breakpoints before the target is created.
+      universe.settings.resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor).set(false);
       const target = universe.createTarget({connection});
       assert.isTrue(breakpointsDeactivated);
 
       await target.suspend();
 
       // Activate breakpoints while suspended.
-      universe.settings.moduleSetting('breakpoints-active').set(true);
+      universe.settings.resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor).set(true);
 
       // Verify that the backend received the message.
       assert.isTrue(breakpointsActivated);
diff --git a/front_end/core/sdk/DebuggerModel.ts b/front_end/core/sdk/DebuggerModel.ts
index 9cd1168..3d159cb 100644
--- a/front_end/core/sdk/DebuggerModel.ts
+++ b/front_end/core/sdk/DebuggerModel.ts
@@ -16,6 +16,7 @@
 import {Script} from './Script.js';
 import {SDKModel} from './SDKModel.js';
 import {
+  breakpointsActiveSettingDescriptor,
   disableAsyncStackTracesSettingDescriptor,
   jsSourceMapsEnabledSettingDescriptor,
   pauseOnCaughtExceptionSettingDescriptor,
@@ -198,7 +199,7 @@
         .addChangeListener(this.pauseOnExceptionStateChanged, this);
     settings.resolve(disableAsyncStackTracesSettingDescriptor)
         .addChangeListener(this.asyncStackTracesStateChanged, this);
-    settings.moduleSetting('breakpoints-active').addChangeListener(this.breakpointsActiveChanged, this);
+    settings.resolve(breakpointsActiveSettingDescriptor).addChangeListener(this.breakpointsActiveChanged, this);
 
     if (!target.suspended()) {
       void this.enableDebugger();
@@ -288,7 +289,7 @@
     const settings = this.target().targetManager().settings;
     this.pauseOnExceptionStateChanged();
     void this.asyncStackTracesStateChanged();
-    if (!settings.moduleSetting('breakpoints-active').get()) {
+    if (!settings.resolve(breakpointsActiveSettingDescriptor).get()) {
       this.breakpointsActiveChanged();
     }
     this.dispatchEventToListeners(Events.DebuggerWasEnabled, this);
@@ -418,7 +419,7 @@
 
   private breakpointsActiveChanged(): void {
     const settings = this.target().targetManager().settings;
-    void this.agent.invoke_setBreakpointsActive({active: settings.moduleSetting('breakpoints-active').get()});
+    void this.agent.invoke_setBreakpointsActive({active: settings.resolve(breakpointsActiveSettingDescriptor).get()});
   }
 
   setComputeAutoStepRangesCallback(callback: ((arg0: StepMode, arg1: CallFrame) => Promise<LocationRange[]>)|null):
@@ -917,6 +918,7 @@
         .removeChangeListener(this.pauseOnExceptionStateChanged, this);
     settings.resolve(disableAsyncStackTracesSettingDescriptor)
         .removeChangeListener(this.asyncStackTracesStateChanged, this);
+    settings.resolve(breakpointsActiveSettingDescriptor).removeChangeListener(this.breakpointsActiveChanged, this);
   }
 
   override async suspendModel(): Promise<void> {
diff --git a/front_end/core/sdk/SDKSettings.ts b/front_end/core/sdk/SDKSettings.ts
index d0ff9c9..e217c68 100644
--- a/front_end/core/sdk/SDKSettings.ts
+++ b/front_end/core/sdk/SDKSettings.ts
@@ -55,3 +55,10 @@
   type: Common.Settings.SettingType.BOOLEAN,
   defaultValue: false,
 };
+
+export const breakpointsActiveSettingDescriptor: Common.Settings.SettingDescriptor<boolean> = {
+  name: 'breakpoints-active',
+  type: Common.Settings.SettingType.BOOLEAN,
+  defaultValue: true,
+  storageType: Common.Settings.SettingStorageType.SESSION,
+};
diff --git a/front_end/core/sdk/sdk-meta.ts b/front_end/core/sdk/sdk-meta.ts
index e0cb959..29f5e2e 100644
--- a/front_end/core/sdk/sdk-meta.ts
+++ b/front_end/core/sdk/sdk-meta.ts
@@ -436,14 +436,6 @@
 const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_);
 
 Common.Settings.registerSettingExtension({
-  category: Common.Settings.SettingCategory.DEBUGGER,
-  settingName: 'breakpoints-active',
-  settingType: Common.Settings.SettingType.BOOLEAN,
-  storageType: Common.Settings.SettingStorageType.SESSION,
-  defaultValue: true,
-});
-
-Common.Settings.registerSettingExtension({
   category: Common.Settings.SettingCategory.ELEMENTS,
   storageType: Common.Settings.SettingStorageType.SYNCED,
   title: i18nLazyString(UIStrings.rulersOnHover),
diff --git a/front_end/legacy_test_runner/sources_test_runner/DebuggerTestRunner.js b/front_end/legacy_test_runner/sources_test_runner/DebuggerTestRunner.js
index 76246d3..a5f1f8b 100644
--- a/front_end/legacy_test_runner/sources_test_runner/DebuggerTestRunner.js
+++ b/front_end/legacy_test_runner/sources_test_runner/DebuggerTestRunner.js
@@ -40,7 +40,7 @@
 };
 
 export const completeDebuggerTest = function() {
-  Common.Settings.Settings.instance().moduleSetting('breakpoints-active').set(true);
+  Common.Settings.Settings.instance().resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor).set(true);
   resumeExecution(TestRunner.completeTest.bind(TestRunner));
 };
 
diff --git a/front_end/panels/sources/BreakpointsView.test.ts b/front_end/panels/sources/BreakpointsView.test.ts
index 84d6840..829d40b 100644
--- a/front_end/panels/sources/BreakpointsView.test.ts
+++ b/front_end/panels/sources/BreakpointsView.test.ts
@@ -463,10 +463,10 @@
       const {breakpointManager, settings} = createStubBreakpointManagerAndSettingsWithMockdata([]);
       const controller =
           Sources.BreakpointsView.BreakpointsSidebarController.instance({forceNew: true, breakpointManager, settings});
-      settings.moduleSetting('breakpoints-active').set(true);
+      settings.resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor).set(true);
       let data = await controller.getUpdatedBreakpointViewData();
       assert.isTrue(data.breakpointsActive);
-      settings.moduleSetting('breakpoints-active').set(false);
+      settings.resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor).set(false);
       data = await controller.getUpdatedBreakpointViewData();
       assert.isFalse(data.breakpointsActive);
     });
diff --git a/front_end/panels/sources/BreakpointsView.ts b/front_end/panels/sources/BreakpointsView.ts
index eefcd84..15ea05f 100644
--- a/front_end/panels/sources/BreakpointsView.ts
+++ b/front_end/panels/sources/BreakpointsView.ts
@@ -170,7 +170,7 @@
         Breakpoints.BreakpointManager.Events.BreakpointAdded, this.#onBreakpointAdded, this);
     this.#breakpointManager.addEventListener(
         Breakpoints.BreakpointManager.Events.BreakpointRemoved, this.#onBreakpointRemoved, this);
-    this.#breakpointsActiveSetting = settings.moduleSetting('breakpoints-active');
+    this.#breakpointsActiveSetting = settings.resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor);
     this.#breakpointsActiveSetting.addChangeListener(this.update, this);
     this.#pauseOnUncaughtExceptionSetting = settings.resolve(SDK.SDKSettings.pauseOnUncaughtExceptionSettingDescriptor);
     this.#pauseOnUncaughtExceptionSetting.addChangeListener(this.update, this);
diff --git a/front_end/panels/sources/DebuggerPlugin.ts b/front_end/panels/sources/DebuggerPlugin.ts
index f2d3b89..a52dfd6 100644
--- a/front_end/panels/sources/DebuggerPlugin.ts
+++ b/front_end/panels/sources/DebuggerPlugin.ts
@@ -1598,7 +1598,7 @@
   private async setBreakpoint(
       lineNumber: number, columnNumber: number|undefined, condition: Breakpoints.BreakpointManager.UserCondition,
       enabled: boolean, isLogpoint: boolean): Promise<Breakpoints.BreakpointManager.Breakpoint|undefined> {
-    Common.Settings.Settings.instance().moduleSetting('breakpoints-active').set(true);
+    Common.Settings.Settings.instance().resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor).set(true);
     const bp = await this.breakpointManager.setBreakpoint(
         this.uiSourceCode, lineNumber, columnNumber, condition, enabled, isLogpoint,
         Breakpoints.BreakpointManager.BreakpointOrigin.USER_ACTION);
diff --git a/front_end/panels/sources/SourcesPanel.ts b/front_end/panels/sources/SourcesPanel.ts
index 5c2b81b..dd98cd6 100644
--- a/front_end/panels/sources/SourcesPanel.ts
+++ b/front_end/panels/sources/SourcesPanel.ts
@@ -321,7 +321,7 @@
 
     this.setTarget(UI.Context.Context.instance().flavor(SDK.Target.Target));
     Common.Settings.Settings.instance()
-        .moduleSetting('breakpoints-active')
+        .resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor)
         .addChangeListener(this.breakpointsActiveStateChanged, this);
     UI.Context.Context.instance().addFlavorChangeListener(SDK.Target.Target, this.onCurrentTargetChanged, this);
     UI.Context.Context.instance().addFlavorChangeListener(
@@ -852,13 +852,13 @@
   }
 
   toggleBreakpointsActive(): void {
-    Common.Settings.Settings.instance()
-        .moduleSetting('breakpoints-active')
-        .set(!Common.Settings.Settings.instance().moduleSetting('breakpoints-active').get());
+    const setting = Common.Settings.Settings.instance().resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor);
+    setting.set(!setting.get());
   }
 
   private breakpointsActiveStateChanged(): void {
-    const active = Common.Settings.Settings.instance().moduleSetting('breakpoints-active').get();
+    const active =
+        Common.Settings.Settings.instance().resolve(SDK.SDKSettings.breakpointsActiveSettingDescriptor).get();
     this.toggleBreakpointsActiveAction.setToggled(!active);
     this.#sourcesView.toggleBreakpointsActiveState(active);
   }