Skip to content

Commit d921c7a

Browse files
committed
chore: experimental devtools
1 parent 276bf42 commit d921c7a

File tree

4 files changed

+12
-50
lines changed

4 files changed

+12
-50
lines changed

src/McpContext.ts

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,8 @@ export class McpContext implements Context {
8989

9090
#nextSnapshotId = 1;
9191
#traceResults: TraceResult[] = [];
92-
#devtools = false;
93-
94-
private constructor(
95-
browser: Browser,
96-
logger: Debugger,
97-
options: {
98-
devtools: boolean;
99-
},
100-
) {
101-
this.#devtools = options.devtools;
92+
93+
private constructor(browser: Browser, logger: Debugger) {
10294
this.browser = browser;
10395
this.logger = logger;
10496

@@ -131,14 +123,8 @@ export class McpContext implements Context {
131123
await this.#consoleCollector.init();
132124
}
133125

134-
static async from(
135-
browser: Browser,
136-
logger: Debugger,
137-
options: {
138-
devtools: boolean;
139-
},
140-
) {
141-
const context = new McpContext(browser, logger, options);
126+
static async from(browser: Browser, logger: Debugger) {
127+
const context = new McpContext(browser, logger);
142128
await context.#init();
143129
return context;
144130
}
@@ -316,16 +302,6 @@ export class McpContext implements Context {
316302
*/
317303
async createPagesSnapshot(): Promise<Page[]> {
318304
this.#pages = await this.browser.pages();
319-
// if (this.#devtools) {
320-
// for (const target of this.browser.targets()) {
321-
// if (
322-
// target.type() === 'other' &&
323-
// target.url().startsWith('devtools://')
324-
// ) {
325-
// this.#pages.push(await target.asPage());
326-
// }
327-
// }
328-
// }
329305
return this.#pages;
330306
}
331307

src/browser.ts

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,7 @@ export async function ensureBrowserConnected(options: {
5252
targetFilter: makeTargetFilter(options.devtools),
5353
browserURL: options.browserURL,
5454
defaultViewport: null,
55-
// @ts-expect-error no types.
56-
_isPageTarget(target) {
57-
return (
58-
target.type() === 'other' && target.url().startsWith('devtools://')
59-
);
60-
},
55+
handleDevToolsAsPage: options.devtools,
6156
});
6257
return browser;
6358
}
@@ -77,7 +72,7 @@ interface McpLaunchOptions {
7772
};
7873
args?: string[];
7974
devtools: boolean;
80-
};
75+
}
8176

8277
export async function launch(options: McpLaunchOptions): Promise<Browser> {
8378
const {channel, executablePath, customDevTools, headless, isolated} = options;
@@ -131,12 +126,7 @@ export async function launch(options: McpLaunchOptions): Promise<Browser> {
131126
headless,
132127
args,
133128
acceptInsecureCerts: options.acceptInsecureCerts,
134-
// @ts-expect-error no types.
135-
_isPageTarget(target) {
136-
return (
137-
target.type() === 'other' && target.url().startsWith('devtools://')
138-
);
139-
},
129+
handleDevToolsAsPage: options.devtools,
140130
});
141131
if (options.logFile) {
142132
// FIXME: we are probably subscribing too late to catch startup logs. We

src/main.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ async function getContext(): Promise<McpContext> {
7676
const devtools = args.experimentalDevtools ?? false;
7777
const browser = args.browserUrl
7878
? await ensureBrowserConnected({
79-
browserURL: args.browserUrl,
80-
devtools,
81-
})
79+
browserURL: args.browserUrl,
80+
devtools,
81+
})
8282
: await ensureBrowserLaunched({
8383
headless: args.headless,
8484
executablePath: args.executablePath,
@@ -93,9 +93,7 @@ async function getContext(): Promise<McpContext> {
9393
});
9494

9595
if (context?.browser !== browser) {
96-
context = await McpContext.from(browser, logger, {
97-
devtools,
98-
});
96+
context = await McpContext.from(browser, logger);
9997
}
10098
return context;
10199
}

tests/utils.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@ export async function withBrowser(
3535
}),
3636
);
3737
const response = new McpResponse();
38-
const context = await McpContext.from(browser, logger('test'), {
39-
devtools: false,
40-
});
38+
const context = await McpContext.from(browser, logger('test'));
4139

4240
await cb(response, context);
4341
}

0 commit comments

Comments
 (0)