Replace Signal with std::function. 04/260904/15
authorhuayong.xu <huayong.xu@samsung.com>
Mon, 5 Jul 2021 11:17:26 +0000 (19:17 +0800)
committerhuayong.xu <huayong.xu@samsung.com>
Tue, 13 Jul 2021 01:24:50 +0000 (09:24 +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: I0ea0e8bc8cd3c1077db176a3fc9fba9f236a488c

dali-extension/web-engine-chromium/tizen-web-engine-chromium.cpp
dali-extension/web-engine-chromium/tizen-web-engine-chromium.h
dali-extension/web-engine-lwe/tizen-web-engine-lwe.cpp
dali-extension/web-engine-lwe/tizen-web-engine-lwe.h
packaging/dali-extension.spec

index 4ed8da9..396d351 100755 (executable)
@@ -53,6 +53,51 @@ namespace Dali
 namespace Plugin
 {
 
+namespace
+{
+
+template <typename Callback, typename... Args>
+void ExecuteCallback(Callback callback, Args... args)
+{
+  if (callback)
+  {
+    callback(args...);
+  }
+}
+
+template <typename Callback, typename Arg>
+void ExecuteCallback(Callback callback, std::unique_ptr<Arg> arg)
+{
+  if (callback)
+  {
+    callback(std::move(arg));
+  }
+}
+
+template <typename Ret, typename Callback, typename... Args>
+Ret ExecuteCallbackReturn(Callback callback, Args... args)
+{
+  Ret returnVal = Ret();
+  if (callback)
+  {
+    returnVal = callback(args...);
+  }
+  return returnVal;
+}
+
+template <typename Ret, typename Callback, typename Arg>
+Ret ExecuteCallbackReturn(Callback callback, std::unique_ptr<Arg> arg)
+{
+  Ret returnVal = Ret();
+  if (callback)
+  {
+    returnVal = callback(std::move(arg));
+  }
+  return returnVal;
+}
+
+}
+
 class WebViewContainerClientPair
 {
 public:
@@ -66,11 +111,11 @@ public:
   Evas_Object*            mWebView;
 };
 
+//
+// A class for managing multiple WebViews
+//
 class WebEngineManager
 {
-  //
-  // A class for managing multiple WebViews
-  //
 public:
   static WebEngineManager& Get()
   {
@@ -117,7 +162,7 @@ public:
         return webViewClient.mWebView;
       }
     }
-    return 0;
+    return nullptr;
   }
 
   WebViewContainerClient* FindContainerClient(Evas_Object* o)
@@ -129,7 +174,7 @@ public:
         return webViewClient.mClient;
       }
     }
-    return 0;
+    return nullptr;
   }
 
 private:
@@ -233,7 +278,7 @@ public:
                                    &WebViewContainerForDali::OnUrlChanged,
                                    &mClient);
     evas_object_smart_callback_add(mWebView, "console,message",
-                                   &WebViewContainerForDali::OnConsoleMessage,
+                                   &WebViewContainerForDali::OnConsoleMessageReceived,
                                    &mClient);
     evas_object_smart_callback_add(mWebView, "edge,left",
                                    &WebViewContainerForDali::OnEdgeLeft,
@@ -248,13 +293,13 @@ public:
                                    &WebViewContainerForDali::OnEdgeBottom,
                                    &mClient);
     evas_object_smart_callback_add(mWebView, "form,repost,warning,show",
-                                   &WebViewContainerForDali::OnFormRepostDecisionRequest,
+                                   &WebViewContainerForDali::OnFormRepostDecided,
                                    &mClient);
     evas_object_smart_callback_add(mWebView, "policy,response,decide",
                                    &WebViewContainerForDali::OnResponsePolicyDecided,
                                    &mClient);
     evas_object_smart_callback_add(mWebView, "request,certificate,confirm",
-                                   &WebViewContainerForDali::OnCertificateConfirmRequest,
+                                   &WebViewContainerForDali::OnCertificateConfirmed,
                                    &mClient);
     evas_object_smart_callback_add(mWebView, "ssl,certificate,changed",
                                    &WebViewContainerForDali::OnSslCertificateChanged,
@@ -751,30 +796,29 @@ public:
 
   bool SendHoverEvent(const HoverEvent& hover)
   {
-#if defined(OS_TIZEN_TV)
     //TODO...left/right/middle of mouse could not be acquired now.
     Ewk_Mouse_Button_Type type = EWK_Mouse_Button_Left;
-    switch ( hover.GetState( 0 ) )
+    switch (hover.GetState(0))
     {
       case PointState::DOWN:
       {
-        float x = hover.GetScreenPosition( 0 ).x;
-        float y = hover.GetScreenPosition( 0 ).y;
-        ewk_view_feed_mouse_down( mWebView, type, x, y );
+        float x = hover.GetScreenPosition(0).x;
+        float y = hover.GetScreenPosition(0).y;
+        ewk_view_feed_mouse_down(mWebView, type, x, y);
         break;
       }
       case PointState::UP:
       {
-        float x = hover.GetScreenPosition( 0 ).x;
-        float y = hover.GetScreenPosition( 0 ).y;
-        ewk_view_feed_mouse_up( mWebView, type, x, y );
+        float x = hover.GetScreenPosition(0).x;
+        float y = hover.GetScreenPosition(0).y;
+        ewk_view_feed_mouse_up(mWebView, type, x, y);
         break;
       }
       case PointState::MOTION:
       {
-        float x = hover.GetScreenPosition( 0 ).x;
-        float y = hover.GetScreenPosition( 0 ).y;
-        ewk_view_feed_mouse_move( mWebView, x, y );
+        float x = hover.GetScreenPosition(0).x;
+        float y = hover.GetScreenPosition(0).y;
+        ewk_view_feed_mouse_move(mWebView, x, y);
         break;
       }
       default:
@@ -782,20 +826,17 @@ public:
         break;
       }
     }
-#endif
     return false;
   }
 
   bool SendWheelEvent(const WheelEvent& wheel)
   {
-#if defined(OS_TIZEN_TV)
     Eina_Bool direction = wheel.GetDirection() ? true : false;
     int step = wheel.GetDelta();
     float x = wheel.GetPoint().x;
     float y = wheel.GetPoint().y;
 
-    ewk_view_feed_mouse_wheel( mWebView, direction, step, x, y );
-#endif
+    ewk_view_feed_mouse_wheel(mWebView, direction, step, x, y);
     return false;
   }
 
@@ -853,7 +894,7 @@ private:
   {
     auto client = static_cast<WebViewContainerClient*>(data);
     Ewk_Error* error = static_cast<Ewk_Error*>(rawError);
-    std::shared_ptr<Dali::WebEngineLoadError> loadError(new TizenWebEngineLoadError(error));
+    std::unique_ptr<Dali::WebEngineLoadError> loadError(new TizenWebEngineLoadError(error));
     client->LoadError(std::move(loadError));
   }
 
