2 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
0b97d64864 |
fix(tradein/browser): переход с Яндекса на площадку должен быть настоящим, а не заявленным
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 11s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Successful in 1m26s
PR #3258 научил якорную вкладку заходить на выдачу через поиск Яндекса, но две ветки из трёх подставляли Referer, которого мы не заработали: «ссылку в выдаче не нашли» ставила https://yandex.ru/, «клик увёл не туда» — URL поисковой выдачи. В обоих случаях перехода с Яндекса на площадку НЕ БЫЛО, а заголовок утверждал обратное. Главная причина, по которой вторая ветка вообще срабатывала: ссылки в выдаче Яндекса открываются в НОВОЙ вкладке (target="_blank"). Исходная страница остаётся на Яндексе, проверка хоста не проходит — и вместо того, чтобы взять настоящую новую вкладку, мы уходили в подстановку заголовка. Теперь новая вкладка перехватывается: снимок context.pages до клика, сравнение после; попап на нужном хосте становится ЯКОРНОЙ страницей (resource-block применяется к ней — по наследству он не передаётся), вкладка с Яндексом закрывается. Это и есть настоящий переход. Оба фиктивных фолбэка выброшены. Не нашли ссылку, клик увёл не туда, попап не на том хосте, капча, упавшая навигация — возвращаем None, и вызывающий идёт на origin обычным goto БЕЗ Referer, ровно как до #3258. Принцип зафиксирован комментарием в коде и на месте удалённой константы _YANDEX_REFERER, иначе его легко «оптимизировать» обратно: либо переход был настоящим, либо об источнике молчим. Тесты: 198 passed против 196 — попап на нужном хосте становится якорем и оригинал закрыт; попап на чужом хосте → фолбэк без Referer; тест «ссылки нет» переписан, он теперь требует отсутствия Referer вместо yandex.ru. |
||
|
|
a107ab9950 |
feat(tradein/browser): на выдачу площадки заходить через настоящий поиск Яндекса, а не голым goto
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 11s
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Successful in 1m27s
Якорная вкладка (#3244) открывала страницу выдачи Домклика без источника перехода вообще. Передача referer на карточку (#3250) воспроизвела второй шаг человеческого пути, но первый — «пришёл из поиска» — оставался невоспроизведённым. Эталон — ручная сессия 29.08 через узел 10: yandex.ru → клик по результату → выдача Домклика (Referer https://yandex.ru/) → клик → карточка (Referer = URL выдачи) Теперь якорная вкладка идёт на yandex.ru/search, ищет среди результатов ссылку на хост origin и КЛИКАЕТ по ней. Referer уходит не потому, что мы его подставили, а потому, что переход действительно был. Яндекс на мобильных прокси капризен — наблюдалась капча вживую, — поэтому предусмотрены три контролируемых исхода, и ни один не роняет прогон: - капча на выдаче либо упавшая навигация на Яндекс → прежний прямой goto(origin), без referer, поведение до этой правки байт в байт; - ссылки на хост в результатах нет → goto(origin, referer="https://yandex.ru/"): визит на Яндекс был настоящий, заголовок честный; - клик увёл не туда (редирект-обёртка Яндекса) → goto(origin, referer=URL выдачи), точный адрес, а не общий yandex.ru. Включено ТОЛЬКО для Домклика (BROWSER_ANCHOR_VIA_SEARCH=domclick по умолчанию); Авито, Циан и Яндекс не трогаем — их проверять отдельно по #3251. Пустое значение переменной возвращает сегодняшнее поведение целиком. Тесты: 196 passed в сайдкаре против 191 — пять сценариев: успешный клик, откат по капче, откат по отсутствию ссылки, провайдер вне списка, падение навигации. |