From 41e9b753d4490c1d20d35dc411653fecc16772cc Mon Sep 17 00:00:00 2001 From: "huayong.xu" Date: Tue, 6 Jul 2021 10:52:40 +0800 Subject: [PATCH] Replace Signal with std::function. Originally Signal is used to notify webview when callback of web engine is called. If Signal is called with a std::shared_ptr, lifecyle of object X would be managed by Signal only in csharp-binder. So if Signal are destroyed, object X would be destroyed too. This might cause some problem. This patch is to replace Signal with std::fuction, and replace std:shared_ptr with unique_ptr. Lifecycle of object X would not be associated with that of Signal. Change-Id: I3878d3a4a9bacc64d94e3dd2b55479da85980e90 --- .../dali-toolkit-test-utils/toolkit-web-engine.cpp | 282 ++++++++------ .../src/dali-toolkit/utc-Dali-WebView.cpp | 167 +++----- .../devel-api/controls/web-view/web-view.cpp | 68 ++-- .../devel-api/controls/web-view/web-view.h | 169 +++------ .../internal/controls/web-view/web-view-impl.cpp | 419 +++++---------------- .../internal/controls/web-view/web-view-impl.h | 188 ++------- 6 files changed, 437 insertions(+), 856 deletions(-) mode change 100644 => 100755 dali-toolkit/internal/controls/web-view/web-view-impl.cpp diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp index ec13bcb..e6f47a8 100755 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp @@ -1153,8 +1153,6 @@ class WebEngine: public Dali::BaseObject { public: - using JavaScriptEvaluatedResultCallback = std::function; - WebEngine() : mUrl() , mCurrentPlusOnePos( 0 ) @@ -1454,84 +1452,84 @@ public: } } - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal() + Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal() { - return mPageLoadStartedSignal; + return mFrameRenderedSignal; } - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal() + void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return mPageLoadInProgressSignal; + mPageLoadStartedCallback = callback; } - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal() + void RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return mPageLoadFinishedSignal; + mPageLoadInProgressCallback = callback; } - Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal() + void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return mPageLoadErrorSignal; + mPageLoadFinishedCallback = callback; } - Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() + void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback) { - return mScrollEdgeReachedSignal; + mPageLoadErrorCallback = callback; } - Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal() + void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback) { - return mUrlChangedSignal; + mScrollEdgeReachedCallback = callback; } - Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& FormRepostDecisionSignal() + void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback) { - return mFormRepostDecisionSignal; + mUrlChangedCallback = callback; } - Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal() + void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback) { - return mFrameRenderedSignal; + mFormRepostDecidedCallback = callback; } - Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& RequestInterceptorSignal() + void RegisterRequestInterceptorCallback(Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback callback) { - return mRequestInterceptorSignal; + mRequestInterceptorCallback = callback; } - Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& ConsoleMessageSignal() + void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback) { - return mConsoleMessageSignal; + mConsoleMessageCallback = callback; } - Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType& ResponsePolicyDecisionSignal() + void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback) { - return mResponsePolicyDecisionSignal; + mResponsePolicyDecisionCallback = callback; } - Dali::WebEnginePlugin::WebEngineCertificateSignalType& CertificateConfirmSignal() + void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - return mCertificateConfirmSignal; + mCertificateConfirmCallback = callback; } - Dali::WebEnginePlugin::WebEngineCertificateSignalType& SslCertificateChangedSignal() + void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - return mSslCertificateChangedSignal; + mSslCertificateChangedCallback = callback; } - Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& HttpAuthHandlerSignal() + void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback) { - return mHttpAuthHandlerSignal; + mHttpAuthHandlerCallback = callback; } - Dali::WebEnginePlugin::WebEngineContextMenuShownSignalType& ContextMenuShownSignal() + void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback) { - return mContextMenuShownSignal; + mContextMenuShownCallback = callback; } - Dali::WebEnginePlugin::WebEngineContextMenuHiddenSignalType& ContextMenuHiddenSignal() + void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback) { - return mContextMenuHiddenSignal; + mContextMenuHiddenCallback = callback; } std::string mUrl; @@ -1539,22 +1537,7 @@ public: size_t mCurrentPlusOnePos; std::string mUserAgent; - Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadStartedSignal; - Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadInProgressSignal; - Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadFinishedSignal; - Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType mPageLoadErrorSignal; - Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType mScrollEdgeReachedSignal; - Dali::WebEnginePlugin::WebEngineUrlChangedSignalType mUrlChangedSignal; - Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType mFormRepostDecisionSignal; - Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType mFrameRenderedSignal; - Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType mRequestInterceptorSignal; - Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType mConsoleMessageSignal; - Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType mResponsePolicyDecisionSignal; - Dali::WebEnginePlugin::WebEngineCertificateSignalType mCertificateConfirmSignal; - Dali::WebEnginePlugin::WebEngineCertificateSignalType mSslCertificateChangedSignal; - Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType mHttpAuthHandlerSignal; - Dali::WebEnginePlugin::WebEngineContextMenuShownSignalType mContextMenuShownSignal; - Dali::WebEnginePlugin::WebEngineContextMenuHiddenSignalType mContextMenuHiddenSignal; + Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType mFrameRenderedSignal; bool mEvaluating; float mPageZoomFactor; @@ -1569,14 +1552,31 @@ public: WebEngineCookieManager* mockWebEngineCookieManager; WebEngineSettings* mockWebEngineSettings; - std::vector mResultCallbacks; - Dali::WebEnginePlugin::JavaScriptAlertCallback mJavaScriptAlertCallback; - Dali::WebEnginePlugin::JavaScriptConfirmCallback mJavaScriptConfirmCallback; - Dali::WebEnginePlugin::JavaScriptPromptCallback mJavaScriptPromptCallback; - Dali::WebEnginePlugin::ScreenshotCapturedCallback mScreenshotCapturedCallback; - Dali::WebEnginePlugin::VideoPlayingCallback mVideoPlayingCallback; - Dali::WebEnginePlugin::GeolocationPermissionCallback mGeolocationPermissionCallback; - Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback mHitTestCreatedCallback; + std::vector mResultCallbacks; + + Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadStartedCallback; + Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadInProgressCallback; + Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadFinishedCallback; + Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback mPageLoadErrorCallback; + Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback mScrollEdgeReachedCallback; + Dali::WebEnginePlugin::WebEngineUrlChangedCallback mUrlChangedCallback; + Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback mFormRepostDecidedCallback; + Dali::WebEnginePlugin::WebEngineFrameRenderedCallback mFrameRenderedCallback; + Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback mRequestInterceptorCallback; + Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback mConsoleMessageCallback; + Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback mResponsePolicyDecisionCallback; + Dali::WebEnginePlugin::WebEngineCertificateCallback mCertificateConfirmCallback; + Dali::WebEnginePlugin::WebEngineCertificateCallback mSslCertificateChangedCallback; + Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback mHttpAuthHandlerCallback; + Dali::WebEnginePlugin::WebEngineContextMenuShownCallback mContextMenuShownCallback; + Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback mContextMenuHiddenCallback; + Dali::WebEnginePlugin::JavaScriptAlertCallback mJavaScriptAlertCallback; + Dali::WebEnginePlugin::JavaScriptConfirmCallback mJavaScriptConfirmCallback; + Dali::WebEnginePlugin::JavaScriptPromptCallback mJavaScriptPromptCallback; + Dali::WebEnginePlugin::ScreenshotCapturedCallback mScreenshotCapturedCallback; + Dali::WebEnginePlugin::VideoPlayingCallback mVideoPlayingCallback; + Dali::WebEnginePlugin::GeolocationPermissionCallback mGeolocationPermissionCallback; + Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback mHitTestCreatedCallback; }; @@ -1617,35 +1617,77 @@ bool OnLoadUrl() } gInstance->mHistory.push_back( gInstance->mUrl ); gInstance->mCurrentPlusOnePos++; - gInstance->mPageLoadStartedSignal.Emit( gInstance->mUrl ); - gInstance->mPageLoadInProgressSignal.Emit( gInstance->mUrl ); - gInstance->mPageLoadFinishedSignal.Emit( gInstance->mUrl ); - gInstance->mUrlChangedSignal.Emit( "http://new-test" ); - - std::shared_ptr repostDecision(new MockWebEngineFormRepostDecision()); - gInstance->mFormRepostDecisionSignal.Emit(std::move(repostDecision)); + if (gInstance->mPageLoadStartedCallback) + { + gInstance->mPageLoadStartedCallback( gInstance->mUrl ); + } + if (gInstance->mPageLoadInProgressCallback) + { + gInstance->mPageLoadInProgressCallback( gInstance->mUrl ); + } + if (gInstance->mPageLoadFinishedCallback) + { + gInstance->mPageLoadFinishedCallback( gInstance->mUrl ); + } + if (gInstance->mPageLoadErrorCallback) + { + std::unique_ptr error(new MockWebEngineLoadError(gInstance->mUrl)); + gInstance->mPageLoadErrorCallback(std::move(error)); + } + if (gInstance->mUrlChangedCallback) + { + gInstance->mUrlChangedCallback( "http://new-test" ); + } + if (gInstance->mFormRepostDecidedCallback) + { + std::unique_ptr repostDecision(new MockWebEngineFormRepostDecision()); + gInstance->mFormRepostDecidedCallback(std::move(repostDecision)); + } gInstance->mFrameRenderedSignal.Emit(); - std::shared_ptr interceptor(new MockWebEngineRequestInterceptor()); - gInstance->mRequestInterceptorSignal.Emit(std::move(interceptor)); - - std::shared_ptr error(new MockWebEngineLoadError(gInstance->mUrl)); - gInstance->mPageLoadErrorSignal.Emit(std::move(error)); - std::shared_ptr message(new MockWebEngineConsoleMessage()); - gInstance->mConsoleMessageSignal.Emit(std::move(message)); - std::shared_ptr policyDecision(new MockWebEnginePolicyDecision()); - gInstance->mResponsePolicyDecisionSignal.Emit(std::move(policyDecision)); - - std::shared_ptr certificate(new MockWebEngineCertificate()); - gInstance->mCertificateConfirmSignal.Emit(std::move(certificate)); - std::shared_ptr sslCertificate(new MockWebEngineCertificate()); - gInstance->mSslCertificateChangedSignal.Emit(std::move(sslCertificate)); - std::shared_ptr handler(new MockWebEngineHttpAuthHandler()); - gInstance->mHttpAuthHandlerSignal.Emit(std::move(handler)); - - std::shared_ptr menu(new MockWebEngineContextMenu()); - gInstance->mContextMenuShownSignal.Emit(std::move(menu)); - std::shared_ptr hiddenMenu(new MockWebEngineContextMenu()); - gInstance->mContextMenuHiddenSignal.Emit(std::move(hiddenMenu)); + if (gInstance->mFrameRenderedCallback) + { + gInstance->mFrameRenderedCallback(); + } + if (gInstance->mRequestInterceptorCallback) + { + std::unique_ptr interceptor(new MockWebEngineRequestInterceptor()); + gInstance->mRequestInterceptorCallback(std::move(interceptor)); + } + if (gInstance->mConsoleMessageCallback) + { + std::unique_ptr message(new MockWebEngineConsoleMessage()); + gInstance->mConsoleMessageCallback(std::move(message)); + } + if (gInstance->mResponsePolicyDecisionCallback) + { + std::unique_ptr policyDecision(new MockWebEnginePolicyDecision()); + gInstance->mResponsePolicyDecisionCallback(std::move(policyDecision)); + } + if (gInstance->mCertificateConfirmCallback) + { + std::unique_ptr certificate(new MockWebEngineCertificate()); + gInstance->mCertificateConfirmCallback(std::move(certificate)); + } + if (gInstance->mSslCertificateChangedCallback) + { + std::unique_ptr sslCertificate(new MockWebEngineCertificate()); + gInstance->mSslCertificateChangedCallback(std::move(sslCertificate)); + } + if (gInstance->mHttpAuthHandlerCallback) + { + std::unique_ptr handler(new MockWebEngineHttpAuthHandler()); + gInstance->mHttpAuthHandlerCallback(std::move(handler)); + } + if (gInstance->mContextMenuShownCallback) + { + std::unique_ptr menu(new MockWebEngineContextMenu()); + gInstance->mContextMenuShownCallback(std::move(menu)); + } + if (gInstance->mContextMenuHiddenCallback) + { + std::unique_ptr hiddenMenu(new MockWebEngineContextMenu()); + gInstance->mContextMenuHiddenCallback(std::move(hiddenMenu)); + } } return false; } @@ -1654,9 +1696,9 @@ bool OnScrollEdge() { DisconnectFromGlobalSignal( &OnScrollEdge ); - if( gInstance ) + if( gInstance && gInstance->mScrollEdgeReachedCallback ) { - gInstance->mScrollEdgeReachedSignal.Emit( Dali::WebEnginePlugin::ScrollEdge::BOTTOM ); + gInstance->mScrollEdgeReachedCallback( Dali::WebEnginePlugin::ScrollEdge::BOTTOM ); } return false; @@ -2269,84 +2311,84 @@ void WebEngine::EnableKeyEvents( bool enabled ) { } -Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadStartedSignal() +Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal() { - return Internal::Adaptor::GetImplementation( *this ).PageLoadStartedSignal(); + return Internal::Adaptor::GetImplementation(*this).FrameRenderedSignal(); } -Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadInProgressSignal() +void WebEngine::RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).PageLoadInProgressSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadStartedCallback(callback); } -Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadFinishedSignal() +void WebEngine::RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).PageLoadFinishedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadInProgressCallback(callback); } -Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& WebEngine::PageLoadErrorSignal() +void WebEngine::RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).PageLoadErrorSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadFinishedCallback(callback); } -Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& WebEngine::ScrollEdgeReachedSignal() +void WebEngine::RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeReachedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadErrorCallback(callback); } -Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& WebEngine::UrlChangedSignal() +void WebEngine::RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).UrlChangedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterScrollEdgeReachedCallback(callback); } -Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& WebEngine::FormRepostDecisionSignal() +void WebEngine::RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback) { - return Internal::Adaptor::GetImplementation(*this).FormRepostDecisionSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterUrlChangedCallback(callback); } -Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal() +void WebEngine::RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback) { - return Internal::Adaptor::GetImplementation(*this).FrameRenderedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterFormRepostDecidedCallback(callback); } -Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& WebEngine::RequestInterceptorSignal() +void WebEngine::RegisterRequestInterceptorCallback(Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback callback) { - return Internal::Adaptor::GetImplementation(*this).RequestInterceptorSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterRequestInterceptorCallback(callback); } -Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& WebEngine::ConsoleMessageSignal() +void WebEngine::RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback) { - return Internal::Adaptor::GetImplementation(*this).ConsoleMessageSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterConsoleMessageReceivedCallback(callback); } -Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType& WebEngine::ResponsePolicyDecisionSignal() +void WebEngine::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback) { - return Internal::Adaptor::GetImplementation(*this).ResponsePolicyDecisionSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterResponsePolicyDecidedCallback(callback); } -Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::CertificateConfirmSignal() +void WebEngine::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - return Internal::Adaptor::GetImplementation(*this).CertificateConfirmSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterCertificateConfirmedCallback(callback); } -Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::SslCertificateChangedSignal() +void WebEngine::RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - return Internal::Adaptor::GetImplementation(*this).SslCertificateChangedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterSslCertificateChangedCallback(callback); } -Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& WebEngine::HttpAuthHandlerSignal() +void WebEngine::RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback) { - return Internal::Adaptor::GetImplementation(*this).HttpAuthHandlerSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterHttpAuthHandlerCallback(callback); } -Dali::WebEnginePlugin::WebEngineContextMenuShownSignalType& WebEngine::ContextMenuShownSignal() +void WebEngine::RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).ContextMenuShownSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterContextMenuShownCallback(callback); } -Dali::WebEnginePlugin::WebEngineContextMenuHiddenSignalType& WebEngine::ContextMenuHiddenSignal() +void WebEngine::RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).ContextMenuHiddenSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterContextMenuHiddenCallback(callback); } } // namespace Dali; diff --git a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp index 302deb6..d4f9f00 100755 --- a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp @@ -61,7 +61,7 @@ static int gPageLoadStartedCallbackCalled = 0; static int gPageLoadInProgressCallbackCalled = 0; static int gPageLoadFinishedCallbackCalled = 0; static int gPageLoadErrorCallbackCalled = 0; -static std::shared_ptr gPageLoadErrorInstance = nullptr; +static std::unique_ptr gPageLoadErrorInstance = nullptr; static int gScrollEdgeReachedCallbackCalled = 0; static int gUrlChangedCallbackCalled = 0; static int gEvaluateJavaScriptCallbackCalled = 0; @@ -74,21 +74,21 @@ static int gGeolocationPermissionCallbackCalled = 0; static bool gTouched = false; static bool gHovered = false; static bool gWheelEventHandled = false; -static int gFormRepostDecisionCallbackCalled = 0; -static std::shared_ptr gFormRepostDecisionInstance = nullptr; +static int gFormRepostDecidedCallbackCalled = 0; +static std::unique_ptr gFormRepostDecidedInstance = nullptr; static int gFrameRenderedCallbackCalled = 0; static int gRequestInterceptorCallbackCalled = 0; -static std::shared_ptr gRequestInterceptorInstance = nullptr; +static std::unique_ptr gRequestInterceptorInstance = nullptr; static int gConsoleMessageCallbackCalled = 0; -static std::shared_ptr gConsoleMessageInstance = nullptr; +static std::unique_ptr gConsoleMessageInstance = nullptr; static int gResponsePolicyDecidedCallbackCalled = 0; -static std::shared_ptr gResponsePolicyDecisionInstance = nullptr; +static std::unique_ptr gResponsePolicyDecisionInstance = nullptr; static int gCertificateConfirmCallbackCalled = 0; -static std::shared_ptr gCertificateConfirmInstance = nullptr; +static std::unique_ptr gCertificateConfirmInstance = nullptr; static int gSslCertificateChangedCallbackCalled = 0; -static std::shared_ptr gSslCertificateInstance = nullptr; +static std::unique_ptr gSslCertificateInstance = nullptr; static int gHttpAuthHandlerCallbackCalled = 0; -static std::shared_ptr gHttpAuthInstance = nullptr; +static std::unique_ptr gHttpAuthInstance = nullptr; static int gSecurityOriginsAcquiredCallbackCalled = 0; static int gStorageUsageAcquiredCallbackCalled = 0; static int gFormPasswordsAcquiredCallbackCalled = 0; @@ -97,9 +97,9 @@ static int gMimeOverriddenCallbackCalled = 0; static std::vector> gSecurityOriginList; static std::vector> gPasswordDataList; static int gContextMenuShownCallbackCalled = 0; -static std::shared_ptr gContextMenuShownInstance = nullptr; +static std::unique_ptr gContextMenuShownInstance = nullptr; static int gContextMenuHiddenCallbackCalled = 0; -static std::shared_ptr gContextMenuHiddenInstance = nullptr; +static std::unique_ptr gContextMenuHiddenInstance = nullptr; static int gHitTestCreatedCallbackCalled = 0; static int gCookieManagerChangsWatchCallbackCalled = 0; @@ -117,33 +117,33 @@ struct CallbackFunctor bool* mCallbackFlag; }; -static void OnPageLoadStarted( WebView view, const std::string& url ) +static void OnPageLoadStarted(const std::string& url) { gPageLoadStartedCallbackCalled++; } -static void OnPageLoadInProgress( WebView view, const std::string& url ) +static void OnPageLoadInProgress(const std::string& url) { gPageLoadInProgressCallbackCalled++; } -static void OnPageLoadFinished( WebView view, const std::string& url ) +static void OnPageLoadFinished(const std::string& url) { gPageLoadFinishedCallbackCalled++; } -static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge edge ) +static void OnScrollEdgeReached(Dali::WebEnginePlugin::ScrollEdge edge) { gScrollEdgeReachedCallbackCalled++; } -static void OnResponsePolicyDecided(WebView view, std::shared_ptr decision) +static void OnResponsePolicyDecided(std::unique_ptr decision) { gResponsePolicyDecidedCallbackCalled++; gResponsePolicyDecisionInstance = std::move(decision); } -static void OnUrlChanged( WebView view, const std::string& url ) +static void OnUrlChanged(const std::string& url) { gUrlChangedCallbackCalled++; } @@ -154,30 +154,30 @@ static bool OnHitTestCreated(std::unique_ptr test) return true; } -static void OnPageLoadError(WebView view, std::shared_ptr error) +static void OnPageLoadError(std::unique_ptr error) { gPageLoadErrorCallbackCalled++; gPageLoadErrorInstance = std::move(error); } -static void OnEvaluateJavaScript( const std::string& result ) +static void OnEvaluateJavaScript(const std::string& result) { gEvaluateJavaScriptCallbackCalled++; } -static bool OnJavaScriptAlert( const std::string& result ) +static bool OnJavaScriptAlert(const std::string& result) { gJavaScriptAlertCallbackCalled++; return true; } -static bool OnJavaScriptConfirm( const std::string& result ) +static bool OnJavaScriptConfirm(const std::string& result) { gJavaScriptConfirmCallbackCalled++; return true; } -static bool OnJavaScriptPrompt( const std::string& meesage1, const std::string& message2 ) +static bool OnJavaScriptPrompt(const std::string& meesage1, const std::string& message2) { gJavaScriptPromptCallbackCalled++; return true; @@ -210,54 +210,54 @@ static void OnChangesWatch() gCookieManagerChangsWatchCallbackCalled++; } -static bool OnHovered( Actor actor, const Dali::HoverEvent& hover ) +static bool OnHovered(Actor actor, const Dali::HoverEvent& hover) { gHovered = true; return true; } -static bool OnWheelEvent( Actor actor, const Dali::WheelEvent& wheel ) +static bool OnWheelEvent(Actor actor, const Dali::WheelEvent& wheel) { gWheelEventHandled = true; return true; } -static void OnFormRepostDecision(WebView, std::shared_ptr decision) +static void OnFormRepostDecided(std::unique_ptr decision) { - gFormRepostDecisionCallbackCalled++; - gFormRepostDecisionInstance = std::move(decision); + gFormRepostDecidedCallbackCalled++; + gFormRepostDecidedInstance = std::move(decision); } -static void OnFrameRendered(WebView) +static void OnFrameRendered() { gFrameRenderedCallbackCalled++; } -static void OnRequestInterceptor(WebView view, std::shared_ptr interceptor) +static void OnRequestInterceptor(std::unique_ptr interceptor) { gRequestInterceptorCallbackCalled++; gRequestInterceptorInstance = std::move(interceptor); } -static void OnConsoleMessage(WebView view, std::shared_ptr message) +static void OnConsoleMessage(std::unique_ptr message) { gConsoleMessageCallbackCalled++; gConsoleMessageInstance = std::move(message); } -static void OnCertificateConfirm(WebView view, std::shared_ptr certificate ) +static void OnCertificateConfirm(std::unique_ptr certificate) { gCertificateConfirmCallbackCalled++; gCertificateConfirmInstance = std::move(certificate); } -static void OnSslCertificateChanged(WebView view, std::shared_ptr certificate ) +static void OnSslCertificateChanged(std::unique_ptr certificate) { gSslCertificateChangedCallbackCalled++; gSslCertificateInstance = std::move(certificate); } -static void OnHttpAuthHandler( WebView view, std::shared_ptr hander ) +static void OnHttpAuthHandler(std::unique_ptr hander) { gHttpAuthHandlerCallbackCalled++; gHttpAuthInstance = std::move(hander); @@ -293,13 +293,13 @@ static bool OnMimeOverridden(const std::string&, const std::string&, std::string return false; } -static void OnContextMenuShown(WebView view, std::shared_ptr menu) +static void OnContextMenuShown(std::unique_ptr menu) { gContextMenuShownCallbackCalled++; gContextMenuShownInstance = std::move(menu); } -static void OnContextMenuHidden(WebView view, std::shared_ptr menu) +static void OnContextMenuHidden(std::unique_ptr menu) { gContextMenuHiddenCallbackCalled++; gContextMenuHiddenInstance = std::move(menu); @@ -375,21 +375,10 @@ int UtcDaliWebViewPageNavigation(void) application.Render(); DALI_TEST_CHECK( view ); - ConnectionTracker* testTracker = new ConnectionTracker(); - view.PageLoadStartedSignal().Connect( &OnPageLoadStarted ); - view.PageLoadInProgressSignal().Connect( &OnPageLoadInProgress ); - view.PageLoadFinishedSignal().Connect( &OnPageLoadFinished ); - view.UrlChangedSignal().Connect( &OnUrlChanged ); - bool signal1 = false; - bool signal2 = false; - bool signal3 = false; - bool signal4 = false; - bool signal5 = false; - view.ConnectSignal( testTracker, "pageLoadStarted", CallbackFunctor(&signal1) ); - view.ConnectSignal( testTracker, "pageLoadInProgress", CallbackFunctor(&signal2) ); - view.ConnectSignal( testTracker, "pageLoadFinished", CallbackFunctor(&signal3) ); - view.ConnectSignal( testTracker, "urlChanged", CallbackFunctor(&signal4) ); - view.ConnectSignal( testTracker, "invalidname", CallbackFunctor(&signal5) ); + view.RegisterPageLoadStartedCallback( &OnPageLoadStarted ); + view.RegisterPageLoadInProgressCallback( &OnPageLoadInProgress ); + view.RegisterPageLoadFinishedCallback( &OnPageLoadFinished ); + view.RegisterUrlChangedCallback( &OnUrlChanged ); DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 0, TEST_LOCATION ); @@ -403,8 +392,6 @@ int UtcDaliWebViewPageNavigation(void) DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 & signal2 & signal3 & signal4 ); - DALI_TEST_CHECK( !signal5 ); view.LoadUrl( TEST_URL2 ); view.Suspend(); @@ -454,13 +441,8 @@ int UtcDaliWebViewPageLoadErrorConsoleMessage(void) application.Render(); DALI_TEST_CHECK( view ); - ConnectionTracker* testTracker = new ConnectionTracker(); - view.PageLoadErrorSignal().Connect( &OnPageLoadError ); - view.ConsoleMessageSignal().Connect( &OnConsoleMessage ); - bool signal1 = false; - bool signal2 = false; - view.ConnectSignal( testTracker, "pageLoadError", CallbackFunctor(&signal1) ); - view.ConnectSignal( testTracker, "consoleMessage", CallbackFunctor(&signal2) ); + view.RegisterPageLoadErrorCallback( &OnPageLoadError ); + view.RegisterConsoleMessageReceivedCallback( &OnConsoleMessage ); DALI_TEST_EQUALS( gPageLoadErrorCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gConsoleMessageCallbackCalled, 0, TEST_LOCATION ); @@ -468,7 +450,6 @@ int UtcDaliWebViewPageLoadErrorConsoleMessage(void) Test::EmitGlobalTimerSignal(); DALI_TEST_EQUALS( gPageLoadErrorCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gConsoleMessageCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 & signal2); // error code. DALI_TEST_CHECK(gPageLoadErrorInstance); @@ -794,7 +775,7 @@ int UtcDaliWebViewHoverAndWheel(void) END_TEST; } -int UtcDaliWebViewFormRepostDecisionFrameRendering(void) +int UtcDaliWebViewFormRepostDecidedFrameRendering(void) { ToolkitTestApplication application; @@ -808,28 +789,22 @@ int UtcDaliWebViewFormRepostDecisionFrameRendering(void) application.Render(); DALI_TEST_CHECK( view ); - ConnectionTracker* testTracker = new ConnectionTracker(); - view.FormRepostDecisionSignal().Connect(&OnFormRepostDecision); - view.FrameRenderedSignal().Connect(&OnFrameRendered); - bool signal1 = false; - bool signal2 = false; - view.ConnectSignal( testTracker, "formRepostDecision", CallbackFunctor(&signal1) ); - view.ConnectSignal( testTracker, "frameRendered", CallbackFunctor(&signal2) ); - DALI_TEST_EQUALS( gFormRepostDecisionCallbackCalled, 0, TEST_LOCATION ); + view.RegisterFormRepostDecidedCallback(&OnFormRepostDecided); + view.RegisterFrameRenderedCallback(&OnFrameRendered); + DALI_TEST_EQUALS( gFormRepostDecidedCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gFrameRenderedCallbackCalled, 0, TEST_LOCATION ); view.LoadUrl( TEST_URL1 ); Test::EmitGlobalTimerSignal(); - DALI_TEST_EQUALS( gFormRepostDecisionCallbackCalled, 1, TEST_LOCATION ); + DALI_TEST_EQUALS( gFormRepostDecidedCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gFrameRenderedCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 & signal2); // form repost decision. - DALI_TEST_CHECK(gFormRepostDecisionInstance); - gFormRepostDecisionInstance->Reply(true); + DALI_TEST_CHECK(gFormRepostDecidedInstance); + gFormRepostDecidedInstance->Reply(true); // reset - gFormRepostDecisionInstance = nullptr; + gFormRepostDecidedInstance = nullptr; END_TEST; } @@ -848,16 +823,9 @@ int UtcDaliWebViewSslCertificateHttpAuthentication(void) application.Render(); DALI_TEST_CHECK( view ); - ConnectionTracker* testTracker = new ConnectionTracker(); - view.CertificateConfirmSignal().Connect(&OnCertificateConfirm); - view.SslCertificateChangedSignal().Connect(&OnSslCertificateChanged); - view.HttpAuthHandlerSignal().Connect(&OnHttpAuthHandler); - bool signal1 = false; - bool signal2 = false; - bool signal3 = false; - view.ConnectSignal( testTracker, "certificateConfirm", CallbackFunctor(&signal1) ); - view.ConnectSignal( testTracker, "sslCertificateChanged", CallbackFunctor(&signal2) ); - view.ConnectSignal( testTracker, "httpAuthRequest", CallbackFunctor(&signal3) ); + view.RegisterCertificateConfirmedCallback(&OnCertificateConfirm); + view.RegisterSslCertificateChangedCallback(&OnSslCertificateChanged); + view.RegisterHttpAuthHandlerCallback(&OnHttpAuthHandler); DALI_TEST_EQUALS( gCertificateConfirmCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gSslCertificateChangedCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gHttpAuthHandlerCallbackCalled, 0, TEST_LOCATION ); @@ -867,7 +835,6 @@ int UtcDaliWebViewSslCertificateHttpAuthentication(void) DALI_TEST_EQUALS( gCertificateConfirmCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gSslCertificateChangedCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gHttpAuthHandlerCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 & signal2 & signal3); // certificate. DALI_TEST_CHECK(gCertificateConfirmInstance); @@ -1080,13 +1047,8 @@ int UtcDaliWebViewContextMenuShownAndHidden(void) DALI_TEST_CHECK( view ); // load url. - ConnectionTracker* testTracker = new ConnectionTracker(); - view.ContextMenuShownSignal().Connect( &OnContextMenuShown ); - view.ContextMenuHiddenSignal().Connect( &OnContextMenuHidden ); - bool signal1 = false; - bool signal2 = false; - view.ConnectSignal( testTracker, "contextMenuShown", CallbackFunctor(&signal1) ); - view.ConnectSignal( testTracker, "contextMenuHidden", CallbackFunctor(&signal2) ); + view.RegisterContextMenuShownCallback( &OnContextMenuShown ); + view.RegisterContextMenuHiddenCallback( &OnContextMenuHidden ); DALI_TEST_EQUALS( gContextMenuShownCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gContextMenuHiddenCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_CHECK(gContextMenuShownInstance == 0); @@ -1096,8 +1058,6 @@ int UtcDaliWebViewContextMenuShownAndHidden(void) Test::EmitGlobalTimerSignal(); DALI_TEST_EQUALS( gContextMenuShownCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gContextMenuHiddenCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 ); - DALI_TEST_CHECK( signal2 ); // check context meun & its items. DALI_TEST_CHECK(gContextMenuShownInstance != 0); @@ -1140,10 +1100,7 @@ int UtcDaliWebViewScrollBy(void) DALI_TEST_CHECK( view ); // load url. - ConnectionTracker* testTracker = new ConnectionTracker(); - view.ScrollEdgeReachedSignal().Connect( &OnScrollEdgeReached ); - bool signal1 = false; - view.ConnectSignal( testTracker, "scrollEdgeReached", CallbackFunctor(&signal1) ); + view.RegisterScrollEdgeReachedCallback( &OnScrollEdgeReached ); DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 0, TEST_LOCATION ); view.LoadUrl( TEST_URL1 ); @@ -1163,7 +1120,6 @@ int UtcDaliWebViewScrollBy(void) view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); DALI_TEST_CHECK( output.x == 150 && output.y == 150 ); DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 ); // scroll by and trigger scrollEdgeReached event. bool result = view.ScrollEdgeBy( 50, 50 ); @@ -1173,7 +1129,6 @@ int UtcDaliWebViewScrollBy(void) view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); DALI_TEST_CHECK( output.x == 200 && output.y == 200 ); DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 2, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 ); END_TEST; } @@ -1277,17 +1232,13 @@ int UtcDaliWebViewHttpRequestInterceptor(void) DALI_TEST_CHECK( view ); // load url. - ConnectionTracker* testTracker = new ConnectionTracker(); - view.RequestInterceptorSignal().Connect( &OnRequestInterceptor ); - bool signal1 = false; - view.ConnectSignal( testTracker, "requestInterceptor", CallbackFunctor(&signal1) ); + view.RegisterRequestInterceptorCallback( &OnRequestInterceptor ); DALI_TEST_EQUALS( gRequestInterceptorCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_CHECK(gRequestInterceptorInstance == 0); view.LoadUrl( TEST_URL1 ); Test::EmitGlobalTimerSignal(); DALI_TEST_EQUALS( gRequestInterceptorCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 ); // check request interceptor. DALI_TEST_CHECK(gRequestInterceptorInstance != 0); @@ -1311,17 +1262,13 @@ int UtcDaliWebViewResponsePolicyDecisionRequest(void) DALI_TEST_CHECK( view ); // load url. - ConnectionTracker* testTracker = new ConnectionTracker(); - view.ResponsePolicyDecisionSignal().Connect( &OnResponsePolicyDecided ); - bool signal1 = false; - view.ConnectSignal( testTracker, "responsePolicyDecided", CallbackFunctor(&signal1) ); + view.RegisterResponsePolicyDecidedCallback( &OnResponsePolicyDecided ); DALI_TEST_EQUALS( gResponsePolicyDecidedCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_CHECK(gResponsePolicyDecisionInstance == 0); view.LoadUrl( TEST_URL1 ); Test::EmitGlobalTimerSignal(); DALI_TEST_EQUALS( gResponsePolicyDecidedCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 ); // check response policy decision & its frame. DALI_TEST_CHECK(gResponsePolicyDecisionInstance != 0); diff --git a/dali-toolkit/devel-api/controls/web-view/web-view.cpp b/dali-toolkit/devel-api/controls/web-view/web-view.cpp index 4d79404..bfa5502 100755 --- a/dali-toolkit/devel-api/controls/web-view/web-view.cpp +++ b/dali-toolkit/devel-api/controls/web-view/web-view.cpp @@ -199,7 +199,7 @@ void WebView::GoBack() Dali::Toolkit::GetImpl(*this).GoBack(); } -void WebView::EvaluateJavaScript(const std::string& script, std::function resultHandler) +void WebView::EvaluateJavaScript(const std::string& script, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback resultHandler) { Dali::Toolkit::GetImpl(*this).EvaluateJavaScript(script, resultHandler); } @@ -209,7 +209,7 @@ void WebView::EvaluateJavaScript(const std::string& script) Dali::Toolkit::GetImpl(*this).EvaluateJavaScript(script, nullptr); } -void WebView::AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function handler) +void WebView::AddJavaScriptMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback handler) { Dali::Toolkit::GetImpl(*this).AddJavaScriptMessageHandler(exposedObjectName, handler); } @@ -314,84 +314,84 @@ void WebView::SetTtsFocus(bool focused) Dali::Toolkit::GetImpl(*this).SetTtsFocus(focused); } -WebView::WebViewPageLoadSignalType& WebView::PageLoadStartedSignal() +void WebView::RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return Dali::Toolkit::GetImpl(*this).PageLoadStartedSignal(); + Dali::Toolkit::GetImpl(*this).RegisterPageLoadStartedCallback(callback); } -WebView::WebViewPageLoadSignalType& WebView::PageLoadInProgressSignal() +void WebView::RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return Dali::Toolkit::GetImpl(*this).PageLoadInProgressSignal(); + Dali::Toolkit::GetImpl(*this).RegisterPageLoadInProgressCallback(callback); } -WebView::WebViewPageLoadSignalType& WebView::PageLoadFinishedSignal() +void WebView::RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return Dali::Toolkit::GetImpl(*this).PageLoadFinishedSignal(); + Dali::Toolkit::GetImpl(*this).RegisterPageLoadFinishedCallback(callback); } -WebView::WebViewPageLoadErrorSignalType& WebView::PageLoadErrorSignal() +void WebView::RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback) { - return Dali::Toolkit::GetImpl(*this).PageLoadErrorSignal(); + Dali::Toolkit::GetImpl(*this).RegisterPageLoadErrorCallback(callback); } -WebView::WebViewScrollEdgeReachedSignalType& WebView::ScrollEdgeReachedSignal() +void WebView::RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback) { - return Dali::Toolkit::GetImpl(*this).ScrollEdgeReachedSignal(); + Dali::Toolkit::GetImpl(*this).RegisterScrollEdgeReachedCallback(callback); } -WebView::WebViewUrlChangedSignalType& WebView::UrlChangedSignal() +void WebView::RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback) { - return Dali::Toolkit::GetImpl(*this).UrlChangedSignal(); + Dali::Toolkit::GetImpl(*this).RegisterUrlChangedCallback(callback); } -WebView::WebViewFormRepostDecisionSignalType& WebView::FormRepostDecisionSignal() +void WebView::RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback) { - return Dali::Toolkit::GetImpl(*this).FormRepostDecisionSignal(); + Dali::Toolkit::GetImpl(*this).RegisterFormRepostDecidedCallback(callback); } -WebView::WebViewFrameRenderedSignalType& WebView::FrameRenderedSignal() +void WebView::RegisterFrameRenderedCallback(Dali::WebEnginePlugin::WebEngineFrameRenderedCallback callback) { - return Dali::Toolkit::GetImpl(*this).FrameRenderedSignal(); + Dali::Toolkit::GetImpl(*this).RegisterFrameRenderedCallback(callback); } -WebView::WebViewRequestInterceptorSignalType& WebView::RequestInterceptorSignal() +void WebView::RegisterRequestInterceptorCallback(Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback callback) { - return Dali::Toolkit::GetImpl(*this).RequestInterceptorSignal(); + Dali::Toolkit::GetImpl(*this).RegisterRequestInterceptorCallback(callback); } -WebView::WebViewConsoleMessageSignalType& WebView::ConsoleMessageSignal() +void WebView::RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback) { - return Dali::Toolkit::GetImpl(*this).ConsoleMessageSignal(); + Dali::Toolkit::GetImpl(*this).RegisterConsoleMessageReceivedCallback(callback); } -WebView::WebViewResponsePolicyDecisionSignalType& WebView::ResponsePolicyDecisionSignal() +void WebView::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback) { - return Dali::Toolkit::GetImpl(*this).ResponsePolicyDecisionSignal(); + Dali::Toolkit::GetImpl(*this).RegisterResponsePolicyDecidedCallback(callback); } -WebView::WebViewCertificateSignalType& WebView::CertificateConfirmSignal() +void WebView::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - return Dali::Toolkit::GetImpl(*this).CertificateConfirmSignal(); + Dali::Toolkit::GetImpl(*this).RegisterCertificateConfirmedCallback(callback); } -WebView::WebViewCertificateSignalType& WebView::SslCertificateChangedSignal() +void WebView::RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - return Dali::Toolkit::GetImpl(*this).SslCertificateChangedSignal(); + Dali::Toolkit::GetImpl(*this).RegisterSslCertificateChangedCallback(callback); } -WebView::WebViewHttpAuthHandlerSignalType& WebView::HttpAuthHandlerSignal() +void WebView::RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback) { - return Dali::Toolkit::GetImpl(*this).HttpAuthHandlerSignal(); + Dali::Toolkit::GetImpl(*this).RegisterHttpAuthHandlerCallback(callback); } -WebView::WebViewContextMenuShownSignalType& WebView::ContextMenuShownSignal() +void WebView::RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback) { - return Dali::Toolkit::GetImpl(*this).ContextMenuShownSignal(); + Dali::Toolkit::GetImpl(*this).RegisterContextMenuShownCallback(callback); } -WebView::WebViewContextMenuHiddenSignalType& WebView::ContextMenuHiddenSignal() +void WebView::RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback) { - return Dali::Toolkit::GetImpl(*this).ContextMenuHiddenSignal(); + Dali::Toolkit::GetImpl(*this).RegisterContextMenuHiddenCallback(callback); } WebView::WebView(Internal::WebView& implementation) diff --git a/dali-toolkit/devel-api/controls/web-view/web-view.h b/dali-toolkit/devel-api/controls/web-view/web-view.h index 37c46f8..94c409f 100755 --- a/dali-toolkit/devel-api/controls/web-view/web-view.h +++ b/dali-toolkit/devel-api/controls/web-view/web-view.h @@ -33,9 +33,7 @@ namespace Toolkit class ImageView; class WebBackForwardList; class WebContext; -class WebContextMenu; class WebCookieManager; -class WebFormRepostDecision; class WebSettings; namespace Internal DALI_INTERNAL @@ -192,71 +190,6 @@ public: */ using WebViewScreenshotCapturedCallback = std::function; - /** - * @brief WebView signal type related with page loading. - */ - using WebViewPageLoadSignalType = Signal; - - /** - * @brief WebView signal type related with page loading error. - */ - using WebViewPageLoadErrorSignalType = Signal)>; - - /** - * @brief WebView signal type related with scroll edge reached. - */ - using WebViewScrollEdgeReachedSignalType = Signal; - - /** - * @brief WebView signal type related with url changed. - */ - using WebViewUrlChangedSignalType = Signal; - - /** - * @brief WebView signal type related with form repost decision. - */ - using WebViewFormRepostDecisionSignalType = Signal)>; - - /** - * @brief WebView signal type related with frame rendered. - */ - using WebViewFrameRenderedSignalType = Signal; - - /** - * @brief WebView signal type related with http request interceptor. - */ - using WebViewRequestInterceptorSignalType = Signal)>; - - /** - * @brief WebView signal type related with console message. - */ - using WebViewConsoleMessageSignalType = Signal)>; - - /** - * @brief WebView signal type related with response policy decision. - */ - using WebViewResponsePolicyDecisionSignalType = Signal)>; - - /** - * @brief WebView signal type related with certificate changed. - */ - using WebViewCertificateSignalType = Signal)>; - - /** - * @brief WebView signal type related with http authentication. - */ - using WebViewHttpAuthHandlerSignalType = Signal)>; - - /** - * @brief WebView signal type related with context menu shown. - */ - using WebViewContextMenuShownSignalType = Signal)>; - - /** - * @brief WebView signal type related with context menu hidden. - */ - using WebViewContextMenuHiddenSignalType = Signal)>; - public: /** * @brief Create an initialized WebView. @@ -500,9 +433,9 @@ public: * @brief Evaluate JavaScript code represented as a string. * * @param[in] script The JavaScript code - * @param[in] resultHandler The callback function to be called by the JavaScript runtime. This carries evaluation result + * @param[in] resultHandler The callback to be called by the JavaScript runtime. This carries evaluation result */ - void EvaluateJavaScript(const std::string& script, std::function resultHandler); + void EvaluateJavaScript(const std::string& script, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback resultHandler); /** * @brief Evaluate JavaScript code represented as a string. @@ -535,7 +468,7 @@ public: * @param[in] exposedObjectName The name of exposed object * @param[in] handler The callback function */ - void AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function handler); + void AddJavaScriptMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback handler); /** * @brief Register alert callback for javascript. @@ -690,116 +623,116 @@ public: void SetTtsFocus(bool focused); /** - * @brief Connect to this signal to be notified when page loading is started. + * @brief Callback to be called when page loading is started. * - * @return A signal object to connect with + * @param[in] callback */ - WebViewPageLoadSignalType& PageLoadStartedSignal(); + void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @brief Connect to this signal to be notified when page loading is in progress. + * @brief Callback to be called when page loading is in progress. * - * @return A signal object to connect with + * @param[in] callback */ - WebViewPageLoadSignalType& PageLoadInProgressSignal(); + void RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @brief Connect to this signal to be notified when page loading is finished. + * @brief Callback to be called when page loading is finished. * - * @return A signal object to connect with + * @param[in] callback */ - WebViewPageLoadSignalType& PageLoadFinishedSignal(); + void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @brief Connect to this signal to be notified when an error occurs in page loading. + * @brief Callback to be called when an error occurs in page loading. * - * @return A signal object to connect with + * @param[in] callback */ - WebViewPageLoadErrorSignalType& PageLoadErrorSignal(); + void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback); /** - * @brief Connect to this signal to be notified when scroll edge is reached. + * @brief Callback to be called when scroll edge is reached. * - * @return A signal object to connect with + * @param[in] callback */ - WebViewScrollEdgeReachedSignalType& ScrollEdgeReachedSignal(); + void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback); /** - * @brief Connect to this signal to be notified when url is changed. + * @brief Callback to be called when url is changed. * - * @return A signal object to connect with + * @param[in] callback */ - WebViewUrlChangedSignalType& UrlChangedSignal(); + void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback); /** - * @brief Connect to this signal to be notified when form repost decision is requested. + * @brief Callback to be called when form repost decision is requested. * - * @return A signal object to connect with. + * @param[in] callback */ - WebViewFormRepostDecisionSignalType& FormRepostDecisionSignal(); + void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback); /** - * @brief Connect to this signal to be notified when frame is rendered. + * @brief Callback to be called when frame is rendered. * - * @return A signal object to connect with. + * @param[in] callback */ - WebViewFrameRenderedSignalType& FrameRenderedSignal(); + void RegisterFrameRenderedCallback(Dali::WebEnginePlugin::WebEngineFrameRenderedCallback callback); /** - * @brief Connect to this signal to be notified when http request need be intercepted. + * @brief Callback to be called when http request need be intercepted. * - * @return A signal object to connect with. + * @param[in] callback */ - WebViewRequestInterceptorSignalType& RequestInterceptorSignal(); + void RegisterRequestInterceptorCallback(Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback callback); /** - * @brief Connect to this signal to be notified when console message will be logged. + * @brief Callback to be called when console message will be logged. * - * @return A signal object to connect with. + * @param[in] callback */ - WebViewConsoleMessageSignalType& ConsoleMessageSignal(); + void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback); /** - * @brief Connect to this signal to be notified when response policy would be decided. + * @brief Callback to be called when response policy would be decided. * - * @return A signal object to connect with. + * @param[in] callback */ - WebViewResponsePolicyDecisionSignalType& ResponsePolicyDecisionSignal(); + void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback); /** - * @brief Connect to this signal to be notified when certificate need be confirmed. + * @brief Callback to be called when certificate need be confirmed. * - * @return A signal object to connect with. + * @param[in] callback */ - WebViewCertificateSignalType& CertificateConfirmSignal(); + void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback); /** - * @brief Connect to this signal to be notified when ssl certificate is changed. + * @brief Callback to be called when ssl certificate is changed. * - * @return A signal object to connect with. + * @param[in] callback */ - WebViewCertificateSignalType& SslCertificateChangedSignal(); + void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback); /** - * @brief Connect to this signal to be notified when http authentication need be confirmed. + * @brief Callback to be called when http authentication need be confirmed. * - * @return A signal object to connect with. + * @param[in] callback */ - WebViewHttpAuthHandlerSignalType& HttpAuthHandlerSignal(); + void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback); /** - * @brief Connect to this signal to be notified when context menu would be shown. + * @brief Callback to be called when context menu would be shown. * - * @return A signal object to connect with. + * @param[in] callback */ - WebViewContextMenuShownSignalType& ContextMenuShownSignal(); + void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback); /** - * @brief Connect to this signal to be notified when context menu would be hidden. + * @brief Callback to be called when context menu would be hidden. * - * @return A signal object to connect with. + * @param[in] callback */ - WebViewContextMenuHiddenSignalType& ContextMenuHiddenSignal(); + void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback); public: // Not intended for application developers /// @cond internal diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp old mode 100644 new mode 100755 index 5adfe5d..c7805f8 --- a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp @@ -87,23 +87,6 @@ DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "pageZoomFactor", FLOAT, DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "textZoomFactor", FLOAT, TEXT_ZOOM_FACTOR ) DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "loadProgressPercentage", FLOAT, LOAD_PROGRESS_PERCENTAGE ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadStarted", PAGE_LOAD_STARTED_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadInProgress", PAGE_LOAD_IN_PROGRESS_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadFinished", PAGE_LOAD_FINISHED_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadError", PAGE_LOAD_ERROR_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "scrollEdgeReached", SCROLL_EDGE_REACHED_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "urlChanged", URL_CHANGED_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "formRepostDecision", FORM_REPOST_DECISION_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "frameRendered", FRAME_RENDERED_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "requestInterceptor", REQUEST_INTERCEPTOR_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "consoleMessage", CONSOLE_MESSAGE_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "responsePolicyDecided", POLICY_DECISION ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "certificateConfirm", CERTIFICATE_CONFIRM_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "sslCertificateChanged", SSL_CERTIFICATE_CHANGED_SIGNAL) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "httpAuthRequest", HTTP_AUTH_REQUEST_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "contextMenuShown", CONTEXT_MENU_SHOWN_SIGNAL ) -DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "contextMenuHidden", CONTEXT_MENU_HIDDEN_SIGNAL ) - DALI_TYPE_REGISTRATION_END() // clang-format on @@ -120,10 +103,6 @@ WebView::WebView(const std::string& locale, const std::string& timezoneId) mVisual(), mWebViewSize(Stage::GetCurrent().GetSize()), mWebEngine(), - mPageLoadStartedSignal(), - mPageLoadFinishedSignal(), - mPageLoadErrorSignal(), - mUrlChangedSignal(), mWebViewArea(0, 0, mWebViewSize.width, mWebViewSize.height), mVideoHoleEnabled(true), mMouseEventsEnabled(true), @@ -144,10 +123,6 @@ WebView::WebView(uint32_t argc, char** argv) mVisual(), mWebViewSize(Stage::GetCurrent().GetSize()), mWebEngine(), - mPageLoadStartedSignal(), - mPageLoadFinishedSignal(), - mPageLoadErrorSignal(), - mUrlChangedSignal(), mWebViewArea(0, 0, mWebViewSize.width, mWebViewSize.height), mVideoHoleEnabled(true), mMouseEventsEnabled(true), @@ -172,6 +147,7 @@ WebView::~WebView() { if(mWebEngine) { + mWebEngine.FrameRenderedSignal().Disconnect(this, &WebView::OnFrameRendered); mWebEngine.Destroy(); } } @@ -222,23 +198,7 @@ void WebView::OnInitialize() if(mWebEngine) { - mWebEngine.PageLoadStartedSignal().Connect(this, &WebView::OnPageLoadStarted); - mWebEngine.PageLoadInProgressSignal().Connect(this, &WebView::OnPageLoadInProgress); - mWebEngine.PageLoadFinishedSignal().Connect(this, &WebView::OnPageLoadFinished); - mWebEngine.PageLoadErrorSignal().Connect(this, &WebView::OnPageLoadError); - mWebEngine.ScrollEdgeReachedSignal().Connect(this, &WebView::OnScrollEdgeReached); - mWebEngine.UrlChangedSignal().Connect(this, &WebView::OnUrlChanged); - mWebEngine.FormRepostDecisionSignal().Connect(this, &WebView::OnFormRepostDecision); mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnFrameRendered); - mWebEngine.RequestInterceptorSignal().Connect(this, &WebView::OnInterceptRequest); - mWebEngine.ConsoleMessageSignal().Connect(this, &WebView::OnConsoleMessage); - mWebEngine.ResponsePolicyDecisionSignal().Connect(this, &WebView::OnResponsePolicyDecided); - mWebEngine.CertificateConfirmSignal().Connect(this, &WebView::OnCertificateConfirm); - mWebEngine.SslCertificateChangedSignal().Connect(this, &WebView::OnSslCertificateChanged); - mWebEngine.HttpAuthHandlerSignal().Connect(this, &WebView::OnHttpAuthenticationRequest); - mWebEngine.ContextMenuShownSignal().Connect(this, &WebView::OnContextMenuShown); - mWebEngine.ContextMenuHiddenSignal().Connect(this, &WebView::OnContextMenuHidden); - mWebContext = std::unique_ptr(new WebContext(mWebEngine.GetContext())); mWebCookieManager = std::unique_ptr(new WebCookieManager(mWebEngine.GetCookieManager())); mWebSettings = std::unique_ptr(new WebSettings(mWebEngine.GetSettings())); @@ -680,155 +640,136 @@ Dali::Toolkit::ImageView WebView::CreateImageView(Dali::PixelData pixel) const return imageView; } -Dali::Toolkit::WebView::WebViewPageLoadSignalType& WebView::PageLoadStartedSignal() +void WebView::RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return mPageLoadStartedSignal; -} - -Dali::Toolkit::WebView::WebViewPageLoadSignalType& WebView::PageLoadInProgressSignal() -{ - return mPageLoadInProgressSignal; -} - -Dali::Toolkit::WebView::WebViewPageLoadSignalType& WebView::PageLoadFinishedSignal() -{ - return mPageLoadFinishedSignal; -} - -Dali::Toolkit::WebView::WebViewPageLoadErrorSignalType& WebView::PageLoadErrorSignal() -{ - return mPageLoadErrorSignal; -} - -Dali::Toolkit::WebView::WebViewScrollEdgeReachedSignalType& WebView::ScrollEdgeReachedSignal() -{ - return mScrollEdgeReachedSignal; -} - -Dali::Toolkit::WebView::WebViewUrlChangedSignalType& WebView::UrlChangedSignal() -{ - return mUrlChangedSignal; -} - -Dali::Toolkit::WebView::WebViewFormRepostDecisionSignalType& WebView::FormRepostDecisionSignal() -{ - return mFormRepostDecisionSignal; -} - -Dali::Toolkit::WebView::WebViewFrameRenderedSignalType& WebView::FrameRenderedSignal() -{ - return mFrameRenderedSignal; + if(mWebEngine) + { + mWebEngine.RegisterPageLoadStartedCallback(callback); + } } -Dali::Toolkit::WebView::WebViewRequestInterceptorSignalType& WebView::RequestInterceptorSignal() +void WebView::RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return mRequestInterceptorSignal; + if(mWebEngine) + { + mWebEngine.RegisterPageLoadInProgressCallback(callback); + } } -Dali::Toolkit::WebView::WebViewConsoleMessageSignalType& WebView::ConsoleMessageSignal() +void WebView::RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return mConsoleMessageSignal; + if(mWebEngine) + { + mWebEngine.RegisterPageLoadFinishedCallback(callback); + } } -Dali::Toolkit::WebView::WebViewResponsePolicyDecisionSignalType& WebView::ResponsePolicyDecisionSignal() +void WebView::RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback) { - return mResponsePolicyDecisionSignal; + if(mWebEngine) + { + mWebEngine.RegisterPageLoadErrorCallback(callback); + } } -Dali::Toolkit::WebView::WebViewCertificateSignalType& WebView::CertificateConfirmSignal() +void WebView::RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback) { - return mCertificateConfirmSignal; + if(mWebEngine) + { + mWebEngine.RegisterScrollEdgeReachedCallback(callback); + } } -Dali::Toolkit::WebView::WebViewCertificateSignalType& WebView::SslCertificateChangedSignal() +void WebView::RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback) { - return mSslCertificateChangedSignal; + if(mWebEngine) + { + mWebEngine.RegisterUrlChangedCallback(callback); + } } -Dali::Toolkit::WebView::WebViewHttpAuthHandlerSignalType& WebView::HttpAuthHandlerSignal() +void WebView::RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback) { - return mHttpAuthHandlerSignal; + if(mWebEngine) + { + mWebEngine.RegisterFormRepostDecidedCallback(callback); + } } -Dali::Toolkit::WebView::WebViewContextMenuShownSignalType& WebView::ContextMenuShownSignal() +void WebView::RegisterFrameRenderedCallback(Dali::WebEnginePlugin::WebEngineFrameRenderedCallback callback) { - return mContextMenuShownSignal; + mFrameRenderedCallback = callback; } -Dali::Toolkit::WebView::WebViewContextMenuHiddenSignalType& WebView::ContextMenuHiddenSignal() +void WebView::RegisterRequestInterceptorCallback(Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback callback) { - return mContextMenuHiddenSignal; + if(mWebEngine) + { + mWebEngine.RegisterRequestInterceptorCallback(callback); + } } -void WebView::OnPageLoadStarted(const std::string& url) +void WebView::RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback) { - if(!mPageLoadStartedSignal.Empty()) + if(mWebEngine) { - Dali::Toolkit::WebView handle(GetOwner()); - mPageLoadStartedSignal.Emit(handle, url); + mWebEngine.RegisterConsoleMessageReceivedCallback(callback); } } -void WebView::OnPageLoadInProgress(const std::string& url) +void WebView::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback) { - if(!mPageLoadInProgressSignal.Empty()) + if(mWebEngine) { - Dali::Toolkit::WebView handle(GetOwner()); - mPageLoadInProgressSignal.Emit(handle, url); + mWebEngine.RegisterResponsePolicyDecidedCallback(callback); } } -void WebView::OnPageLoadFinished(const std::string& url) +void WebView::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - if(!mPageLoadFinishedSignal.Empty()) + if(mWebEngine) { - Dali::Toolkit::WebView handle(GetOwner()); - mPageLoadFinishedSignal.Emit(handle, url); + mWebEngine.RegisterCertificateConfirmedCallback(callback); } } -void WebView::OnPageLoadError(std::shared_ptr error) +void WebView::RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - if(!mPageLoadErrorSignal.Empty()) + if(mWebEngine) { - Dali::Toolkit::WebView handle(GetOwner()); - mPageLoadErrorSignal.Emit(handle, std::move(error)); + mWebEngine.RegisterSslCertificateChangedCallback(callback); } } -void WebView::OnScrollEdgeReached(Dali::WebEnginePlugin::ScrollEdge edge) +void WebView::RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback) { - if(!mScrollEdgeReachedSignal.Empty()) + if(mWebEngine) { - Dali::Toolkit::WebView handle(GetOwner()); - mScrollEdgeReachedSignal.Emit(handle, edge); + mWebEngine.RegisterHttpAuthHandlerCallback(callback); } } -void WebView::OnUrlChanged(const std::string& url) +void WebView::RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback) { - if(!mUrlChangedSignal.Empty()) + if(mWebEngine) { - Dali::Toolkit::WebView handle(GetOwner()); - mUrlChangedSignal.Emit(handle, url); + mWebEngine.RegisterContextMenuShownCallback(callback); } } -void WebView::OnFormRepostDecision(std::shared_ptr decision) +void WebView::RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback) { - if(!mFormRepostDecisionSignal.Empty()) + if(mWebEngine) { - Dali::Toolkit::WebView handle(GetOwner()); - mFormRepostDecisionSignal.Emit(handle, std::move(decision)); + mWebEngine.RegisterContextMenuHiddenCallback(callback); } } void WebView::OnFrameRendered() { - if(!mFrameRenderedSignal.Empty()) + if(mFrameRenderedCallback) { - Dali::Toolkit::WebView handle(GetOwner()); - mFrameRenderedSignal.Emit(handle); + mFrameRenderedCallback(); } } @@ -864,167 +805,72 @@ void WebView::OnScreenshotCaptured(Dali::PixelData pixel) } } -void WebView::OnInterceptRequest(std::shared_ptr interceptor) +void WebView::OnSceneConnection(int depth) { - if(!mRequestInterceptorSignal.Empty()) - { - Dali::Toolkit::WebView handle(GetOwner()); - mRequestInterceptorSignal.Emit(handle, std::move(interceptor)); - } + Control::OnSceneConnection(depth); + EnableBlendMode(!mVideoHoleEnabled); } -void WebView::OnConsoleMessage(std::shared_ptr message) +bool WebView::OnTouchEvent(Actor actor, const Dali::TouchEvent& touch) { - if(!mConsoleMessageSignal.Empty()) - { - Dali::Toolkit::WebView handle(GetOwner()); - mConsoleMessageSignal.Emit(handle, std::move(message)); - } -} + bool result = false; -void WebView::OnResponsePolicyDecided(std::shared_ptr decision) -{ - if(!mResponsePolicyDecisionSignal.Empty()) + if(mWebEngine) { - Dali::Toolkit::WebView handle(GetOwner()); - mResponsePolicyDecisionSignal.Emit(handle, std::move(decision)); + result = mWebEngine.SendTouchEvent(touch); } + return result; } -void WebView::OnCertificateConfirm(std::shared_ptr certificate) +bool WebView::OnKeyEvent(const Dali::KeyEvent& event) { - if(!mCertificateConfirmSignal.Empty()) - { - Dali::Toolkit::WebView handle(GetOwner()); - mCertificateConfirmSignal.Emit(handle, std::move(certificate)); - } -} + bool result = false; -void WebView::OnSslCertificateChanged(std::shared_ptr certificate) -{ - if(!mSslCertificateChangedSignal.Empty()) + if(mWebEngine) { - Dali::Toolkit::WebView handle(GetOwner()); - mSslCertificateChangedSignal.Emit(handle, std::move(certificate)); + result = mWebEngine.SendKeyEvent(event); } + return result; } -void WebView::OnHttpAuthenticationRequest(std::shared_ptr handler) +bool WebView::OnHoverEvent(Actor actor, const Dali::HoverEvent& hover) { - if(!mHttpAuthHandlerSignal.Empty()) + bool result = false; + if(mWebEngine && mMouseEventsEnabled) { - Dali::Toolkit::WebView handle(GetOwner()); - mHttpAuthHandlerSignal.Emit(handle, std::move(handler)); + result = mWebEngine.SendHoverEvent(hover); } + return result; } -void WebView::OnContextMenuShown(std::shared_ptr menu) +bool WebView::OnWheelEvent(Actor actor, const Dali::WheelEvent& wheel) { - if(!mContextMenuShownSignal.Empty()) + bool result = false; + if(mWebEngine && mMouseEventsEnabled) { - Dali::Toolkit::WebView handle(GetOwner()); - mContextMenuShownSignal.Emit(handle, std::move(menu)); + result = mWebEngine.SendWheelEvent(wheel); } + return result; } -void WebView::OnContextMenuHidden(std::shared_ptr menu) +void WebView::OnKeyInputFocusGained() { - if(!mContextMenuHiddenSignal.Empty()) + if(mWebEngine) { - Dali::Toolkit::WebView handle(GetOwner()); - mContextMenuHiddenSignal.Emit(handle, std::move(menu)); + mWebEngine.SetFocus(true); } + + EmitKeyInputFocusSignal(true); // Calls back into the Control hence done last. } -bool WebView::DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor) +void WebView::OnKeyInputFocusLost() { - Dali::BaseHandle handle(object); - - bool connected = false; - Toolkit::WebView webView = Toolkit::WebView::DownCast(handle); - - if(0 == strcmp(signalName.c_str(), PAGE_LOAD_STARTED_SIGNAL)) - { - webView.PageLoadStartedSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), PAGE_LOAD_IN_PROGRESS_SIGNAL)) - { - webView.PageLoadInProgressSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), PAGE_LOAD_FINISHED_SIGNAL)) - { - webView.PageLoadFinishedSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), PAGE_LOAD_ERROR_SIGNAL)) - { - webView.PageLoadErrorSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), SCROLL_EDGE_REACHED_SIGNAL)) - { - webView.ScrollEdgeReachedSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), URL_CHANGED_SIGNAL)) - { - webView.UrlChangedSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), FORM_REPOST_DECISION_SIGNAL)) - { - webView.FormRepostDecisionSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), FRAME_RENDERED_SIGNAL)) - { - webView.FrameRenderedSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), REQUEST_INTERCEPTOR_SIGNAL)) - { - webView.RequestInterceptorSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), CONSOLE_MESSAGE_SIGNAL)) - { - webView.ConsoleMessageSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), POLICY_DECISION)) - { - webView.ResponsePolicyDecisionSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), CERTIFICATE_CONFIRM_SIGNAL)) - { - webView.CertificateConfirmSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), SSL_CERTIFICATE_CHANGED_SIGNAL)) - { - webView.SslCertificateChangedSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), HTTP_AUTH_REQUEST_SIGNAL)) - { - webView.HttpAuthHandlerSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), CONTEXT_MENU_SHOWN_SIGNAL)) - { - webView.ContextMenuShownSignal().Connect(tracker, functor); - connected = true; - } - else if(0 == strcmp(signalName.c_str(), CONTEXT_MENU_HIDDEN_SIGNAL)) + if(mWebEngine) { - webView.ContextMenuHiddenSignal().Connect(tracker, functor); - connected = true; + mWebEngine.SetFocus(false); } - return connected; + EmitKeyInputFocusSignal(false); // Calls back into the Control hence done last. } Vector3 WebView::GetNaturalSize() @@ -1039,13 +885,6 @@ Vector3 WebView::GetNaturalSize() return Vector3(mWebViewSize); } -void WebView::OnSceneConnection(int depth) -{ - Control::OnSceneConnection(depth); - - EnableBlendMode(!mVideoHoleEnabled); -} - void WebView::SetProperty(BaseObject* object, Property::Index index, const Property::Value& value) { Toolkit::WebView webView = Toolkit::WebView::DownCast(Dali::BaseHandle(object)); @@ -1253,68 +1092,6 @@ Property::Value WebView::GetProperty(BaseObject* object, Property::Index propert return value; } -bool WebView::OnTouchEvent(Actor actor, const Dali::TouchEvent& touch) -{ - bool result = false; - - if(mWebEngine) - { - result = mWebEngine.SendTouchEvent(touch); - } - return result; -} - -bool WebView::OnKeyEvent(const Dali::KeyEvent& event) -{ - bool result = false; - - if(mWebEngine) - { - result = mWebEngine.SendKeyEvent(event); - } - return result; -} - -bool WebView::OnHoverEvent(Actor actor, const Dali::HoverEvent& hover) -{ - bool result = false; - if(mWebEngine && mMouseEventsEnabled) - { - result = mWebEngine.SendHoverEvent(hover); - } - return result; -} - -bool WebView::OnWheelEvent(Actor actor, const Dali::WheelEvent& wheel) -{ - bool result = false; - if(mWebEngine && mMouseEventsEnabled) - { - result = mWebEngine.SendWheelEvent(wheel); - } - return result; -} - -void WebView::OnKeyInputFocusGained() -{ - if(mWebEngine) - { - mWebEngine.SetFocus(true); - } - - EmitKeyInputFocusSignal(true); // Calls back into the Control hence done last. -} - -void WebView::OnKeyInputFocusLost() -{ - if(mWebEngine) - { - mWebEngine.SetFocus(false); - } - - EmitKeyInputFocusSignal(false); // Calls back into the Control hence done last. -} - void WebView::SetScrollPosition(int32_t x, int32_t y) { if(mWebEngine) diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.h b/dali-toolkit/internal/controls/web-view/web-view-impl.h index a9917fd..c2d6742 100755 --- a/dali-toolkit/internal/controls/web-view/web-view-impl.h +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.h @@ -205,12 +205,12 @@ public: /** * @copydoc Dali::Toolkit::WebView::EvaluateJavaScript() */ - void EvaluateJavaScript(const std::string& script, std::function resultHandler); + void EvaluateJavaScript(const std::string& script, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback resultHandler); /** * @copydoc Dali::Toolkit::WebView::AddJavaScriptMessageHandler() */ - void AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function handler); + void AddJavaScriptMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback handler); /** * @copydoc Dali::Toolkit::WebView::RegisterJavaScriptAlertCallback() @@ -313,84 +313,84 @@ public: void SetTtsFocus(bool focused); /** - * @copydoc Dali::Toolkit::WebView::PageLoadStartedSignal() + * @copydoc Dali::Toolkit::WebView::RegisterPageLoadStartedCallback() */ - Dali::Toolkit::WebView::WebViewPageLoadSignalType& PageLoadStartedSignal(); + void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @copydoc Dali::Toolkit::WebView::PageLoadInProgressSignal() + * @copydoc Dali::Toolkit::WebView::RegisterPageLoadInProgressCallback() */ - Dali::Toolkit::WebView::WebViewPageLoadSignalType& PageLoadInProgressSignal(); + void RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @copydoc Dali::Toolkit::WebView::PageLoadFinishedSignal() + * @copydoc Dali::Toolkit::WebView::RegisterPageLoadFinishedCallback() */ - Dali::Toolkit::WebView::WebViewPageLoadSignalType& PageLoadFinishedSignal(); + void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @copydoc Dali::Toolkit::WebView::PageLoadErrorSignal() + * @copydoc Dali::Toolkit::WebView::RegisterPageLoadErrorCallback() */ - Dali::Toolkit::WebView::WebViewPageLoadErrorSignalType& PageLoadErrorSignal(); + void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback); /** - * @copydoc Dali::Toolkit::WebView::ScrollEdgeReachedSignal() + * @copydoc Dali::Toolkit::WebView::RegisterScrollEdgeReachedCallback() */ - Dali::Toolkit::WebView::WebViewScrollEdgeReachedSignalType& ScrollEdgeReachedSignal(); + void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback); /** - * @copydoc Dali::Toolkit::WebView::UrlChangedSignal() + * @copydoc Dali::Toolkit::WebView::RegisterUrlChangedCallback() */ - Dali::Toolkit::WebView::WebViewUrlChangedSignalType& UrlChangedSignal(); + void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback); /** - * @copydoc Dali::Toolkit::WebView::FormRepostDecisionSignal() + * @copydoc Dali::Toolkit::WebView::RegisterFormRepostDecidedCallback() */ - Dali::Toolkit::WebView::WebViewFormRepostDecisionSignalType& FormRepostDecisionSignal(); + void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback); /** - * @copydoc Dali::Toolkit::WebView::FrameRenderedSignal() + * @copydoc Dali::Toolkit::WebView::RegisterFrameRenderedCallback() */ - Dali::Toolkit::WebView::WebViewFrameRenderedSignalType& FrameRenderedSignal(); + void RegisterFrameRenderedCallback(Dali::WebEnginePlugin::WebEngineFrameRenderedCallback callback); /** - * @copydoc Dali::Toolkit::WebView::RequestInterceptorSignal() + * @copydoc Dali::Toolkit::WebView::RegisterRequestInterceptorCallback() */ - Dali::Toolkit::WebView::WebViewRequestInterceptorSignalType& RequestInterceptorSignal(); + void RegisterRequestInterceptorCallback(Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback callback); /** - * @copydoc Dali::Toolkit::WebView::ConsoleMessageSignal() + * @copydoc Dali::Toolkit::WebView::RegisterConsoleMessageReceivedCallback() */ - Dali::Toolkit::WebView::WebViewConsoleMessageSignalType& ConsoleMessageSignal(); + void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback); /** - * @copydoc Dali::Toolkit::WebView::ResponsePolicyDecisionSignal() + * @copydoc Dali::Toolkit::WebView::RegisterResponsePolicyDecidedCallback() */ - Dali::Toolkit::WebView::WebViewResponsePolicyDecisionSignalType& ResponsePolicyDecisionSignal(); + void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback); /** - * @copydoc Dali::Toolkit::WebView::CertificateConfirmSignal() + * @copydoc Dali::Toolkit::WebView::RegisterCertificateConfirmedCallback() */ - Dali::Toolkit::WebView::WebViewCertificateSignalType& CertificateConfirmSignal(); + void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback); /** - * @copydoc Dali::Toolkit::WebView::SslCertificateChangedSignal() + * @copydoc Dali::Toolkit::WebView::RegisterSslCertificateChangedCallback() */ - Dali::Toolkit::WebView::WebViewCertificateSignalType& SslCertificateChangedSignal(); + void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback); /** - * @copydoc Dali::Toolkit::WebView::HttpAuthHandlerSignal() + * @copydoc Dali::Toolkit::WebView::RegisterHttpAuthHandlerCallback() */ - Dali::Toolkit::WebView::WebViewHttpAuthHandlerSignalType& HttpAuthHandlerSignal(); + void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback); /** - * @copydoc Dali::Toolkit::WebView::ContextMenuShownSignal() + * @copydoc Dali::Toolkit::WebView::RegisterContextMenuShownCallback() */ - Dali::Toolkit::WebView::WebViewContextMenuShownSignalType& ContextMenuShownSignal(); + void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback); /** - * @copydoc Dali::Toolkit::WebView::ContextMenuHiddenSignal() + * @copydoc Dali::Toolkit::WebView::RegisterContextMenuHiddenCallback() */ - Dali::Toolkit::WebView::WebViewContextMenuHiddenSignalType& ContextMenuHiddenSignal(); + void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback); public: // Properties /** @@ -411,17 +411,6 @@ public: // Properties */ static Dali::Property::Value GetProperty(Dali::BaseObject* object, Dali::Property::Index propertyIndex); - /** - * Connects a callback function with the object's signals. - * @param[in] object The object providing the signal. - * @param[in] tracker Used to disconnect the signal. - * @param[in] signalName The signal to connect to. - * @param[in] functor A newly allocated FunctorDelegate. - * @return True if the signal was connected. - * @post If a signal was connected, ownership of functor was passed to CallbackBase. Otherwise the c - */ - static bool DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor); - private: // From Control /** * @copydoc Toolkit::Control::OnInitialize() @@ -622,43 +611,6 @@ private: Dali::Toolkit::ImageView CreateImageView(Dali::PixelData pixel) const; /** - * @brief Callback function to be called when page load started. - * @param[in] url The url currently being loaded - */ - void OnPageLoadStarted(const std::string& url); - - /** - * @brief Callback function to be called when page is loading in progress. - * @param[in] url The url currently being loaded - */ - void OnPageLoadInProgress(const std::string& url); - - /** - * @brief Callback function to be called when page load finished. - * @param[in] url The url currently being loaded - */ - void OnPageLoadFinished(const std::string& url); - - /** - * @brief Callback function to be called when there is an error in page loading. - * @param[in] url The url currently being loaded - * @param[in] errorCode The error code - */ - void OnPageLoadError(std::shared_ptr error); - - /** - * @brief Callback function to be called when scroll edge is reached. - * @param[in] edge The scroll edge reached. - */ - void OnScrollEdgeReached(Dali::WebEnginePlugin::ScrollEdge edge); - - /** - * @brief Callback function to be called when url is changed. - * @param[in] url The url currently being loaded - */ - void OnUrlChanged(const std::string& url); - - /** * @brief Signal occurs when the Web View has been touched. * @param[in] actor The Actor Touched * @param[in] touch The Touch Data. @@ -683,12 +635,6 @@ private: bool OnWheelEvent(Actor actor, const Dali::WheelEvent& wheel); /** - * @brief Callback function to be called when form repost decision need be checked. - * @param[in] decision The new decision for form repost - */ - void OnFormRepostDecision(std::shared_ptr decision); - - /** * @brief Callback function to be called when frame is rendered. */ void OnFrameRendered(); @@ -712,76 +658,11 @@ private: */ void OnScreenshotCaptured(Dali::PixelData pixel); - /** - * @brief Callback function to be called when http request need be intercepted. - * @param [in] request The http request interceptor. - */ - void OnInterceptRequest(std::shared_ptr interceptor); - - /** - * @brief Callback function to be called when console message will be logged. - * @param[in] message The message logged. - */ - void OnConsoleMessage(std::shared_ptr message); - - /** - * @brief Callback function to be called when response policy need be decided. - * @param[in] decision The policy decided. - */ - void OnResponsePolicyDecided(std::shared_ptr decision); - - /** - * @brief Callback function to be called when certificate need be confirmed. - * @param[in] certificate The certificate policy decision. - */ - void OnCertificateConfirm(std::shared_ptr certificate); - - /** - * @brief Callback function to be called when ssl certificate is changed. - * @param[in] certificate The certificate information received. - */ - void OnSslCertificateChanged(std::shared_ptr certificate); - - /** - * @brief Callback function to be called when http authentication need be confirmed. - * @param[in] handler The handler for http authentication - */ - void OnHttpAuthenticationRequest(std::shared_ptr handler); - - /** - * @brief Callback function to be called when context menu would be shown. - * @param[in] e The scroll edge reached. - */ - void OnContextMenuShown(std::shared_ptr menu); - - /** - * @brief Callback function to be called when context menu would be hidden. - * @param[in] url The url currently being loaded - */ - void OnContextMenuHidden(std::shared_ptr menu); - private: Dali::Toolkit::Visual::Base mVisual; Dali::Size mWebViewSize; Dali::WebEngine mWebEngine; - Dali::Toolkit::WebView::WebViewPageLoadSignalType mPageLoadStartedSignal; - Dali::Toolkit::WebView::WebViewPageLoadSignalType mPageLoadInProgressSignal; - Dali::Toolkit::WebView::WebViewPageLoadSignalType mPageLoadFinishedSignal; - Dali::Toolkit::WebView::WebViewPageLoadErrorSignalType mPageLoadErrorSignal; - Dali::Toolkit::WebView::WebViewUrlChangedSignalType mUrlChangedSignal; - Dali::Toolkit::WebView::WebViewScrollEdgeReachedSignalType mScrollEdgeReachedSignal; - Dali::Toolkit::WebView::WebViewFormRepostDecisionSignalType mFormRepostDecisionSignal; - Dali::Toolkit::WebView::WebViewFrameRenderedSignalType mFrameRenderedSignal; - Dali::Toolkit::WebView::WebViewRequestInterceptorSignalType mRequestInterceptorSignal; - Dali::Toolkit::WebView::WebViewConsoleMessageSignalType mConsoleMessageSignal; - Dali::Toolkit::WebView::WebViewResponsePolicyDecisionSignalType mResponsePolicyDecisionSignal; - Dali::Toolkit::WebView::WebViewCertificateSignalType mCertificateConfirmSignal; - Dali::Toolkit::WebView::WebViewCertificateSignalType mSslCertificateChangedSignal; - Dali::Toolkit::WebView::WebViewHttpAuthHandlerSignalType mHttpAuthHandlerSignal; - Dali::Toolkit::WebView::WebViewContextMenuShownSignalType mContextMenuShownSignal; - Dali::Toolkit::WebView::WebViewContextMenuHiddenSignalType mContextMenuHiddenSignal; - std::unique_ptr mWebContext; std::unique_ptr mWebCookieManager; std::unique_ptr mWebSettings; @@ -796,6 +677,7 @@ private: bool mKeyEventsEnabled; Dali::Toolkit::WebView::WebViewScreenshotCapturedCallback mScreenshotCapturedCallback; + Dali::WebEnginePlugin::WebEngineFrameRenderedCallback mFrameRenderedCallback; }; } // namespace Internal -- 2.7.4