CEF обрабатывает все относительные URL-адреса протокола как запрос file://
в моем локальном приложении, и я хочу перехватить и изменить его, чтобы вместо этого он указывал на https://
.
Я перегрузил следующие два метода из CefRequestHandler
:
virtual CefRefPtr<CefResourceHandler> GetResourceHandler(
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefRequest> request);
virtual cef_return_value_t OnBeforeResourceLoad(
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefRequest> request,
CefRefPtr<CefRequestCallback> callback);
Где cef_return_value_t
определяется как:
typedef enum {
///
// Cancel immediately.
///
RV_CANCEL = 0,
///
// Continue immediately.
///
RV_CONTINUE,
///
// Continue asynchronously (usually via a callback).
///
RV_CONTINUE_ASYNC,
} cef_return_value_t;
В OnBeforeResourceLoad
я могу только попросить CEF либо отменить, либо продолжить выполнение запроса. Итак, я возвращаюсь RV_CONTINUE
.
А в GetResourceHandler
я могу предоставить пользовательский CefResourceHandler
.
Но проблема в том, что я не смог найти API CEF, который помог бы мне создать собственный обработчик запросов https://
.