@@ -864,12 +905,12 @@ private:
     client->UrlChanged(url);
   }
 
-  static void OnConsoleMessage(void* data, Evas_Object*, void* eventInfo)
+  static void OnConsoleMessageReceived(void* data, Evas_Object*, void* eventInfo)
   {
     auto client = static_cast<WebViewContainerClient*>(data);
     Ewk_Console_Message* message = static_cast<Ewk_Console_Message*>(eventInfo);
-    std::shared_ptr<Dali::WebEngineConsoleMessage> webConsoleMessage(new TizenWebEngineConsoleMessage(message));
-    client->OnConsoleMessage(std::move(webConsoleMessage));
+    std::unique_ptr<Dali::WebEngineConsoleMessage> webConsoleMessage(new TizenWebEngineConsoleMessage(message));
+    client->ConsoleMessageReceived(std::move(webConsoleMessage));
   }
 
   static void OnEdgeLeft(void* data, Evas_Object*, void*)
@@ -896,12 +937,12 @@ private:
     client->ScrollEdgeReached(Dali::WebEnginePlugin::ScrollEdge::BOTTOM);
   }
 
-  static void OnFormRepostDecisionRequest(void* data, Evas_Object*, void* eventInfo)
+  static void OnFormRepostDecided(void* data, Evas_Object*, void* eventInfo)
   {
     auto client = static_cast<WebViewContainerClient*>(data);
     Ewk_Form_Repost_Decision_Request* decisionRequest = static_cast<Ewk_Form_Repost_Decision_Request*>(eventInfo);
-    std::shared_ptr<Dali::WebEngineFormRepostDecision> webDecisionRequest(new TizenWebEngineFormRepostDecision(decisionRequest));
-    client->RequestFormRepostDecision(std::move(webDecisionRequest));
+    std::unique_ptr<Dali::WebEngineFormRepostDecision> webDecisionRequest(new TizenWebEngineFormRepostDecision(decisionRequest));
+    client->RequestFormRepostDecided(std::move(webDecisionRequest));
   }
 
   static void OnScreenshotCaptured(Evas_Object* image, void* data)
@@ -930,30 +971,30 @@ private:
   {
     auto client = static_cast<WebViewContainerClient*>(data);
     Ewk_Policy_Decision* policyDecision = static_cast<Ewk_Policy_Decision*>(policy);
-    std::shared_ptr<Dali::WebEnginePolicyDecision> webPolicyDecision(new TizenWebEnginePolicyDecision(policyDecision));
+    std::unique_ptr<Dali::WebEnginePolicyDecision> webPolicyDecision(new TizenWebEnginePolicyDecision(policyDecision));
     client->ResponsePolicyDecided(std::move(webPolicyDecision));
   }
 
-  static void OnCertificateConfirmRequest(void* data, Evas_Object*, void* eventInfo)
+  static void OnCertificateConfirmed(void* data, Evas_Object*, void* eventInfo)
   {
     auto client = static_cast<WebViewContainerClient*>(data);
     Ewk_Certificate_Policy_Decision* policyDecision = static_cast<Ewk_Certificate_Policy_Decision*>(eventInfo);
-    std::shared_ptr<Dali::WebEngineCertificate> webPolicyDecision(new TizenWebEngineCertificate(policyDecision));
-    client->CertificateConfirm(std::move(webPolicyDecision));
+    std::unique_ptr<Dali::WebEngineCertificate> webPolicyDecision(new TizenWebEngineCertificate(policyDecision));
+    client->CertificateConfirmed(std::move(webPolicyDecision));
   }
 
   static void OnSslCertificateChanged(void* data, Evas_Object*, void* eventInfo)
   {
     auto client = static_cast<WebViewContainerClient*>(data);
     Ewk_Certificate_Info* info = static_cast<Ewk_Certificate_Info*>(eventInfo);
-    std::shared_ptr<Dali::WebEngineCertificate> webCertiInfo(new TizenWebEngineCertificate(info));
+    std::unique_ptr<Dali::WebEngineCertificate> webCertiInfo(new TizenWebEngineCertificate(info));
     client->SslCertificateChanged(std::move(webCertiInfo));
   }
 
   static void OnAuthenticationChallenge(Evas_Object*, Ewk_Auth_Challenge* authChallenge, void* data)
   {
     auto client = static_cast<WebViewContainerClient*>(data);
-    std::shared_ptr<Dali::WebEngineHttpAuthHandler> authHandler(new TizenWebEngineHttpAuthHandler(authChallenge));
+    std::unique_ptr<Dali::WebEngineHttpAuthHandler> authHandler(new TizenWebEngineHttpAuthHandler(authChallenge));
     client->AuthenticationChallenge(std::move(authHandler));
   }
 
@@ -961,7 +1002,7 @@ private:
   {
     auto client = static_cast<WebViewContainerClient*>(data);
     Ewk_Context_Menu* menu = (Ewk_Context_Menu*)eventInfo;
-    std::shared_ptr<Dali::WebEngineContextMenu> contextMenu(new TizenWebEngineContextMenu(menu));
+    std::unique_ptr<Dali::WebEngineContextMenu> contextMenu(new TizenWebEngineContextMenu(menu));
     client->ContextMenuShown(std::move(contextMenu));
   }
 
@@ -969,7 +1010,7 @@ private:
   {
     auto client = static_cast<WebViewContainerClient*>(data);
     Ewk_Context_Menu* menu = (Ewk_Context_Menu*)eventInfo;
-    std::shared_ptr<Dali::WebEngineContextMenu> contextMenu(new TizenWebEngineContextMenu(menu));
+    std::unique_ptr<Dali::WebEngineContextMenu> contextMenu(new TizenWebEngineContextMenu(menu));
     client->ContextMenuHidden(std::move(contextMenu));
   }
 
@@ -1335,7 +1376,7 @@ void TizenWebEngineChromium::GoBack()
   }
 }
 
-void TizenWebEngineChromium::EvaluateJavaScript(const std::string& script, std::function<void(const std::string&)> resultHandler)
+void TizenWebEngineChromium::EvaluateJavaScript(const std::string& script, JavaScriptMessageHandlerCallback resultHandler)
 {
   if (mWebViewContainer)
   {
@@ -1358,7 +1399,7 @@ void TizenWebEngineChromium::EvaluateJavaScript(const std::string& script, std::
   }
 }
 
-void TizenWebEngineChromium::AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function<void(const std::string&)> handler)
+void TizenWebEngineChromium::AddJavaScriptMessageHandler(const std::string& exposedObjectName, JavaScriptMessageHandlerCallback handler)
 {
   if (mWebViewContainer)
   {
@@ -1373,7 +1414,7 @@ void TizenWebEngineChromium::AddJavaScriptMessageHandler(const std::string& expo
   }
 }
 
-void TizenWebEngineChromium::RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback)
+void TizenWebEngineChromium::RegisterJavaScriptAlertCallback(JavaScriptAlertCallback callback)
 {
   if (!mWebViewContainer)
     return;
@@ -1390,7 +1431,7 @@ void TizenWebEngineChromium::JavaScriptAlertReply()
   }
 }
 
