static int gPageLoadInProgressCallbackCalled = 0;
static int gPageLoadFinishedCallbackCalled = 0;
static int gPageLoadErrorCallbackCalled = 0;
- static std::shared_ptr<Dali::WebEngineLoadError> gPageLoadErrorInstance = nullptr;
+ static std::unique_ptr<Dali::WebEngineLoadError> gPageLoadErrorInstance = nullptr;
static int gScrollEdgeReachedCallbackCalled = 0;
static int gUrlChangedCallbackCalled = 0;
static int gEvaluateJavaScriptCallbackCalled = 0;
static bool gTouched = false;
static bool gHovered = false;
static bool gWheelEventHandled = false;
- static int gFormRepostDecisionCallbackCalled = 0;
- static std::shared_ptr<Dali::WebEngineFormRepostDecision> gFormRepostDecisionInstance = nullptr;
+ static int gFormRepostDecidedCallbackCalled = 0;
+ static std::unique_ptr<Dali::WebEngineFormRepostDecision> gFormRepostDecidedInstance = nullptr;
static int gFrameRenderedCallbackCalled = 0;
static int gRequestInterceptorCallbackCalled = 0;
- static std::shared_ptr<Dali::WebEngineRequestInterceptor> gRequestInterceptorInstance = nullptr;
+ static std::unique_ptr<Dali::WebEngineRequestInterceptor> gRequestInterceptorInstance = nullptr;
static int gConsoleMessageCallbackCalled = 0;
- static std::shared_ptr<Dali::WebEngineConsoleMessage> gConsoleMessageInstance = nullptr;
+ static std::unique_ptr<Dali::WebEngineConsoleMessage> gConsoleMessageInstance = nullptr;
static int gResponsePolicyDecidedCallbackCalled = 0;
- static std::shared_ptr<Dali::WebEnginePolicyDecision> gResponsePolicyDecisionInstance = nullptr;
+ static std::unique_ptr<Dali::WebEnginePolicyDecision> gResponsePolicyDecisionInstance = nullptr;
static int gCertificateConfirmCallbackCalled = 0;
- static std::shared_ptr<Dali::WebEngineCertificate> gCertificateConfirmInstance = nullptr;
+ static std::unique_ptr<Dali::WebEngineCertificate> gCertificateConfirmInstance = nullptr;
static int gSslCertificateChangedCallbackCalled = 0;
- static std::shared_ptr<Dali::WebEngineCertificate> gSslCertificateInstance = nullptr;
+ static std::unique_ptr<Dali::WebEngineCertificate> gSslCertificateInstance = nullptr;
static int gHttpAuthHandlerCallbackCalled = 0;
- static std::shared_ptr<Dali::WebEngineHttpAuthHandler> gHttpAuthInstance = nullptr;
+ static std::unique_ptr<Dali::WebEngineHttpAuthHandler> gHttpAuthInstance = nullptr;
static int gSecurityOriginsAcquiredCallbackCalled = 0;
static int gStorageUsageAcquiredCallbackCalled = 0;
static int gFormPasswordsAcquiredCallbackCalled = 0;
static std::vector<std::unique_ptr<Dali::WebEngineSecurityOrigin>> gSecurityOriginList;
static std::vector<std::unique_ptr<Dali::WebEngineContext::PasswordData>> gPasswordDataList;
static int gContextMenuShownCallbackCalled = 0;
- static std::shared_ptr<Dali::WebEngineContextMenu> gContextMenuShownInstance = nullptr;
+ static std::unique_ptr<Dali::WebEngineContextMenu> gContextMenuShownInstance = nullptr;
static int gContextMenuHiddenCallbackCalled = 0;
- static std::shared_ptr<Dali::WebEngineContextMenu> gContextMenuHiddenInstance = nullptr;
+ static std::unique_ptr<Dali::WebEngineContextMenu> gContextMenuHiddenInstance = nullptr;
static int gHitTestCreatedCallbackCalled = 0;
static int gCookieManagerChangsWatchCallbackCalled = 0;
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<Dali::WebEnginePolicyDecision> decision)
+ static void OnResponsePolicyDecided(std::unique_ptr<Dali::WebEnginePolicyDecision> decision)
{
gResponsePolicyDecidedCallbackCalled++;
gResponsePolicyDecisionInstance = std::move(decision);
}
- static void OnUrlChanged( WebView view, const std::string& url )
+ static void OnUrlChanged(const std::string& url)
{
gUrlChangedCallbackCalled++;
}
return true;
}
- static void OnPageLoadError(WebView view, std::shared_ptr<Dali::WebEngineLoadError> error)
+ static void OnPageLoadError(std::unique_ptr<Dali::WebEngineLoadError> 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;
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<Dali::WebEngineFormRepostDecision> decision)
+ static void OnFormRepostDecided(std::unique_ptr<Dali::WebEngineFormRepostDecision> 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<Dali::WebEngineRequestInterceptor> interceptor)
+ static void OnRequestInterceptor(std::unique_ptr<Dali::WebEngineRequestInterceptor> interceptor)
{
gRequestInterceptorCallbackCalled++;
gRequestInterceptorInstance = std::move(interceptor);
}
- static void OnConsoleMessage(WebView view, std::shared_ptr<Dali::WebEngineConsoleMessage> message)
+ static void OnConsoleMessage(std::unique_ptr<Dali::WebEngineConsoleMessage> message)
{
gConsoleMessageCallbackCalled++;
gConsoleMessageInstance = std::move(message);
}
- static void OnCertificateConfirm(WebView view, std::shared_ptr<Dali::WebEngineCertificate> certificate )
+ static void OnCertificateConfirm(std::unique_ptr<Dali::WebEngineCertificate> certificate)
{
gCertificateConfirmCallbackCalled++;
gCertificateConfirmInstance = std::move(certificate);
}
- static void OnSslCertificateChanged(WebView view, std::shared_ptr<Dali::WebEngineCertificate> certificate )
+ static void OnSslCertificateChanged(std::unique_ptr<Dali::WebEngineCertificate> certificate)
{
gSslCertificateChangedCallbackCalled++;
gSslCertificateInstance = std::move(certificate);
}
- static void OnHttpAuthHandler( WebView view, std::shared_ptr<Dali::WebEngineHttpAuthHandler> hander )
+ static void OnHttpAuthHandler(std::unique_ptr<Dali::WebEngineHttpAuthHandler> hander)
{
gHttpAuthHandlerCallbackCalled++;
gHttpAuthInstance = std::move(hander);
return false;
}
- static void OnContextMenuShown(WebView view, std::shared_ptr<Dali::WebEngineContextMenu> menu)
+ static void OnContextMenuShown(std::unique_ptr<Dali::WebEngineContextMenu> menu)
{
gContextMenuShownCallbackCalled++;
gContextMenuShownInstance = std::move(menu);
}
- static void OnContextMenuHidden(WebView view, std::shared_ptr<Dali::WebEngineContextMenu> menu)
+ static void OnContextMenuHidden(std::unique_ptr<Dali::WebEngineContextMenu> menu)
{
gContextMenuHiddenCallbackCalled++;
gContextMenuHiddenInstance = std::move(menu);
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 );
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();
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 );
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);
WebView view = WebView::New();
DALI_TEST_CHECK( view );
- const bool kDefaultValue = true;
- const bool kTestValue = false;
+ const bool kDefaultValue = false;
+ const bool kTestValue = true;
// Check default value
bool output;
END_TEST;
}
- int UtcDaliWebViewFormRepostDecisionFrameRendering(void)
+ int UtcDaliWebViewFormRepostDecidedFrameRendering(void)
{
ToolkitTestApplication application;
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;
}
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 );
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);
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);
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);
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 );
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 );
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;
}
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);
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);
class ImageView;
class WebBackForwardList;
class WebContext;
- class WebContextMenu;
class WebCookieManager;
- class WebFormRepostDecision;
class WebSettings;
namespace Internal DALI_INTERNAL
/**
* @brief Whether video hole is enabled or not.
* @details name "videoHoleEnabled", type Property::BOOLEAN.
- * @note The value is read-only.
+ * @note False by default.
*/
VIDEO_HOLE_ENABLED,
*/
using WebViewScreenshotCapturedCallback = std::function<void(Dali::Toolkit::ImageView)>;
- /**
- * @brief WebView signal type related with page loading.
- */
- using WebViewPageLoadSignalType = Signal<void(WebView, const std::string&)>;
-
- /**
- * @brief WebView signal type related with page loading error.
- */
- using WebViewPageLoadErrorSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineLoadError>)>;
-
- /**
- * @brief WebView signal type related with scroll edge reached.
- */
- using WebViewScrollEdgeReachedSignalType = Signal<void(WebView, Dali::WebEnginePlugin::ScrollEdge)>;
-
- /**
- * @brief WebView signal type related with url changed.
- */
- using WebViewUrlChangedSignalType = Signal<void(WebView, const std::string&)>;
-
- /**
- * @brief WebView signal type related with form repost decision.
- */
- using WebViewFormRepostDecisionSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineFormRepostDecision>)>;
-
- /**
- * @brief WebView signal type related with frame rendered.
- */
- using WebViewFrameRenderedSignalType = Signal<void(WebView)>;
-
- /**
- * @brief WebView signal type related with http request interceptor.
- */
- using WebViewRequestInterceptorSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineRequestInterceptor>)>;
-
- /**
- * @brief WebView signal type related with console message.
- */
- using WebViewConsoleMessageSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineConsoleMessage>)>;
-
- /**
- * @brief WebView signal type related with response policy decision.
- */
- using WebViewResponsePolicyDecisionSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEnginePolicyDecision>)>;
-
- /**
- * @brief WebView signal type related with certificate changed.
- */
- using WebViewCertificateSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineCertificate>)>;
-
- /**
- * @brief WebView signal type related with http authentication.
- */
- using WebViewHttpAuthHandlerSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineHttpAuthHandler>)>;
-
- /**
- * @brief WebView signal type related with context menu shown.
- */
- using WebViewContextMenuShownSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineContextMenu>)>;
-
- /**
- * @brief WebView signal type related with context menu hidden.
- */
- using WebViewContextMenuHiddenSignalType = Signal<void(WebView, std::shared_ptr<Dali::WebEngineContextMenu>)>;
-
public:
/**
* @brief Create an initialized WebView.
* @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<void(const std::string&)> resultHandler);
+ void EvaluateJavaScript(const std::string& script, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback resultHandler);
/**
* @brief Evaluate JavaScript code represented as a string.
* @param[in] exposedObjectName The name of exposed object
* @param[in] handler The callback function
*/
- void AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function<void(const std::string&)> handler);
+ void AddJavaScriptMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback handler);
/**
* @brief Register alert callback for javascript.
/**
* @brief Set or unset TTS focus of the webview.
* @param[in] focused True if it is gained, false lost.
- * @return true if succeeded, false otherwise.
* @note It only works when the webview does not have keyinput focus. If it has keyinput focus, the TTS focus is set automatically.
*/
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
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
mVisual(),
mWebViewSize(Stage::GetCurrent().GetSize()),
mWebEngine(),
- mPageLoadStartedSignal(),
- mPageLoadFinishedSignal(),
- mPageLoadErrorSignal(),
- mUrlChangedSignal(),
mWebViewArea(0, 0, mWebViewSize.width, mWebViewSize.height),
- mVideoHoleEnabled(true),
+ mVideoHoleEnabled(false),
mMouseEventsEnabled(true),
mKeyEventsEnabled(true),
mScreenshotCapturedCallback(nullptr)
mVisual(),
mWebViewSize(Stage::GetCurrent().GetSize()),
mWebEngine(),
- mPageLoadStartedSignal(),
- mPageLoadFinishedSignal(),
- mPageLoadErrorSignal(),
- mUrlChangedSignal(),
mWebViewArea(0, 0, mWebViewSize.width, mWebViewSize.height),
- mVideoHoleEnabled(true),
+ mVideoHoleEnabled(false),
mMouseEventsEnabled(true),
mKeyEventsEnabled(true),
mScreenshotCapturedCallback(nullptr)
{
if(mWebEngine)
{
+ mWebEngine.FrameRenderedSignal().Disconnect(this, &WebView::OnFrameRendered);
mWebEngine.Destroy();
}
}
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<Dali::Toolkit::WebContext>(new WebContext(mWebEngine.GetContext()));
mWebCookieManager = std::unique_ptr<Dali::Toolkit::WebCookieManager>(new WebCookieManager(mWebEngine.GetCookieManager()));
mWebSettings = std::unique_ptr<Dali::Toolkit::WebSettings>(new WebSettings(mWebEngine.GetSettings()));
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<Dali::WebEngineLoadError> 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<Dali::WebEngineFormRepostDecision> 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();
}
}
}
}
- void WebView::OnInterceptRequest(std::shared_ptr<Dali::WebEngineRequestInterceptor> 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<Dali::WebEngineConsoleMessage> 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<Dali::WebEnginePolicyDecision> 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<Dali::WebEngineCertificate> 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<Dali::WebEngineCertificate> 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<Dali::WebEngineHttpAuthHandler> 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<Dali::WebEngineContextMenu> 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<Dali::WebEngineContextMenu> 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()
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));
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)