X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fdevel-api%2Fadaptor-framework%2Fweb-engine.h;h=3d45c081d745775cbb65abc8ee88e398b2b04cd9;hb=eb2d65add1bdc7a3e38e3b102871c67984ee84fa;hp=fc0ce9fb99ebea613b1b99ff01b04b6aaaae1b6b;hpb=4879fcea55ec41659cbf853870e1c7d48022ce26;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 old mode 100644 new mode 100755 index fc0ce9f..3d45c08 --- a/dali/devel-api/adaptor-framework/web-engine.h +++ b/dali/devel-api/adaptor-framework/web-engine.h @@ -22,6 +22,7 @@ #include //INTERNAL INCLUDES +#include #include #include @@ -56,7 +57,7 @@ public: ~WebEngine(); /** - * @brief Creates a new instance of a WebEngine. + * @brief Create a new instance of a WebEngine. */ static WebEngine New(); @@ -87,34 +88,34 @@ public: static WebEngine DownCast(BaseHandle handle); /** - * @brief Creates WebEngine instance. + * @brief Create WebEngine instance. * * @param [in] width The width of Web * @param [in] height The height of Web * @param [in] locale The locale of Web * @param [in] timezoneId The timezoneID of Web */ - void Create(int width, int height, const std::string& locale, const std::string& timezoneId); + void Create(uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId); /** - * @brief Creates WebEngine instance. + * @brief Create 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); + void Create(uint32_t width, uint32_t height, uint32_t argc, char** argv); /** - * @brief Destroys WebEngine instance. + * @brief Destroy WebEngine instance. */ void Destroy(); /** - * @brief Gets native image source to render. + * @brief Get native image source to render. */ - NativeImageInterfacePtr GetNativeImageSource(); + NativeImageSourcePtr GetNativeImageSource(); /** * @brief Get settings of WebEngine. @@ -137,114 +138,201 @@ public: Dali::WebEngineBackForwardList& GetBackForwardList() const; /** - * @brief Loads a web page based on a given URL. + * @brief Load a web page based on a given URL. * * @param [in] url The URL of the resource to load */ void LoadUrl(const std::string& url); /** - * @brief Returns the title of the Web. + * @brief Return the title of the Web. * * @return The title of web page */ std::string GetTitle() const; /** - * @brief Returns the Favicon of the Web. + * @brief Return the Favicon of the Web. * * @return FavIcon of Dali::PixelData& type */ Dali::PixelData GetFavicon() const; /** - * @brief Gets the url. + * @brief Get the url. */ - const std::string& GetUrl(); + std::string GetUrl() const; /** - * @brief Loads a given string as web contents. + * @brief Load a given string as web contents. * * @param [in] htmlString The string to use as the contents of the web page */ void LoadHtmlString(const std::string& htmlString); /** - * @brief Reloads the Web. + * @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 Request 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 Reload the Web. */ void Reload(); /** - * @brief Stops loading web contents on the current page. + * @brief Reload the current page's document without cache + */ + bool ReloadWithoutCache(); + + /** + * @brief Stop loading web contents on the current page. */ void StopLoading(); /** - * @brief Suspends the operation associated with the view. + * @brief Suspend the operation associated with the view. */ void Suspend(); /** - * @brief Resumes the operation associated with the view object after calling Suspend(). + * @brief Resume the operation associated with the view object after calling Suspend(). */ void Resume(); /** - * @brief Scrolls the webpage of view by deltaX and deltaY. + * @brief To suspend all url loading */ - void ScrollBy(int deltaX, int deltaY); + void SuspendNetworkLoading(); /** - * @brief Sets an absolute scroll of the given view. + * @brief To resume new url network loading */ - void SetScrollPosition(int x, int y); + void ResumeNetworkLoading(); /** - * @brief Gets the current scroll position of the given view. + * @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 + */ + 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 Scroll web page of view by deltaX and deltaY. + * + * @param[in] deltaX horizontal offset to scroll + * @param[in] deltaY vertical offset to scroll + */ + void ScrollBy(int32_t deltaX, int32_t deltaY); + + /** + * @brief Scroll 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(int32_t deltaX, int32_t deltaY); + + /** + * @brief Set an absolute scroll of the given view. + */ + void SetScrollPosition(int32_t x, int32_t y); + + /** + * @brief Get the current scroll position of the given view. */ Dali::Vector2 GetScrollPosition() const; /** - * @brief Gets the possible scroll size of the given view. + * @brief Get the possible scroll size of the given view. */ Dali::Vector2 GetScrollSize() const; /** - * @brief Gets the last known content's size. + * @brief Get the last known content's size. */ Dali::Vector2 GetContentSize() const; /** - * @brief Returns whether forward is possible. + * @brief Return whether forward is possible. * * @return True if forward is possible, false otherwise */ bool CanGoForward(); /** - * @brief Goes to forward. + * @brief Go to forward. */ void GoForward(); /** - * @brief Returns whether backward is possible. + * @brief Return whether backward is possible. * * @return True if backward is possible, false otherwise */ bool CanGoBack(); /** - * @brief Goes to back. + * @brief Go to back. */ void GoBack(); /** - * @brief Evaluates JavaScript code represented as a string. + * @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. */ - void EvaluateJavaScript(const std::string& script, std::function resultHandler); + void EvaluateJavaScript(const std::string& script, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback resultHandler); /** * @brief Add a message handler into JavaScript. @@ -252,14 +340,14 @@ public: * @param[in] exposedObjectName The name of exposed object * @param[in] handler The callback function */ - void AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function handler); + void AddJavaScriptMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback handler); /** * @brief Register a callback for JavaScript alert. * * @param[in] callback The callback function */ - void RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback); + void RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback); /** * @brief Reply for JavaScript alert. @@ -271,32 +359,57 @@ public: * * @param[in] callback The callback function */ - void RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback); + void RegisterJavaScriptConfirmCallback(Dali::WebEnginePlugin::JavaScriptConfirmCallback callback); /** * @brief Reply for JavaScript confirm. + * @param[in] confirmed True if confirmed, false otherwise. */ - void JavaScriptConfirmReply( bool confirmed ); + void JavaScriptConfirmReply(bool confirmed); /** * @brief Register a callback for JavaScript prompt. * * @param[in] callback The callback function */ - void RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback ); + 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 Create a new hit test. + * + * @param[in] x the horizontal position to query + * @param[in] y the vertical position to query + * @param[in] mode the mode of hit test + * + * @return a new hit test object + */ + std::unique_ptr CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode); + + /** + * @brief create a hit test asynchronously. + * + * @param[in] x the horizontal position to query + * @param[in] y the vertical position to query + * @param[in] mode the mode of hit test + * @param[in] callback the callback function + * + * @return true if succeeded, false otherwise */ - void JavaScriptPromptReply( const std::string& result ); + bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback); /** - * @brief Clears the history of Web. + * @brief Clear the history of Web. */ void ClearHistory(); /** - * @brief Clears all tiles resources of Web. + * @brief Clear all tiles resources of Web. */ void ClearAllTilesResources(); @@ -305,7 +418,7 @@ public: * * @return The string value of user agent */ - const std::string& GetUserAgent() const; + std::string GetUserAgent() const; /** * @brief Set user agent string. @@ -315,17 +428,52 @@ public: void SetUserAgent(const std::string& userAgent); /** - * @brief Sets the size of Web Pages. + * @brief Set the size of Web Pages. */ - void SetSize(int width, int height); + void SetSize(uint32_t width, uint32_t height); /** - * @brief Sends Touch Events. + * @brief Set background color of web page. + * + * @param[in] color Background color + */ + void SetDocumentBackgroundColor(Dali::Vector4 color); + + /** + * @brief Clear tiles when hidden. + * + * @param[in] cleared Whether tiles are cleared or not + */ + void ClearTilesWhenHidden(bool cleared); + + /** + * @brief Set multiplier of cover area of tile. + * + * @param[in] multiplier The multiplier of cover area + */ + void SetTileCoverAreaMultiplier(float multiplier); + + /** + * @brief Enable cursor by client. + * + * @param[in] enabled Whether cursor is enabled or not + */ + void EnableCursorByClient(bool enabled); + + /** + * @brief Get the selected text. + * + * @return the selected text + */ + std::string GetSelectedText() const; + + /** + * @brief Send Touch Events. */ bool SendTouchEvent(const TouchEvent& touch); /** - * @brief Sends key Events. + * @brief Send key Events. */ bool SendKeyEvent(const KeyEvent& event); @@ -336,24 +484,141 @@ public: void SetFocus(bool focused); /** - * @brief Enables/disables mouse events. The default is enabled. + * @brief Enable/disable mouse events. The default is enabled. * * @param[in] enabled True if mouse events are enabled, false otherwise */ - void EnableMouseEvents( bool enabled ); + void EnableMouseEvents(bool enabled); /** - * @brief Enables/disables key events. The default is enabled. + * @brief Enable/disable key events. The default is enabled. * * @param[in] enabled True if key events are enabled, false otherwise */ - void EnableKeyEvents( bool enabled ); + void EnableKeyEvents(bool enabled); + + /** + * @brief Set zoom factor of the current page. + * @param[in] zoomFactor a new factor to be set. + */ + void SetPageZoomFactor(float zoomFactor); + + /** + * @brief Query the current zoom factor of the page。 + * @return The current page zoom factor. + */ + float GetPageZoomFactor() const; + + /** + * @brief Set the current text zoom level。. + * @param[in] zoomFactor a new factor to be set. + */ + void SetTextZoomFactor(float zoomFactor); + + /** + * @brief Get the current text zoom level. + * @return The current text zoom factor. + */ + float GetTextZoomFactor() const; + + /** + * @brief Get the current load progress of the page. + * @return The load progress of the page. + */ + float GetLoadProgressPercentage() const; + + /** + * @brief Scale 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 Get 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 Get the accessibility address (bus and path) for embedding. + * @return Accessibility address of the root web content element. + */ + Accessibility::Address GetAccessibilityAddress(); + + /** + * @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 Search 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 Set 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. + * @param[in] displayArea The area to display web page */ - void UpdateDisplayArea(Dali::Rect displayArea); + void UpdateDisplayArea(Dali::Rect displayArea); /** * @brief Enable video hole. @@ -362,58 +627,135 @@ public: void EnableVideoHole(bool enabled); /** - * @brief Sends hover events. + * @brief Send hover events. * @param[in] event The hover event would be sent. */ - bool SendHoverEvent( const HoverEvent& event ); + bool SendHoverEvent(const HoverEvent& event); /** - * @brief Sends wheel events. + * @brief Send wheel events. * @param[in] event The wheel event would be sent. */ - bool SendWheelEvent( const WheelEvent& event ); + bool SendWheelEvent(const WheelEvent& event); /** - * @brief Connects to this signal to be notified when page loading is started. + * @brief Connect to this signal to be notified when frame is rendered. * * @return A signal object to connect with. */ - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal(); + Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal(); /** - * @brief Connects to this signal to be notified when page loading is in progress. + * @brief Callback to be called when page loading is started. * - * @return A signal object to connect with. + * @param[in] callback */ - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal(); + void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @brief Connects to this signal to be notified when page loading is finished. + * @brief Callback to be called when page loading is in progress. * - * @return A signal object to connect with. + * @param[in] callback */ - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal(); + void RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @brief Connects to this signal to be notified when an error occurs in page loading. + * @brief Callback to be called when page loading is finished. * - * @return A signal object to connect with. + * @param[in] callback */ - Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal(); + void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @brief Connects to this signal to be notified when scroll edge is reached. + * @brief Callback to be called when an error occurs in page loading. * - * @return A signal object to connect with. + * @param[in] callback */ - Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal(); + void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback); /** - * @brief Connects to this signal to be notified when url is changed. + * @brief Callback to be called when scroll edge is reached. * - * @return A signal object to connect with. + * @param[in] callback + */ + void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback); + + /** + * @brief Callback to be called when url is changed. + * + * @param[in] callback + */ + void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback); + + /** + * @brief Callback to be called when form repost decision is requested. + * + * @param[in] callback + */ + void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback); + + /** + * @brief Callback to be called when console message will be logged. + * + * @param[in] callback + */ + void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback); + + /** + * @brief Callback to be called when response policy would be decided. + * + * @param[in] callback + */ + void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback); + + /** + * @brief Callback to be called when navigation policy would be decided. + * + * @param[in] callback + */ + void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback); + + /** + * @brief Callback to be called when certificate need be confirmed. + * + * @param[in] callback + */ + void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback); + + /** + * @brief Callback to be called when ssl certificate is changed. + * + * @param[in] callback + */ + void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback); + + /** + * @brief Callback to be called when http authentication need be confirmed. + * + * @param[in] callback + */ + void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback); + + /** + * @brief Callback to be called when context menu would be shown. + * + * @param[in] callback + */ + void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback); + + /** + * @brief Callback to be called when context menu would be hidden. + * + * @param[in] callback + */ + void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback); + + /** + * @brief Get a plain text of current web page asynchronously. + * + * @param[in] callback The callback function called asynchronously. */ - Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal(); + void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback); private: // Not intended for application developers /**