X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fdevel-api%2Fadaptor-framework%2Fweb-engine.h;h=ca3ea6fd4076b5e7019333198a9fb3d85c58f2ec;hb=93f89efc39d006b4e6c6480e85a7c11057c5ef64;hp=a01db89870ed31903ee04bdd8bd6c70516510911;hpb=000d9e2ec52d1749d68a11532895db8b3a4544e7;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/devel-api/adaptor-framework/web-engine.h b/dali/devel-api/adaptor-framework/web-engine.h index a01db89..ca3ea6f 100755 --- a/dali/devel-api/adaptor-framework/web-engine.h +++ b/dali/devel-api/adaptor-framework/web-engine.h @@ -2,7 +2,7 @@ #define DALI_WEB_ENGINE_H /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -97,6 +97,16 @@ public: void Create(int width, int height, const std::string& locale, const std::string& timezoneId); /** + * @brief Creates WebEngine instance. + * + * @param [in] width The width of Web + * @param [in] height The height of Web + * @param [in] argc The count of application arguments + * @param [in] argv The string array of application arguments + */ + void Create(int width, int height, int argc, char** argv); + + /** * @brief Destroys WebEngine instance. */ void Destroy(); @@ -134,6 +144,20 @@ public: void LoadUrl(const std::string& url); /** + * @brief Returns the title of the Web. + * + * @return The title of web page + */ + std::string GetTitle() const; + + /** + * @brief Returns the Favicon of the Web. + * + * @return FavIcon of Dali::PixelData& type + */ + Dali::PixelData GetFavicon() const; + + /** * @brief Gets the url. */ const std::string& GetUrl(); @@ -146,11 +170,40 @@ public: void LoadHtmlString(const std::string& htmlString); /** + * @brief Load the specified html string as the content of the view overriding current history entry + * + * @param[in] html HTML data to load + * @param[in] basicUri Base URL used for relative paths to external objects + * @param[in] unreachableUrl URL that could not be reached + * + * @return true if successfully loaded, false otherwise + */ + bool LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl); + + /** + * @brief Requests loading the given contents by MIME type into the view object + * + * @param[in] contents The content to load + * @param[in] contentSize The size of contents (in bytes) + * @param[in] mimeType The type of contents, if 0 is given "text/html" is assumed + * @param[in] encoding The encoding for contents, if 0 is given "UTF-8" is assumed + * @param[in] baseUri The base URI to use for relative resources + * + * @return true if successfully request, false otherwise + */ + bool LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri); + + /** * @brief Reloads the Web. */ void Reload(); /** + * @brief Reloads the current page's document without cache + */ + bool ReloadWithoutCache(); + + /** * @brief Stops loading web contents on the current page. */ void StopLoading(); @@ -166,29 +219,87 @@ public: void Resume(); /** - * @brief Scrolls the webpage of view by deltaX and deltaY. + * @brief To suspend all url loading + */ + void SuspendNetworkLoading(); + + /** + * @brief To resume new url network loading + */ + void ResumeNetworkLoading(); + + /** + * @brief Add custom header + * + * @param[in] name custom header name to add the custom header + * @param[in] value custom header value to add the custom header + * + * @return true if succeeded, false otherwise */ - void ScrollBy( int deltaX, int deltaY ); + bool AddCustomHeader(const std::string& name, const std::string& value); + + /** + * @brief Remove custom header + * + * @param[in] name custom header name to remove the custom header + * + * @return true if succeeded, false otherwise + */ + bool RemoveCustomHeader(const std::string& name); + + /** + * @brief Start the inspector server + * + * @param[in] port port number + * + * @return the port number + */ + uint32_t StartInspectorServer(uint32_t port); + + /** + * @brief Stop the inspector server + * + * @return true if succeeded, false otherwise + */ + bool StopInspectorServer(); + + /** + * @brief Scrolls web page of view by deltaX and deltaY. + * + * @param[in] deltaX horizontal offset to scroll + * @param[in] deltaY vertical offset to scroll + */ + void ScrollBy(int deltaX, int deltaY); + + /** + * @brief Scrolls edge of view by deltaX and deltaY. + * + * @param[in] deltaX horizontal offset to scroll + * @param[in] deltaY vertical offset to scroll + * + * @return true if succeeded, false otherwise + */ + bool ScrollEdgeBy(int deltaX, int deltaY); /** * @brief Sets an absolute scroll of the given view. */ - void SetScrollPosition( int x, int y ); + void SetScrollPosition(int x, int y); /** * @brief Gets the current scroll position of the given view. */ - void GetScrollPosition( int& x, int& y ) const; + Dali::Vector2 GetScrollPosition() const; /** * @brief Gets the possible scroll size of the given view. */ - void GetScrollSize( int& width, int& height ) const; + Dali::Vector2 GetScrollSize() const; /** * @brief Gets the last known content's size. */ - void GetContentSize( int& width, int& height ) const; + Dali::Vector2 GetContentSize() const; /** * @brief Returns whether forward is possible. @@ -231,11 +342,54 @@ public: void AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function handler); /** + * @brief Register a callback for JavaScript alert. + * + * @param[in] callback The callback function + */ + void RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback); + + /** + * @brief Reply for JavaScript alert. + */ + void JavaScriptAlertReply(); + + /** + * @brief Register a callback for JavaScript confirm. + * + * @param[in] callback The callback function + */ + void RegisterJavaScriptConfirmCallback(Dali::WebEnginePlugin::JavaScriptConfirmCallback callback); + + /** + * @brief Reply for JavaScript confirm. + * @param[in] confirmed True if confirmed, false otherwise. + */ + void JavaScriptConfirmReply(bool confirmed); + + /** + * @brief Register a callback for JavaScript prompt. + * + * @param[in] callback The callback function + */ + void RegisterJavaScriptPromptCallback(Dali::WebEnginePlugin::JavaScriptPromptCallback callback); + + /** + * @brief Reply for JavaScript prompt. + * @param[in] result The result returned from input-field in prompt popup. + */ + void JavaScriptPromptReply(const std::string& result); + + /** * @brief Clears the history of Web. */ void ClearHistory(); /** + * @brief Clears all tiles resources of Web. + */ + void ClearAllTilesResources(); + + /** * @brief Get user agent string. * * @return The string value of user agent @@ -255,6 +409,41 @@ public: void SetSize(int width, int height); /** + * @brief Sets background color of web page. + * + * @param[in] color Background color + */ + void SetDocumentBackgroundColor(Dali::Vector4 color); + + /** + * @brief Clears tiles when hidden. + * + * @param[in] cleared Whether tiles are cleared or not + */ + void ClearTilesWhenHidden(bool cleared); + + /** + * @brief Sets multiplier of cover area of tile. + * + * @param[in] multiplier The multiplier of cover area + */ + void SetTileCoverAreaMultiplier(float multiplier); + + /** + * @brief Enables cursor by client. + * + * @param[in] enabled Whether cursor is enabled or not + */ + void EnableCursorByClient(bool enabled); + + /** + * @brief Gets the selected text. + * + * @return the selected text + */ + std::string GetSelectedText() const; + + /** * @brief Sends Touch Events. */ bool SendTouchEvent(const TouchEvent& touch); @@ -266,37 +455,257 @@ public: /** * @brief Set focus. + * @param[in] focused True if web view is focused, false otherwise + */ + void SetFocus(bool focused); + + /** + * @brief Enables/disables mouse events. The default is enabled. + * + * @param[in] enabled True if mouse events are enabled, false otherwise + */ + void EnableMouseEvents( bool enabled ); + + /** + * @brief Enables/disables key events. The default is enabled. + * + * @param[in] enabled True if key events are enabled, false otherwise */ - void SetFocus( bool focused ); + void EnableKeyEvents( bool enabled ); + + /** + * @brief Sets zoom factor of the current page. + * @param[in] zoomFactor a new factor to be set. + */ + void SetPageZoomFactor(float zoomFactor); + + /** + * @brief Queries the current zoom factor of the page。 + * @return The current page zoom factor. + */ + float GetPageZoomFactor() const; + + /** + * @brief Sets the current text zoom level。. + * @param[in] zoomFactor a new factor to be set. + */ + void SetTextZoomFactor(float zoomFactor); + + /** + * @brief Gets the current text zoom level. + * @return The current text zoom factor. + */ + float GetTextZoomFactor() const; + + /** + * @brief Gets the current load progress of the page. + * @return The load progress of the page. + */ + float GetLoadProgressPercentage() const; + + /** + * @brief Scales the current page, centered at the given point. + * @param[in] scaleFactor a new factor to be scaled. + * @param[in] point a center coordinate. + */ + void SetScaleFactor(float scaleFactor, Dali::Vector2 point); + + /** + * @brief Gets the current scale factor of the page. + * @return The current scale factor. + */ + float GetScaleFactor() const; + + /** + * @brief Request to activate/deactivate the accessibility usage set by web app. + * @param[in] activated Activate accessibility or not. + */ + void ActivateAccessibility(bool activated); + + /** + * @brief Request to set the current page's visibility. + * @param[in] visible Visible or not. + * + * @return true if changed successfully, false otherwise + */ + bool SetVisibility(bool visible); + + /** + * @brief Searches and highlights the given string in the document. + * @param[in] text The text to find + * @param[in] options The options to find + * @param[in] maxMatchCount The maximum match count to find + * + * @return true if found & highlighted, false otherwise + */ + bool HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount); + + /** + * @brief Add dynamic certificate path. + * @param[in] host host that required client authentication + * @param[in] certPath the file path stored certificate + */ + void AddDynamicCertificatePath(const std::string& host, const std::string& certPath); + + /** + * @brief Get snapshot of the specified viewArea of page. + * + * @param[in] viewArea The rectangle of screen shot + * @param[in] scaleFactor The scale factor + * + * @return pixel data of screen shot + */ + Dali::PixelData GetScreenshot(Dali::Rect viewArea, float scaleFactor); + + /** + * @brief Request to get snapshot of the specified viewArea of page asynchronously. + * + * @param[in] viewArea The rectangle of screen shot + * @param[in] scaleFactor The scale factor + * @param[in] callback The callback for screen shot + * + * @return true if requested successfully, false otherwise + */ + bool GetScreenshotAsynchronously(Dali::Rect viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback); + + /** + * @brief Asynchronous request to check if there is a video playing in the given view. + * + * @param[in] callback The callback called after checking if video is playing or not + * + * @return true if requested successfully, false otherwise + */ + bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback); + + /** + * @brief Sets callback which alled upon geolocation permission request. + * + * @param[in] callback The callback for requesting geolocation permission + */ + void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback); + + /** + * @brief Update display area. + * @param[in] displayArea The area to display web page + */ + void UpdateDisplayArea(Dali::Rect displayArea); + + /** + * @brief Enable video hole. + * @param[in] enabled True if video hole is enabled, false otherwise + */ + void EnableVideoHole(bool enabled); + + /** + * @brief Sends hover events. + * @param[in] event The hover event would be sent. + */ + bool SendHoverEvent( const HoverEvent& event ); + + /** + * @brief Sends wheel events. + * @param[in] event The wheel event would be sent. + */ + bool SendWheelEvent( const WheelEvent& event ); /** * @brief Connects to this signal to be notified when page loading is started. * - * @return A signal object to connect with. + * @return A signal object to connect with */ Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal(); /** + * @brief Connects to this signal to be notified when page loading is in progress. + * + * @return A signal object to connect with + */ + Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal(); + + /** * @brief Connects to this signal to be notified when page loading is finished. * - * @return A signal object to connect with. + * @return A signal object to connect with */ Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal(); /** * @brief Connects to this signal to be notified when an error occurs in page loading. * - * @return A signal object to connect with. + * @return A signal object to connect with */ Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal(); /** * @brief Connects to this signal to be notified when scroll edge is reached. * - * @return A signal object to connect with. + * @return A signal object to connect with */ Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal(); + /** + * @brief Connects to this signal to be notified when url is changed. + * + * @return A signal object to connect with + */ + Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal(); + + /** + * @brief Connects to this signal to be notified when form repost decision is requested. + * + * @return A signal object to connect with. + */ + Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& FormRepostDecisionSignal(); + + /** + * @brief Connects to this signal to be notified when frame is rendered. + * + * @return A signal object to connect with. + */ + Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal(); + + /** + * @brief Connects to this signal to be notified when http request need be intercepted. + * + * @return A signal object to connect with. + */ + Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& RequestInterceptorSignal(); + + /** + * @brief Connects to this signal to be notified when console message will be logged. + * + * @return A signal object to connect with. + */ + Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& ConsoleMessageSignal(); + + /** + * @brief Connects to this signal to be notified when new policy would be decided. + * + * @return A signal object to connect with. + */ + Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType& PolicyDecisionSignal(); + + /** + * @brief Connects to this signal to be notified when certificate need be confirmed. + * + * @return A signal object to connect with. + */ + Dali::WebEnginePlugin::WebEngineCertificateSignalType& CertificateConfirmSignal(); + + /** + * @brief Connects to this signal to be notified when ssl certificate is changed. + * + * @return A signal object to connect with. + */ + Dali::WebEnginePlugin::WebEngineCertificateSignalType& SslCertificateChangedSignal(); + + /** + * @brief Connects to this signal to be notified when http authentication need be confirmed. + * + * @return A signal object to connect with. + */ + Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& HttpAuthHandlerSignal(); + private: // Not intended for application developers /** * @brief Internal constructor