X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Ftoolkit-web-engine.cpp;h=430615d752241ee70ba07183e1fc8878e7644ae1;hp=863a3b01c2c25f3d606a3f0ce79af105c483bef2;hb=153f1a4fb6d4bae78b3c89fe570e5e662a9a54c1;hpb=a3892a845d42560b034a6eb734e4e5ea360e136a diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp index 863a3b0..430615d 100755 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp @@ -20,13 +20,28 @@ #include #include #include +#include +#include #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include #include +#include +#include +#include #include namespace Dali @@ -39,14 +54,16 @@ namespace Adaptor { class WebEngine; +class MockWebEngineContext; namespace { // Generally only one WebEngine instance exists. // If > 1, a new web engine has been created by CreateWindowSignal. -static WebEngine* gInstance = 0; +static WebEngine* gInstance = nullptr; static int gInstanceCount = 0; +static MockWebEngineContext* gWebEngineContextInstance = nullptr; bool OnGoBack(); bool OnGoForward(); @@ -55,8 +72,17 @@ bool OnEvaluteJavaScript(); bool OnJavaScriptAlert(); bool OnJavaScriptConfirm(); bool OnJavaScriptPrompt(); +bool OnHitTestCreated(); bool OnScrollEdge(); +bool OnScreenshotCaptured(); +bool OnVideoPlaying(); +bool OnGeolocationPermission(); bool OnClearHistory(); +bool OnSecurityOriginAcquired(); +bool OnStorageUsageAcquired(); +bool OnFormPasswordAcquired(); +bool OnDownloadStarted(); +bool OnMimeOverridden(); static void ConnectToGlobalSignal( bool ( *func )() ) { @@ -101,12 +127,52 @@ public: { } - void DeleteWebDatabase() override + void DeleteAllWebDatabase() override { } - void DeleteWebStorage() override + bool GetWebDatabaseOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback) { + if (callback) + { + ConnectToGlobalSignal(&OnSecurityOriginAcquired); + mSecurityOriginAcquiredCallback = callback; + } + return true; + } + + bool DeleteWebDatabase(Dali::WebEngineSecurityOrigin& origin) + { + return true; + } + + bool GetWebStorageOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback) + { + if (callback) + { + ConnectToGlobalSignal(&OnSecurityOriginAcquired); + mSecurityOriginAcquiredCallback = callback; + } + return true; + } + + bool GetWebStorageUsageForOrigin(Dali::WebEngineSecurityOrigin& origin, Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback callback) + { + if (callback) + { + ConnectToGlobalSignal(&OnStorageUsageAcquired); + mStorageUsageAcquiredCallback = callback; + } + return true; + } + + void DeleteAllWebStorage() override + { + } + + bool DeleteWebStorageOrigin(Dali::WebEngineSecurityOrigin& origin) + { + return true; } void DeleteLocalFileSystem() override @@ -121,6 +187,45 @@ public: { } + bool DeleteApplicationCache(Dali::WebEngineSecurityOrigin& origin) + { + return true; + } + + void GetFormPasswordList(Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback callback) + { + if (callback) + { + ConnectToGlobalSignal(&OnFormPasswordAcquired); + mFormPasswordAcquiredCallback = callback; + } + } + + void RegisterDownloadStartedCallback(Dali::WebEngineContext::WebEngineDownloadStartedCallback callback) + { + if (callback) + { + ConnectToGlobalSignal(&OnDownloadStarted); + mDownloadStartedCallback = callback; + } + } + + void RegisterMimeOverriddenCallback(Dali::WebEngineContext::WebEngineMimeOverriddenCallback callback) + { + if (callback) + { + ConnectToGlobalSignal(&OnMimeOverridden); + mMimeOverriddenCallback = callback; + } + } + +public: + Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback mSecurityOriginAcquiredCallback; + Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback mStorageUsageAcquiredCallback; + Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback mFormPasswordAcquiredCallback; + Dali::WebEngineContext::WebEngineDownloadStartedCallback mDownloadStartedCallback; + Dali::WebEngineContext::WebEngineMimeOverriddenCallback mMimeOverriddenCallback; + private: Dali::WebEngineContext::CacheModel mockModel; }; @@ -133,86 +238,540 @@ public: { } - void SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy policy ) override + void SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy policy ) override + { + mockCookieAcceptPolicy = policy; + } + + Dali::WebEngineCookieManager::CookieAcceptPolicy GetCookieAcceptPolicy() const override + { + return mockCookieAcceptPolicy; + } + + void ClearCookies() override + { + } + + void SetPersistentStorage( const std::string& path, Dali::WebEngineCookieManager::CookiePersistentStorage storage ) override + { + } + +private: + Dali::WebEngineCookieManager::CookieAcceptPolicy mockCookieAcceptPolicy; +}; + +class MockWebEngineBackForwardListItem : public Dali::WebEngineBackForwardListItem +{ +public: + MockWebEngineBackForwardListItem() + : mockUrl( "http://url" ), + mockTitle( "title" ), + mockOriginalUrl( "http://originalurl" ) + { + } + + std::string GetUrl() const override + { + return mockUrl; + } + + std::string GetTitle() const override + { + return mockTitle; + } + + std::string GetOriginalUrl() const override + { + return mockOriginalUrl; + } + +private: + std::string mockUrl; + std::string mockTitle; + std::string mockOriginalUrl; +}; + +class MockWebEngineBackForwardList : public Dali::WebEngineBackForwardList +{ +public: + MockWebEngineBackForwardList() + { + } + + std::unique_ptr GetCurrentItem() const override + { + std::unique_ptr ret(new MockWebEngineBackForwardListItem()); + return ret; + } + + std::unique_ptr GetPreviousItem() const override + { + std::unique_ptr ret(new MockWebEngineBackForwardListItem()); + return ret; + } + + std::unique_ptr GetNextItem() const override + { + std::unique_ptr ret(new MockWebEngineBackForwardListItem()); + return ret; + } + + std::unique_ptr GetItemAtIndex( uint32_t index ) const override + { + std::unique_ptr ret(new MockWebEngineBackForwardListItem()); + return ret; + } + + uint32_t GetItemCount() const override + { + return 1; + } + + std::vector> GetBackwardItems(int limit) override + { + std::vector> ret; + std::unique_ptr item(new MockWebEngineBackForwardListItem()); + ret.push_back(std::move(item)); + return ret; + } + + std::vector> GetForwardItems(int limit) override + { + std::vector> ret; + std::unique_ptr item(new MockWebEngineBackForwardListItem()); + ret.push_back(std::move(item)); + return ret; + } +}; + + +class MockWebEngineCertificate : public Dali::WebEngineCertificate +{ +public: + MockWebEngineCertificate() + { + } + + void Allow(bool allowed) override + { + } + + bool IsFromMainFrame() const override + { + return true; + } + + std::string GetPem() const override + { + return "abc"; + } + + bool IsContextSecure() const override + { + return true; + } +}; + +class MockWebEngineHttpAuthHandler : public Dali::WebEngineHttpAuthHandler +{ +public: + MockWebEngineHttpAuthHandler() + { + } + + std::string GetRealm() const override + { + return "test"; + } + + void Suspend() override + { + } + + void UseCredential(const std::string& user, const std::string& password) override + { + } + + void CancelCredential() override + { + } +}; + +class MockWebEngineFormRepostDecision : public WebEngineFormRepostDecision +{ +public: + MockWebEngineFormRepostDecision() + { + } + + void Reply(bool allowed) override {} +}; + +class MockWebEngineFrame : public Dali::WebEngineFrame +{ +public: + MockWebEngineFrame() + { + } + + bool IsMainFrame() const override + { + return true; + } +}; + +class MockWebEnginePolicyDecision : public Dali::WebEnginePolicyDecision +{ +public: + MockWebEnginePolicyDecision() + { + } + + std::string GetUrl() const override + { + return "http://test.html"; + } + + std::string GetCookie() const override + { + return "test:abc"; + } + + Dali::WebEnginePolicyDecision::DecisionType GetDecisionType() const + { + return Dali::WebEnginePolicyDecision::DecisionType::USE; + } + + std::string GetResponseMime() const + { + return "txt/xml"; + } + + int32_t GetResponseStatusCode() const + { + return 500; + } + + Dali::WebEnginePolicyDecision::NavigationType GetNavigationType() const + { + return Dali::WebEnginePolicyDecision::NavigationType::LINK_CLICKED; + } + + Dali::WebEngineFrame& GetFrame() const + { + return *(Dali::WebEngineFrame*)(&mockWebFrame); + } + + std::string GetScheme() const + { + return "test"; + } + + bool Use() + { + return true; + } + + bool Ignore() + { + return true; + } + + bool Suspend() + { + return true; + } + +private: + MockWebEngineFrame mockWebFrame; +}; + +class MockWebEngineRequestInterceptor : public WebEngineRequestInterceptor +{ +public: + MockWebEngineRequestInterceptor() + { + } + + std::string GetUrl() const override + { + return "http://test.html"; + } + + bool Ignore() override + { + return true; + } + + bool SetResponseStatus(int statusCode, const std::string &customedStatusText) override + { + return true; + } + + bool AddResponseHeader(const std::string &fieldName, const std::string &fieldValue) override + { + return true; + } + + bool AddResponseBody(const std::string &body, uint32_t length) override + { + return true; + } +}; + +class MockWebEngineConsoleMessage : public Dali::WebEngineConsoleMessage +{ +public: + MockWebEngineConsoleMessage() + { + } + + std::string GetSource() const override + { + return "source"; + } + + uint32_t GetLine() const override + { + return 10; + } + + SeverityLevel GetSeverityLevel() const override + { + return SeverityLevel::EMPTY; + } + + std::string GetText() const override + { + return "This is a text."; + } +}; + +class MockWebEngineLoadError : public Dali::WebEngineLoadError +{ +public: + MockWebEngineLoadError(const std::string& url) + : mockUrl(url) + { + } + + std::string GetUrl() const override + { + return mockUrl; + } + + ErrorCode GetCode() const override + { + return ErrorCode::UNKNOWN; + } + + std::string GetDescription() const override + { + return "This is an error."; + } + + ErrorType GetType() const override + { + return ErrorType::NONE; + } + +private: + std::string mockUrl; +}; + +class MockWebEngineContextMenuItem : public Dali::WebEngineContextMenuItem +{ +public: + MockWebEngineContextMenuItem() + { + } + + ItemTag GetTag() const override + { + return ItemTag::NO_ACTION; + } + + ItemType GetType() const override + { + return ItemType::ACTION; + } + + bool IsEnabled() const override + { + return true; + } + + std::string GetLinkUrl() const override + { + return "http://test.html"; + } + + std::string GetImageUrl() const override + { + return "http://test.jpg"; + } + + std::string GetTitle() const override + { + return "title"; + } + + std::unique_ptr GetParentMenu() const override + { + std::unique_ptr result; + return result; + } +}; + +class MockWebEngineContextMenu : public Dali::WebEngineContextMenu +{ +public: + MockWebEngineContextMenu() + { + } + + uint32_t GetItemCount() const override + { + return 1; + } + + std::unique_ptr GetItemAt(uint32_t index) const override + { + std::unique_ptr webitem(new MockWebEngineContextMenuItem()); + return webitem; + } + + std::vector> GetItemList() const override + { + std::vector> result; + std::unique_ptr webitem(new MockWebEngineContextMenuItem()); + result.push_back(std::move(webitem)); + return result; + } + + Dali::Vector2 GetPosition() const override + { + return Dali::Vector2(100, 100); + } + + bool RemoveItem(WebEngineContextMenuItem& item) override + { + return true; + } + + bool AppendItemAsAction(WebEngineContextMenuItem::ItemTag tag, const std::string& title, bool enabled) override + { + return true; + } + + bool AppendItem(WebEngineContextMenuItem::ItemTag tag, const std::string& title, const std::string& iconFile, bool enabled) override + { + return true; + } + + bool SelectItem(WebEngineContextMenuItem& item) override + { + return true; + } + + bool Hide() override + { + return true; + } +}; + +class MockWebEngineHitTest : public Dali::WebEngineHitTest +{ +public: + MockWebEngineHitTest() + { + } + + ResultContext GetResultContext() const override + { + return ResultContext::DOCUMENT; + } + + std::string GetLinkUri() const override + { + return "http://test.html"; + } + + std::string GetLinkTitle() const override + { + return "test"; + } + + std::string GetLinkLabel() const override { - mockCookieAcceptPolicy = policy; + return "label"; } - Dali::WebEngineCookieManager::CookieAcceptPolicy GetCookieAcceptPolicy() const override + std::string GetImageUri() const override { - return mockCookieAcceptPolicy; + return "http://test.jpg"; } - void ClearCookies() override + std::string GetMediaUri() const override { + return "http://test.mp4"; } - void SetPersistentStorage( const std::string& path, Dali::WebEngineCookieManager::CookiePersistentStorage storage ) override + std::string GetTagName() const override { + return "img"; } -private: - Dali::WebEngineCookieManager::CookieAcceptPolicy mockCookieAcceptPolicy; -}; - -class MockWebEngineBackForwardListItem : public Dali::WebEngineBackForwardListItem -{ -public: - MockWebEngineBackForwardListItem() - : mockUrl( "http://url" ), - mockTitle( "title" ), - mockOriginalUrl( "http://originalurl" ) + std::string GetNodeValue() const override { + return "test"; } - std::string GetUrl() const override + Dali::Property::Map& GetAttributes() const override { - return mockUrl; + return mockAttributesMap; } - std::string GetTitle() const override + std::string GetImageFileNameExtension() const override { - return mockTitle; + return "jpg"; } - std::string GetOriginalUrl() const override + Dali::PixelData GetImageBuffer() override { - return mockOriginalUrl; + uint8_t* faviconData = new uint8_t[ 16 ]; + memset(faviconData, 0xff, 16); + return Dali::PixelData::New( faviconData, 16, 2, 2, + Dali::Pixel::Format::RGBA8888, + Dali::PixelData::ReleaseFunction::DELETE_ARRAY ); } private: - std::string mockUrl; - std::string mockTitle; - std::string mockOriginalUrl; + mutable Dali::Property::Map mockAttributesMap; }; -class MockWebEngineBackForwardList : public Dali::WebEngineBackForwardList +class MockWebEngineSecurityOrigin : public Dali::WebEngineSecurityOrigin { public: - MockWebEngineBackForwardList( ) - : mockItem(), - pMockItem( &mockItem ) - { - } - - Dali::WebEngineBackForwardListItem& GetCurrentItem() const override + MockWebEngineSecurityOrigin() + : mockUrl("https://test.html") + , mockPotocol("https") { - return *pMockItem; } - Dali::WebEngineBackForwardListItem& GetItemAtIndex( uint32_t index ) const override + std::string GetHost() const { - return *pMockItem; + return mockUrl; } - uint32_t GetItemCount() const override + std::string GetProtocol() const { - return 1; + return mockPotocol; } private: - MockWebEngineBackForwardListItem mockItem; - WebEngineBackForwardListItem* pMockItem; + std::string mockUrl; + std::string mockPotocol; }; class MockWebEngineSettings : public WebEngineSettings @@ -221,6 +780,18 @@ public: MockWebEngineSettings() : mockDefaultFontSize( 16 ), mockJavaScriptEnabled( true ), + mockAutoFittingEnabled ( true ), + mockPluginsEnabled ( true ), + mockPrivateBrowsingEnabled( true ), + mockLinkMagnifierEnabled( true ), + mockKeypadWithoutUserActionUsed( true ), + mockAutofillPasswordFormEnabled( true ), + mockFormCandidateDataEnabled( true ), + mockTextSelectionEnabled( true ), + mockTextAutosizingEnable( true ), + mockArrowScrollEnable( true ), + mockClipboardEnabled( true ), + mockImePanelEnabled( true ), mockImageLoadedAutomatically( true ), mockDefaultTextEncodingName() { @@ -246,6 +817,126 @@ public: mockJavaScriptEnabled = enabled; } + bool IsAutoFittingEnabled() const override + { + return mockAutoFittingEnabled; + } + + void EnableAutoFitting( bool enabled ) override + { + mockAutoFittingEnabled = enabled; + } + + bool ArePluginsEnabled() const override + { + return mockPluginsEnabled; + } + + void EnablePlugins( bool enabled ) override + { + mockPluginsEnabled = enabled; + } + + bool IsPrivateBrowsingEnabled() const override + { + return mockPrivateBrowsingEnabled; + } + + void EnablePrivateBrowsing( bool enabled ) override + { + mockPrivateBrowsingEnabled = enabled; + } + + bool IsLinkMagnifierEnabled() const override + { + return mockLinkMagnifierEnabled; + } + + void EnableLinkMagnifier( bool enabled ) override + { + mockLinkMagnifierEnabled = enabled; + } + + bool IsKeypadWithoutUserActionUsed() const override + { + return mockKeypadWithoutUserActionUsed; + } + + void UseKeypadWithoutUserAction( bool used ) override + { + mockKeypadWithoutUserActionUsed = used; + } + + bool IsAutofillPasswordFormEnabled() const override + { + return mockAutofillPasswordFormEnabled; + } + + void EnableAutofillPasswordForm( bool enabled ) override + { + mockAutofillPasswordFormEnabled = enabled; + } + + bool IsFormCandidateDataEnabled() const override + { + return mockFormCandidateDataEnabled; + } + + void EnableFormCandidateData( bool enabled ) override + { + mockFormCandidateDataEnabled = enabled; + } + + bool IsTextSelectionEnabled() const override + { + return mockTextSelectionEnabled; + } + + void EnableTextSelection( bool enabled ) override + { + mockTextSelectionEnabled = enabled; + } + + bool IsTextAutosizingEnabled() const override + { + return mockTextAutosizingEnable; + } + + void EnableTextAutosizing( bool enabled ) override + { + mockTextAutosizingEnable = enabled; + } + + bool IsArrowScrollEnabled() const override + { + return mockArrowScrollEnable; + } + + void EnableArrowScroll( bool enabled ) override + { + mockArrowScrollEnable = enabled; + } + + bool IsClipboardEnabled() const override + { + return mockClipboardEnabled; + } + + void EnableClipboard( bool enabled ) override + { + mockClipboardEnabled = enabled; + } + + bool IsImePanelEnabled() const override + { + return mockImePanelEnabled; + } + + void EnableImePanel( bool enabled ) override + { + mockImePanelEnabled = enabled; + } + bool AreImagesLoadedAutomatically() const override { return mockImageLoadedAutomatically; @@ -278,6 +969,18 @@ public: { } + void EnableCacheBuilder( bool enabled ) override + { + } + + void UseScrollbarThumbFocusNotifications( bool used ) override + { + } + + void EnableDoNotTrack( bool enabled ) override + { + } + void AllowFileAccessFromExternalUrl( bool allowed ) override { } @@ -286,9 +989,55 @@ public: { } + bool SetViewportMetaTag(bool enable) override + { + return true; + } + + bool SetForceZoom(bool enable) override + { + return true; + } + + bool IsZoomForced() const override + { + return true; + } + + bool SetTextZoomEnabled(bool enable) override + { + return true; + } + + bool IsTextZoomEnabled() const override + { + return true; + } + + void SetExtraFeature(const std::string& feature, bool enable) override + { + } + + bool IsExtraFeatureEnabled(const std::string& feature) const override + { + return true; + } + private: int mockDefaultFontSize; bool mockJavaScriptEnabled; + bool mockAutoFittingEnabled; + bool mockPluginsEnabled; + bool mockPrivateBrowsingEnabled; + bool mockLinkMagnifierEnabled; + bool mockKeypadWithoutUserActionUsed; + bool mockAutofillPasswordFormEnabled; + bool mockFormCandidateDataEnabled; + bool mockTextSelectionEnabled; + bool mockTextAutosizingEnable; + bool mockArrowScrollEnable; + bool mockClipboardEnabled; + bool mockImePanelEnabled; bool mockImageLoadedAutomatically; std::string mockDefaultTextEncodingName; }; @@ -298,9 +1047,6 @@ class WebEngine: public Dali::BaseObject public: using JavaScriptEvaluatedResultCallback = std::function; - using JavaScriptAlertCallback = std::function; - using JavaScriptConfirmCallback = std::function; - using JavaScriptPromptCallback = std::function; WebEngine() : mUrl() @@ -318,7 +1064,12 @@ public: } mockWebEngineSettings = new MockWebEngineSettings(); - mockWebEngineContext = new MockWebEngineContext(); + MockWebEngineContext* engineContext = new MockWebEngineContext(); + mockWebEngineContext = engineContext; + if ( gInstanceCount == 1 ) + { + gWebEngineContextInstance = engineContext; + } mockWebEngineCookieManager = new MockWebEngineCookieManager(); mockWebEngineBackForwardList = new MockWebEngineBackForwardList(); } @@ -329,6 +1080,7 @@ public: if( !gInstanceCount ) { gInstance = 0; + gWebEngineContextInstance = 0; } delete mockWebEngineSettings; @@ -449,114 +1201,283 @@ public: } } - void RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback ) + void RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback ) + { + if ( callback ) + { + ConnectToGlobalSignal( &OnJavaScriptPrompt ); + mJavaScriptPromptCallback = callback; + } + } + + std::unique_ptr CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode) + { + std::unique_ptr hitTest(new MockWebEngineHitTest()); + return hitTest; + } + + bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback) + { + if (callback) + { + ConnectToGlobalSignal( &OnHitTestCreated ); + mHitTestCreatedCallback = callback; + } + return true; + } + + void ClearHistory() + { + ConnectToGlobalSignal( &OnClearHistory ); + } + + const std::string& GetUserAgent() const + { + return mUserAgent; + } + + void SetUserAgent( const std::string& userAgent ) + { + mUserAgent = userAgent; + } + + void ScrollBy( int32_t dx, int32_t dy ) + { + mScrollPosition += Dali::Vector2( dx, dy ); + if ( mScrollPosition.y + mScrollSize.height > mContentSize.height ) + { + ConnectToGlobalSignal( &OnScrollEdge ); + } + } + + bool ScrollEdgeBy( int32_t dx, int32_t dy ) + { + mScrollPosition += Dali::Vector2( dx, dy ); + if ( mScrollPosition.y + mScrollSize.height > mContentSize.height ) + { + ConnectToGlobalSignal( &OnScrollEdge ); + } + return true; + } + + void SetScrollPosition( int32_t x, int32_t y ) + { + mScrollPosition.x = x; + mScrollPosition.y = y; + } + + Dali::Vector2 GetScrollPosition() const + { + return mScrollPosition; + } + + Dali::Vector2 GetScrollSize() const + { + return mScrollSize; + } + + Dali::Vector2 GetContentSize() const + { + return mContentSize; + } + + void SetPageZoomFactor(float zoomFactor) + { + mPageZoomFactor = zoomFactor; + } + + float GetPageZoomFactor() const + { + return mPageZoomFactor; + } + + void SetTextZoomFactor(float zoomFactor) + { + mTextZoomFactor = zoomFactor; + } + + float GetTextZoomFactor() const + { + return mTextZoomFactor; + } + + float GetLoadProgressPercentage() const + { + return 0.5f; + } + + void SetScaleFactor(float scaleFactor, Dali::Vector2 point) + { + mScaleFactor = scaleFactor; + } + + float GetScaleFactor() const + { + return mScaleFactor; + } + + Dali::PixelData GetScreenshot(Dali::Rect viewArea, float scaleFactor) + { + uint32_t bufferSize = viewArea.width * viewArea.height * 4 ; + uint8_t* pixel = new uint8_t[ bufferSize ]; + memset(pixel, 0xff, bufferSize); + return Dali::PixelData::New( pixel, bufferSize, viewArea.width, viewArea.height, + Dali::Pixel::Format::RGBA8888, + Dali::PixelData::ReleaseFunction::DELETE_ARRAY ); + } + + bool GetScreenshotAsynchronously(Dali::Rect viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback) + { + if ( callback ) + { + ConnectToGlobalSignal( &OnScreenshotCaptured ); + mScreenshotCapturedCallback = callback; + } + return true; + } + + bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback) + { + if ( callback ) + { + ConnectToGlobalSignal( &OnVideoPlaying ); + mVideoPlayingCallback = callback; + } + return true; + } + + void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback) + { + if ( callback ) + { + ConnectToGlobalSignal( &OnGeolocationPermission ); + mGeolocationPermissionCallback = callback; + } + } + + Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal() + { + return mPageLoadStartedSignal; + } + + Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal() { - if ( callback ) - { - ConnectToGlobalSignal( &OnJavaScriptPrompt ); - mJavaScriptPromptCallback = callback; - } + return mPageLoadInProgressSignal; } - void ClearHistory() + Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal() { - ConnectToGlobalSignal( &OnClearHistory ); + return mPageLoadFinishedSignal; } - const std::string& GetUserAgent() const + Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal() { - return mUserAgent; + return mPageLoadErrorSignal; } - void SetUserAgent( const std::string& userAgent ) + Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() { - mUserAgent = userAgent; + return mScrollEdgeReachedSignal; } - void ScrollBy( int dx, int dy ) + Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal() { - mScrollPosition += Dali::Vector2( dx, dy ); - if ( mScrollPosition.y + mScrollSize.height > mContentSize.height ) - { - ConnectToGlobalSignal( &OnScrollEdge ); - } + return mUrlChangedSignal; } - void SetScrollPosition( int x, int y ) + Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& FormRepostDecisionSignal() { - mScrollPosition.x = x; - mScrollPosition.y = y; + return mFormRepostDecisionSignal; } - Dali::Vector2 GetScrollPosition() const + Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal() { - return mScrollPosition; + return mFrameRenderedSignal; } - Dali::Vector2 GetScrollSize() const + Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& RequestInterceptorSignal() { - return mScrollSize; + return mRequestInterceptorSignal; } - Dali::Vector2 GetContentSize() const + Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& ConsoleMessageSignal() { - return mContentSize; + return mConsoleMessageSignal; } - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal() + Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType& PolicyDecisionSignal() { - return mPageLoadStartedSignal; + return mPolicyDecisionSignal; } - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal() + Dali::WebEnginePlugin::WebEngineCertificateSignalType& CertificateConfirmSignal() { - return mPageLoadInProgressSignal; + return mCertificateConfirmSignal; } - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal() + Dali::WebEnginePlugin::WebEngineCertificateSignalType& SslCertificateChangedSignal() { - return mPageLoadFinishedSignal; + return mSslCertificateChangedSignal; } - Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal() + Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& HttpAuthHandlerSignal() { - return mPageLoadErrorSignal; + return mHttpAuthHandlerSignal; } - Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() + Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& ContextMenuCustomizedSignal() { - return mScrollEdgeReachedSignal; + return mContextMenuCustomizedSignal; } - Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal() + Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& ContextMenuItemSelectedSignal() { - return mUrlChangedSignal; + return mContextMenuItemSelectedSignal; } - std::string mUrl; - std::vector< std::string > mHistory; - size_t mCurrentPlusOnePos; - std::string mUserAgent; - Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadStartedSignal; - Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadInProgressSignal; - Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadFinishedSignal; - Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType mPageLoadErrorSignal; - std::vector mResultCallbacks; - bool mEvaluating; - - Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType mScrollEdgeReachedSignal; - Dali::Vector2 mScrollPosition; - Dali::Vector2 mScrollSize; - Dali::Vector2 mContentSize; - WebEngineBackForwardList* mockWebEngineBackForwardList; - WebEngineContext* mockWebEngineContext; - WebEngineCookieManager* mockWebEngineCookieManager; - WebEngineSettings* mockWebEngineSettings; - Dali::WebEnginePlugin::WebEngineUrlChangedSignalType mUrlChangedSignal; - - JavaScriptAlertCallback mJavaScriptAlertCallback; - JavaScriptConfirmCallback mJavaScriptConfirmCallback; - JavaScriptPromptCallback mJavaScriptPromptCallback; + std::string mUrl; + std::vector mHistory; + size_t mCurrentPlusOnePos; + std::string mUserAgent; + + 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::WebEnginePolicyDecisionSignalType mPolicyDecisionSignal; + Dali::WebEnginePlugin::WebEngineCertificateSignalType mCertificateConfirmSignal; + Dali::WebEnginePlugin::WebEngineCertificateSignalType mSslCertificateChangedSignal; + Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType mHttpAuthHandlerSignal; + Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType mContextMenuCustomizedSignal; + Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType mContextMenuItemSelectedSignal; + + bool mEvaluating; + float mPageZoomFactor; + float mTextZoomFactor; + float mScaleFactor; + + Dali::Vector2 mScrollPosition; + Dali::Vector2 mScrollSize; + Dali::Vector2 mContentSize; + WebEngineBackForwardList* mockWebEngineBackForwardList; + WebEngineContext* mockWebEngineContext; + WebEngineCookieManager* mockWebEngineCookieManager; + WebEngineSettings* mockWebEngineSettings; + + std::vector mResultCallbacks; + 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; }; @@ -601,6 +1522,31 @@ bool OnLoadUrl() gInstance->mPageLoadInProgressSignal.Emit( gInstance->mUrl ); gInstance->mPageLoadFinishedSignal.Emit( gInstance->mUrl ); gInstance->mUrlChangedSignal.Emit( "http://new-test" ); + + std::shared_ptr repostDecision(new MockWebEngineFormRepostDecision()); + gInstance->mFormRepostDecisionSignal.Emit(std::move(repostDecision)); + gInstance->mFrameRenderedSignal.Emit(); + std::shared_ptr interceptor(new MockWebEngineRequestInterceptor()); + gInstance->mRequestInterceptorSignal.Emit(std::move(interceptor)); + + std::shared_ptr error(new MockWebEngineLoadError(gInstance->mUrl)); + gInstance->mPageLoadErrorSignal.Emit(std::move(error)); + std::shared_ptr message(new MockWebEngineConsoleMessage()); + gInstance->mConsoleMessageSignal.Emit(std::move(message)); + std::shared_ptr policyDecision(new MockWebEnginePolicyDecision()); + gInstance->mPolicyDecisionSignal.Emit(std::move(policyDecision)); + + std::shared_ptr certificate(new MockWebEngineCertificate()); + gInstance->mCertificateConfirmSignal.Emit(std::move(certificate)); + std::shared_ptr sslCertificate(new MockWebEngineCertificate()); + gInstance->mSslCertificateChangedSignal.Emit(std::move(sslCertificate)); + std::shared_ptr handler(new MockWebEngineHttpAuthHandler()); + gInstance->mHttpAuthHandlerSignal.Emit(std::move(handler)); + + std::shared_ptr menu(new MockWebEngineContextMenu()); + gInstance->mContextMenuCustomizedSignal.Emit(std::move(menu)); + std::shared_ptr item(new MockWebEngineContextMenuItem()); + gInstance->mContextMenuItemSelectedSignal.Emit(std::move(item)); } return false; } @@ -662,6 +1608,52 @@ bool OnJavaScriptPrompt() return false; } +bool OnScreenshotCaptured() +{ + DisconnectFromGlobalSignal( &OnScreenshotCaptured ); + if ( gInstance ) + { + uint8_t* pixel = new uint8_t[ 2 * 2 * 4 ]; + memset(pixel, 0xff, 2 * 2 * 4); + Dali::PixelData data = Dali::PixelData::New( pixel, 2 * 2 * 4, 2, 2, + Dali::Pixel::Format::RGBA8888, + Dali::PixelData::ReleaseFunction::DELETE_ARRAY ); + gInstance->mScreenshotCapturedCallback( data ); + } + return false; +} + +bool OnVideoPlaying() +{ + DisconnectFromGlobalSignal( &OnVideoPlaying ); + if ( gInstance ) + { + gInstance->mVideoPlayingCallback( true ); + } + return false; +} + +bool OnGeolocationPermission() +{ + DisconnectFromGlobalSignal( &OnGeolocationPermission ); + if ( gInstance ) + { + gInstance->mGeolocationPermissionCallback( "", "" ); + } + return false; +} + +bool OnHitTestCreated() +{ + DisconnectFromGlobalSignal(&OnHitTestCreated); + if (gInstance) + { + std::unique_ptr test(new MockWebEngineHitTest()); + gInstance->mHitTestCreatedCallback(std::move(test)); + } + return false; +} + bool OnClearHistory() { DisconnectFromGlobalSignal( &OnClearHistory ); @@ -676,6 +1668,65 @@ bool OnClearHistory() return false; } +bool OnSecurityOriginAcquired() +{ + DisconnectFromGlobalSignal(&OnSecurityOriginAcquired); + if (gWebEngineContextInstance) + { + std::vector> securityOriginList; + std::unique_ptr origin(new MockWebEngineSecurityOrigin()); + securityOriginList.push_back(std::move(origin)); + gWebEngineContextInstance->mSecurityOriginAcquiredCallback(securityOriginList); + } + return false; +} + +bool OnStorageUsageAcquired() +{ + DisconnectFromGlobalSignal(&OnStorageUsageAcquired); + if (gWebEngineContextInstance) + { + gWebEngineContextInstance->mStorageUsageAcquiredCallback(0); + } + return false; +} + +bool OnFormPasswordAcquired() +{ + DisconnectFromGlobalSignal(&OnFormPasswordAcquired); + if (gWebEngineContextInstance) + { + std::vector> formPasswordList; + std::unique_ptr data(new Dali::WebEngineContext::PasswordData()); + data->url = "http://test.html"; + data->useFingerprint = false; + formPasswordList.push_back(std::move(data)); + gWebEngineContextInstance->mFormPasswordAcquiredCallback(formPasswordList); + } + return false; +} + +bool OnDownloadStarted() +{ + DisconnectFromGlobalSignal(&OnDownloadStarted); + if (gWebEngineContextInstance) + { + gWebEngineContextInstance->mDownloadStartedCallback("http://test.html"); + } + return false; +} + +bool OnMimeOverridden() +{ + DisconnectFromGlobalSignal(&OnMimeOverridden); + if (gWebEngineContextInstance) + { + std::string newMime; + gWebEngineContextInstance->mMimeOverriddenCallback("http://test.html", "txt/xml", newMime); + } + return false; +} + } // namespace inline WebEngine& GetImplementation( Dali::WebEngine& webEngine ) @@ -733,11 +1784,11 @@ WebEngine WebEngine::DownCast( BaseHandle handle ) return WebEngine( dynamic_cast< Internal::Adaptor::WebEngine* >( handle.GetObjectPtr() ) ); } -void WebEngine::Create( int width, int height, const std::string& locale, const std::string& timezoneId ) +void WebEngine::Create( uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId ) { } -void WebEngine::Create( int width, int height, int argc, char** argv ) +void WebEngine::Create( uint32_t width, uint32_t height, uint32_t argc, char** argv ) { } @@ -796,10 +1847,25 @@ void WebEngine::LoadHtmlString( const std::string& htmlString ) { } +bool WebEngine::LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl) +{ + return true; +} + +bool WebEngine::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri) +{ + return true; +} + void WebEngine::Reload() { } +bool WebEngine::ReloadWithoutCache() +{ + return true; +} + void WebEngine::StopLoading() { } @@ -812,6 +1878,34 @@ void WebEngine::Resume() { } +void WebEngine::SuspendNetworkLoading() +{ +} + +void WebEngine::ResumeNetworkLoading() +{ +} + +bool WebEngine::AddCustomHeader(const std::string& name, const std::string& value) +{ + return true; +} + +bool WebEngine::RemoveCustomHeader(const std::string& name) +{ + return true; +} + +uint32_t WebEngine::StartInspectorServer(uint32_t port) +{ + return port; +} + +bool WebEngine::StopInspectorServer() +{ + return true; +} + bool WebEngine::CanGoForward() { return Internal::Adaptor::GetImplementation( *this ).CanGoForward(); @@ -868,6 +1962,16 @@ void WebEngine::JavaScriptPromptReply( const std::string& result ) { } +std::unique_ptr WebEngine::CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode) +{ + return Internal::Adaptor::GetImplementation(*this).CreateHitTest(x, y, mode); +} + +bool WebEngine::CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback) +{ + return Internal::Adaptor::GetImplementation(*this).CreateHitTestAsynchronously(x, y, mode, callback); +} + void WebEngine::ClearAllTilesResources() { } @@ -877,6 +1981,49 @@ void WebEngine::ClearHistory() Internal::Adaptor::GetImplementation( *this ).ClearHistory(); } +void WebEngine::SetScaleFactor(float scaleFactor, Dali::Vector2 point) +{ + Internal::Adaptor::GetImplementation( *this ).SetScaleFactor(scaleFactor, point); +} + +float WebEngine::GetScaleFactor() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetScaleFactor(); +} + +void WebEngine::ActivateAccessibility(bool activated) +{ +} + +bool WebEngine::HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount) +{ + return true; +} + +void WebEngine::AddDynamicCertificatePath(const std::string& host, const std::string& certPath) +{ +} + +Dali::PixelData WebEngine::GetScreenshot(Dali::Rect viewArea, float scaleFactor) +{ + return Internal::Adaptor::GetImplementation( *this ).GetScreenshot(viewArea, scaleFactor); +} + +bool WebEngine::GetScreenshotAsynchronously(Dali::Rect viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback) +{ + return Internal::Adaptor::GetImplementation( *this ).GetScreenshotAsynchronously(viewArea, scaleFactor, callback); +} + +bool WebEngine::CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback) +{ + return Internal::Adaptor::GetImplementation( *this ).CheckVideoPlayingAsynchronously(callback); +} + +void WebEngine::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback) +{ + Internal::Adaptor::GetImplementation( *this ).RegisterGeolocationPermissionCallback(callback); +} + const std::string& WebEngine::GetUserAgent() const { return Internal::Adaptor::GetImplementation( *this ).GetUserAgent(); @@ -887,12 +2034,17 @@ void WebEngine::SetUserAgent( const std::string& userAgent ) Internal::Adaptor::GetImplementation( *this ).SetUserAgent( userAgent ); } -void WebEngine::ScrollBy( int dx, int dy ) +void WebEngine::ScrollBy( int32_t dx, int32_t dy ) { Internal::Adaptor::GetImplementation( *this ).ScrollBy( dx, dy ); } -void WebEngine::SetScrollPosition( int x, int y ) +bool WebEngine::ScrollEdgeBy( int32_t dx, int32_t dy ) +{ + return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeBy( dx, dy ); +} + +void WebEngine::SetScrollPosition( int32_t x, int32_t y ) { Internal::Adaptor::GetImplementation( *this ).SetScrollPosition( x, y ); } @@ -912,8 +2064,29 @@ Dali::Vector2 WebEngine::GetContentSize() const return Internal::Adaptor::GetImplementation( *this ).GetContentSize(); } -void WebEngine::SetSize( int width, int height ) +void WebEngine::SetSize( uint32_t width, uint32_t height ) +{ +} + +void WebEngine::SetDocumentBackgroundColor(Dali::Vector4 color) +{ +} + +void WebEngine::ClearTilesWhenHidden(bool cleared) +{ +} + +void WebEngine::SetTileCoverAreaMultiplier(float multiplier) +{ +} + +void WebEngine::EnableCursorByClient(bool enabled) +{ +} + +std::string WebEngine::GetSelectedText() const { + return "test"; } bool WebEngine::SendTouchEvent( const TouchEvent& touch ) @@ -926,11 +2099,46 @@ bool WebEngine::SendKeyEvent( const KeyEvent& event ) return true; } +bool WebEngine::SendHoverEvent( const HoverEvent& event ) +{ + return true; +} + +bool WebEngine::SendWheelEvent( const WheelEvent& event ) +{ + return true; +} + void WebEngine::SetFocus( bool focused ) { } -void WebEngine::UpdateDisplayArea( Dali::Rect< int > displayArea ) +void WebEngine::SetPageZoomFactor(float zoomFactor) +{ + Internal::Adaptor::GetImplementation( *this ).SetPageZoomFactor(zoomFactor); +} + +float WebEngine::GetPageZoomFactor() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetPageZoomFactor(); +} + +void WebEngine::SetTextZoomFactor(float zoomFactor) +{ + Internal::Adaptor::GetImplementation( *this ).SetTextZoomFactor(zoomFactor); +} + +float WebEngine::GetTextZoomFactor() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetTextZoomFactor(); +} + +float WebEngine::GetLoadProgressPercentage() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetLoadProgressPercentage(); +} + +void WebEngine::UpdateDisplayArea( Dali::Rect< int32_t > displayArea ) { } @@ -938,6 +2146,14 @@ void WebEngine::EnableVideoHole( bool enabled ) { } +void WebEngine::EnableMouseEvents( bool enabled ) +{ +} + +void WebEngine::EnableKeyEvents( bool enabled ) +{ +} + Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadStartedSignal() { return Internal::Adaptor::GetImplementation( *this ).PageLoadStartedSignal(); @@ -968,5 +2184,55 @@ Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& WebEngine::UrlChangedSigna return Internal::Adaptor::GetImplementation( *this ).UrlChangedSignal(); } +Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& WebEngine::FormRepostDecisionSignal() +{ + return Internal::Adaptor::GetImplementation(*this).FormRepostDecisionSignal(); +} + +Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal() +{ + return Internal::Adaptor::GetImplementation(*this).FrameRenderedSignal(); +} + +Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& WebEngine::RequestInterceptorSignal() +{ + return Internal::Adaptor::GetImplementation(*this).RequestInterceptorSignal(); +} + +Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& WebEngine::ConsoleMessageSignal() +{ + return Internal::Adaptor::GetImplementation(*this).ConsoleMessageSignal(); +} + +Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType& WebEngine::PolicyDecisionSignal() +{ + return Internal::Adaptor::GetImplementation(*this).PolicyDecisionSignal(); +} + +Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::CertificateConfirmSignal() +{ + return Internal::Adaptor::GetImplementation(*this).CertificateConfirmSignal(); +} + +Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::SslCertificateChangedSignal() +{ + return Internal::Adaptor::GetImplementation(*this).SslCertificateChangedSignal(); +} + +Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& WebEngine::HttpAuthHandlerSignal() +{ + return Internal::Adaptor::GetImplementation(*this).HttpAuthHandlerSignal(); +} + +Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& WebEngine::ContextMenuCustomizedSignal() +{ + return Internal::Adaptor::GetImplementation( *this ).ContextMenuCustomizedSignal(); +} + +Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& WebEngine::ContextMenuItemSelectedSignal() +{ + return Internal::Adaptor::GetImplementation( *this ).ContextMenuItemSelectedSignal(); +} + } // namespace Dali;