DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "title", STRING, TITLE )
DALI_PROPERTY_REGISTRATION(Toolkit, WebView, "videoHoleEnabled", BOOLEAN, VIDEO_HOLE_ENABLED)
-DALI_SIGNAL_REGISTRATION(Toolkit, WebView, "pageLoadStarted", PAGE_LOAD_STARTED_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, "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_TYPE_REGISTRATION_END()
// clang-format on
mPageLoadFinishedSignal(),
mPageLoadErrorSignal(),
mVideoHoleEnabled(true),
- mWebViewArea(0, 0, mWebViewSize.width, mWebViewSize.height)
+ mWebViewArea(0, 0, mWebViewSize.width, mWebViewSize.height),
+ mUrlChangedSignal()
{
mWebEngine = Dali::WebEngine::New();
mPageLoadFinishedSignal(),
mPageLoadErrorSignal(),
mVideoHoleEnabled(true),
- mWebViewArea(0, 0, mWebViewSize.width, mWebViewSize.height)
+ mWebViewArea(0, 0, mWebViewSize.width, mWebViewSize.height),
+ mUrlChangedSignal()
{
mWebEngine = Dali::WebEngine::New();
if(mWebEngine)
{
- mWebEngine.PageLoadStartedSignal().Connect(this, &WebView::OnPageLoadStarted);
- mWebEngine.PageLoadFinishedSignal().Connect(this, &WebView::OnPageLoadFinished);
- mWebEngine.PageLoadErrorSignal().Connect(this, &WebView::OnPageLoadError);
- mWebEngine.ScrollEdgeReachedSignal().Connect(this, &WebView::OnScrollEdgeReached);
+ 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);
mWebContext = std::unique_ptr<Dali::Toolkit::WebContext>(new WebContext(mWebEngine.GetContext()));
mWebCookieManager = std::unique_ptr<Dali::Toolkit::WebCookieManager>(new WebCookieManager(mWebEngine.GetCookieManager()));
}
}
-void WebView::ClearAllTilesResources()
+void WebView::RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
{
if(mWebEngine)
{
- mWebEngine.ClearAllTilesResources();
+ mWebEngine.RegisterJavaScriptAlertCallback( callback );
+ }
+}
+
+void WebView::JavaScriptAlertReply()
+{
+ if ( mWebEngine )
+ {
+ mWebEngine.JavaScriptAlertReply();
+ }
+}
+
+void WebView::RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
+{
+ if ( mWebEngine )
+ {
+ mWebEngine.RegisterJavaScriptConfirmCallback( callback );
+ }
+}
+
+void WebView::JavaScriptConfirmReply( bool confirmed )
+{
+ if ( mWebEngine )
+ {
+ mWebEngine.JavaScriptConfirmReply( confirmed );
+ }
+}
+
+void WebView::RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
+{
+ if ( mWebEngine )
+ {
+ mWebEngine.RegisterJavaScriptPromptCallback( callback );
+ }
+}
+
+void WebView::JavaScriptPromptReply( const std::string& result )
+{
+ if ( mWebEngine )
+ {
+ mWebEngine.JavaScriptPromptReply( result );
}
}
}
}
+void WebView::ClearAllTilesResources()
+{
+ if( mWebEngine )
+ {
+ mWebEngine.ClearAllTilesResources();
+ }
+}
+
Dali::Toolkit::WebView::WebViewPageLoadSignalType& WebView::PageLoadStartedSignal()
{
return mPageLoadStartedSignal;
}
+Dali::Toolkit::WebView::WebViewPageLoadSignalType& WebView::PageLoadInProgressSignal()
+{
+ return mPageLoadInProgressSignal;
+}
+
Dali::Toolkit::WebView::WebViewPageLoadSignalType& WebView::PageLoadFinishedSignal()
{
return mPageLoadFinishedSignal;
return mScrollEdgeReachedSignal;
}
-void WebView::OnPageLoadStarted(const std::string& url)
+Dali::Toolkit::WebView::WebViewUrlChangedSignalType& WebView::UrlChangedSignal()
+{
+ return mUrlChangedSignal;
+}
+
+void WebView::OnPageLoadStarted( const std::string& url )
{
if(!mPageLoadStartedSignal.Empty())
{
}
}
-void WebView::OnPageLoadFinished(const std::string& url)
+void WebView::OnPageLoadInProgress( const std::string& url )
+{
+ if ( !mPageLoadInProgressSignal.Empty() )
+ {
+ Dali::Toolkit::WebView handle( GetOwner() );
+ mPageLoadInProgressSignal.Emit( handle, url );
+ }
+}
+
+void WebView::OnPageLoadFinished( const std::string& url )
{
if(!mPageLoadFinishedSignal.Empty())
{
}
}
-bool WebView::DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor)
+void WebView::OnUrlChanged(const std::string& url)
+{
+ if (!mUrlChangedSignal.Empty())
+ {
+ Dali::Toolkit::WebView handle(GetOwner());
+ mUrlChangedSignal.Emit(handle, url);
+ }
+}
+
+bool WebView::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor )
{
Dali::BaseHandle handle(object);
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);
webView.ScrollEdgeReachedSignal().Connect(tracker, functor);
connected = true;
}
+ else if (0 == strcmp(signalName.c_str(), URL_CHANGED_SIGNAL))
+ {
+ webView.UrlChangedSignal().Connect( tracker, functor );
+ connected = true;
+ }
return connected;
}