diff --git a/include/CefViewBrowserClient.h b/include/CefViewBrowserClient.h index ddab191..1d69930 100644 --- a/include/CefViewBrowserClient.h +++ b/include/CefViewBrowserClient.h @@ -142,6 +142,20 @@ class CefViewBrowserClient const CefString& url, int64_t context); + /// + /// + /// + /// + /// + /// + /// + /// + virtual CefRefPtr GetResourceResponseFilter(CefRefPtr browser, + CefRefPtr frame, + CefRefPtr request, + CefRefPtr response) override; + + protected: bool DispatchRenderMessage(CefRefPtr browser, CefRefPtr frame, @@ -351,6 +365,13 @@ class CefViewBrowserClient CefRefPtr frame, CefRefPtr request) override; + virtual void OnResourceLoadComplete(CefRefPtr browser, + CefRefPtr frame, + CefRefPtr request, + CefRefPtr response, + URLRequestStatus status, + int64 received_content_length) override; + virtual void OnProtocolExecution(CefRefPtr browser, CefRefPtr frame, CefRefPtr request, @@ -358,6 +379,7 @@ class CefViewBrowserClient // CefDownloadHandler virtual CefRefPtr GetDownloadHandler() override; + void OnBeforeDownload(CefRefPtr browser, CefRefPtr download_item, const CefString& suggested_name, diff --git a/include/CefViewBrowserClientDelegate.h b/include/CefViewBrowserClientDelegate.h index 4c83219..3854b36 100644 --- a/include/CefViewBrowserClientDelegate.h +++ b/include/CefViewBrowserClientDelegate.h @@ -187,9 +187,26 @@ class CefViewBrowserClientDelegateInterface {} virtual void onTextSelectionChanged(CefRefPtr browser, const CefString& selected_text, - const CefRange& selected_range) - {} + const CefRange& selected_range){} + virtual void onVirtualKeyboardRequested(CefRefPtr browser, CefRenderHandler::TextInputMode input_mode) {} + + //CefResourceRequestHandler + virtual void onResourceLoadComplete(CefRefPtr browser, + CefRefPtr frame, + CefRefPtr request, + CefRefPtr response, + CefResourceRequestHandler::URLRequestStatus status, + int64 received_content_length) + {} + + virtual CefRefPtr onGetResourceResponseFilter(CefRefPtr browser, + CefRefPtr frame, + CefRefPtr request, + CefRefPtr response) + { + return nullptr; + } }; #endif diff --git a/src/CefView/CefBrowserApp/CefViewBrowserClient.cpp b/src/CefView/CefBrowserApp/CefViewBrowserClient.cpp index 90027ae..2e95b3c 100644 --- a/src/CefView/CefBrowserApp/CefViewBrowserClient.cpp +++ b/src/CefView/CefBrowserApp/CefViewBrowserClient.cpp @@ -225,7 +225,7 @@ CefViewBrowserClient::OnRenderReportJSResultMessage(CefRefPtr browse return false; // get the JS result - auto context = arguments->GetDouble(0); + auto context = arguments->GetInt(0); auto result = arguments->GetValue(1); delegate->reportJSResult(browser, frame->GetIdentifier(), static_cast(context), result); diff --git a/src/CefView/CefBrowserApp/CefViewBrowserClient_ResourceRequestHandler.cpp b/src/CefView/CefBrowserApp/CefViewBrowserClient_ResourceRequestHandler.cpp index 71864d3..89922da 100644 --- a/src/CefView/CefBrowserApp/CefViewBrowserClient_ResourceRequestHandler.cpp +++ b/src/CefView/CefBrowserApp/CefViewBrowserClient_ResourceRequestHandler.cpp @@ -1,4 +1,4 @@ -#include +#include #pragma region std_headers #include @@ -49,3 +49,34 @@ CefViewBrowserClient::OnProtocolExecution(CefRefPtr browser, CefRefPtr request, bool& allow_os_execution) {} + +void +CefViewBrowserClient::OnResourceLoadComplete(CefRefPtr browser, + CefRefPtr frame, + CefRefPtr request, + CefRefPtr response, + URLRequestStatus status, + int64 received_content_length) +{ + auto delegate = client_delegate_.lock(); + if (delegate) + { + delegate->onResourceLoadComplete(browser, frame, request, response, status, received_content_length); + } +} + + +CefRefPtr +CefViewBrowserClient::GetResourceResponseFilter(CefRefPtr browser, + CefRefPtr frame, + CefRefPtr request, + CefRefPtr response) +{ + auto delegate = client_delegate_.lock(); + if (delegate) + { + return delegate->onGetResourceResponseFilter(browser, frame, request, response); + } + + return nullptr; +}