CEF リクエストコンテキストでプロキシを設定する
サポートされている設定 API を使って CEF ブラウザコンテキストに固定プロキシを割り当て、起動ポリシーがその変更を許可するか確認します。
目的の 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 を再構築することも避けます。