Браузерный слой#
Где заканчивается сценарий сайта?
Браузерный плагин описывает сайт, а адаптер управляет конкретной средой браузера. Сценарий не
знает, кто создал процесс, контекст, прокси или антидетект-профиль
(eazy_sdk_browser.driver).
Среда браузера при этом остаётся снаружи.
flowchart TD
Router["AsyncBrowserApi"] --> Operation["BrowserOperation"]
Operation --> Runtime["operations.run"]
Runtime --> Driver["Driver страницы"]
Driver --> Adapter["Playwright или Pydoll"]
Session["SessionSource"] --> Client["AsyncBrowserClient"]
Client --> Runtime
Profile["BrowserProfile"] --> Check["Проверка возможностей"]
Check --> Runtime
Factory["Приложение: браузер и контекст"] --> Adapter
Граница страницы#
Минимальный Driver умеет находить элементы, читать страницу и переходить по адресу. Сеть,
состояние сессии, запросы из страницы, события перехода, shadow DOM и редактор объявлены отдельно
в BrowserProfile
(eazy_sdk_browser.driver,
eazy_sdk_browser.profile).
Операция объявляет адрес, действия, признаки готовности, исходы и необходимые возможности.
operations.run(...) проверяет профиль до первого действия, выполняет переход и превращает
наблюдаемое состояние страницы в типизированный результат
(eazy_sdk_browser.operations).
AsyncBrowserClient владеет драйвером только при owns_driver=True. Источник сессии вызывает
ensure перед операцией и может один раз обновить отклонённую ревизию в пределах
auth_retries; клиент не знает о хранилище или пуле контекстов
(eazy_sdk_browser.client).
BrowserState переносит cookies и localStorage между контекстами. В живой контекст сессия
добавляет только cookies: повторная запись localStorage при каждой навигации затёрла бы изменения
сайта (eazy_sdk_browser.state).