Updates following web-engine devel header location change
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / controls / web-view / web-view.h
index 37c46f8..55908e8 100755 (executable)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_WEB_VIEW_H
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,7 +24,7 @@
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/controls/control.h>
-#include <dali/devel-api/adaptor-framework/web-engine-plugin.h>
+#include <dali/devel-api/adaptor-framework/web-engine/web-engine-plugin.h>
 
 namespace Dali
 {
@@ -33,9 +33,7 @@ namespace Toolkit
 class ImageView;
 class WebBackForwardList;
 class WebContext;
-class WebContextMenu;
 class WebCookieManager;
-class WebFormRepostDecision;
 class WebSettings;
 
 namespace Internal DALI_INTERNAL
@@ -117,7 +115,7 @@ public:
       /**
        * @brief Whether video hole is enabled or not.
        * @details name "videoHoleEnabled", type Property::BOOLEAN.
-       * @note The value is read-only.
+       * @note False by default.
        */
       VIDEO_HOLE_ENABLED,
 
@@ -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.
@@ -684,122 +617,128 @@ public:
   /**
    * @brief Set or unset TTS focus of the webview.
    * @param[in] focused True if it is gained, false lost.
-   * @return true if succeeded, false otherwise.
    * @note It only works when the webview does not have keyinput focus. If it has keyinput focus, the TTS focus is set automatically.
    */
   void SetTtsFocus(bool focused);
 
   /**
-   * @brief Connect to this signal to be notified when page loading is started.
+   * @brief Callback to be called when page loading is started.
+   *
+   * @param[in] callback
+   */
+  void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback);
+
+  /**
+   * @brief Callback to be called when page loading is in progress.
    *
-   * @return A signal object to connect with
+   * @param[in] callback
    */
-  WebViewPageLoadSignalType& PageLoadStartedSignal();
+  void RegisterPageLoadInProgressCallback(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 finished.
    *
-   * @return A signal object to connect with
+   * @param[in] callback
    */
-  WebViewPageLoadSignalType& PageLoadInProgressSignal();
+  void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when page loading is finished.
+   * @brief Callback to be called when an error occurs in page loading.
    *
-   * @return A signal object to connect with
+   * @param[in] callback
    */
-  WebViewPageLoadSignalType& PageLoadFinishedSignal();
+  void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when an error occurs in page loading.
+   * @brief Callback to be called when scroll edge is reached.
    *
-   * @return A signal object to connect with
+   * @param[in] callback
    */
-  WebViewPageLoadErrorSignalType& PageLoadErrorSignal();
+  void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when scroll edge is reached.
+   * @brief Callback to be called when url is changed.
    *
-   * @return A signal object to connect with
+   * @param[in] callback
    */
-  WebViewScrollEdgeReachedSignalType& ScrollEdgeReachedSignal();
+  void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when url is changed.
+   * @brief Callback to be called when form repost decision is requested.
    *
-   * @return A signal object to connect with
+   * @param[in] callback
    */
-  WebViewUrlChangedSignalType& UrlChangedSignal();
+  void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when form repost decision is requested.
+   * @brief Callback to be called when frame is rendered.
    *
-   * @return A signal object to connect with.
+   * @param[in] callback
    */
-  WebViewFormRepostDecisionSignalType& FormRepostDecisionSignal();
+  void RegisterFrameRenderedCallback(Dali::WebEnginePlugin::WebEngineFrameRenderedCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when frame is rendered.
+   * @brief Callback to be called when console message will be logged.
    *
-   * @return A signal object to connect with.
+   * @param[in] callback
    */
-  WebViewFrameRenderedSignalType& FrameRenderedSignal();
+  void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when http request need be intercepted.
+   * @brief Callback to be called when response policy would be decided.
    *
-   * @return A signal object to connect with.
+   * @param[in] callback
    */
-  WebViewRequestInterceptorSignalType& RequestInterceptorSignal();
+  void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when console message will be logged.
+   * @brief Callback to be called when navigation policy would be decided.
    *
-   * @return A signal object to connect with.
+   * @param[in] callback
    */
-  WebViewConsoleMessageSignalType& ConsoleMessageSignal();
+  void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when response policy would be decided.
+   * @brief Callback to be called when certificate need be confirmed.
    *
-   * @return A signal object to connect with.
+   * @param[in] callback
    */
-  WebViewResponsePolicyDecisionSignalType& ResponsePolicyDecisionSignal();
+  void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when certificate need be confirmed.
+   * @brief Callback to be called when ssl certificate is changed.
    *
-   * @return A signal object to connect with.
+   * @param[in] callback
    */
-  WebViewCertificateSignalType& CertificateConfirmSignal();
+  void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when ssl certificate is changed.
+   * @brief Callback to be called when http authentication need be confirmed.
    *
-   * @return A signal object to connect with.
+   * @param[in] callback
    */
-  WebViewCertificateSignalType& SslCertificateChangedSignal();
+  void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when http authentication need be confirmed.
+   * @brief Callback to be called when context menu would be shown.
    *
-   * @return A signal object to connect with.
+   * @param[in] callback
    */
-  WebViewHttpAuthHandlerSignalType& HttpAuthHandlerSignal();
+  void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback 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 hidden.
    *
-   * @return A signal object to connect with.
+   * @param[in] callback
    */
-  WebViewContextMenuShownSignalType& ContextMenuShownSignal();
+  void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback);
 
   /**
-   * @brief Connect to this signal to be notified when context menu would be hidden.
+   * @brief Get a plain text of current web page asynchronously.
    *
-   * @return A signal object to connect with.
+   * @param[in] callback The callback function called asynchronously.
    */
-  WebViewContextMenuHiddenSignalType& ContextMenuHiddenSignal();
+  void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback);
 
 public: // Not intended for application developers
   /// @cond internal