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=600374949cdc2e688e5a973863ad16b57ba9e56f;hp=d760930a8183573698bead0e6e192c4084396355;hb=2f810b8a969d39e569b39107a02dfaf35c0c48bc;hpb=c857a82d2a092fe17e654baf70afd454143310de 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 d760930..6003749 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,27 +17,29 @@ #include "toolkit-timer.h" -#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 +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include #include #include #include @@ -53,15 +55,16 @@ namespace Adaptor class WebEngine; class MockWebEngineContext; +class MockWebEngineCookieManager; namespace { - // Generally only one WebEngine instance exists. // If > 1, a new web engine has been created by CreateWindowSignal. -static WebEngine* gInstance = nullptr; -static int gInstanceCount = 0; -static MockWebEngineContext* gWebEngineContextInstance = nullptr; +WebEngine* gInstance = nullptr; +int gInstanceCount = 0; +MockWebEngineContext* gWebEngineContextInstance = nullptr; +MockWebEngineCookieManager* gMockWebEngineCookieManager = nullptr; bool OnGoBack(); bool OnGoForward(); @@ -70,6 +73,7 @@ bool OnEvaluteJavaScript(); bool OnJavaScriptAlert(); bool OnJavaScriptConfirm(); bool OnJavaScriptPrompt(); +bool OnHitTestCreated(); bool OnScrollEdge(); bool OnScreenshotCaptured(); bool OnVideoPlaying(); @@ -80,6 +84,9 @@ bool OnStorageUsageAcquired(); bool OnFormPasswordAcquired(); bool OnDownloadStarted(); bool OnMimeOverridden(); +bool OnRequestIntercepted(); +bool OnChangesWatch(); +bool OnPlainTextReceived(); static void ConnectToGlobalSignal( bool ( *func )() ) { @@ -114,6 +121,22 @@ public: void SetProxyUri( const std::string& uri ) override { + mockProxyUri = uri; + } + + std::string GetProxyUri() const override + { + return mockProxyUri; + } + + void SetProxyBypassRule(const std::string& proxy, const std::string& bypass) override + { + mockBypassRule = bypass; + } + + std::string GetProxyBypassRule() const override + { + return mockBypassRule; } void SetDefaultProxyAuth( const std::string& username, const std::string& password ) override @@ -122,13 +145,19 @@ public: void SetCertificateFilePath( const std::string& certificatePath ) override { + mockCertificateFilePath = certificatePath; + } + + std::string GetCertificateFilePath() const override + { + return mockCertificateFilePath; } void DeleteAllWebDatabase() override { } - bool GetWebDatabaseOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback) + bool GetWebDatabaseOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback) override { if (callback) { @@ -138,12 +167,12 @@ public: return true; } - bool DeleteWebDatabase(Dali::WebEngineSecurityOrigin& origin) + bool DeleteWebDatabase(Dali::WebEngineSecurityOrigin& origin) override { return true; } - bool GetWebStorageOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback) + bool GetWebStorageOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback) override { if (callback) { @@ -153,7 +182,7 @@ public: return true; } - bool GetWebStorageUsageForOrigin(Dali::WebEngineSecurityOrigin& origin, Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback callback) + bool GetWebStorageUsageForOrigin(Dali::WebEngineSecurityOrigin& origin, Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback callback) override { if (callback) { @@ -167,7 +196,7 @@ public: { } - bool DeleteWebStorageOrigin(Dali::WebEngineSecurityOrigin& origin) + bool DeleteWebStorage(Dali::WebEngineSecurityOrigin& origin) override { return true; } @@ -176,20 +205,16 @@ public: { } - void DisableCache( bool cacheDisabled ) override - { - } - void ClearCache() override { } - bool DeleteApplicationCache(Dali::WebEngineSecurityOrigin& origin) + bool DeleteApplicationCache(Dali::WebEngineSecurityOrigin& origin) override { return true; } - void GetFormPasswordList(Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback callback) + void GetFormPasswordList(Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback callback) override { if (callback) { @@ -198,7 +223,7 @@ public: } } - void RegisterDownloadStartedCallback(Dali::WebEngineContext::WebEngineDownloadStartedCallback callback) + void RegisterDownloadStartedCallback(Dali::WebEngineContext::WebEngineDownloadStartedCallback callback) override { if (callback) { @@ -207,7 +232,7 @@ public: } } - void RegisterMimeOverriddenCallback(Dali::WebEngineContext::WebEngineMimeOverriddenCallback callback) + void RegisterMimeOverriddenCallback(Dali::WebEngineContext::WebEngineMimeOverriddenCallback callback) override { if (callback) { @@ -216,41 +241,117 @@ public: } } -public: - Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback mSecurityOriginAcquiredCallback; - Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback mStorageUsageAcquiredCallback; - Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback mFormPasswordAcquiredCallback; - Dali::WebEngineContext::WebEngineDownloadStartedCallback mDownloadStartedCallback; - Dali::WebEngineContext::WebEngineMimeOverriddenCallback mMimeOverriddenCallback; + void RegisterRequestInterceptedCallback(Dali::WebEngineContext::WebEngineRequestInterceptedCallback callback) override + { + if (callback) + { + ConnectToGlobalSignal(&OnRequestIntercepted); + mRequestInterceptedCallback = callback; + } + } -private: - Dali::WebEngineContext::CacheModel mockModel; -}; + void EnableCache( bool cacheEnabled ) override + { + mockCacheEnabled = cacheEnabled; + } -class MockWebEngineSecurityOrigin : public Dali::WebEngineSecurityOrigin -{ -public: - MockWebEngineSecurityOrigin() - : mockUrl("https://test.html") - , mockPotocol("https") + bool IsCacheEnabled() const override { + return mockCacheEnabled; } - std::string GetHost() const + void SetAppId(const std::string& appID) override { - return mockUrl; } - std::string GetProtocol() const + bool SetAppVersion(const std::string& appVersion) override + { + return true; + } + + void SetApplicationType(const Dali::WebEngineContext::ApplicationType applicationType) override { - return mockPotocol; } + void SetTimeOffset(float timeOffset) override + { + } + + void SetTimeZoneOffset(float timeZoneOffset, float daylightSavingTime) override + { + } + + void RegisterUrlSchemesAsCorsEnabled(const std::vector& schemes) override + { + } + + void RegisterJsPluginMimeTypes(const std::vector& mimeTypes) override + { + } + + void SetDefaultZoomFactor(float zoomFactor) override + { + mockZoomFactor = zoomFactor; + } + + float GetDefaultZoomFactor() const override + { + return mockZoomFactor; + } + + bool DeleteAllApplicationCache() override + { + return true; + } + + bool DeleteAllWebIndexedDatabase() override + { + return true; + } + + void DeleteFormPasswordDataList(const std::vector& list) override + { + } + + void DeleteAllFormPasswordData() override + { + } + + void DeleteAllFormCandidateData() override + { + } + + bool FreeUnusedMemory() override + { + return true; + } + +public: + Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback mSecurityOriginAcquiredCallback; + Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback mStorageUsageAcquiredCallback; + Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback mFormPasswordAcquiredCallback; + Dali::WebEngineContext::WebEngineDownloadStartedCallback mDownloadStartedCallback; + Dali::WebEngineContext::WebEngineMimeOverriddenCallback mMimeOverriddenCallback; + Dali::WebEngineContext::WebEngineRequestInterceptedCallback mRequestInterceptedCallback; + private: - std::string mockUrl; - std::string mockPotocol; + Dali::WebEngineContext::CacheModel mockModel; + std::string mockProxyUri; + std::string mockBypassRule; + std::string mockCertificateFilePath; + bool mockCacheEnabled; + float mockZoomFactor; }; +Dali::WebEngineContext* GetContext() +{ + if (!gWebEngineContextInstance) + { + gWebEngineContextInstance = new MockWebEngineContext(); + } + return gWebEngineContextInstance; +} + class MockWebEngineCookieManager : public Dali::WebEngineCookieManager { public: @@ -277,10 +378,31 @@ public: { } + void ChangesWatch( Dali::WebEngineCookieManager::WebEngineCookieManagerChangesWatchCallback callback ) override + { + if ( callback ) + { + ConnectToGlobalSignal( &OnChangesWatch ); + mChangesWatchCallback = callback; + } + } + +public: + Dali::WebEngineCookieManager::WebEngineCookieManagerChangesWatchCallback mChangesWatchCallback; + private: Dali::WebEngineCookieManager::CookieAcceptPolicy mockCookieAcceptPolicy; }; +Dali::WebEngineCookieManager* GetCookieManager() +{ + if (!gMockWebEngineCookieManager) + { + gMockWebEngineCookieManager = new MockWebEngineCookieManager(); + } + return gMockWebEngineCookieManager; +} + class MockWebEngineBackForwardListItem : public Dali::WebEngineBackForwardListItem { public: @@ -316,19 +438,31 @@ class MockWebEngineBackForwardList : public Dali::WebEngineBackForwardList { public: MockWebEngineBackForwardList() - : mockItem(), - pMockItem( &mockItem ) { } - Dali::WebEngineBackForwardListItem& GetCurrentItem() const override + std::unique_ptr GetCurrentItem() const override + { + std::unique_ptr ret(new MockWebEngineBackForwardListItem()); + return ret; + } + + std::unique_ptr GetPreviousItem() const override { - return *pMockItem; + std::unique_ptr ret(new MockWebEngineBackForwardListItem()); + return ret; } - Dali::WebEngineBackForwardListItem& GetItemAtIndex( uint32_t index ) const override + std::unique_ptr GetNextItem() const override { - return *pMockItem; + 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 @@ -336,9 +470,21 @@ public: return 1; } -private: - MockWebEngineBackForwardListItem mockItem; - WebEngineBackForwardListItem* pMockItem; + 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 @@ -482,39 +628,6 @@ 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: @@ -645,11 +758,6 @@ public: return result; } - Dali::Vector2 GetPosition() const override - { - return Dali::Vector2(100, 100); - } - bool RemoveItem(WebEngineContextMenuItem& item) override { return true; @@ -676,6 +784,100 @@ public: } }; +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 + { + return "label"; + } + + std::string GetImageUri() const override + { + return "http://test.jpg"; + } + + std::string GetMediaUri() const override + { + return "http://test.mp4"; + } + + std::string GetTagName() const override + { + return "img"; + } + + std::string GetNodeValue() const override + { + return "test"; + } + + Dali::Property::Map GetAttributes() const override + { + return mockAttributesMap; + } + + std::string GetImageFileNameExtension() const override + { + return "jpg"; + } + + Dali::PixelData GetImageBuffer() override + { + uint8_t* imageData = new uint8_t[16]; + memset(imageData, 0xff, 16); + return Dali::PixelData::New(imageData, 16, 2, 2, + Dali::Pixel::Format::RGBA8888, + Dali::PixelData::ReleaseFunction::DELETE_ARRAY); + } + +private: + mutable Dali::Property::Map mockAttributesMap; +}; + +class MockWebEngineSecurityOrigin : public Dali::WebEngineSecurityOrigin +{ +public: + MockWebEngineSecurityOrigin() + : mockUrl("https://test.html") + , mockPotocol("https") + { + } + + std::string GetHost() const + { + return mockUrl; + } + + std::string GetProtocol() const + { + return mockPotocol; + } + +private: + std::string mockUrl; + std::string mockPotocol; +}; + class MockWebEngineSettings : public WebEngineSettings { public: @@ -891,6 +1093,40 @@ 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; @@ -910,11 +1146,189 @@ private: std::string mockDefaultTextEncodingName; }; -class WebEngine: public Dali::BaseObject +class MockWebEnginePlugin : public Dali::WebEnginePlugin +{ +public: + MockWebEnginePlugin(){} + void Create(uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId) override {} + void Create(uint32_t width, uint32_t height, uint32_t argc, char** argv) override {} + void Destroy() override {} + WebEngineSettings& GetSettings() const override { return *((WebEngineSettings*)&settings); } + WebEngineBackForwardList& GetBackForwardList() const override { return *((WebEngineBackForwardList*)&backForwardList); } + void LoadUrl(const std::string& url) override {} + std::string GetTitle() const override { return std::string(); } + Dali::PixelData GetFavicon() const override { return Dali::PixelData(); } + NativeImageSourcePtr GetNativeImageSource() override { return nullptr; } + std::string GetUrl() const override { return std::string(); } + void LoadHtmlString(const std::string& htmlString) override {} + bool LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl) override { return false; } + bool LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri) override { return false; } + void Reload() override {} + bool ReloadWithoutCache() override { return false; } + void StopLoading() override {} + void Suspend() override {} + void Resume() override {} + void SuspendNetworkLoading() override {} + void ResumeNetworkLoading() override {} + bool AddCustomHeader(const std::string& name, const std::string& value) override { return false; } + bool RemoveCustomHeader(const std::string& name) override { return false; } + uint32_t StartInspectorServer(uint32_t port) override { return 0; } + bool StopInspectorServer() override { return false; } + void ScrollBy(int32_t deltaX, int32_t deltaY) override {} + bool ScrollEdgeBy(int32_t deltaX, int32_t deltaY) override { return false; } + void SetScrollPosition(int32_t x, int32_t y) override {} + Dali::Vector2 GetScrollPosition() const override { return Dali::Vector2(); } + Dali::Vector2 GetScrollSize() const override { return Dali::Vector2(); } + Dali::Vector2 GetContentSize() const override { return Dali::Vector2(); } + bool CanGoForward() override { return false; } + void GoForward() override {} + bool CanGoBack() override { return false; } + void GoBack() override {} + void EvaluateJavaScript(const std::string& script, JavaScriptMessageHandlerCallback resultHandler) override {} + void AddJavaScriptMessageHandler(const std::string& exposedObjectName, JavaScriptMessageHandlerCallback handler) override {} + void RegisterJavaScriptAlertCallback(JavaScriptAlertCallback callback) override {} + void JavaScriptAlertReply() override {} + void RegisterJavaScriptConfirmCallback(JavaScriptConfirmCallback callback) override {} + void JavaScriptConfirmReply(bool confirmed) override {} + void RegisterJavaScriptPromptCallback(JavaScriptPromptCallback callback) override {} + void JavaScriptPromptReply(const std::string& result) override {} + std::unique_ptr CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode) override { return nullptr; } + bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, WebEngineHitTestCreatedCallback callback) override { return false; } + void ClearHistory() override {} + void ClearAllTilesResources() override {} + std::string GetUserAgent() const override { return std::string(); } + void SetUserAgent(const std::string& userAgent) override {} + void SetSize(uint32_t width, uint32_t height) override {} + void SetDocumentBackgroundColor(Dali::Vector4 color) override {} + void ClearTilesWhenHidden(bool cleared) override {} + void SetTileCoverAreaMultiplier(float multiplier) override {} + void EnableCursorByClient(bool enabled) override {} + std::string GetSelectedText() const override { return std::string(); } + bool SendTouchEvent(const TouchEvent& touch) override { return false; } + bool SendKeyEvent(const KeyEvent& event) override { return false; } + void EnableMouseEvents(bool enabled) override {} + void EnableKeyEvents(bool enabled) override {} + void SetFocus(bool focused) override {} + void SetPageZoomFactor(float zoomFactor) override {} + float GetPageZoomFactor() const override { return 0.0f; } + void SetTextZoomFactor(float zoomFactor) override {} + float GetTextZoomFactor() const override { return 0.0f; } + float GetLoadProgressPercentage() const override { return 0.0f; } + void SetScaleFactor(float scaleFactor, Dali::Vector2 point) override {} + float GetScaleFactor() const override { return 0.0f; } + void ActivateAccessibility(bool activated) override {} + Accessibility::Address GetAccessibilityAddress() override { return Accessibility::Address(); } + bool SetVisibility(bool visible) override { return false; } + bool HighlightText(const std::string& text, FindOption options, uint32_t maxMatchCount) override { return false; } + void AddDynamicCertificatePath(const std::string& host, const std::string& certPath) override {} + Dali::PixelData GetScreenshot(Dali::Rect viewArea, float scaleFactor) override { return Dali::PixelData(); } + bool GetScreenshotAsynchronously(Dali::Rect viewArea, float scaleFactor, ScreenshotCapturedCallback callback) override { return false; } + bool CheckVideoPlayingAsynchronously(VideoPlayingCallback callback) override { return false; } + void RegisterGeolocationPermissionCallback(GeolocationPermissionCallback callback) override {} + void UpdateDisplayArea(Dali::Rect displayArea) override {} + void EnableVideoHole(bool enabled) override {} + bool SendHoverEvent(const HoverEvent& event) override { return false; } + bool SendWheelEvent(const WheelEvent& event) override { return false; } + WebEngineFrameRenderedSignalType& FrameRenderedSignal() override { return frameRenderedSignal; } + void RegisterPageLoadStartedCallback(WebEnginePageLoadCallback callback) override {} + void RegisterPageLoadInProgressCallback(WebEnginePageLoadCallback callback) override {} + void RegisterPageLoadFinishedCallback(WebEnginePageLoadCallback callback) override {} + void RegisterPageLoadErrorCallback(WebEnginePageLoadErrorCallback callback) override {} + void RegisterScrollEdgeReachedCallback(WebEngineScrollEdgeReachedCallback callback) override {} + void RegisterUrlChangedCallback(WebEngineUrlChangedCallback callback) override {} + void RegisterFormRepostDecidedCallback(WebEngineFormRepostDecidedCallback callback) override {} + void RegisterConsoleMessageReceivedCallback(WebEngineConsoleMessageReceivedCallback callback) override {} + void RegisterResponsePolicyDecidedCallback(WebEngineResponsePolicyDecidedCallback callback) override {} + void RegisterNavigationPolicyDecidedCallback(WebEngineNavigationPolicyDecidedCallback callback) override {} + void RegisterCertificateConfirmedCallback(WebEngineCertificateCallback callback) override {} + void RegisterSslCertificateChangedCallback(WebEngineCertificateCallback callback) override {} + void RegisterHttpAuthHandlerCallback(WebEngineHttpAuthHandlerCallback callback) override {} + void RegisterContextMenuShownCallback(WebEngineContextMenuShownCallback callback) override {} + void RegisterContextMenuHiddenCallback(WebEngineContextMenuHiddenCallback callback) override {} + void GetPlainTextAsynchronously(PlainTextReceivedCallback callback) override {} +private: + MockWebEngineSettings settings; + MockWebEngineBackForwardList backForwardList; + WebEngineFrameRenderedSignalType frameRenderedSignal; +}; + +Dali::WebEnginePlugin* GetWebEnginePlugin() +{ + static MockWebEnginePlugin plugin; + return &plugin; +} + +class MockWebEngineRequestInterceptor : public WebEngineRequestInterceptor { public: + MockWebEngineRequestInterceptor() + { + } + + Dali::WebEnginePlugin* GetWebEngine() const + { + return GetWebEnginePlugin(); + } + + std::string GetUrl() const override + { + return "http://test.html"; + } + + Dali::Property::Map GetHeaders() const override + { + return mockHeadersMap; + } + + std::string GetMethod() const override + { + return "GET"; + } + + 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 + { + mockHeadersMap.Add(fieldName, fieldValue); + return true; + } + + bool AddResponseHeaders(const Dali::Property::Map& headers) override + { + mockHeadersMap.Merge(headers); + return true; + } + + bool AddResponseBody(const int8_t* body, uint32_t length) override + { + return true; + } + + bool AddResponse(const std::string& headers, const int8_t* body, uint32_t length) override + { + return true; + } + + bool WriteResponseChunk(const int8_t* chunk, uint32_t length) override + { + return true; + } - using JavaScriptEvaluatedResultCallback = std::function; +private: + Dali::Property::Map mockHeadersMap; +}; + +class WebEngine: public Dali::BaseObject +{ +public: WebEngine() : mUrl() @@ -932,13 +1346,6 @@ public: } mockWebEngineSettings = new MockWebEngineSettings(); - MockWebEngineContext* engineContext = new MockWebEngineContext(); - mockWebEngineContext = engineContext; - if ( gInstanceCount == 1 ) - { - gWebEngineContextInstance = engineContext; - } - mockWebEngineCookieManager = new MockWebEngineCookieManager(); mockWebEngineBackForwardList = new MockWebEngineBackForwardList(); } @@ -947,13 +1354,10 @@ public: gInstanceCount--; if( !gInstanceCount ) { - gInstance = 0; - gWebEngineContextInstance = 0; + gInstance = nullptr; } delete mockWebEngineSettings; - delete mockWebEngineContext; - delete mockWebEngineCookieManager; delete mockWebEngineBackForwardList; } @@ -962,16 +1366,6 @@ public: return *mockWebEngineSettings; } - Dali::WebEngineContext& GetContext() const - { - return *mockWebEngineContext; - } - - Dali::WebEngineCookieManager& GetCookieManager() const - { - return *mockWebEngineCookieManager; - } - Dali::WebEngineBackForwardList& GetBackForwardList() const { return *mockWebEngineBackForwardList; @@ -983,7 +1377,7 @@ public: ConnectToGlobalSignal( &OnLoadUrl ); } - const std::string& GetUrl() const + std::string GetUrl() const { return mUrl; } @@ -995,28 +1389,20 @@ public: Dali::PixelData GetFavicon() const { - uint8_t* faviconData = new uint8_t[ 16 ]; - - faviconData[ 0 ] = 0xff; - faviconData[ 1 ] = 0x00; - faviconData[ 2 ] = 0x00; - faviconData[ 3 ] = 0xff; - faviconData[ 4 ] = 0xff; - faviconData[ 5 ] = 0x00; - faviconData[ 6 ] = 0x00; - faviconData[ 7 ] = 0xff; - faviconData[ 8 ] = 0xff; - faviconData[ 9 ] = 0x00; - faviconData[ 10 ] = 0x00; - faviconData[ 11 ] = 0xff; - faviconData[ 12 ] = 0xff; - faviconData[ 13 ] = 0x00; - faviconData[ 14 ] = 0x00; - faviconData[ 15 ] = 0xff; - - return Dali::PixelData::New( faviconData, 16, 2, 2, - Dali::Pixel::Format::RGBA8888, - Dali::PixelData::ReleaseFunction::DELETE_ARRAY ); + static int testGetFaviconCount = 0; + if (testGetFaviconCount == 0) + { + testGetFaviconCount++; + 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); + } + else + { + return Dali::PixelData(); + } } bool CanGoForward() const @@ -1078,12 +1464,28 @@ public: } } + 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 + std::string GetUserAgent() const { return mUserAgent; } @@ -1093,7 +1495,7 @@ public: mUserAgent = userAgent; } - void ScrollBy( int dx, int dy ) + void ScrollBy( int32_t dx, int32_t dy ) { mScrollPosition += Dali::Vector2( dx, dy ); if ( mScrollPosition.y + mScrollSize.height > mContentSize.height ) @@ -1102,7 +1504,7 @@ public: } } - bool ScrollEdgeBy( int dx, int dy ) + bool ScrollEdgeBy( int32_t dx, int32_t dy ) { mScrollPosition += Dali::Vector2( dx, dy ); if ( mScrollPosition.y + mScrollSize.height > mContentSize.height ) @@ -1112,7 +1514,7 @@ public: return true; } - void SetScrollPosition( int x, int y ) + void SetScrollPosition( int32_t x, int32_t y ) { mScrollPosition.x = x; mScrollPosition.y = y; @@ -1168,7 +1570,12 @@ public: return mScaleFactor; } - Dali::PixelData GetScreenshot(Dali::Rect viewArea, float scaleFactor) + Dali::Accessibility::Address GetAccessibilityAddress() + { + return {":9.99", "root"}; + } + + Dali::PixelData GetScreenshot(Dali::Rect viewArea, float scaleFactor) { uint32_t bufferSize = viewArea.width * viewArea.height * 4 ; uint8_t* pixel = new uint8_t[ bufferSize ]; @@ -1178,7 +1585,7 @@ public: Dali::PixelData::ReleaseFunction::DELETE_ARRAY ); } - bool GetScreenshotAsynchronously(Dali::Rect viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback) + bool GetScreenshotAsynchronously(Dali::Rect viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback) { if ( callback ) { @@ -1207,84 +1614,93 @@ public: } } - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal() + Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal() { - return mPageLoadStartedSignal; + return mFrameRenderedSignal; } - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal() + void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return mPageLoadInProgressSignal; + mPageLoadStartedCallback = callback; } - Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal() + void RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return mPageLoadFinishedSignal; + mPageLoadInProgressCallback = callback; } - Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal() + void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return mPageLoadErrorSignal; + mPageLoadFinishedCallback = callback; } - Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() + void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback) { - return mScrollEdgeReachedSignal; + mPageLoadErrorCallback = callback; } - Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal() + void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback) { - return mUrlChangedSignal; + mScrollEdgeReachedCallback = callback; } - Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& FormRepostDecisionSignal() + void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback) { - return mFormRepostDecisionSignal; + mUrlChangedCallback = callback; } - Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal() + void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback) { - return mFrameRenderedSignal; + mFormRepostDecidedCallback = callback; } - Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& RequestInterceptorSignal() + void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback) { - return mRequestInterceptorSignal; + mConsoleMessageCallback = callback; } - Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& ConsoleMessageSignal() + void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback) { - return mConsoleMessageSignal; + mResponsePolicyDecisionCallback = callback; } - Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType& PolicyDecisionSignal() + void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback) { - return mPolicyDecisionSignal; + mNavigationPolicyDecisionCallback = callback; } - Dali::WebEnginePlugin::WebEngineCertificateSignalType& CertificateConfirmSignal() + void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - return mCertificateConfirmSignal; + mCertificateConfirmCallback = callback; } - Dali::WebEnginePlugin::WebEngineCertificateSignalType& SslCertificateChangedSignal() + void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - return mSslCertificateChangedSignal; + mSslCertificateChangedCallback = callback; } - Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& HttpAuthHandlerSignal() + void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback) { - return mHttpAuthHandlerSignal; + mHttpAuthHandlerCallback = callback; } - Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& ContextMenuCustomizedSignal() + void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback) { - return mContextMenuCustomizedSignal; + mContextMenuShownCallback = callback; } - Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& ContextMenuItemSelectedSignal() + void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback) { - return mContextMenuItemSelectedSignal; + mContextMenuHiddenCallback = callback; + } + + void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback) + { + if (callback) + { + ConnectToGlobalSignal(&OnPlainTextReceived); + mPlainTextReceivedCallback = callback; + } } std::string mUrl; @@ -1292,22 +1708,7 @@ public: 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; + Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType mFrameRenderedSignal; bool mEvaluating; float mPageZoomFactor; @@ -1318,17 +1719,34 @@ public: 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; + std::vector mResultCallbacks; + + Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadStartedCallback; + Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadInProgressCallback; + Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadFinishedCallback; + Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback mPageLoadErrorCallback; + Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback mScrollEdgeReachedCallback; + Dali::WebEnginePlugin::WebEngineUrlChangedCallback mUrlChangedCallback; + Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback mFormRepostDecidedCallback; + Dali::WebEnginePlugin::WebEngineFrameRenderedCallback mFrameRenderedCallback; + Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback mConsoleMessageCallback; + Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback mResponsePolicyDecisionCallback; + Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback mNavigationPolicyDecisionCallback; + Dali::WebEnginePlugin::WebEngineCertificateCallback mCertificateConfirmCallback; + Dali::WebEnginePlugin::WebEngineCertificateCallback mSslCertificateChangedCallback; + Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback mHttpAuthHandlerCallback; + Dali::WebEnginePlugin::WebEngineContextMenuShownCallback mContextMenuShownCallback; + Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback mContextMenuHiddenCallback; + 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; + Dali::WebEnginePlugin::PlainTextReceivedCallback mPlainTextReceivedCallback; }; @@ -1369,35 +1787,77 @@ bool OnLoadUrl() } gInstance->mHistory.push_back( gInstance->mUrl ); gInstance->mCurrentPlusOnePos++; - gInstance->mPageLoadStartedSignal.Emit( gInstance->mUrl ); - 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)); + if (gInstance->mPageLoadStartedCallback) + { + gInstance->mPageLoadStartedCallback( gInstance->mUrl ); + } + if (gInstance->mPageLoadInProgressCallback) + { + gInstance->mPageLoadInProgressCallback( gInstance->mUrl ); + } + if (gInstance->mPageLoadFinishedCallback) + { + gInstance->mPageLoadFinishedCallback( gInstance->mUrl ); + } + if (gInstance->mPageLoadErrorCallback) + { + std::unique_ptr error(new MockWebEngineLoadError(gInstance->mUrl)); + gInstance->mPageLoadErrorCallback(std::move(error)); + } + if (gInstance->mUrlChangedCallback) + { + gInstance->mUrlChangedCallback( "http://new-test" ); + } + if (gInstance->mFormRepostDecidedCallback) + { + std::unique_ptr repostDecision(new MockWebEngineFormRepostDecision()); + gInstance->mFormRepostDecidedCallback(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)); + if (gInstance->mFrameRenderedCallback) + { + gInstance->mFrameRenderedCallback(); + } + if (gInstance->mConsoleMessageCallback) + { + std::unique_ptr message(new MockWebEngineConsoleMessage()); + gInstance->mConsoleMessageCallback(std::move(message)); + } + if (gInstance->mResponsePolicyDecisionCallback) + { + std::unique_ptr policyDecision(new MockWebEnginePolicyDecision()); + gInstance->mResponsePolicyDecisionCallback(std::move(policyDecision)); + } + if (gInstance->mNavigationPolicyDecisionCallback) + { + std::unique_ptr policyDecision(new MockWebEnginePolicyDecision()); + gInstance->mNavigationPolicyDecisionCallback(std::move(policyDecision)); + } + if (gInstance->mCertificateConfirmCallback) + { + std::unique_ptr certificate(new MockWebEngineCertificate()); + gInstance->mCertificateConfirmCallback(std::move(certificate)); + } + if (gInstance->mSslCertificateChangedCallback) + { + std::unique_ptr sslCertificate(new MockWebEngineCertificate()); + gInstance->mSslCertificateChangedCallback(std::move(sslCertificate)); + } + if (gInstance->mHttpAuthHandlerCallback) + { + std::unique_ptr handler(new MockWebEngineHttpAuthHandler()); + gInstance->mHttpAuthHandlerCallback(std::move(handler)); + } + if (gInstance->mContextMenuShownCallback) + { + std::unique_ptr menu(new MockWebEngineContextMenu()); + gInstance->mContextMenuShownCallback(std::move(menu)); + } + if (gInstance->mContextMenuHiddenCallback) + { + std::unique_ptr hiddenMenu(new MockWebEngineContextMenu()); + gInstance->mContextMenuHiddenCallback(std::move(hiddenMenu)); + } } return false; } @@ -1406,9 +1866,9 @@ bool OnScrollEdge() { DisconnectFromGlobalSignal( &OnScrollEdge ); - if( gInstance ) + if( gInstance && gInstance->mScrollEdgeReachedCallback ) { - gInstance->mScrollEdgeReachedSignal.Emit( Dali::WebEnginePlugin::ScrollEdge::BOTTOM ); + gInstance->mScrollEdgeReachedCallback( Dali::WebEnginePlugin::ScrollEdge::BOTTOM ); } return false; @@ -1494,6 +1954,17 @@ bool OnGeolocationPermission() 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 ); @@ -1567,6 +2038,38 @@ bool OnMimeOverridden() return false; } +bool OnRequestIntercepted() +{ + DisconnectFromGlobalSignal(&OnRequestIntercepted); + if (gWebEngineContextInstance) + { + Dali::WebEngineRequestInterceptorPtr interceptor = new MockWebEngineRequestInterceptor(); + gWebEngineContextInstance->mRequestInterceptedCallback(interceptor); + } + return false; +} + +bool OnChangesWatch() +{ + DisconnectFromGlobalSignal(&OnChangesWatch); + if (gMockWebEngineCookieManager) + { + gMockWebEngineCookieManager->mChangesWatchCallback(); + } + return false; +} + +bool OnPlainTextReceived() +{ + DisconnectFromGlobalSignal(&OnPlainTextReceived); + if (gInstance) + { + std::string dummyResultText; + gInstance->mPlainTextReceivedCallback(dummyResultText); + } + return false; +} + } // namespace inline WebEngine& GetImplementation( Dali::WebEngine& webEngine ) @@ -1608,6 +2111,16 @@ WebEngine WebEngine::New() return WebEngine( baseObject ); } +Dali::WebEngineContext* WebEngine::GetContext() +{ + return Internal::Adaptor::GetContext(); +} + +Dali::WebEngineCookieManager* WebEngine::GetCookieManager() +{ + return Internal::Adaptor::GetCookieManager(); +} + WebEngine::WebEngine( const WebEngine& WebEngine ) : BaseHandle( WebEngine ) { @@ -1624,11 +2137,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 ) { } @@ -1641,16 +2154,6 @@ WebEngineSettings& WebEngine::GetSettings() const return Internal::Adaptor::GetImplementation( *this ).GetSettings(); } -WebEngineContext& WebEngine::GetContext() const -{ - return Internal::Adaptor::GetImplementation( *this ).GetContext(); -} - -WebEngineCookieManager& WebEngine::GetCookieManager() const -{ - return Internal::Adaptor::GetImplementation( *this ).GetCookieManager(); -} - WebEngineBackForwardList& WebEngine::GetBackForwardList() const { return Internal::Adaptor::GetImplementation( *this ).GetBackForwardList(); @@ -1671,12 +2174,17 @@ Dali::PixelData WebEngine::GetFavicon() const return Internal::Adaptor::GetImplementation( *this ).GetFavicon(); } -const std::string& WebEngine::GetUrl() +std::string WebEngine::GetUrl() const { return Internal::Adaptor::GetImplementation( *this ).GetUrl(); } -NativeImageInterfacePtr WebEngine::GetNativeImageSource() +Dali::WebEnginePlugin* WebEngine::GetPlugin() const +{ + return Internal::Adaptor::GetWebEnginePlugin(); +} + +NativeImageSourcePtr WebEngine::GetNativeImageSource() { Any source; Dali::NativeImageSourcePtr sourcePtr = Dali::NativeImageSource::New( source ); @@ -1802,6 +2310,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() { } @@ -1825,6 +2343,11 @@ void WebEngine::ActivateAccessibility(bool activated) { } +Accessibility::Address WebEngine::GetAccessibilityAddress() +{ + return Internal::Adaptor::GetImplementation(*this).GetAccessibilityAddress(); +} + bool WebEngine::HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount) { return true; @@ -1834,12 +2357,12 @@ void WebEngine::AddDynamicCertificatePath(const std::string& host, const std::st { } -Dali::PixelData WebEngine::GetScreenshot(Dali::Rect viewArea, float scaleFactor) +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) +bool WebEngine::GetScreenshotAsynchronously(Dali::Rect viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback) { return Internal::Adaptor::GetImplementation( *this ).GetScreenshotAsynchronously(viewArea, scaleFactor, callback); } @@ -1854,7 +2377,7 @@ void WebEngine::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::Geo Internal::Adaptor::GetImplementation( *this ).RegisterGeolocationPermissionCallback(callback); } -const std::string& WebEngine::GetUserAgent() const +std::string WebEngine::GetUserAgent() const { return Internal::Adaptor::GetImplementation( *this ).GetUserAgent(); } @@ -1864,17 +2387,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 ); } -bool WebEngine::ScrollEdgeBy( int dx, int dy ) +bool WebEngine::ScrollEdgeBy( int32_t dx, int32_t dy ) { return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeBy( dx, dy ); } -void WebEngine::SetScrollPosition( int x, int y ) +void WebEngine::SetScrollPosition( int32_t x, int32_t y ) { Internal::Adaptor::GetImplementation( *this ).SetScrollPosition( x, y ); } @@ -1894,7 +2417,7 @@ 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 ) { } @@ -1968,7 +2491,7 @@ float WebEngine::GetLoadProgressPercentage() const return Internal::Adaptor::GetImplementation( *this ).GetLoadProgressPercentage(); } -void WebEngine::UpdateDisplayArea( Dali::Rect< int > displayArea ) +void WebEngine::UpdateDisplayArea( Dali::Rect< int32_t > displayArea ) { } @@ -1984,85 +2507,89 @@ void WebEngine::EnableKeyEvents( bool enabled ) { } -Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadStartedSignal() +Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal() { - return Internal::Adaptor::GetImplementation( *this ).PageLoadStartedSignal(); + return Internal::Adaptor::GetImplementation(*this).FrameRenderedSignal(); } -Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadInProgressSignal() +void WebEngine::RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).PageLoadInProgressSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadStartedCallback(callback); } -Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadFinishedSignal() +void WebEngine::RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).PageLoadFinishedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadInProgressCallback(callback); } -Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& WebEngine::PageLoadErrorSignal() +void WebEngine::RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).PageLoadErrorSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadFinishedCallback(callback); } -Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& WebEngine::ScrollEdgeReachedSignal() +void WebEngine::RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeReachedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadErrorCallback(callback); } -Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& WebEngine::UrlChangedSignal() +void WebEngine::RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).UrlChangedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterScrollEdgeReachedCallback(callback); } -Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& WebEngine::FormRepostDecisionSignal() +void WebEngine::RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback) { - return Internal::Adaptor::GetImplementation(*this).FormRepostDecisionSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterUrlChangedCallback(callback); } -Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal() +void WebEngine::RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback) { - return Internal::Adaptor::GetImplementation(*this).FrameRenderedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterFormRepostDecidedCallback(callback); } -Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& WebEngine::RequestInterceptorSignal() +void WebEngine::RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback) { - return Internal::Adaptor::GetImplementation(*this).RequestInterceptorSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterConsoleMessageReceivedCallback(callback); } -Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& WebEngine::ConsoleMessageSignal() +void WebEngine::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback) { - return Internal::Adaptor::GetImplementation(*this).ConsoleMessageSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterResponsePolicyDecidedCallback(callback); } -Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType& WebEngine::PolicyDecisionSignal() +void WebEngine::RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback) { - return Internal::Adaptor::GetImplementation(*this).PolicyDecisionSignal(); + Internal::Adaptor::GetImplementation(*this).RegisterNavigationPolicyDecidedCallback(callback); } -Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::CertificateConfirmSignal() +void WebEngine::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - return Internal::Adaptor::GetImplementation(*this).CertificateConfirmSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterCertificateConfirmedCallback(callback); } -Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::SslCertificateChangedSignal() +void WebEngine::RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback) { - return Internal::Adaptor::GetImplementation(*this).SslCertificateChangedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterSslCertificateChangedCallback(callback); } -Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& WebEngine::HttpAuthHandlerSignal() +void WebEngine::RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback) { - return Internal::Adaptor::GetImplementation(*this).HttpAuthHandlerSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterHttpAuthHandlerCallback(callback); } -Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& WebEngine::ContextMenuCustomizedSignal() +void WebEngine::RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).ContextMenuCustomizedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterContextMenuShownCallback(callback); } -Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& WebEngine::ContextMenuItemSelectedSignal() +void WebEngine::RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback) { - return Internal::Adaptor::GetImplementation( *this ).ContextMenuItemSelectedSignal(); + Internal::Adaptor::GetImplementation( *this ).RegisterContextMenuHiddenCallback(callback); } -} // namespace Dali; +void WebEngine::GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback) +{ + Internal::Adaptor::GetImplementation(*this).GetPlainTextAsynchronously(callback); +} +} // namespace Dali;