С точки зрения хрома , Без головы Chrome - это способ запустить браузер google-chrome в без головы среда, которая, по сути, работает Chrome без chrome. Это инструмент для автоматизированного тестирования и серверных сред, где вам не нужна видимая оболочка пользовательского интерфейса.
Концепция Без головы Chrome была реализована через --headless
переключатель времени выполнения , который будет использовать обычный двоичный файл Chrome в качестве автономного. Когда двоичный файл будет запущен с этим переключателем, главная точка входа будет вызывать точку входа Headless Shell , эффективно запуская эту оболочку вместо Chrome. Чтобы сделать это возможным, Chromium Team удалила зависимость с Headless
до Ozone
, так как Ozone - это функция времени сборки, которая обычно не включена для обычных Chrome сборок. По сути, это означало реализацию нового WindowTreeHost
, специфичного для безголовых, и изменение различных графических и входных точек входа для выполнения чего-то подходящего в безголовом режиме. Хотя большая часть кода была указана в платформе c, основной целью было дать оболочке возможность использовать профиль в памяти, полностью независимый от фактического профиля пользователя.
Существует три основных изменения. для --headless
были:
- Превращение Headless Shell в встраиваемую библиотеку (вместо автономного приложения).
- Основная точка входа Chrome должна отправляться в точку входа Headless Shell, когда --headless используется, то есть запускает Headless Shell вместо обычного Chrome UI.
- Изменения платформы c, чтобы избежать системных зависимостей окон в режиме без головы.
- Где в качестве Кроссплатформенный изменения были в:
chrome/chrome_main.cc
: отправка в HeadlessShellMain () при запуске с --headless. content/browser/compositor/gpu_process_transport_factory.cc
: использование программного устройства вывода в режиме без головы.
Ссылки
Пара ссылок: