| 212 | } |
| 213 | |
| 214 | const DEFAULT_FACTORY: TargetUniverseFactoryFn = async (page: Page) => { |
| 215 | const settingStorage = new DevTools.Common.Settings.SettingsStorage({}); |
| 216 | const universe = new DevTools.Foundation.Universe.Universe({ |
| 217 | settingsCreationOptions: { |
| 218 | syncedStorage: settingStorage, |
| 219 | globalStorage: settingStorage, |
| 220 | localStorage: settingStorage, |
| 221 | settingRegistrations: |
| 222 | DevTools.Common.SettingRegistration.getRegisteredSettings(), |
| 223 | }, |
| 224 | overrideAutoStartModels: new Set([DevTools.DebuggerModel]), |
| 225 | }); |
| 226 | |
| 227 | const session = await page.createCDPSession(); |
| 228 | const connection = new PuppeteerDevToolsConnection(session); |
| 229 | |
| 230 | const targetManager = universe.context.get(DevTools.TargetManager); |
| 231 | |
| 232 | targetManager.observeModels(DevTools.DebuggerModel, SKIP_ALL_PAUSES); |
| 233 | targetManager.observeModels( |
| 234 | DevTools.NetworkManager.NetworkManager, |
| 235 | DISABLE_NETWORK, |
| 236 | ); |
| 237 | |
| 238 | const target = targetManager.createTarget( |
| 239 | 'main', |
| 240 | '', |
| 241 | 'frame' as any, // eslint-disable-line @typescript-eslint/no-explicit-any |
| 242 | /* parentTarget */ null, |
| 243 | session.id(), |
| 244 | undefined, |
| 245 | connection, |
| 246 | ); |
| 247 | return {target, universe, session}; |
| 248 | }; |
| 249 | |
| 250 | // We don't want to pause any DevTools universe session ever on the MCP side. |
| 251 | // |