Настройка прокси в контексте запроса CEF
Задайте контексту браузера CEF фиксированный прокси через поддерживаемый API настроек и проверьте, разрешает ли политика запуска это изменение.
После инициализации нужного CefRequestContext задайте его настройку прокси в потоке UI процесса браузера до начала работы по просмотру:
auto rule = CefDictionaryValue::Create();
rule->SetString("mode", "fixed_servers");
rule->SetString("server", "http://proxy.example:8080");
auto value = CefValue::Create();
value->SetDictionary(rule);
CefString error;
bool configured = context->SetPreference("proxy", value, error);Проверьте configured и сохраните ошибку при неудаче. CanSetPreference показывает, может ли пользователь изменять настройку; выбор в командной строке при запуске может заблокировать её для этого интерфейса.
Передайте тот же контекст при создании браузера. Настроенный, но неиспользуемый контекст не влияет на браузер в глобальном контексте.
Проверьте и изоляцию. Контексты могут совместно использовать базовое состояние хранилища или сети через общие пути кеша или явные связи. IsSharingWith — поддерживаемый способ изучить это совместное использование. Независимым сеансам прокси нужны независимо выбранные контексты и политика хранилища.
Настройка влияет на последующую работу; она не может переместить существующий туннель. Оставьте URL навигации пунктом назначения, а сервер из настройки — посредником. Для разрешённого публичного просмотра без настроенной проверки подлинности прокси список HTTP-прокси может дать подходящие значения HTTP-сервера. Если переключатели запуска намеренно владеют маршрутом, поддерживайте эту политику, а не ждите, что более поздняя запись настройки её переопределит. Поддерживаемый API контекста запроса также позволяет избежать повторной сборки удалённого CefProxyHandler.