From c0a8bf845f47bdd344975c361750e7a9387330da Mon Sep 17 00:00:00 2001 From: "HQND\\Administrator" Date: Sat, 30 Jul 2022 16:48:46 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8B=A6=E6=88=AA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/CefViewBrowserClient.h | 22 +++++++++++++ include/CefViewBrowserClientDelegate.h | 21 ++++++++++-- ...ewBrowserClient_ResourceRequestHandler.cpp | 33 ++++++++++++++++++- 3 files changed, 73 insertions(+), 3 deletions(-) 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..e8fc590 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_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; +} From b5820da8036ec2e7bed3f25086b04378c98692a8 Mon Sep 17 00:00:00 2001 From: leashi Date: Sat, 30 Jul 2022 19:24:36 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8DRenderHandler=E9=87=8D?= =?UTF-8?q?=E5=86=99=E5=87=BD=E6=95=B0=E5=90=8D=E9=94=99=E8=AF=AF=E7=9A=84?= =?UTF-8?q?BUG=E3=80=82=E5=AE=8C=E6=88=90DownloadHandler=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/CefViewBrowserClientDelegate.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/CefViewBrowserClientDelegate.h b/include/CefViewBrowserClientDelegate.h index e8fc590..3854b36 100644 --- a/include/CefViewBrowserClientDelegate.h +++ b/include/CefViewBrowserClientDelegate.h @@ -187,7 +187,7 @@ 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) {} @@ -206,7 +206,7 @@ class CefViewBrowserClientDelegateInterface CefRefPtr response) { return nullptr; - }; + } }; #endif From a3d7e00f1424d6179ae2ba8d8b6260e0dc671917 Mon Sep 17 00:00:00 2001 From: "HQND\\Administrator" Date: Tue, 2 Aug 2022 16:33:43 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=8E=B7=E5=8F=96context=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/CefView/CefBrowserApp/CefViewBrowserClient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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);