-void TizenWebEngineChromium::RegisterJavaScriptConfirmCallback(Dali::WebEnginePlugin::JavaScriptConfirmCallback callback)
+void TizenWebEngineChromium::RegisterJavaScriptConfirmCallback(JavaScriptConfirmCallback callback)
 {
   if (!mWebViewContainer)
     return;
@@ -1407,7 +1448,7 @@ void TizenWebEngineChromium::JavaScriptConfirmReply(bool confirmed)
   }
 }
 
-void TizenWebEngineChromium::RegisterJavaScriptPromptCallback(Dali::WebEnginePlugin::JavaScriptPromptCallback callback)
+void TizenWebEngineChromium::RegisterJavaScriptPromptCallback(JavaScriptPromptCallback callback)
 {
   if (!mWebViewContainer)
     return;
@@ -1514,7 +1555,7 @@ std::unique_ptr<Dali::WebEngineHitTest> TizenWebEngineChromium::CreateHitTest(in
   return nullptr;
 }
 
-bool TizenWebEngineChromium::CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback)
+bool TizenWebEngineChromium::CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, WebEngineHitTestCreatedCallback callback)
 {
   bool result = false;
   if (mWebViewContainer)
@@ -1715,7 +1756,7 @@ Dali::PixelData TizenWebEngineChromium::GetScreenshot(Dali::Rect<int32_t> viewAr
   return Dali::PixelData();
 }
 
-bool TizenWebEngineChromium::GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
+bool TizenWebEngineChromium::GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, ScreenshotCapturedCallback callback)
 {
   if (mWebViewContainer)
   {
@@ -1725,7 +1766,7 @@ bool TizenWebEngineChromium::GetScreenshotAsynchronously(Dali::Rect<int32_t> vie
   return false;
 }
 
-bool TizenWebEngineChromium::CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
+bool TizenWebEngineChromium::CheckVideoPlayingAsynchronously(VideoPlayingCallback callback)
 {
   if (mWebViewContainer)
   {
@@ -1771,91 +1812,91 @@ bool TizenWebEngineChromium::SendHoverEvent(const Dali::HoverEvent& event)
 
 bool TizenWebEngineChromium::SendWheelEvent( const Dali::WheelEvent& event )
 {
-  if( mWebViewContainer )
+  if(mWebViewContainer)
   {
     return mWebViewContainer->SendWheelEvent( event );
   }
   return false;
 }
 
-Dali::WebEnginePlugin::WebEnginePageLoadSignalType& TizenWebEngineChromium::PageLoadStartedSignal()
+Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& TizenWebEngineChromium::FrameRenderedSignal()
 {
-  return mLoadStartedSignal;
+  return mFrameRenderedSignal;
 }
 
-Dali::WebEnginePlugin::WebEnginePageLoadSignalType& TizenWebEngineChromium::PageLoadInProgressSignal()
+void TizenWebEngineChromium::RegisterPageLoadStartedCallback(WebEnginePageLoadCallback callback)
 {
-  return mLoadInProgressSignal;
+  mLoadStartedCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEnginePageLoadSignalType& TizenWebEngineChromium::PageLoadFinishedSignal()
+void TizenWebEngineChromium::RegisterPageLoadInProgressCallback(WebEnginePageLoadCallback callback)
 {
-  return mLoadFinishedSignal;
+  mLoadInProgressCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& TizenWebEngineChromium::PageLoadErrorSignal()
+void TizenWebEngineChromium::RegisterPageLoadFinishedCallback(WebEnginePageLoadCallback callback)
 {
-  return mLoadErrorSignal;
+  mLoadFinishedCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& TizenWebEngineChromium::ScrollEdgeReachedSignal()
+void TizenWebEngineChromium::RegisterPageLoadErrorCallback(WebEnginePageLoadErrorCallback callback)
 {
-  return mScrollEdgeReachedSignal;
+  mLoadErrorCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& TizenWebEngineChromium::UrlChangedSignal()
+void TizenWebEngineChromium::RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback)
 {
-  return mUrlChangedSignal;
+  mScrollEdgeReachedCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& TizenWebEngineChromium::FormRepostDecisionSignal()
+void TizenWebEngineChromium::RegisterUrlChangedCallback(WebEngineUrlChangedCallback callback)
 {
-  return mFormRepostDecisionSignal;
+  mUrlChangedCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& TizenWebEngineChromium::FrameRenderedSignal()
+void TizenWebEngineChromium::RegisterFormRepostDecidedCallback(WebEngineFormRepostDecidedCallback callback)
 {
-  return mFrameRenderedSignal;
+  mFormRepostDecidedCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& TizenWebEngineChromium::RequestInterceptorSignal()
+void TizenWebEngineChromium::RegisterRequestInterceptorCallback(WebEngineRequestInterceptorCallback callback)
 {
-  return mRequestInterceptorSignal;
+  mRequestInterceptedCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& TizenWebEngineChromium::ConsoleMessageSignal()
+void TizenWebEngineChromium::RegisterConsoleMessageReceivedCallback(WebEngineConsoleMessageReceivedCallback callback)
 {
-  return mConsoleMessageSignal;
+  mConsoleMessageReceivedCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType& TizenWebEngineChromium::ResponsePolicyDecisionSignal()
+void TizenWebEngineChromium::RegisterResponsePolicyDecidedCallback(WebEngineResponsePolicyDecidedCallback callback)
 {
-  return mResponsePolicyDecisionSignal;
+  mResponsePolicyDecidedCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineCertificateSignalType& TizenWebEngineChromium::CertificateConfirmSignal()
+void TizenWebEngineChromium::RegisterCertificateConfirmedCallback(WebEngineCertificateCallback callback)
 {
-  return mCertificateConfirmSignal;
+  mCertificateConfirmedCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineCertificateSignalType& TizenWebEngineChromium::SslCertificateChangedSignal()
+void TizenWebEngineChromium::RegisterSslCertificateChangedCallback(WebEngineCertificateCallback callback)
 {
-  return mSslCertificateChangedSignal;
+  mSslCertificateChangedCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& TizenWebEngineChromium::HttpAuthHandlerSignal()
+void TizenWebEngineChromium::RegisterHttpAuthHandlerCallback(WebEngineHttpAuthHandlerCallback callback)
 {
-  return mHttpAuthHandlerSignal;
+  mHttpAuthHandlerCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineContextMenuShownSignalType& TizenWebEngineChromium::ContextMenuShownSignal()
+void TizenWebEngineChromium::RegisterContextMenuShownCallback(WebEngineContextMenuShownCallback callback)
 {
-  return mContextMenuShownSignal;
+  mContextMenuShownCallback = callback;
 }
 
-Dali::WebEnginePlugin::WebEngineContextMenuHiddenSignalType& TizenWebEngineChromium::ContextMenuHiddenSignal()
+void TizenWebEngineChromium::RegisterContextMenuHiddenCallback(WebEngineContextMenuHiddenCallback callback)
 {
-  return mContextMenuHiddenSignal;
+  mContextMenuHiddenCallback = callback;
 }
 
 // WebViewContainerClient Interface
@@ -1876,112 +1917,85 @@ void TizenWebEngineChromium::UpdateImage(tbm_surface_h buffer)
 void TizenWebEngineChromium::LoadStarted()
 {
   DALI_LOG_RELEASE_INFO("#LoadStarted : %s\n", GetUrl().c_str());
-  mLoadStartedSignal.Emit(GetUrl());
+  ExecuteCallback(mLoadStartedCallback, GetUrl());
 }
 
 void TizenWebEngineChromium::LoadInProgress()
 {
   DALI_LOG_RELEASE_INFO("#LoadInProgress : %s\n", GetUrl().c_str());
-  mLoadInProgressSignal.Emit("");
+  ExecuteCallback(mLoadInProgressCallback, "");
 }
 
 void TizenWebEngineChromium::LoadFinished()
 {
   DALI_LOG_RELEASE_INFO("#LoadFinished : %s\n", GetUrl().c_str());
-  mLoadFinishedSignal.Emit(GetUrl());
+  ExecuteCallback(mLoadFinishedCallback, GetUrl());
 }
 
-void TizenWebEngineChromium::LoadError(std::shared_ptr<Dali::WebEngineLoadError> error)
+void TizenWebEngineChromium::LoadError(std::unique_ptr<Dali::WebEngineLoadError> error)
 {
   DALI_LOG_RELEASE_INFO("#LoadError : %s\n", error->GetUrl().c_str());
-  if (!mLoadErrorSignal.Empty())
-  {
-    mLoadErrorSignal.Emit(std::move(error));
-  }
+  ExecuteCallback(mLoadErrorCallback, std::move(error));
 }
 
 void TizenWebEngineChromium::ScrollEdgeReached(Dali::WebEnginePlugin::ScrollEdge edge)
 {
   DALI_LOG_RELEASE_INFO("#ScrollEdgeReached : %d\n", edge);
-  mScrollEdgeReachedSignal.Emit(edge);
+  ExecuteCallback(mScrollEdgeReachedCallback, edge);
 }
 
 void TizenWebEngineChromium::UrlChanged(const std::string& url)
 {
   DALI_LOG_RELEASE_INFO("#UrlChanged : %s\n", url.c_str());
-  mUrlChangedSignal.Emit(url);
+  ExecuteCallback(mUrlChangedCallback, url);
 }
 
-void TizenWebEngineChromium::RequestFormRepostDecision(std::shared_ptr<Dali::WebEngineFormRepostDecision> decision)
+void TizenWebEngineChromium::RequestFormRepostDecided(std::unique_ptr<Dali::WebEngineFormRepostDecision> decision)
 {
-  DALI_LOG_RELEASE_INFO("#FormRepostDecisionRequest\n");
-  if (!mFormRepostDecisionSignal.Empty())
-  {
-    mFormRepostDecisionSignal.Emit(std::move(decision));
-  }
+  DALI_LOG_RELEASE_INFO("#FormRepostDecidedRequest\n");
+  ExecuteCallback(mFormRepostDecidedCallback, std::move(decision));
 }
 
-void TizenWebEngineChromium::OnConsoleMessage(std::shared_ptr<Dali::WebEngineConsoleMessage> message)
+void TizenWebEngineChromium::ConsoleMessageReceived(std::unique_ptr<Dali::WebEngineConsoleMessage> message)
 {
-  DALI_LOG_RELEASE_INFO("#OnConsoleMessage : %s\n", message->GetText());
-  if (!mConsoleMessageSignal.Empty())
-  {
-    mConsoleMessageSignal.Emit(std::move(message));
-  }
+  DALI_LOG_RELEASE_INFO("#ConsoleMessageReceived : %s\n", message->GetSource().c_str());
+  ExecuteCallback(mConsoleMessageReceivedCallback, std::move(message));
 }
 
-void TizenWebEngineChromium::ResponsePolicyDecided(std::shared_ptr<Dali::WebEnginePolicyDecision> decision)
+void TizenWebEngineChromium::ResponsePolicyDecided(std::unique_ptr<Dali::WebEnginePolicyDecision> decision)
 {
   DALI_LOG_RELEASE_INFO("#ResponsePolicyDecided.\n");
-  if (!mResponsePolicyDecisionSignal.Empty())
-  {
-    mResponsePolicyDecisionSignal.Emit(std::move(decision));
-  }
+  ExecuteCallback(mResponsePolicyDecidedCallback, std::move(decision));
 }
 
-void TizenWebEngineChromium::CertificateConfirm(std::shared_ptr<Dali::WebEngineCertificate> confirm)
+void TizenWebEngineChromium::CertificateConfirmed(std::unique_ptr<Dali::WebEngineCertificate> confirm)
 {
-  DALI_LOG_RELEASE_INFO("#CertificateConfirm.\n");
-  if (!mCertificateConfirmSignal.Empty())
-  {
-    mCertificateConfirmSignal.Emit(std::move(confirm));
-  }
+  DALI_LOG_RELEASE_INFO("#CertificateConfirmed.\n");
+  ExecuteCallback(mCertificateConfirmedCallback, std::move(confirm));
 }
 
-void TizenWebEngineChromium::SslCertificateChanged(std::shared_ptr<Dali::WebEngineCertificate> info)
+void TizenWebEngineChromium::SslCertificateChanged(std::unique_ptr<Dali::WebEngineCertificate> info)
 {
   DALI_LOG_RELEASE_INFO("#SslCertificateChanged.\n");
-  if (!mSslCertificateChangedSignal.Empty())
-  {
-    mSslCertificateChangedSignal.Emit(std::move(info));
-  }
+  ExecuteCallback(mSslCertificateChangedCallback, std::move(info));
 }
 
-void TizenWebEngineChromium::AuthenticationChallenge(std::shared_ptr<Dali::WebEngineHttpAuthHandler> handler)
+void TizenWebEngineChromium::AuthenticationChallenge(std::unique_ptr<Dali::WebEngineHttpAuthHandler> handler)
 {
   DALI_LOG_RELEASE_INFO("#AuthenticationChallenge.\n");
-  if (!mHttpAuthHandlerSignal.Empty())
-  {
-    mHttpAuthHandlerSignal.Emit(std::move(handler));
-  }
+  ExecuteCallback(mHttpAuthHandlerCallback, std::move(handler));
 }
 
-void TizenWebEngineChromium::ContextMenuShown(std::shared_ptr<Dali::WebEngineContextMenu> menu)
+void TizenWebEngineChromium::ContextMenuShown(std::unique_ptr<Dali::WebEngineContextMenu> menu)
 {
   DALI_LOG_RELEASE_INFO("#ContextMenuShown.\n");
-  if (!mContextMenuShownSignal.Empty())
-  {
-    mContextMenuShownSignal.Emit(std::move(menu));
-  }
+  ExecuteCallback(mContextMenuShownCallback, std::move(menu));
 }
 
-void TizenWebEngineChromium::ContextMenuHidden(std::shared_ptr<Dali::WebEngineContextMenu> menu)
+void TizenWebEngineChromium::ContextMenuHidden(std::unique_ptr<Dali::WebEngineContextMenu> menu)
 {
   DALI_LOG_RELEASE_INFO("#ContextMenuHidden.\n");
-  if (!mContextMenuHiddenSignal.Empty())
-  {
-    mContextMenuHiddenSignal.Emit(std::move(menu));
-  }
+  ExecuteCallback(mContextMenuHiddenCallback, std::move(menu));
 }
 
 void TizenWebEngineChromium::RunJavaScriptEvaluationResultHandler(size_t key, const char* result)
@@ -2014,69 +2028,38 @@ void TizenWebEngineChromium::RunJavaScriptMessageHandler(const std::string& obje
 
 bool TizenWebEngineChromium::JavaScriptAlert(const std::string& alert_text)
 {
-  bool result = false;
-  if (mJavaScriptAlertCallback)
-  {
-    result = mJavaScriptAlertCallback(alert_text);
-  }
-  return result;
+  return ExecuteCallbackReturn<bool>(mJavaScriptAlertCallback, alert_text);
 }
 
 bool TizenWebEngineChromium::JavaScriptConfirm(const std::string& message)
 {
-  bool result = false;
-  if (mJavaScriptConfirmCallback)
-  {
-    result = mJavaScriptConfirmCallback(message);
-  }
-  return result;
+  return ExecuteCallbackReturn<bool>(mJavaScriptConfirmCallback, message);
 }
 
 bool TizenWebEngineChromium::JavaScriptPrompt(const std::string& message, const std::string& default_value)
 {
-  bool result = false;
-  if (mJavaScriptPromptCallback)
-  {
-    result = mJavaScriptPromptCallback(message, default_value);
-  }
-  return result;
+  return ExecuteCallbackReturn<bool>(mJavaScriptPromptCallback, message, default_value);
 }
 
 void TizenWebEngineChromium::ScreenshotCaptured(Dali::PixelData pixelData)
 {
   DALI_LOG_RELEASE_INFO("#ScreenshotCaptured.\n");
-  if (mScreenshotCapturedCallback)
-  {
-    mScreenshotCapturedCallback(pixelData);
-  }
+  ExecuteCallback(mScreenshotCapturedCallback, pixelData);
 }
 
 void TizenWebEngineChromium::VideoPlaying(bool isPlaying)
 {
-  if (mVideoPlayingCallback)
-  {
-    mVideoPlayingCallback(isPlaying);
-  }
+  ExecuteCallback(mVideoPlayingCallback, isPlaying);
 }
 
 bool TizenWebEngineChromium::GeolocationPermission(const std::string& host, const std::string& protocol)
 {
-  bool result = false;
-  if (mGeolocationPermissionCallback)
-  {
-    result = mGeolocationPermissionCallback(host, protocol);
-  }
-  return result;
+  return ExecuteCallbackReturn<bool>(mGeolocationPermissionCallback, host, protocol);
 }
 
 bool TizenWebEngineChromium::HitTestCreated(std::unique_ptr<Dali::WebEngineHitTest> hitTest)
 {
-  bool result = false;
-  if (mHitTestCreatedCallback)
-  {
-    result = mHitTestCreatedCallback(std::move(hitTest));
-  }
-  return result;
+  return ExecuteCallbackReturn<bool>(mHitTestCreatedCallback, std::move(hitTest));
 }
 
 } // namespace Plugin
index a6e8848..1996ffa 100755 (executable)
@@ -73,7 +73,7 @@ public:
    * occurs in page loading.
    * @param [in] error The error when loading a page.
    */
-  virtual void LoadError(std::shared_ptr<Dali::WebEngineLoadError> error) = 0;
+  virtual void LoadError(std::unique_ptr<Dali::WebEngineLoadError> error) = 0;
 
   /**
    * @brief Callback function to be called by WebViewContainer when scroll edge
@@ -87,7 +87,7 @@ public:
    * policy would be decided.
    * @param [in] decision The decision policy to show warning when form repost.
    */
-  virtual void RequestFormRepostDecision(std::shared_ptr<Dali::WebEngineFormRepostDecision> decision) = 0;
+  virtual void RequestFormRepostDecided(std::unique_ptr<Dali::WebEngineFormRepostDecision> decision) = 0;
 
   /**
    * @brief Callback function to be called by WebViewContainer when url is
@@ -101,49 +101,49 @@ public:
    * message is logged out.
    * @param [in] message Message need be logged out.
    */
-  virtual void OnConsoleMessage(std::shared_ptr<Dali::WebEngineConsoleMessage> message) = 0;
+  virtual void ConsoleMessageReceived(std::unique_ptr<Dali::WebEngineConsoleMessage> message) = 0;
 
   /**
    * @brief Callback function to be called by WebViewContainer when new window
    * policy would be decided.
    * @param [in] decision Policy need be decided.
    */
-  virtual void ResponsePolicyDecided(std::shared_ptr<Dali::WebEnginePolicyDecision> decision) = 0;
+  virtual void ResponsePolicyDecided(std::unique_ptr<Dali::WebEnginePolicyDecision> decision) = 0;
 
   /**
    * @brief Callback function to be called by WebViewContainer when certificate
    * need be confirmed.
    * @param [in] confirm Policy confirm request.
    */
-  virtual void CertificateConfirm(std::shared_ptr<Dali::WebEngineCertificate> confirm) = 0;
+  virtual void CertificateConfirmed(std::unique_ptr<Dali::WebEngineCertificate> confirm) = 0;
 
   /**
    * @brief Callback function to be called by WebViewContainer when certificate
    * is changed.
    * @param [in] info Certificate information.
    */
-  virtual void SslCertificateChanged(std::shared_ptr<Dali::WebEngineCertificate> info) = 0;
+  virtual void SslCertificateChanged(std::unique_ptr<Dali::WebEngineCertificate> info) = 0;
 
   /**
    * @brief Callback function to be called by WebViewContainer when
    * authentication need be confirmed.
    * @param [in] handler Http authentication challenge handler.
    */
-  virtual void AuthenticationChallenge(std::shared_ptr<Dali::WebEngineHttpAuthHandler> handler) = 0;
+  virtual void AuthenticationChallenge(std::unique_ptr<Dali::WebEngineHttpAuthHandler> handler) = 0;
 
   /**
    * @brief Callback function to be called by WebViewContainer when context menu
    * would be shown.
    * @param [in] menu Menu would be shown.
    */
-  virtual void ContextMenuShown(std::shared_ptr<Dali::WebEngineContextMenu> menu) = 0;
+  virtual void ContextMenuShown(std::unique_ptr<Dali::WebEngineContextMenu> menu) = 0;
 
   /**
    * @brief Callback function to be called by WebViewContainer when context menu
    * would be hidden.
    * @param [in] menu Menu would be hidden.
    */
-  virtual void ContextMenuHidden(std::shared_ptr<Dali::WebEngineContextMenu> menu) = 0;
+  virtual void ContextMenuHidden(std::unique_ptr<Dali::WebEngineContextMenu> menu) = 0;
 
   /**
    * @brief Callback function to be called by WebViewContainer when it gets
@@ -224,8 +224,6 @@ public:
 class TizenWebEngineChromium : public Dali::WebEnginePlugin, public WebViewContainerClient
 {
 public:
-  using JavaScriptCallback = std::function<void(const std::string&)>;
-
   /**
    * @brief Constructor.
    */
@@ -423,17 +421,17 @@ public:
   /**
    * @copydoc Dali::WebEnginePlugin::EvaluateJavaScript()
    */
-  void EvaluateJavaScript(const std::string& script, std::function<void(const std::string&)> resultHandler) override;
+  void EvaluateJavaScript(const std::string& script, JavaScriptMessageHandlerCallback resultHandler) override;
 
   /**
    * @copydoc Dali::WebEnginePlugin::AddJavaScriptMessageHandler()
    */
-  void AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function<void(const std::string&)> handler) override;
+  void AddJavaScriptMessageHandler(const std::string& exposedObjectName, JavaScriptMessageHandlerCallback handler) override;
 
   /**
    * @copydoc Dali::WebEnginePlugin::RegisterJavaScriptAlertCallback()
    */
-  void RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback) override;
+  void RegisterJavaScriptAlertCallback(JavaScriptAlertCallback callback) override;
 
   /**
    * @copydoc Dali::WebEnginePlugin::JavaScriptAlertReply()
@@ -443,7 +441,7 @@ public:
   /**
    * @copydoc Dali::WebEnginePlugin::RegisterJavaScriptConfirmCallback()
    */
-  void RegisterJavaScriptConfirmCallback(Dali::WebEnginePlugin::JavaScriptConfirmCallback callback) override;
+  void RegisterJavaScriptConfirmCallback(JavaScriptConfirmCallback callback) override;
 
   /**
    * @copydoc Dali::WebEnginePlugin::JavaScriptConfirmReply()
@@ -453,7 +451,7 @@ public:
   /**
    * @copydoc Dali::WebEnginePlugin::RegisterJavaScriptPromptCallback()
    */
-  void RegisterJavaScriptPromptCallback(Dali::WebEnginePlugin::JavaScriptPromptCallback callback) override;
+  void RegisterJavaScriptPromptCallback(JavaScriptPromptCallback callback) override;
 
   /**
    * @copydoc Dali::WebEnginePlugin::JavaScriptPromptReply()
@@ -593,7 +591,7 @@ public:
   /**
    * @copydoc Dali::WebEnginePlugin::HighlightText()
    */
-  bool HighlightText(const std::string& text, FindOption options, uint32_t maxMatchCount) override;
+  bool HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount) override;
 
   /**
    * @copydoc Dali::WebEnginePlugin::AddDynamicCertificatePath()
@@ -641,84 +639,84 @@ public:
   bool SendWheelEvent(const Dali::WheelEvent &event) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::PageLoadStartedSignal()
+   * @copydoc Dali::WebEnginePlugin::FrameRenderedSignal()
    */
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal() override;
+  Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal() override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::PageLoadInProgressSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterPageLoadStartedCallback()
    */
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal() override;
+  void RegisterPageLoadStartedCallback(WebEnginePageLoadCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::PageLoadFinishedSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterPageLoadInProgressCallback()
    */
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal() override;
+  void RegisterPageLoadInProgressCallback(WebEnginePageLoadCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::PageLoadErrorSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterPageLoadFinishedCallback()
    */
-  Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal() override;
+  void RegisterPageLoadFinishedCallback(WebEnginePageLoadCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::ScrollEdgeReachedSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterPageLoadErrorCallback()
    */
-  Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() override;
+  void RegisterPageLoadErrorCallback(WebEnginePageLoadErrorCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::UrlChangedSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterScrollEdgeReachedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal() override;
+  void RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::FormRepostDecisionSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterUrlChangedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& FormRepostDecisionSignal() override;
+  void RegisterUrlChangedCallback(WebEngineUrlChangedCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::FrameRenderedSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterFormRepostDecidedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal() override;
+  void RegisterFormRepostDecidedCallback(WebEngineFormRepostDecidedCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::RequestInterceptorSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterRequestInterceptorCallback()
    */
-  Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& RequestInterceptorSignal() override;
+  void RegisterRequestInterceptorCallback(WebEngineRequestInterceptorCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::ConsoleMessageSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterConsoleMessageReceivedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& ConsoleMessageSignal() override;
+  void RegisterConsoleMessageReceivedCallback(WebEngineConsoleMessageReceivedCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::ResponsePolicyDecisionSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterResponsePolicyDecidedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType& ResponsePolicyDecisionSignal() override;
+  void RegisterResponsePolicyDecidedCallback(WebEngineResponsePolicyDecidedCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::CertificateConfirmSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterCertificateConfirmedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineCertificateSignalType& CertificateConfirmSignal() override;
+  void RegisterCertificateConfirmedCallback(WebEngineCertificateCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::SslCertificateChangedSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterSslCertificateChangedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineCertificateSignalType& SslCertificateChangedSignal() override;
+  void RegisterSslCertificateChangedCallback(WebEngineCertificateCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::HttpAuthHandlerSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterHttpAuthHandlerCallback()
    */
-  Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& HttpAuthHandlerSignal() override;
+  void RegisterHttpAuthHandlerCallback(WebEngineHttpAuthHandlerCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::ContextMenuShownSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterContextMenuShownCallback()
    */
-  Dali::WebEnginePlugin::WebEngineContextMenuShownSignalType& ContextMenuShownSignal() override;
+  void RegisterContextMenuShownCallback(WebEngineContextMenuShownCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::ContextMenuHiddenSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterContextMenuHiddenCallback()
    */
-  Dali::WebEnginePlugin::WebEngineContextMenuHiddenSignalType& ContextMenuHiddenSignal() override;
+  void RegisterContextMenuHiddenCallback(WebEngineContextMenuHiddenCallback callback) override;
 
   // WebViewContainerClient Interface
 
@@ -745,7 +743,7 @@ public:
   /**
    * @copydoc Dali::Plugin::WebViewContainerClient::LoadError()
    */
-  void LoadError(std::shared_ptr<Dali::WebEngineLoadError> error) override;
+  void LoadError(std::unique_ptr<Dali::WebEngineLoadError> error) override;
 
   /**
    * @copydoc Dali::Plugin::WebViewContainerClient::ScrollEdgeReached()
@@ -753,14 +751,14 @@ public:
   void ScrollEdgeReached(Dali::WebEnginePlugin::ScrollEdge edge) override;
 
   /**
-   * @copydoc Dali::Plugin::WebViewContainerClient::RequestFormRepostDecision()
+   * @copydoc Dali::Plugin::WebViewContainerClient::RequestFormRepostDecided()
    */
-  void RequestFormRepostDecision(std::shared_ptr<Dali::WebEngineFormRepostDecision> decision) override;
+  void RequestFormRepostDecided(std::unique_ptr<Dali::WebEngineFormRepostDecision> decision) override;
 
   /**
    * @copydoc Dali::Plugin::WebViewContainerClient::ResponsePolicyDecided()
    */
-  void ResponsePolicyDecided(std::shared_ptr<Dali::WebEnginePolicyDecision> policy) override;
+  void ResponsePolicyDecided(std::unique_ptr<Dali::WebEnginePolicyDecision> policy) override;
 
   /**
    * @copydoc Dali::Plugin::WebViewContainerClient::UrlChanged()
@@ -768,34 +766,34 @@ public:
   void UrlChanged(const std::string& url) override;
 
   /**
-   * @copydoc Dali::Plugin::WebViewContainerClient::OnConsoleMessage()
+   * @copydoc Dali::Plugin::WebViewContainerClient::ConsoleMessageReceived()
    */
-  void OnConsoleMessage(std::shared_ptr<Dali::WebEngineConsoleMessage> message) override;
+  void ConsoleMessageReceived(std::unique_ptr<Dali::WebEngineConsoleMessage> message) override;
 
   /**
-   * @copydoc Dali::Plugin::WebViewContainerClient::CertificateConfirm()
+   * @copydoc Dali::Plugin::WebViewContainerClient::CertificateConfirmed()
    */
-  void CertificateConfirm(std::shared_ptr<Dali::WebEngineCertificate> confirm) override;
+  void CertificateConfirmed(std::unique_ptr<Dali::WebEngineCertificate> confirm) override;
 
   /**
    * @copydoc Dali::Plugin::WebViewContainerClient::SslCertificateChanged()
    */
-  void SslCertificateChanged(std::shared_ptr<Dali::WebEngineCertificate> info) override;
+  void SslCertificateChanged(std::unique_ptr<Dali::WebEngineCertificate> info) override;
 
   /**
    * @copydoc Dali::Plugin::WebViewContainerClient::AuthenticationChallenge()
    */
-  void AuthenticationChallenge(std::shared_ptr<Dali::WebEngineHttpAuthHandler> handler) override;
+  void AuthenticationChallenge(std::unique_ptr<Dali::WebEngineHttpAuthHandler> handler) override;
 
   /**
    * @copydoc Dali::Plugin::WebViewContainerClient::ContextMenuShown()
    */
-  void ContextMenuShown(std::shared_ptr<Dali::WebEngineContextMenu> menu) override;
+  void ContextMenuShown(std::unique_ptr<Dali::WebEngineContextMenu> menu) override;
 
   /**
    * @copydoc Dali::Plugin::WebViewContainerClient::ContextMenuHidden()
    */
-  void ContextMenuHidden(std::shared_ptr<Dali::WebEngineContextMenu> menu) override;
+  void ContextMenuHidden(std::unique_ptr<Dali::WebEngineContextMenu> menu) override;
 
   /**
    * @copydoc
@@ -849,33 +847,33 @@ private:
   Dali::NativeImageSourcePtr mDaliImageSrc;
   size_t                     mJavaScriptEvaluationCount;
 
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType               mLoadStartedSignal;
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType               mLoadInProgressSignal;
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType               mLoadFinishedSignal;
-  Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType          mLoadErrorSignal;
-  Dali::WebEnginePlugin::WebEngineUrlChangedSignalType             mUrlChangedSignal;
-  Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType      mScrollEdgeReachedSignal;
-  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;
-
-  std::unordered_map<size_t, JavaScriptCallback>      mJavaScriptEvaluationResultHandlers;
-  std::unordered_map<std::string, JavaScriptCallback> mJavaScriptMessageHandlers;
-
-  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;
+  WebEngineFrameRenderedSignalType mFrameRenderedSignal;
+
+  WebEnginePageLoadCallback               mLoadStartedCallback;
+  WebEnginePageLoadCallback               mLoadInProgressCallback;
+  WebEnginePageLoadCallback               mLoadFinishedCallback;
+  WebEnginePageLoadErrorCallback          mLoadErrorCallback;
+  WebEngineUrlChangedCallback             mUrlChangedCallback;
+  WebEngineScrollEdgeReachedCallback      mScrollEdgeReachedCallback;
+  WebEngineFormRepostDecidedCallback      mFormRepostDecidedCallback;
+  WebEngineRequestInterceptorCallback     mRequestInterceptedCallback;
+  WebEngineConsoleMessageReceivedCallback mConsoleMessageReceivedCallback;
+  WebEngineResponsePolicyDecidedCallback  mResponsePolicyDecidedCallback;
+  WebEngineCertificateCallback            mCertificateConfirmedCallback;
+  WebEngineCertificateCallback            mSslCertificateChangedCallback;
+  WebEngineHttpAuthHandlerCallback        mHttpAuthHandlerCallback;
+  WebEngineContextMenuShownCallback       mContextMenuShownCallback;
+  WebEngineContextMenuHiddenCallback      mContextMenuHiddenCallback;
+  WebEngineHitTestCreatedCallback         mHitTestCreatedCallback;
+  JavaScriptAlertCallback                 mJavaScriptAlertCallback;
+  JavaScriptConfirmCallback               mJavaScriptConfirmCallback;
+  JavaScriptPromptCallback                mJavaScriptPromptCallback;
+  ScreenshotCapturedCallback              mScreenshotCapturedCallback;
+  VideoPlayingCallback                    mVideoPlayingCallback;
+  GeolocationPermissionCallback           mGeolocationPermissionCallback;
+
+  std::unordered_map<size_t, JavaScriptMessageHandlerCallback>      mJavaScriptEvaluationResultHandlers;
+  std::unordered_map<std::string, JavaScriptMessageHandlerCallback> mJavaScriptMessageHandlers;
 };
 } // namespace Plugin
 } // namespace Dali
index 57c8915..482b1b6 100755 (executable)
@@ -1223,5 +1223,81 @@ bool TizenWebEngineLWE::SendWheelEvent(const Dali::WheelEvent& event)
   return false;
 }
 
+
+void TizenWebEngineLWE::RegisterPageLoadStartedCallback(WebEnginePageLoadCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterPageLoadInProgressCallback(WebEnginePageLoadCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterPageLoadFinishedCallback(WebEnginePageLoadCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterPageLoadErrorCallback(WebEnginePageLoadErrorCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterUrlChangedCallback(WebEngineUrlChangedCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterFormRepostDecidedCallback(WebEngineFormRepostDecidedCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterRequestInterceptorCallback(WebEngineRequestInterceptorCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterConsoleMessageReceivedCallback(WebEngineConsoleMessageReceivedCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterResponsePolicyDecidedCallback(WebEngineResponsePolicyDecidedCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterCertificateConfirmedCallback(WebEngineCertificateCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterSslCertificateChangedCallback(WebEngineCertificateCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterHttpAuthHandlerCallback(WebEngineHttpAuthHandlerCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterContextMenuShownCallback(WebEngineContextMenuShownCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
+void TizenWebEngineLWE::RegisterContextMenuHiddenCallback(WebEngineContextMenuHiddenCallback callback)
+{
+  // NOT IMPLEMENTED
+}
+
 } // namespace Plugin
 } // namespace Dali
index b8c349b..66cf702 100755 (executable)
@@ -466,132 +466,87 @@ public:
   bool SendWheelEvent(const Dali::WheelEvent& event) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::PageLoadStartedSignal()
+   * @copydoc Dali::WebEnginePlugin::FrameRenderedSignal()
    */
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal() override
+  Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal() override
   {
-    return mPageLoadStartedSignal;
+    return mFrameRenderedSignal;
   }
 
   /**
-   * @copydoc Dali::WebEnginePlugin::PageLoadInProgressSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterPageLoadStartedCallback()
    */
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal() override
-  {
-    return mPageLoadInProgressSignal;
-  }
+  void RegisterPageLoadStartedCallback(WebEnginePageLoadCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::PageLoadFinishedSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterPageLoadInProgressCallback()
    */
-  Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal() override
-  {
-    return mPageLoadFinishedSignal;
-  }
+  void RegisterPageLoadInProgressCallback(WebEnginePageLoadCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::PageLoadErrorSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterPageLoadFinishedCallback()
    */
-  Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal() override
-  {
-    return mPageLoadErrorSignal;
-  }
+  void RegisterPageLoadFinishedCallback(WebEnginePageLoadCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::ScrollEdgeReachedSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterPageLoadErrorCallback()
    */
-  Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() override
-  {
-    return mScrollEdgeReachedSignal;
-  }
+  void RegisterPageLoadErrorCallback(WebEnginePageLoadErrorCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::UrlChangedSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterScrollEdgeReachedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal() override
-  {
-    return mUrlChangedSignal;
-  }
+  void RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::FormRepostDecisionSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterUrlChangedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& FormRepostDecisionSignal() override
-  {
-    return mFormRepostDecisionSignal;
-  }
+  void RegisterUrlChangedCallback(WebEngineUrlChangedCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::FrameRenderedSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterFormRepostDecidedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal() override
-  {
-    return mFrameRenderedSignal;
-  }
+  void RegisterFormRepostDecidedCallback(WebEngineFormRepostDecidedCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::RequestInterceptorSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterRequestInterceptorCallback()
    */
-  Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& RequestInterceptorSignal() override
-  {
-    return mRequestInterceptorSignal;
-  }
+  void RegisterRequestInterceptorCallback(WebEngineRequestInterceptorCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::ConsoleMessageSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterConsoleMessageReceivedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& ConsoleMessageSignal() override
-  {
-    return mConsoleMessageSignal;
-  }
+  void RegisterConsoleMessageReceivedCallback(WebEngineConsoleMessageReceivedCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::ResponsePolicyDecisionSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterResponsePolicyDecidedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineResponsePolicyDecisionSignalType& ResponsePolicyDecisionSignal() override
-  {
-    return mResponsePolicyDecisionSignal;
-  }
+  void RegisterResponsePolicyDecidedCallback(WebEngineResponsePolicyDecidedCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::CertificateConfirmSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterCertificateConfirmedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineCertificateSignalType& CertificateConfirmSignal() override
-  {
-    return mCertificateConfirmSignal;
-  }
+  void RegisterCertificateConfirmedCallback(WebEngineCertificateCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::SslCertificateChangedSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterSslCertificateChangedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineCertificateSignalType& SslCertificateChangedSignal() override
-  {
-    return mSslCertificateChangedSignal;
-  }
+  void RegisterSslCertificateChangedCallback(WebEngineCertificateCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::HttpAuthHandlerSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterHttpAuthHandlerCallback()
    */
-  Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& HttpAuthHandlerSignal() override
-  {
-    return mHttpAuthHandlerSignal;
-  }
+  void RegisterHttpAuthHandlerCallback(WebEngineHttpAuthHandlerCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::ContextMenuShownSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterContextMenuShownCallback()
    */
-  Dali::WebEnginePlugin::WebEngineContextMenuShownSignalType& ContextMenuShownSignal() override
-  {
-    return mContextMenuShownSignal;
-  }
+  void RegisterContextMenuShownCallback(WebEngineContextMenuShownCallback callback) override;
 
   /**
-   * @copydoc Dali::WebEnginePlugin::ContextMenuHiddenSignal()
+   * @copydoc Dali::WebEnginePlugin::RegisterContextMenuHiddenCallback()
    */
-  Dali::WebEnginePlugin::WebEngineContextMenuHiddenSignalType& ContextMenuHiddenSignal() override
-  {
-    return mContextMenuHiddenSignal;
-  }
+  void RegisterContextMenuHiddenCallback(WebEngineContextMenuHiddenCallback callback) override;
 
 private:
   void UpdateBuffer();
@@ -637,22 +592,7 @@ private:
 
   EventThreadCallback mUpdateBufferTrigger;
 
-  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;
+  WebEngineFrameRenderedSignalType mFrameRenderedSignal;
 };
 
 } // namespace Plugin
index fe796b5..9b2246c 100755 (executable)
@@ -217,11 +217,6 @@ CXXFLAGS+=" -DECORE_WL2 -DEFL_BETA_API_SUPPORT"
 configure_flags="--enable-ecore-wl2"
 %endif
 
-%if "%{?profile}" == "tv"
-CFLAGS+=" -DOS_TIZEN_TV"
-CXXFLAGS+=" -DOS_TIZEN_TV"
-%endif
-
 libtoolize --force
 cd %{_builddir}/%{name}-%{version}/build/tizen
 autoreconf --install