X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fweb-engine%2Fcommon%2Fweb-engine-impl.h;h=1a35dc9b59b5fb837a6a4394112779e060201242;hb=39e92ce9125526ae5d32882de44f01b03d27dc5a;hp=9e78e722e73d009ef07e08371fb6b5dd7a9d091c;hpb=5e107006fc541ce919d678785c54b314e7ba6c4e;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/web-engine/common/web-engine-impl.h b/dali/internal/web-engine/common/web-engine-impl.h old mode 100644 new mode 100755 index 9e78e72..1a35dc9 --- a/dali/internal/web-engine/common/web-engine-impl.h +++ b/dali/internal/web-engine/common/web-engine-impl.h @@ -2,7 +2,7 @@ #define DALI_WEB_ENGINE_IMPL_H /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 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. @@ -22,8 +22,9 @@ #include // INTERNAL INCLUDES -#include -#include +#include +#include +#include namespace Dali { @@ -48,46 +49,53 @@ class WebEngine : public Dali::BaseObject { public: /** - * @brief Creates a new WebEngine handle + * @brief Create a new WebEngine handle * * @return WebEngine pointer */ static WebEnginePtr New(); /** - * @copydoc Dali::WebEngine::Create() + * @brief Get context of web engine + * */ - void Create(int width, int height, const std::string& locale, const std::string& timezoneId); + static Dali::WebEngineContext* GetContext(); + + /** + * @brief Get cookie manager of web engine + * + */ + static Dali::WebEngineCookieManager* GetCookieManager(); /** * @copydoc Dali::WebEngine::Create() */ - void Create(int width, int height, int argc, char** argv); + void Create(uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId); /** - * @copydoc Dali::WebEngine::Destroy() + * @copydoc Dali::WebEngine::Create() */ - void Destroy(); + void Create(uint32_t width, uint32_t height, uint32_t argc, char** argv); /** - * @copydoc Dali::WebEngine::GetNativeImageSource() + * @copydoc Dali::WebEngine::Destroy() */ - Dali::NativeImageInterfacePtr GetNativeImageSource(); + void Destroy(); /** - * @copydoc Dali::WebEngine::GetSettings() + * @copydoc Dali::WebEngine::GetPlugin() */ - Dali::WebEngineSettings& GetSettings() const; + Dali::WebEnginePlugin* GetPlugin() const; /** - * @copydoc Dali::WebEngine::GetContext() + * @copydoc Dali::WebEngine::GetNativeImageSource() */ - Dali::WebEngineContext& GetContext() const; + Dali::NativeImageSourcePtr GetNativeImageSource(); /** - * @copydoc Dali::WebEngine::GetCookieManager() + * @copydoc Dali::WebEngine::GetSettings() */ - Dali::WebEngineCookieManager& GetCookieManager() const; + Dali::WebEngineSettings& GetSettings() const; /** * @copydoc Dali::WebEngine::GetBackForwardList() @@ -112,12 +120,12 @@ public: /** * @copydoc Dali::WebEngine::GetUrl() */ - const std::string& GetUrl(); + std::string GetUrl() const; /** * @copydoc Dali::WebEngine::GetUserAgent() */ - const std::string& GetUserAgent() const; + std::string GetUserAgent() const; /** * @copydoc Dali::WebEngine::SetUserAgent() @@ -130,11 +138,26 @@ public: void LoadHtmlString(const std::string& htmlString); /** + * @copydoc Dali::WebEngine::LoadHtmlStringOverrideCurrentEntry() + */ + bool LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl); + + /** + * @copydoc Dali::WebEngine::LoadContents() + */ + bool LoadContents(const int8_t* contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri); + + /** * @copydoc Dali::WebEngine::Reload() */ void Reload(); /** + * @copydoc Dali::WebEngine::ReloadWithoutCache() + */ + bool ReloadWithoutCache(); + + /** * @copydoc Dali::WebEngine::StopLoading() */ void StopLoading(); @@ -150,14 +173,49 @@ public: void Resume(); /** + * @copydoc Dali::WebEngine::SuspendNetworkLoading() + */ + void SuspendNetworkLoading(); + + /** + * @copydoc Dali::WebEngine::ResumeNetworkLoading() + */ + void ResumeNetworkLoading(); + + /** + * @copydoc Dali::WebEngine::AddCustomHeader() + */ + bool AddCustomHeader(const std::string& name, const std::string& value); + + /** + * @copydoc Dali::WebEngine::RemoveCustomHeader() + */ + bool RemoveCustomHeader(const std::string& name); + + /** + * @copydoc Dali::WebEngine::StartInspectorServer() + */ + uint32_t StartInspectorServer(uint32_t port); + + /** + * @copydoc Dali::WebEngine::StopInspectorServer() + */ + bool StopInspectorServer(); + + /** * @copydoc Dali::WebEngine::ScrollBy() */ - void ScrollBy(int deltaX, int deltaY); + void ScrollBy(int32_t deltaX, int32_t deltaY); + + /** + * @copydoc Dali::WebEngine::ScrollEdgeBy() + */ + bool ScrollEdgeBy(int32_t deltaX, int32_t deltaY); /** * @copydoc Dali::WebEngine::SetScrollPosition() */ - void SetScrollPosition(int x, int y); + void SetScrollPosition(int32_t x, int32_t y); /** * @copydoc Dali::WebEngine::GetScrollPosition() @@ -175,8 +233,8 @@ public: Dali::Vector2 GetContentSize() const; /** - * @copydoc Dali::WebEngine::RegisterJavaScriptAlertCallback() - */ + * @copydoc Dali::WebEngine::RegisterJavaScriptAlertCallback() + */ void RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback); /** @@ -205,6 +263,16 @@ public: void JavaScriptPromptReply(const std::string& result); /** + * @copydoc Dali::WebEngine::CreateHitTest() + */ + std::unique_ptr CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode); + + /** + * @copydoc Dali::WebEngine::CreateHitTestAsynchronously() + */ + bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback); + + /** * @copydoc Dali::WebEngine::CanGoForward() */ bool CanGoForward(); @@ -227,12 +295,12 @@ public: /** * @copydoc Dali::WebEngine::EvaluateJavaScript() */ - void EvaluateJavaScript(const std::string& script, std::function resultHandler); + void EvaluateJavaScript(const std::string& script, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback resultHandler); /** * @copydoc Dali::WebEngine::AddJavaScriptMessageHandler() */ - void AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function handler); + void AddJavaScriptMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback handler); /** * @copydoc Dali::WebEngine::ClearAllTilesResources() @@ -247,7 +315,7 @@ public: /** * @copydoc Dali::WebEngine::SetSize() */ - void SetSize(int width, int height); + void SetSize(uint32_t width, uint32_t height); /** * @copydoc Dali::WebEngine::EnableMouseEvents() @@ -300,9 +368,89 @@ public: void SetFocus(bool focused); /** + * @copydoc Dali::WebEngine::SetPageZoomFactor() + */ + void SetPageZoomFactor(float zoomFactor); + + /** + * @copydoc Dali::WebEngine::GetPageZoomFactor() + */ + float GetPageZoomFactor() const; + + /** + * @copydoc Dali::WebEngine::SetTextZoomFactor() + */ + void SetTextZoomFactor(float zoomFactor); + + /** + * @copydoc Dali::WebEngine::GetTextZoomFactor() + */ + float GetTextZoomFactor() const; + + /** + * @copydoc Dali::WebEngine::GetLoadProgressPercentage() + */ + float GetLoadProgressPercentage() const; + + /** + * @copydoc Dali::WebEngine::SetScaleFactor() + */ + void SetScaleFactor(float scaleFactor, Dali::Vector2 point); + + /** + * @copydoc Dali::WebEngine::GetScaleFactor() + */ + float GetScaleFactor() const; + + /** + * @copydoc Dali::WebEngine::ActivateAccessibility() + */ + void ActivateAccessibility(bool activated); + + /** + * @copydoc Dali::WebEngine::GetAccessibilityAddress() + */ + Accessibility::Address GetAccessibilityAddress(); + + /** + * @copydoc Dali::WebEngine::SetVisibility() + */ + bool SetVisibility(bool visible); + + /** + * @copydoc Dali::WebEngine::HighlightText() + */ + bool HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount); + + /** + * @copydoc Dali::WebEngine::AddDynamicCertificatePath() + */ + void AddDynamicCertificatePath(const std::string& host, const std::string& certPath); + + /** + * @copydoc Dali::WebEngine::GetScreenshot() + */ + Dali::PixelData GetScreenshot(Dali::Rect viewArea, float scaleFactor); + + /** + * @copydoc Dali::WebEngine::GetScreenshotAsync() + */ + bool GetScreenshotAsynchronously(Dali::Rect viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback); + + /** + * @copydoc Dali::WebEngine::IsVideoPlaying() + */ + bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback); + + /** + * @copydoc Dali::WebEngine::RegisterGeolocationPermissionCallback() + */ + void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback); + + /** * @copydoc Dali::WebEngine::UpdateDisplayArea() */ - void UpdateDisplayArea(Dali::Rect displayArea); + void UpdateDisplayArea(Dali::Rect displayArea); /** * @copydoc Dali::WebEngine::EnableVideoHole() @@ -320,44 +468,94 @@ public: bool SendWheelEvent(const Dali::WheelEvent& event); /** - * @copydoc Dali::WebEngine::PageLoadStartedSignal() + @copydoc Dali::WebEngine::RegisterFrameRenderedCallback() */ - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal(); + void RegisterFrameRenderedCallback(Dali::WebEnginePlugin::WebEngineFrameRenderedCallback callback); /** - * @copydoc Dali::WebEngine::PageLoadProgressSignal() + * @copydoc Dali::WebEngine::RegisterPageLoadStartedCallback() */ - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal(); + void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @copydoc Dali::WebEngine::PageLoadFinishedSignal() + * @copydoc Dali::WebEngine::RegisterPageLoadInProgressCallback() */ - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal(); + void RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @copydoc Dali::WebEngine::PageLoadErrorSignal() + * @copydoc Dali::WebEngine::RegisterPageLoadFinishedCallback() */ - Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal(); + void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback); /** - * @copydoc Dali::WebEngine::ScrollEdgeReachedSignal() + * @copydoc Dali::WebEngine::RegisterPageLoadErrorCallback() */ - Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal(); + void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback); /** - * @copydoc Dali::WebEngine::UrlChangedSignal() + * @copydoc Dali::WebEngine::RegisterScrollEdgeReachedCallback() */ - Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal(); + void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback); /** - * @copydoc Dali::WebEngine::FormRepostDecisionSignal() + * @copydoc Dali::WebEngine::RegisterUrlChangedCallback() */ - Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& FormRepostDecisionSignal(); + void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback); /** - * @copydoc Dali::WebEngine::FrameRenderedSignal() + * @copydoc Dali::WebEngine::RegisterFormRepostDecidedCallback() */ - Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal(); + void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback); + + /** + @copydoc Dali::WebEngine::RegisterConsoleMessageReceivedCallback() + */ + void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback); + + /** + @copydoc Dali::WebEngine::RegisterResponsePolicyDecidedCallback() + */ + void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback); + + /** + @copydoc Dali::WebEngine::RegisterNavigationPolicyDecidedCallback() + */ + void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback); + + /** + @copydoc Dali::WebEngine::RegisterNewWindowCreatedCallback() + */ + void RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback); + + /** + * @copydoc Dali::WebEngine::RegisterCertificateConfirmedCallback() + */ + void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback); + + /** + * @copydoc Dali::WebEngine::RegisterSslCertificateChangedCallback() + */ + void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback); + + /** + * @copydoc Dali::WebEngine::RegisterHttpAuthHandlerCallback() + */ + void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback); + + /** + * @copydoc Dali::WebEngine::RegisterContextMenuShownCallback() + */ + void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback); + + /** + * @copydoc Dali::WebEngine::RegisterContextMenuHiddenCallback() + */ + void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback); + + /** + * @copydoc Dali::WebEngine::GetPlainTextAsynchronously() + */ + void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback); private: /** @@ -377,27 +575,14 @@ private: WebEngine& operator=(const WebEngine& WebEngine); /** - * @brief Initializes member data. + * @brief Initialize member data. * * @return Whether the initialization succeed or not. */ bool Initialize(); - /** - * @brief Initializes library handle by loading web engine plugin. - * - * @return Whether the initialization succeed or not. - */ - bool InitializePluginHandle(); - private: - typedef Dali::WebEnginePlugin* (*CreateWebEngineFunction)(); - typedef void (*DestroyWebEngineFunction)(Dali::WebEnginePlugin* plugin); - - Dali::WebEnginePlugin* mPlugin; ///< WebEnginePlugin instance - void* mHandle; ///< Handle for the loaded library - CreateWebEngineFunction mCreateWebEnginePtr; ///< Function to create plugin instance - DestroyWebEngineFunction mDestroyWebEnginePtr; ///< Function to destroy plugin instance + Dali::WebEnginePlugin* mPlugin; ///< WebEnginePlugin instance }; } // namespace Adaptor