From 1ac1dea2dc467462550532ce587aadbd217ca556 Mon Sep 17 00:00:00 2001 From: "huayong.xu" Date: Wed, 22 Dec 2021 20:11:27 +0800 Subject: [PATCH 1/1] Add a callback for navigation policy in web engine. Change-Id: Ia8858c98e29d4f9de59c81d78a1007fdb1295dc8 --- dali/devel-api/adaptor-framework/web-engine-plugin.h | 18 +++++++++++++++--- dali/devel-api/adaptor-framework/web-engine.cpp | 5 +++++ dali/devel-api/adaptor-framework/web-engine.h | 7 +++++++ dali/internal/web-engine/common/web-engine-impl.cpp | 5 +++++ dali/internal/web-engine/common/web-engine-impl.h | 5 +++++ 5 files changed, 37 insertions(+), 3 deletions(-) mode change 100755 => 100644 dali/devel-api/adaptor-framework/web-engine-plugin.h diff --git a/dali/devel-api/adaptor-framework/web-engine-plugin.h b/dali/devel-api/adaptor-framework/web-engine-plugin.h old mode 100755 new mode 100644 index a15a614..7a8aa63 --- a/dali/devel-api/adaptor-framework/web-engine-plugin.h +++ b/dali/devel-api/adaptor-framework/web-engine-plugin.h @@ -19,16 +19,16 @@ */ // EXTERNAL INCLUDES -#include -#include #include #include #include +#include +#include // INTERNAL INCLUDES -#include #include #include +#include namespace Dali { @@ -168,6 +168,11 @@ public: using WebEngineResponsePolicyDecidedCallback = std::function)>; /** + * @brief WebView callback related with navigation policy would be decided. + */ + using WebEngineNavigationPolicyDecidedCallback = std::function)>; + + /** * @brief Hit test callback called after hit test is created asynchronously. */ using WebEngineHitTestCreatedCallback = std::function)>; @@ -828,6 +833,13 @@ public: virtual void RegisterResponsePolicyDecidedCallback(WebEngineResponsePolicyDecidedCallback callback) = 0; /** + * @brief Callback to be called when navigation policy would be decided. + * + * @param[in] callback + */ + virtual void RegisterNavigationPolicyDecidedCallback(WebEngineNavigationPolicyDecidedCallback callback) = 0; + + /** * @brief Callback to be called when certificate need be confirmed. * * @param[in] callback diff --git a/dali/devel-api/adaptor-framework/web-engine.cpp b/dali/devel-api/adaptor-framework/web-engine.cpp index 3c1cf41..50812f6 100755 --- a/dali/devel-api/adaptor-framework/web-engine.cpp +++ b/dali/devel-api/adaptor-framework/web-engine.cpp @@ -526,6 +526,11 @@ void WebEngine::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::Web GetImplementation(*this).RegisterResponsePolicyDecidedCallback(callback); } +void WebEngine::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback) +{ + GetImplementation(*this).RegisterNavigationPolicyDecidedCallback(callback); +} + void WebEngine::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { GetImplementation(*this).RegisterCertificateConfirmedCallback(callback); diff --git a/dali/devel-api/adaptor-framework/web-engine.h b/dali/devel-api/adaptor-framework/web-engine.h index 2368ebc..d68920e 100755 --- a/dali/devel-api/adaptor-framework/web-engine.h +++ b/dali/devel-api/adaptor-framework/web-engine.h @@ -702,6 +702,13 @@ public: void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback); /** + * @brief Callback to be called when navigation policy would be decided. + * + * @param[in] callback + */ + void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback); + + /** * @brief Callback to be called when certificate need be confirmed. * * @param[in] callback diff --git a/dali/internal/web-engine/common/web-engine-impl.cpp b/dali/internal/web-engine/common/web-engine-impl.cpp index 2388aa7..75fe93f 100755 --- a/dali/internal/web-engine/common/web-engine-impl.cpp +++ b/dali/internal/web-engine/common/web-engine-impl.cpp @@ -620,6 +620,11 @@ void WebEngine::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::Web mPlugin->RegisterResponsePolicyDecidedCallback(callback); } +void WebEngine::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback) +{ + mPlugin->RegisterNavigationPolicyDecidedCallback(callback); +} + void WebEngine::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { mPlugin->RegisterCertificateConfirmedCallback(callback); diff --git a/dali/internal/web-engine/common/web-engine-impl.h b/dali/internal/web-engine/common/web-engine-impl.h index 39e9e59..d68f3a4 100755 --- a/dali/internal/web-engine/common/web-engine-impl.h +++ b/dali/internal/web-engine/common/web-engine-impl.h @@ -505,6 +505,11 @@ public: void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback); /** + @copydoc Dali::WebEngine::RegisterNavigationPolicyDecidedCallback() + */ + void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback); + + /** * @copydoc Dali::WebEngine::RegisterCertificateConfirmedCallback() */ void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback); -- 2.7.4