В чем различия между браузерами
Что проверяют
Понимаете ли вы, откуда берутся кросс-браузерные баги и как это превращается в план тестирования. Следом обычно спрашивают, как вы выберете браузеры для проверки и хватит ли одного Chrome.
Как отвечать
Начните с движков, от них зависит почти всё:
- Chromium (Blink и V8): Chrome, Edge, Opera, Яндекс Браузер, Brave;
- Firefox (Gecko и SpiderMonkey);
- Safari (WebKit и JavaScriptCore). На iOS браузеры по правилам App Store долго обязаны были работать на WebKit, послабления есть лишь в отдельных регионах, поэтому Chrome на iPhone по сути ведёт себя как Safari.
Где различия видны тестировщику:
- CSS и вёрстка: новые свойства появляются в движках в разное время, поддержку сверяют по caniuse и отметке Baseline. Нативные контролы (выбор даты,
select, скроллбары) выглядят по-разному, на мобильном Safari100vhведёт себя иначе из-за панели, для этого естьdvh; - JavaScript API: часть API приходит в Safari позже или с отличиями;
- приватность и хранилища: Safari режет сторонние куки и ограничивает срок жизни кук, записанных скриптом, Firefox изолирует куки по сайтам. Отсюда баги авторизации через сторонний домен и виджетов в
iframe; - политики: автовоспроизведение видео, всплывающие окна, скачивание файлов.
Дальше стратегия. Матрицу браузеров строят по аналитике своей аудитории, в рунете обязательно смотрят долю Яндекс Браузера. Автотесты гоняют через Playwright в Chromium, Firefox и WebKit или через Selenium Grid, а для реальных устройств берут облачные фермы вроде BrowserStack или живые iPhone.
Где спотыкаются
Считают, что проверки в Chrome хватает для всех Chromium-браузеров. Движок общий, но версии, встроенные блокировщики и надстройки отличаются, а Safari и Firefox вообще другие.
Принимают WebKit из Playwright или эмуляцию устройства в DevTools за настоящий Safari на iPhone. Для финальной проверки нужен реальный браузер.
Называют CSP функцией безопасности конкретного браузера. Политику задаёт сайт заголовком Content-Security-Policy, а браузеры её только исполняют.