Replace Signal with std::function. 03/260903/5
authorhuayong.xu <huayong.xu@samsung.com>
Tue, 6 Jul 2021 02:52:40 +0000 (10:52 +0800)
committerhuayong.xu <huayong.xu@samsung.com>
Tue, 13 Jul 2021 06:44:24 +0000 (14:44 +0800)
Originally Signal is used to notify webview when callback of web
engine is called. If Signal is called with a std::shared_ptr<X>,
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

automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp
automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp
dali-toolkit/devel-api/controls/web-view/web-view.cpp
dali-toolkit/devel-api/controls/web-view/web-view.h
dali-toolkit/internal/controls/web-view/web-view-impl.cpp [changed mode: 0644->0755]
dali-toolkit/internal/controls/web-view/web-view-impl.h

index ec13bcb..e6f47a8 100755 (executable)
@@ -1153,8 +1153,6 @@ class WebEngine: public Dali::BaseObject
 {
 public:
 
-  using JavaScriptEvaluatedResultCallback = std::function<void(const std::string&)>;
-
   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<JavaScriptEvaluatedResultCallback>         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<Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback> 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<Dali::WebEngineFormRepostDecision> 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<Dali::WebEngineLoadError> error(new MockWebEngineLoadError(gInstance->mUrl));
+      gInstance->mPageLoadErrorCallback(std::move(error));
+    }
+    if (gInstance->mUrlChangedCallback)
+    {
+      gInstance->mUrlChangedCallback( "http://new-test" );
+    }
+    if (gInstance->mFormRepostDecidedCallback)
+    {
+      std::unique_ptr<Dali::WebEngineFormRepostDecision> repostDecision(new MockWebEngineFormRepostDecision());
+      gInstance->mFormRepostDecidedCallback(std::move(repostDecision));
+    }
     gInstance->mFrameRenderedSignal.Emit();
-    std::shared_ptr<Dali::WebEngineRequestInterceptor> interceptor(new MockWebEngineRequestInterceptor());
-    gInstance->mRequestInterceptorSignal.Emit(std::move(interceptor));
-
-    std::shared_ptr<Dali::WebEngineLoadError> error(new MockWebEngineLoadError(gInstance->mUrl));
-    gInstance->mPageLoadErrorSignal.Emit(std::move(error));
-    std::shared_ptr<Dali::WebEngineConsoleMessage> message(new MockWebEngineConsoleMessage());
-    gInstance->mConsoleMessageSignal.Emit(std::move(message));
-    std::shared_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
-    gInstance->mResponsePolicyDecisionSignal.Emit(std::move(policyDecision));
-
-    std::shared_ptr<Dali::WebEngineCertificate> certificate(new MockWebEngineCertificate());
-    gInstance->mCertificateConfirmSignal.Emit(std::move(certificate));
-    std::shared_ptr<Dali::WebEngineCertificate> sslCertificate(new MockWebEngineCertificate());
-    gInstance->mSslCertificateChangedSignal.Emit(std::move(sslCertificate));
-    std::shared_ptr<Dali::WebEngineHttpAuthHandler> handler(new MockWebEngineHttpAuthHandler());
-    gInstance->mHttpAuthHandlerSignal.Emit(std::move(handler));
-
-    std::shared_ptr<Dali::WebEngineContextMenu> menu(new MockWebEngineContextMenu());
-    gInstance->mContextMenuShownSignal.Emit(std::move(menu));
-    std::shared_ptr<Dali::WebEngineContextMenu> hiddenMenu(new MockWebEngineContextMenu());
-    gInstance->mContextMenuHiddenSignal.Emit(std::move(hiddenMenu));
+    if (gInstance->mFrameRenderedCallback)
+    {
+      gInstance->mFrameRenderedCallback();
+    }
+    if (gInstance->mRequestInterceptorCallback)
+    {
+      std::unique_ptr<Dali::WebEngineRequestInterceptor> interceptor(new MockWebEngineRequestInterceptor());
+      gInstance->mRequestInterceptorCallback(std::move(interceptor));
+    }
+    if (gInstance->mConsoleMessageCallback)
+    {
+      std::unique_ptr<Dali::WebEngineConsoleMessage> message(new MockWebEngineConsoleMessage());
+      gInstance->mConsoleMessageCallback(std::move(message));
+    }
+    if (gInstance->mResponsePolicyDecisionCallback)
+    {
+      std::unique_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
+      gInstance->mResponsePolicyDecisionCallback(std::move(policyDecision));
+    }
+    if (gInstance->mCertificateConfirmCallback)
+    {
+      std::unique_ptr<Dali::WebEngineCertificate> certificate(new MockWebEngineCertificate());
+      gInstance->mCertificateConfirmCallback(std::move(certificate));
+    }
+    if (gInstance->mSslCertificateChangedCallback)
+    {
+      std::unique_ptr<Dali::WebEngineCertificate> sslCertificate(new MockWebEngineCertificate());
+      gInstance->mSslCertificateChangedCallback(std::move(sslCertificate));
+    }
+    if (gInstance->mHttpAuthHandlerCallback)
+    {
+      std::unique_ptr<Dali::WebEngineHttpAuthHandler> handler(new MockWebEngineHttpAuthHandler());
+      gInstance->mHttpAuthHandlerCallback(std::move(handler));
+    }
+    if (gInstance->mContextMenuShownCallback)
+    {
+      std::unique_ptr<Dali::WebEngineContextMenu> menu(new MockWebEngineContextMenu());
+      gInstance->mContextMenuShownCallback(std::move(menu));
+    }
+    if (gInstance->mContextMenuHiddenCallback)
+    {
+      std::unique_ptr<Dali::WebEngineContextMenu> 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;
index 302deb6..d4f9f00 100755 (executable)
@@ -61,7 +61,7 @@ static int gPageLoadStartedCallbackCalled = 0;
 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;
@@ -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<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;
@@ -97,9 +97,9 @@ static int gMimeOverriddenCallbackCalled = 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;
 
@@ -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<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++;
 }
