Skip to content

Commit cca5ff4

Browse files
authored
fix: work around NTP iframes causing hangs (#504)
Drive-by: some logging
1 parent 2f448e8 commit cca5ff4

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

src/McpContext.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,11 +343,13 @@ export class McpContext implements Context {
343343
}
344344

345345
async detectOpenDevToolsWindows() {
346+
this.logger('Detecting open DevTools windows');
346347
const pages = await this.browser.pages();
347348
this.#pageToDevToolsPage = new Map<Page, Page>();
348349
for (const devToolsPage of pages) {
349350
if (devToolsPage.url().startsWith('devtools://')) {
350351
try {
352+
this.logger('Calling getTargetInfo for ' + devToolsPage.url());
351353
const data = await devToolsPage
352354
// @ts-expect-error no types for _client().
353355
._client()

src/browser.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import fs from 'node:fs';
88
import os from 'node:os';
99
import path from 'node:path';
1010

11+
import {logger} from './logger.js';
1112
import type {
1213
Browser,
1314
ChromeReleaseChannel,
@@ -29,6 +30,10 @@ function makeTargetFilter() {
2930
if (target.url() === 'chrome://newtab/') {
3031
return true;
3132
}
33+
if (target.url().startsWith('https://ogs.google.com/widget/app/so')) {
34+
// Some special frame on the NTP that is not picked up by CDP-auto-attach.
35+
return false;
36+
}
3237
for (const prefix of ignoredPrefixes) {
3338
if (target.url().startsWith(prefix)) {
3439
return false;
@@ -65,7 +70,9 @@ export async function ensureBrowserConnected(options: {
6570
throw new Error('Either browserURL or wsEndpoint must be provided');
6671
}
6772

73+
logger('Connecting Puppeteer to ', JSON.stringify(connectOptions));
6874
browser = await puppeteer.connect(connectOptions);
75+
logger('Connected Puppeteer');
6976
return browser;
7077
}
7178

src/main.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ function registerTool(tool: ToolDefinition): void {
129129
try {
130130
logger(`${tool.name} request: ${JSON.stringify(params, null, ' ')}`);
131131
const context = await getContext();
132+
logger(`${tool.name} context: resolved`);
132133
await context.detectOpenDevToolsWindows();
133134
const response = new McpResponse();
134135
await tool.handler(

0 commit comments

Comments
 (0)