Вкладка открывается с нужным адресом, а не пустая
DevTools берёт всё, что стоит после '?' в /json/new, как сам адрес целиком — это не параметры запроса. Строка 'url=https%3A%2F%2Fchat.deepseek.com%2F' честно считалась адресом, и открывалась about:blank. Место срабатывает только когда браузер жив, а вкладки с чатом нет, поэтому лежало незамеченным. Заодно ensureBrowser теперь проверяет, что открылось именно то: беззвучный промах в этом файле уже был один раз, с кнопкой New chat.
This commit is contained in:
+16
-5
@@ -1064,15 +1064,26 @@ export async function ensureBrowser(log = () => {}) {
|
|||||||
log('браузер поднялся');
|
log('браузер поднялся');
|
||||||
}
|
}
|
||||||
|
|
||||||
const list = await (await fetch(`http://127.0.0.1:${PORT}/json/list`)).json().catch(() => []);
|
const tabs = () => fetch(`http://127.0.0.1:${PORT}/json/list`)
|
||||||
if (list.some(t => String(t.url || '').includes('deepseek'))) return;
|
.then(r => r.json()).catch(() => []);
|
||||||
|
const isChat = t => String(t.url || '').includes('deepseek');
|
||||||
|
|
||||||
|
if ((await tabs()).some(isChat)) return;
|
||||||
// Новая вкладка в свежих сборках Chromium открывается ТОЛЬКО методом PUT:
|
// Новая вкладка в свежих сборках Chromium открывается ТОЛЬКО методом PUT:
|
||||||
// на GET протокол отвечает 405 и молча ничего не делает.
|
// на GET протокол отвечает 405 и молча ничего не делает.
|
||||||
const r = await fetch(
|
//
|
||||||
`http://127.0.0.1:${PORT}/json/new?url=${encodeURIComponent(BROWSER.url)}`,
|
// И адрес НЕ параметр запроса: всё, что стоит после '?', протокол берёт
|
||||||
{ method: 'PUT' });
|
// как сам адрес целиком. С '?url=...' открывалась пустая about:blank —
|
||||||
|
// строку 'url=https%3A%2F%2F...' он честно считал адресом.
|
||||||
|
const r = await fetch(`http://127.0.0.1:${PORT}/json/new?${BROWSER.url}`,
|
||||||
|
{ method: 'PUT' });
|
||||||
if (!r.ok) throw new Error(`Не удалось открыть вкладку DeepSeek: ${r.status}.`);
|
if (!r.ok) throw new Error(`Не удалось открыть вкладку DeepSeek: ${r.status}.`);
|
||||||
await sleep(4000); // дать чату прогрузиться до первого вопроса
|
await sleep(4000); // дать чату прогрузиться до первого вопроса
|
||||||
|
// Открыл — убедись, что открылось именно то: молчаливый промах здесь уже был.
|
||||||
|
if (!(await tabs()).some(isChat)) {
|
||||||
|
throw new Error(`Вкладка открылась, но не с ${BROWSER.url}. `
|
||||||
|
+ 'Похоже, браузер не принял адрес — закройте лишние вкладки и повторите.');
|
||||||
|
}
|
||||||
log('вкладка с чатом открыта');
|
log('вкладка с чатом открыта');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user