@@ -154,30 +154,30 @@ static bool OnHitTestCreated(std::unique_ptr<Dali::WebEngineHitTest> test)
   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;
@@ -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<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);
@@ -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<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);
@@ -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);
index 4d79404..bfa5502 100755 (executable)
@@ -199,7 +199,7 @@ void WebView::GoBack()
   Dali::Toolkit::GetImpl(*this).GoBack();
 }
 
-void WebView::EvaluateJavaScript(const std::string& script, std::function<void(const std::string&)> 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<void(const std::string&)> 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)
index 37c46f8..94c409f 100755 (executable)
@@ -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<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.
@@ -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<void(const std::string&)> 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<void(const std::string&)> 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
old mode 100644 (file)
new mode 100755 (executable)
index 5adfe5d..c7805f8
@@ -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<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()));
@@ -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<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();
   }
 }
 
@@ -864,167 +805,72 @@ void WebView::OnScreenshotCaptured(Dali::PixelData pixel)
   }
 }
 
-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()
@@ -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)
index a9917fd..c2d6742 100755 (executable)
@@ -205,12 +205,12 @@ public:
   /**
    * @copydoc Dali::Toolkit::WebView::EvaluateJavaScript()
    */
-  void EvaluateJavaScript(const std::string& script, std::function<void(const std::string&)> resultHandler);
+  void EvaluateJavaScript(const std::string& script, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback resultHandler);
 
   /**
    * @copydoc Dali::Toolkit::WebView::AddJavaScriptMessageHandler()
    */
-  void AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function<void(const std::string&)> 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<Dali::WebEngineLoadError> 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<Dali::WebEngineFormRepostDecision> 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<Dali::WebEngineRequestInterceptor> interceptor);
-
-  /**
-   * @brief Callback function to be called when console message will be logged.
-   * @param[in] message The message logged.
-   */
-  void OnConsoleMessage(std::shared_ptr<Dali::WebEngineConsoleMessage> message);
-
-  /**
-   * @brief Callback function to be called when response policy need be decided.
-   * @param[in] decision The policy decided.
-   */
-  void OnResponsePolicyDecided(std::shared_ptr<Dali::WebEnginePolicyDecision> decision);
-
-  /**
-   * @brief Callback function to be called when certificate need be confirmed.
-   * @param[in] certificate The certificate policy decision.
-   */
-  void OnCertificateConfirm(std::shared_ptr<Dali::WebEngineCertificate> certificate);
-
-  /**
-   * @brief Callback function to be called when ssl certificate is changed.
-   * @param[in] certificate The certificate information received.
-   */
-  void OnSslCertificateChanged(std::shared_ptr<Dali::WebEngineCertificate> 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<Dali::WebEngineHttpAuthHandler> 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<Dali::WebEngineContextMenu> 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<Dali::WebEngineContextMenu> 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<Dali::Toolkit::WebContext>         mWebContext;
   std::unique_ptr<Dali::Toolkit::WebCookieManager>   mWebCookieManager;
   std::unique_ptr<Dali::Toolkit::WebSettings>        mWebSettings;
@@ -796,6 +677,7 @@ private:
   bool                       mKeyEventsEnabled;
 
   Dali::Toolkit::WebView::WebViewScreenshotCapturedCallback mScreenshotCapturedCallback;
+  Dali::WebEnginePlugin::WebEngineFrameRenderedCallback     mFrameRenderedCallback;
 };
 
 } // namespace Internal