@jackwener/opencli 1.2.1 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -322,8 +322,18 @@ async function resolveTabId(tabId, workspace) {
|
|
|
322
322
|
const reuseTab = tabs.find((t) => t.id);
|
|
323
323
|
if (reuseTab?.id) {
|
|
324
324
|
await chrome.tabs.update(reuseTab.id, { url: "about:blank" });
|
|
325
|
-
await new Promise((resolve) => setTimeout(resolve,
|
|
326
|
-
|
|
325
|
+
await new Promise((resolve) => setTimeout(resolve, 300));
|
|
326
|
+
try {
|
|
327
|
+
const updated = await chrome.tabs.get(reuseTab.id);
|
|
328
|
+
if (isDebuggableUrl(updated.url)) return reuseTab.id;
|
|
329
|
+
console.warn(`[opencli] about:blank was intercepted (${updated.url}), trying data: URI`);
|
|
330
|
+
await chrome.tabs.update(reuseTab.id, { url: "data:text/html,<html></html>" });
|
|
331
|
+
await new Promise((resolve) => setTimeout(resolve, 300));
|
|
332
|
+
const updated2 = await chrome.tabs.get(reuseTab.id);
|
|
333
|
+
if (isDebuggableUrl(updated2.url)) return reuseTab.id;
|
|
334
|
+
console.warn(`[opencli] data: URI also intercepted, creating fresh tab`);
|
|
335
|
+
} catch {
|
|
336
|
+
}
|
|
327
337
|
}
|
|
328
338
|
const newTab = await chrome.tabs.create({ windowId, url: "about:blank", active: true });
|
|
329
339
|
if (!newTab.id) throw new Error("Failed to create tab in automation window");
|
|
@@ -268,12 +268,26 @@ async function resolveTabId(tabId: number | undefined, workspace: string): Promi
|
|
|
268
268
|
const reuseTab = tabs.find(t => t.id);
|
|
269
269
|
if (reuseTab?.id) {
|
|
270
270
|
await chrome.tabs.update(reuseTab.id, { url: 'about:blank' });
|
|
271
|
-
// Wait
|
|
272
|
-
await new Promise(resolve => setTimeout(resolve,
|
|
273
|
-
|
|
271
|
+
// Wait for the navigation to take effect
|
|
272
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
273
|
+
// Verify the URL is actually debuggable (New Tab Override may have intercepted)
|
|
274
|
+
try {
|
|
275
|
+
const updated = await chrome.tabs.get(reuseTab.id);
|
|
276
|
+
if (isDebuggableUrl(updated.url)) return reuseTab.id;
|
|
277
|
+
// New Tab Override intercepted about:blank — try data: URI instead
|
|
278
|
+
console.warn(`[opencli] about:blank was intercepted (${updated.url}), trying data: URI`);
|
|
279
|
+
await chrome.tabs.update(reuseTab.id, { url: 'data:text/html,<html></html>' });
|
|
280
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
281
|
+
const updated2 = await chrome.tabs.get(reuseTab.id);
|
|
282
|
+
if (isDebuggableUrl(updated2.url)) return reuseTab.id;
|
|
283
|
+
// data: URI also intercepted — create a brand new tab
|
|
284
|
+
console.warn(`[opencli] data: URI also intercepted, creating fresh tab`);
|
|
285
|
+
} catch {
|
|
286
|
+
// Tab was closed during navigation
|
|
287
|
+
}
|
|
274
288
|
}
|
|
275
289
|
|
|
276
|
-
// Window has no tabs
|
|
290
|
+
// Window has no debuggable tabs — create one
|
|
277
291
|
const newTab = await chrome.tabs.create({ windowId, url: 'about:blank', active: true });
|
|
278
292
|
if (!newTab.id) throw new Error('Failed to create tab in automation window');
|
|
279
293
|
return newTab.id;
|