perf(tradein/browser): якорная вкладка выдачи вместо переоткрытия origin на каждую карточку #3244

Merged
lekss361 merged 2 commits from perf/domclick-anchor-serp-tab into main 2026-08-29 18:29:42 +00:00
Showing only changes of commit 2c29151e85 - Show all commits

View file

@ -950,9 +950,9 @@ async def fetch_handler(request: web.Request) -> web.Response:
if not url:
return web.json_response({"error": "missing 'url' field"}, status=400)
# origin (опционально) — same-site якорь, на который камуфокс зайдёт ПЕРЕД url
# (органическая навигация: реальные cookies/Referer вместо холодного goto,
# зеркалит /fetch-json #1917). Явного auto-derive из url здесь НЕТ (в отличие
# origin (опционально) — same-site якорь, на который камуфокс зайдёт ПЕРЕД url,
# чтобы получить пропуск QRATOR в куки контекста (Referer тут ни при чём: goto()
# его не шлёт; зеркалит /fetch-json #1917). Явного auto-derive из url здесь НЕТ (в отличие
# от fetch-json) — caller не передал → остаётся None, origin-goto не выполняется,
# поведение идентично прежнему (avito/cian/yandex его никогда не передают).
origin: str | None = body.get("origin")
@ -1492,10 +1492,15 @@ async def _fetch_once(
параллелятся recycle через _relaunch_browser безопасен прямо здесь.
origin (опционально) same-site якорь (например SERP), на который камуфокс
заходит ПЕРЕД целевым url: органическая навигация с реальными cookies/Referer
вместо холодного прямого захода (зеркалит _fetch_json_once, #1917 — DomClick
card-fetch, эмпирически подтверждено вживую 2026-07-04). None (дефолт) поведение
не меняется, ровно один goto(url) как раньше (avito/cian/yandex не передают origin).
заходит ПЕРЕД целевым url, чтобы получить пропуск QRATOR в контексте (зеркалит
_fetch_json_once, #1917 — DomClick card-fetch, эмпирически подтверждено вживую
2026-07-04). Работает это через КУКИ контекста, а не через Referer: goto()
заголовок Referer не шлёт вовсе, так что «органической навигации» тут никогда не
было ценность ровно в прогретом контексте. Поэтому при reuse_context origin
поднимается ОДИН раз в якорной вкладке (_ensure_anchor_page), а не переоткрывается
перед каждой карточкой: контекст уже прогрет, повторный заход трата рукопожатия.
None (дефолт) поведение не меняется, ровно один goto(url) как раньше
(avito/cian/yandex не передают origin).
cookies (опционально) dict cookie_namevalue для инъекции ДО любой навигации
(обход QRATOR-блока DomClick при валидной test-аккаунт сессии, эмпирически