2 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include "toolkit-timer.h"
20 #include <dali/devel-api/adaptor-framework/web-engine.h>
21 #include <dali/devel-api/adaptor-framework/web-engine-back-forward-list.h>
22 #include <dali/devel-api/adaptor-framework/web-engine-back-forward-list-item.h>
23 #include <dali/devel-api/adaptor-framework/web-engine-certificate.h>
24 #include <dali/devel-api/adaptor-framework/web-engine-console-message.h>
25 #include <dali/devel-api/adaptor-framework/web-engine-context.h>
26 #include <dali/devel-api/adaptor-framework/web-engine-context-menu.h>
27 #include <dali/devel-api/adaptor-framework/web-engine-context-menu-item.h>
28 #include <dali/devel-api/adaptor-framework/web-engine-cookie-manager.h>
29 #include <dali/devel-api/adaptor-framework/web-engine-form-repost-decision.h>
30 #include <dali/devel-api/adaptor-framework/web-engine-frame.h>
31 #include <dali/devel-api/adaptor-framework/web-engine-hit-test.h>
32 #include <dali/devel-api/adaptor-framework/web-engine-http-auth-handler.h>
33 #include <dali/devel-api/adaptor-framework/web-engine-load-error.h>
34 #include <dali/devel-api/adaptor-framework/web-engine-policy-decision.h>
35 #include <dali/devel-api/adaptor-framework/web-engine-request-interceptor.h>
36 #include <dali/devel-api/adaptor-framework/web-engine-security-origin.h>
37 #include <dali/devel-api/adaptor-framework/web-engine-settings.h>
38 #include <dali/public-api/adaptor-framework/native-image-source.h>
39 #include <dali/public-api/images/pixel-data.h>
40 #include <dali/public-api/object/any.h>
41 #include <dali/public-api/object/base-object.h>
42 #include <dali/public-api/object/property-map.h>
45 #include <toolkit-application.h>
57 class MockWebEngineContext;
62 // Generally only one WebEngine instance exists.
63 // If > 1, a new web engine has been created by CreateWindowSignal.
64 static WebEngine* gInstance = nullptr;
65 static int gInstanceCount = 0;
66 static MockWebEngineContext* gWebEngineContextInstance = nullptr;
71 bool OnEvaluteJavaScript();
72 bool OnJavaScriptAlert();
73 bool OnJavaScriptConfirm();
74 bool OnJavaScriptPrompt();
75 bool OnHitTestCreated();
77 bool OnScreenshotCaptured();
78 bool OnVideoPlaying();
79 bool OnGeolocationPermission();
80 bool OnClearHistory();
81 bool OnSecurityOriginAcquired();
82 bool OnStorageUsageAcquired();
83 bool OnFormPasswordAcquired();
84 bool OnDownloadStarted();
85 bool OnMimeOverridden();
86 bool OnChangesWatch();
87 bool OnPlainTextReceived();
89 static void ConnectToGlobalSignal( bool ( *func )() )
91 Dali::Timer timer = Dali::Timer::New( 0 );
92 timer.TickSignal().Connect( func );
95 static void DisconnectFromGlobalSignal( bool ( *func )() )
97 Dali::Timer timer = Dali::Timer::New( 0 );
98 timer.TickSignal().Disconnect( func );
100 } // namespace anonymous
102 class MockWebEngineContext : public Dali::WebEngineContext
105 MockWebEngineContext()
106 : mockModel( Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER )
110 Dali::WebEngineContext::CacheModel GetCacheModel() const override
115 void SetCacheModel( Dali::WebEngineContext::CacheModel cacheModel ) override
117 mockModel = cacheModel;
120 void SetProxyUri( const std::string& uri ) override
125 std::string GetProxyUri() const override
130 void SetProxyBypassRule(const std::string& proxy, const std::string& bypass) override
132 mockBypassRule = bypass;
135 std::string GetProxyBypassRule() const override
137 return mockBypassRule;
140 void SetDefaultProxyAuth( const std::string& username, const std::string& password ) override
144 void SetCertificateFilePath( const std::string& certificatePath ) override
146 mockCertificateFilePath = certificatePath;
149 std::string GetCertificateFilePath() const override
151 return mockCertificateFilePath;
154 void DeleteAllWebDatabase() override
158 bool GetWebDatabaseOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback)
162 ConnectToGlobalSignal(&OnSecurityOriginAcquired);
163 mSecurityOriginAcquiredCallback = callback;
168 bool DeleteWebDatabase(Dali::WebEngineSecurityOrigin& origin)
173 bool GetWebStorageOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback)
177 ConnectToGlobalSignal(&OnSecurityOriginAcquired);
178 mSecurityOriginAcquiredCallback = callback;
183 bool GetWebStorageUsageForOrigin(Dali::WebEngineSecurityOrigin& origin, Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback callback)
187 ConnectToGlobalSignal(&OnStorageUsageAcquired);
188 mStorageUsageAcquiredCallback = callback;
193 void DeleteAllWebStorage() override
197 bool DeleteWebStorage(Dali::WebEngineSecurityOrigin& origin)
202 void DeleteLocalFileSystem() override
206 void ClearCache() override
210 bool DeleteApplicationCache(Dali::WebEngineSecurityOrigin& origin)
215 void GetFormPasswordList(Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback callback)
219 ConnectToGlobalSignal(&OnFormPasswordAcquired);
220 mFormPasswordAcquiredCallback = callback;
224 void RegisterDownloadStartedCallback(Dali::WebEngineContext::WebEngineDownloadStartedCallback callback)
228 ConnectToGlobalSignal(&OnDownloadStarted);
229 mDownloadStartedCallback = callback;
233 void RegisterMimeOverriddenCallback(Dali::WebEngineContext::WebEngineMimeOverriddenCallback callback)
237 ConnectToGlobalSignal(&OnMimeOverridden);
238 mMimeOverriddenCallback = callback;
242 void EnableCache( bool cacheEnabled ) override
244 mockCacheEnabled = cacheEnabled;
247 bool IsCacheEnabled() const override
249 return mockCacheEnabled;
252 void SetAppId(const std::string& appID) override
256 bool SetAppVersion(const std::string& appVersion) override
261 void SetApplicationType(const Dali::WebEngineContext::ApplicationType applicationType) override
265 void SetTimeOffset(float timeOffset) override
269 void SetTimeZoneOffset(float timeZoneOffset, float daylightSavingTime) override
273 void RegisterUrlSchemesAsCorsEnabled(const std::vector<std::string>& schemes) override
277 void RegisterJsPluginMimeTypes(const std::vector<std::string>& mimeTypes) override
281 void SetDefaultZoomFactor(float zoomFactor) override
283 mockZoomFactor = zoomFactor;
286 float GetDefaultZoomFactor() const override
288 return mockZoomFactor;
291 bool DeleteAllApplicationCache() override
296 bool DeleteAllWebIndexedDatabase() override
301 void DeleteFormPasswordDataList(const std::vector<std::string>& list) override
305 void DeleteAllFormPasswordData() override
309 void DeleteAllFormCandidateData() override
313 bool FreeUnusedMemory() override
319 Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback mSecurityOriginAcquiredCallback;
320 Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback mStorageUsageAcquiredCallback;
321 Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback mFormPasswordAcquiredCallback;
322 Dali::WebEngineContext::WebEngineDownloadStartedCallback mDownloadStartedCallback;
323 Dali::WebEngineContext::WebEngineMimeOverriddenCallback mMimeOverriddenCallback;
326 Dali::WebEngineContext::CacheModel mockModel;
327 std::string mockProxyUri;
328 std::string mockBypassRule;
329 std::string mockCertificateFilePath;
330 bool mockCacheEnabled;
331 float mockZoomFactor;
334 class MockWebEngineCookieManager : public Dali::WebEngineCookieManager
337 MockWebEngineCookieManager()
338 : mockCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY )
342 void SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy policy ) override
344 mockCookieAcceptPolicy = policy;
347 Dali::WebEngineCookieManager::CookieAcceptPolicy GetCookieAcceptPolicy() const override
349 return mockCookieAcceptPolicy;
352 void ClearCookies() override
356 void SetPersistentStorage( const std::string& path, Dali::WebEngineCookieManager::CookiePersistentStorage storage ) override
360 void ChangesWatch( Dali::WebEngineCookieManager::WebEngineCookieManagerChangesWatchCallback callback ) override
364 ConnectToGlobalSignal( &OnChangesWatch );
365 mChangesWatchCallback = callback;
370 Dali::WebEngineCookieManager::WebEngineCookieManagerChangesWatchCallback mChangesWatchCallback;
373 Dali::WebEngineCookieManager::CookieAcceptPolicy mockCookieAcceptPolicy;
376 class MockWebEngineBackForwardListItem : public Dali::WebEngineBackForwardListItem
379 MockWebEngineBackForwardListItem()
380 : mockUrl( "http://url" ),
381 mockTitle( "title" ),
382 mockOriginalUrl( "http://originalurl" )
386 std::string GetUrl() const override
391 std::string GetTitle() const override
396 std::string GetOriginalUrl() const override
398 return mockOriginalUrl;
403 std::string mockTitle;
404 std::string mockOriginalUrl;
407 class MockWebEngineBackForwardList : public Dali::WebEngineBackForwardList
410 MockWebEngineBackForwardList()
414 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetCurrentItem() const override
416 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
420 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetPreviousItem() const override
422 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
426 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetNextItem() const override
428 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
432 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetItemAtIndex( uint32_t index ) const override
434 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
438 uint32_t GetItemCount() const override
443 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> GetBackwardItems(int limit) override
445 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> ret;
446 std::unique_ptr<Dali::WebEngineBackForwardListItem> item(new MockWebEngineBackForwardListItem());
447 ret.push_back(std::move(item));
451 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> GetForwardItems(int limit) override
453 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> ret;
454 std::unique_ptr<Dali::WebEngineBackForwardListItem> item(new MockWebEngineBackForwardListItem());
455 ret.push_back(std::move(item));
461 class MockWebEngineCertificate : public Dali::WebEngineCertificate
464 MockWebEngineCertificate()
468 void Allow(bool allowed) override
472 bool IsFromMainFrame() const override
477 std::string GetPem() const override
482 bool IsContextSecure() const override
488 class MockWebEngineHttpAuthHandler : public Dali::WebEngineHttpAuthHandler
491 MockWebEngineHttpAuthHandler()
495 std::string GetRealm() const override
500 void Suspend() override
504 void UseCredential(const std::string& user, const std::string& password) override
508 void CancelCredential() override
513 class MockWebEngineFormRepostDecision : public WebEngineFormRepostDecision
516 MockWebEngineFormRepostDecision()
520 void Reply(bool allowed) override {}
523 class MockWebEngineFrame : public Dali::WebEngineFrame
530 bool IsMainFrame() const override
536 class MockWebEnginePolicyDecision : public Dali::WebEnginePolicyDecision
539 MockWebEnginePolicyDecision()
543 std::string GetUrl() const override
545 return "http://test.html";
548 std::string GetCookie() const override
553 Dali::WebEnginePolicyDecision::DecisionType GetDecisionType() const
555 return Dali::WebEnginePolicyDecision::DecisionType::USE;
558 std::string GetResponseMime() const
563 int32_t GetResponseStatusCode() const
568 Dali::WebEnginePolicyDecision::NavigationType GetNavigationType() const
570 return Dali::WebEnginePolicyDecision::NavigationType::LINK_CLICKED;
573 Dali::WebEngineFrame& GetFrame() const
575 return *(Dali::WebEngineFrame*)(&mockWebFrame);
578 std::string GetScheme() const
599 MockWebEngineFrame mockWebFrame;
602 class MockWebEngineRequestInterceptor : public WebEngineRequestInterceptor
605 MockWebEngineRequestInterceptor()
609 std::string GetUrl() const override
611 return "http://test.html";
614 bool Ignore() override
619 bool SetResponseStatus(int statusCode, const std::string &customedStatusText) override
624 bool AddResponseHeader(const std::string &fieldName, const std::string &fieldValue) override
629 bool AddResponseBody(const std::string &body, uint32_t length) override
635 class MockWebEngineConsoleMessage : public Dali::WebEngineConsoleMessage
638 MockWebEngineConsoleMessage()
642 std::string GetSource() const override
647 uint32_t GetLine() const override
652 SeverityLevel GetSeverityLevel() const override
654 return SeverityLevel::EMPTY;
657 std::string GetText() const override
659 return "This is a text.";
663 class MockWebEngineLoadError : public Dali::WebEngineLoadError
666 MockWebEngineLoadError(const std::string& url)
671 std::string GetUrl() const override
676 ErrorCode GetCode() const override
678 return ErrorCode::UNKNOWN;
681 std::string GetDescription() const override
683 return "This is an error.";
686 ErrorType GetType() const override
688 return ErrorType::NONE;
695 class MockWebEngineContextMenuItem : public Dali::WebEngineContextMenuItem
698 MockWebEngineContextMenuItem()
702 ItemTag GetTag() const override
704 return ItemTag::NO_ACTION;
707 ItemType GetType() const override
709 return ItemType::ACTION;
712 bool IsEnabled() const override
717 std::string GetLinkUrl() const override
719 return "http://test.html";
722 std::string GetImageUrl() const override
724 return "http://test.jpg";
727 std::string GetTitle() const override
732 std::unique_ptr<Dali::WebEngineContextMenu> GetParentMenu() const override
734 std::unique_ptr<Dali::WebEngineContextMenu> result;
739 class MockWebEngineContextMenu : public Dali::WebEngineContextMenu
742 MockWebEngineContextMenu()
746 uint32_t GetItemCount() const override
751 std::unique_ptr<Dali::WebEngineContextMenuItem> GetItemAt(uint32_t index) const override
753 std::unique_ptr<Dali::WebEngineContextMenuItem> webitem(new MockWebEngineContextMenuItem());
757 std::vector<std::unique_ptr<WebEngineContextMenuItem>> GetItemList() const override
759 std::vector<std::unique_ptr<WebEngineContextMenuItem>> result;
760 std::unique_ptr<Dali::WebEngineContextMenuItem> webitem(new MockWebEngineContextMenuItem());
761 result.push_back(std::move(webitem));
765 bool RemoveItem(WebEngineContextMenuItem& item) override
770 bool AppendItemAsAction(WebEngineContextMenuItem::ItemTag tag, const std::string& title, bool enabled) override
775 bool AppendItem(WebEngineContextMenuItem::ItemTag tag, const std::string& title, const std::string& iconFile, bool enabled) override
780 bool SelectItem(WebEngineContextMenuItem& item) override
791 class MockWebEngineHitTest : public Dali::WebEngineHitTest
794 MockWebEngineHitTest()
798 ResultContext GetResultContext() const override
800 return ResultContext::DOCUMENT;
803 std::string GetLinkUri() const override
805 return "http://test.html";
808 std::string GetLinkTitle() const override
813 std::string GetLinkLabel() const override
818 std::string GetImageUri() const override
820 return "http://test.jpg";
823 std::string GetMediaUri() const override
825 return "http://test.mp4";
828 std::string GetTagName() const override
833 std::string GetNodeValue() const override
838 Dali::Property::Map& GetAttributes() const override
840 return mockAttributesMap;
843 std::string GetImageFileNameExtension() const override
848 Dali::PixelData GetImageBuffer() override
850 uint8_t* imageData = new uint8_t[16];
851 memset(imageData, 0xff, 16);
852 return Dali::PixelData::New(imageData, 16, 2, 2,
853 Dali::Pixel::Format::RGBA8888,
854 Dali::PixelData::ReleaseFunction::DELETE_ARRAY);
858 mutable Dali::Property::Map mockAttributesMap;
861 class MockWebEngineSecurityOrigin : public Dali::WebEngineSecurityOrigin
864 MockWebEngineSecurityOrigin()
865 : mockUrl("https://test.html")
866 , mockPotocol("https")
870 std::string GetHost() const
875 std::string GetProtocol() const
882 std::string mockPotocol;
885 class MockWebEngineSettings : public WebEngineSettings
888 MockWebEngineSettings()
889 : mockDefaultFontSize( 16 ),
890 mockJavaScriptEnabled( true ),
891 mockAutoFittingEnabled ( true ),
892 mockPluginsEnabled ( true ),
893 mockPrivateBrowsingEnabled( true ),
894 mockLinkMagnifierEnabled( true ),
895 mockKeypadWithoutUserActionUsed( true ),
896 mockAutofillPasswordFormEnabled( true ),
897 mockFormCandidateDataEnabled( true ),
898 mockTextSelectionEnabled( true ),
899 mockTextAutosizingEnable( true ),
900 mockArrowScrollEnable( true ),
901 mockClipboardEnabled( true ),
902 mockImePanelEnabled( true ),
903 mockImageLoadedAutomatically( true ),
904 mockDefaultTextEncodingName()
908 uint32_t GetDefaultFontSize() const override
910 return mockDefaultFontSize;
913 void SetDefaultFontSize( uint32_t size ) override
915 mockDefaultFontSize = size;
918 bool IsJavaScriptEnabled() const override
920 return mockJavaScriptEnabled;
923 void EnableJavaScript( bool enabled ) override
925 mockJavaScriptEnabled = enabled;
928 bool IsAutoFittingEnabled() const override
930 return mockAutoFittingEnabled;
933 void EnableAutoFitting( bool enabled ) override
935 mockAutoFittingEnabled = enabled;
938 bool ArePluginsEnabled() const override
940 return mockPluginsEnabled;
943 void EnablePlugins( bool enabled ) override
945 mockPluginsEnabled = enabled;
948 bool IsPrivateBrowsingEnabled() const override
950 return mockPrivateBrowsingEnabled;
953 void EnablePrivateBrowsing( bool enabled ) override
955 mockPrivateBrowsingEnabled = enabled;
958 bool IsLinkMagnifierEnabled() const override
960 return mockLinkMagnifierEnabled;
963 void EnableLinkMagnifier( bool enabled ) override
965 mockLinkMagnifierEnabled = enabled;
968 bool IsKeypadWithoutUserActionUsed() const override
970 return mockKeypadWithoutUserActionUsed;
973 void UseKeypadWithoutUserAction( bool used ) override
975 mockKeypadWithoutUserActionUsed = used;
978 bool IsAutofillPasswordFormEnabled() const override
980 return mockAutofillPasswordFormEnabled;
983 void EnableAutofillPasswordForm( bool enabled ) override
985 mockAutofillPasswordFormEnabled = enabled;
988 bool IsFormCandidateDataEnabled() const override
990 return mockFormCandidateDataEnabled;
993 void EnableFormCandidateData( bool enabled ) override
995 mockFormCandidateDataEnabled = enabled;
998 bool IsTextSelectionEnabled() const override
1000 return mockTextSelectionEnabled;
1003 void EnableTextSelection( bool enabled ) override
1005 mockTextSelectionEnabled = enabled;
1008 bool IsTextAutosizingEnabled() const override
1010 return mockTextAutosizingEnable;
1013 void EnableTextAutosizing( bool enabled ) override
1015 mockTextAutosizingEnable = enabled;
1018 bool IsArrowScrollEnabled() const override
1020 return mockArrowScrollEnable;
1023 void EnableArrowScroll( bool enabled ) override
1025 mockArrowScrollEnable = enabled;
1028 bool IsClipboardEnabled() const override
1030 return mockClipboardEnabled;
1033 void EnableClipboard( bool enabled ) override
1035 mockClipboardEnabled = enabled;
1038 bool IsImePanelEnabled() const override
1040 return mockImePanelEnabled;
1043 void EnableImePanel( bool enabled ) override
1045 mockImePanelEnabled = enabled;
1048 bool AreImagesLoadedAutomatically() const override
1050 return mockImageLoadedAutomatically;
1053 void AllowImagesLoadAutomatically( bool automatic ) override
1055 mockImageLoadedAutomatically = automatic;
1058 std::string GetDefaultTextEncodingName() const override
1060 return mockDefaultTextEncodingName;
1063 void SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) override
1065 mockDefaultTextEncodingName = defaultTextEncodingName;
1068 void AllowMixedContents( bool allowed ) override
1072 void EnableSpatialNavigation( bool enabled ) override
1076 void EnableWebSecurity( bool enabled ) override
1080 void EnableCacheBuilder( bool enabled ) override
1084 void UseScrollbarThumbFocusNotifications( bool used ) override
1088 void EnableDoNotTrack( bool enabled ) override
1092 void AllowFileAccessFromExternalUrl( bool allowed ) override
1096 void AllowScriptsOpenWindows( bool allowed ) override
1100 bool SetViewportMetaTag(bool enable) override
1105 bool SetForceZoom(bool enable) override
1110 bool IsZoomForced() const override
1115 bool SetTextZoomEnabled(bool enable) override
1120 bool IsTextZoomEnabled() const override
1125 void SetExtraFeature(const std::string& feature, bool enable) override
1129 bool IsExtraFeatureEnabled(const std::string& feature) const override
1135 int mockDefaultFontSize;
1136 bool mockJavaScriptEnabled;
1137 bool mockAutoFittingEnabled;
1138 bool mockPluginsEnabled;
1139 bool mockPrivateBrowsingEnabled;
1140 bool mockLinkMagnifierEnabled;
1141 bool mockKeypadWithoutUserActionUsed;
1142 bool mockAutofillPasswordFormEnabled;
1143 bool mockFormCandidateDataEnabled;
1144 bool mockTextSelectionEnabled;
1145 bool mockTextAutosizingEnable;
1146 bool mockArrowScrollEnable;
1147 bool mockClipboardEnabled;
1148 bool mockImePanelEnabled;
1149 bool mockImageLoadedAutomatically;
1150 std::string mockDefaultTextEncodingName;
1153 class WebEngine: public Dali::BaseObject
1159 , mCurrentPlusOnePos( 0 )
1161 , mEvaluating( false )
1162 , mScrollPosition( 0, 0 )
1163 , mScrollSize( 500, 500 )
1164 , mContentSize( 500, 500 )
1167 if ( gInstanceCount == 1 ) // only first web engine need be saved.
1172 mockWebEngineSettings = new MockWebEngineSettings();
1173 MockWebEngineContext* engineContext = new MockWebEngineContext();
1174 mockWebEngineContext = engineContext;
1175 if ( gInstanceCount == 1 )
1177 gWebEngineContextInstance = engineContext;
1179 mockWebEngineCookieManager = new MockWebEngineCookieManager();
1180 mockWebEngineBackForwardList = new MockWebEngineBackForwardList();
1183 virtual ~WebEngine()
1186 if( !gInstanceCount )
1189 gWebEngineContextInstance = 0;
1192 delete mockWebEngineSettings;
1193 delete mockWebEngineContext;
1194 delete mockWebEngineCookieManager;
1195 delete mockWebEngineBackForwardList;
1198 Dali::WebEngineSettings& GetSettings() const
1200 return *mockWebEngineSettings;
1203 Dali::WebEngineContext& GetContext() const
1205 return *mockWebEngineContext;
1208 Dali::WebEngineCookieManager& GetCookieManager() const
1210 return *mockWebEngineCookieManager;
1213 Dali::WebEngineBackForwardList& GetBackForwardList() const
1215 return *mockWebEngineBackForwardList;
1218 void LoadUrl( const std::string& url )
1221 ConnectToGlobalSignal( &OnLoadUrl );
1224 std::string GetUrl() const
1229 std::string GetTitle() const
1231 return std::string("title");
1234 Dali::PixelData GetFavicon() const
1236 static int testGetFaviconCount = 0;
1237 if (testGetFaviconCount == 0)
1239 testGetFaviconCount++;
1240 uint8_t* faviconData = new uint8_t[16];
1241 memset(faviconData, 0xff, 16);
1242 return Dali::PixelData::New(faviconData, 16, 2, 2,
1243 Dali::Pixel::Format::RGBA8888,
1244 Dali::PixelData::ReleaseFunction::DELETE_ARRAY);
1248 return Dali::PixelData();
1252 bool CanGoForward() const
1254 return mHistory.size() > mCurrentPlusOnePos;
1259 ConnectToGlobalSignal( &OnGoForward );
1262 bool CanGoBack() const
1264 return mCurrentPlusOnePos > 1;
1269 ConnectToGlobalSignal( &OnGoBack );
1272 void EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
1278 ConnectToGlobalSignal( &OnEvaluteJavaScript );
1280 mResultCallbacks.push_back( resultHandler );
1284 void RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
1288 ConnectToGlobalSignal( &OnJavaScriptAlert );
1289 mJavaScriptAlertCallback = callback;
1293 void RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
1297 ConnectToGlobalSignal( &OnJavaScriptConfirm );
1298 mJavaScriptConfirmCallback = callback;
1302 void RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
1306 ConnectToGlobalSignal( &OnJavaScriptPrompt );
1307 mJavaScriptPromptCallback = callback;
1311 std::unique_ptr<Dali::WebEngineHitTest> CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode)
1313 std::unique_ptr<Dali::WebEngineHitTest> hitTest(new MockWebEngineHitTest());
1317 bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback)
1321 ConnectToGlobalSignal( &OnHitTestCreated );
1322 mHitTestCreatedCallback = callback;
1329 ConnectToGlobalSignal( &OnClearHistory );
1332 std::string GetUserAgent() const
1337 void SetUserAgent( const std::string& userAgent )
1339 mUserAgent = userAgent;
1342 void ScrollBy( int32_t dx, int32_t dy )
1344 mScrollPosition += Dali::Vector2( dx, dy );
1345 if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
1347 ConnectToGlobalSignal( &OnScrollEdge );
1351 bool ScrollEdgeBy( int32_t dx, int32_t dy )
1353 mScrollPosition += Dali::Vector2( dx, dy );
1354 if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
1356 ConnectToGlobalSignal( &OnScrollEdge );
1361 void SetScrollPosition( int32_t x, int32_t y )
1363 mScrollPosition.x = x;
1364 mScrollPosition.y = y;
1367 Dali::Vector2 GetScrollPosition() const
1369 return mScrollPosition;
1372 Dali::Vector2 GetScrollSize() const
1377 Dali::Vector2 GetContentSize() const
1379 return mContentSize;
1382 void SetPageZoomFactor(float zoomFactor)
1384 mPageZoomFactor = zoomFactor;
1387 float GetPageZoomFactor() const
1389 return mPageZoomFactor;
1392 void SetTextZoomFactor(float zoomFactor)
1394 mTextZoomFactor = zoomFactor;
1397 float GetTextZoomFactor() const
1399 return mTextZoomFactor;
1402 float GetLoadProgressPercentage() const
1407 void SetScaleFactor(float scaleFactor, Dali::Vector2 point)
1409 mScaleFactor = scaleFactor;
1412 float GetScaleFactor() const
1414 return mScaleFactor;
1417 Dali::PixelData GetScreenshot(Dali::Rect<int32_t> viewArea, float scaleFactor)
1419 uint32_t bufferSize = viewArea.width * viewArea.height * 4 ;
1420 uint8_t* pixel = new uint8_t[ bufferSize ];
1421 memset(pixel, 0xff, bufferSize);
1422 return Dali::PixelData::New( pixel, bufferSize, viewArea.width, viewArea.height,
1423 Dali::Pixel::Format::RGBA8888,
1424 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
1427 bool GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
1431 ConnectToGlobalSignal( &OnScreenshotCaptured );
1432 mScreenshotCapturedCallback = callback;
1437 bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
1441 ConnectToGlobalSignal( &OnVideoPlaying );
1442 mVideoPlayingCallback = callback;
1447 void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
1451 ConnectToGlobalSignal( &OnGeolocationPermission );
1452 mGeolocationPermissionCallback = callback;
1456 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal()
1458 return mFrameRenderedSignal;
1461 void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
1463 mPageLoadStartedCallback = callback;
1466 void RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
1468 mPageLoadInProgressCallback = callback;
1471 void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
1473 mPageLoadFinishedCallback = callback;
1476 void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback)
1478 mPageLoadErrorCallback = callback;
1481 void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback)
1483 mScrollEdgeReachedCallback = callback;
1486 void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback)
1488 mUrlChangedCallback = callback;
1491 void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback)
1493 mFormRepostDecidedCallback = callback;
1496 void RegisterRequestInterceptorCallback(Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback callback)
1498 mRequestInterceptorCallback = callback;
1501 void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback)
1503 mConsoleMessageCallback = callback;
1506 void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback)
1508 mResponsePolicyDecisionCallback = callback;
1511 void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
1513 mCertificateConfirmCallback = callback;
1516 void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
1518 mSslCertificateChangedCallback = callback;
1521 void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback)
1523 mHttpAuthHandlerCallback = callback;
1526 void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback)
1528 mContextMenuShownCallback = callback;
1531 void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback)
1533 mContextMenuHiddenCallback = callback;
1536 void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback)
1540 ConnectToGlobalSignal(&OnPlainTextReceived);
1541 mPlainTextReceivedCallback = callback;
1546 std::vector<std::string> mHistory;
1547 size_t mCurrentPlusOnePos;
1548 std::string mUserAgent;
1550 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType mFrameRenderedSignal;
1553 float mPageZoomFactor;
1554 float mTextZoomFactor;
1557 Dali::Vector2 mScrollPosition;
1558 Dali::Vector2 mScrollSize;
1559 Dali::Vector2 mContentSize;
1560 WebEngineBackForwardList* mockWebEngineBackForwardList;
1561 WebEngineContext* mockWebEngineContext;
1562 WebEngineCookieManager* mockWebEngineCookieManager;
1563 WebEngineSettings* mockWebEngineSettings;
1565 std::vector<Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback> mResultCallbacks;
1567 Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadStartedCallback;
1568 Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadInProgressCallback;
1569 Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadFinishedCallback;
1570 Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback mPageLoadErrorCallback;
1571 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback mScrollEdgeReachedCallback;
1572 Dali::WebEnginePlugin::WebEngineUrlChangedCallback mUrlChangedCallback;
1573 Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback mFormRepostDecidedCallback;
1574 Dali::WebEnginePlugin::WebEngineFrameRenderedCallback mFrameRenderedCallback;
1575 Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback mRequestInterceptorCallback;
1576 Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback mConsoleMessageCallback;
1577 Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback mResponsePolicyDecisionCallback;
1578 Dali::WebEnginePlugin::WebEngineCertificateCallback mCertificateConfirmCallback;
1579 Dali::WebEnginePlugin::WebEngineCertificateCallback mSslCertificateChangedCallback;
1580 Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback mHttpAuthHandlerCallback;
1581 Dali::WebEnginePlugin::WebEngineContextMenuShownCallback mContextMenuShownCallback;
1582 Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback mContextMenuHiddenCallback;
1583 Dali::WebEnginePlugin::JavaScriptAlertCallback mJavaScriptAlertCallback;
1584 Dali::WebEnginePlugin::JavaScriptConfirmCallback mJavaScriptConfirmCallback;
1585 Dali::WebEnginePlugin::JavaScriptPromptCallback mJavaScriptPromptCallback;
1586 Dali::WebEnginePlugin::ScreenshotCapturedCallback mScreenshotCapturedCallback;
1587 Dali::WebEnginePlugin::VideoPlayingCallback mVideoPlayingCallback;
1588 Dali::WebEnginePlugin::GeolocationPermissionCallback mGeolocationPermissionCallback;
1589 Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback mHitTestCreatedCallback;
1590 Dali::WebEnginePlugin::PlainTextReceivedCallback mPlainTextReceivedCallback;
1599 DisconnectFromGlobalSignal( &OnGoBack );
1601 if( gInstance && gInstance->CanGoBack() )
1603 gInstance->mCurrentPlusOnePos--;
1610 DisconnectFromGlobalSignal( &OnGoForward );
1612 if( gInstance && gInstance->CanGoForward() )
1614 gInstance->mCurrentPlusOnePos++;
1621 DisconnectFromGlobalSignal( &OnLoadUrl );
1625 if( gInstance->mHistory.size() > gInstance->mCurrentPlusOnePos )
1627 gInstance->mHistory.erase( gInstance->mHistory.begin() + gInstance->mCurrentPlusOnePos, gInstance->mHistory.end() );
1629 gInstance->mHistory.push_back( gInstance->mUrl );
1630 gInstance->mCurrentPlusOnePos++;
1631 if (gInstance->mPageLoadStartedCallback)
1633 gInstance->mPageLoadStartedCallback( gInstance->mUrl );
1635 if (gInstance->mPageLoadInProgressCallback)
1637 gInstance->mPageLoadInProgressCallback( gInstance->mUrl );
1639 if (gInstance->mPageLoadFinishedCallback)
1641 gInstance->mPageLoadFinishedCallback( gInstance->mUrl );
1643 if (gInstance->mPageLoadErrorCallback)
1645 std::unique_ptr<Dali::WebEngineLoadError> error(new MockWebEngineLoadError(gInstance->mUrl));
1646 gInstance->mPageLoadErrorCallback(std::move(error));
1648 if (gInstance->mUrlChangedCallback)
1650 gInstance->mUrlChangedCallback( "http://new-test" );
1652 if (gInstance->mFormRepostDecidedCallback)
1654 std::unique_ptr<Dali::WebEngineFormRepostDecision> repostDecision(new MockWebEngineFormRepostDecision());
1655 gInstance->mFormRepostDecidedCallback(std::move(repostDecision));
1657 gInstance->mFrameRenderedSignal.Emit();
1658 if (gInstance->mFrameRenderedCallback)
1660 gInstance->mFrameRenderedCallback();
1662 if (gInstance->mRequestInterceptorCallback)
1664 std::unique_ptr<Dali::WebEngineRequestInterceptor> interceptor(new MockWebEngineRequestInterceptor());
1665 gInstance->mRequestInterceptorCallback(std::move(interceptor));
1667 if (gInstance->mConsoleMessageCallback)
1669 std::unique_ptr<Dali::WebEngineConsoleMessage> message(new MockWebEngineConsoleMessage());
1670 gInstance->mConsoleMessageCallback(std::move(message));
1672 if (gInstance->mResponsePolicyDecisionCallback)
1674 std::unique_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
1675 gInstance->mResponsePolicyDecisionCallback(std::move(policyDecision));
1677 if (gInstance->mCertificateConfirmCallback)
1679 std::unique_ptr<Dali::WebEngineCertificate> certificate(new MockWebEngineCertificate());
1680 gInstance->mCertificateConfirmCallback(std::move(certificate));
1682 if (gInstance->mSslCertificateChangedCallback)
1684 std::unique_ptr<Dali::WebEngineCertificate> sslCertificate(new MockWebEngineCertificate());
1685 gInstance->mSslCertificateChangedCallback(std::move(sslCertificate));
1687 if (gInstance->mHttpAuthHandlerCallback)
1689 std::unique_ptr<Dali::WebEngineHttpAuthHandler> handler(new MockWebEngineHttpAuthHandler());
1690 gInstance->mHttpAuthHandlerCallback(std::move(handler));
1692 if (gInstance->mContextMenuShownCallback)
1694 std::unique_ptr<Dali::WebEngineContextMenu> menu(new MockWebEngineContextMenu());
1695 gInstance->mContextMenuShownCallback(std::move(menu));
1697 if (gInstance->mContextMenuHiddenCallback)
1699 std::unique_ptr<Dali::WebEngineContextMenu> hiddenMenu(new MockWebEngineContextMenu());
1700 gInstance->mContextMenuHiddenCallback(std::move(hiddenMenu));
1708 DisconnectFromGlobalSignal( &OnScrollEdge );
1710 if( gInstance && gInstance->mScrollEdgeReachedCallback )
1712 gInstance->mScrollEdgeReachedCallback( Dali::WebEnginePlugin::ScrollEdge::BOTTOM );
1718 bool OnEvaluteJavaScript()
1720 DisconnectFromGlobalSignal( &OnEvaluteJavaScript );
1724 for( auto& func : gInstance->mResultCallbacks )
1728 gInstance->mResultCallbacks.clear();
1733 bool OnJavaScriptAlert()
1735 DisconnectFromGlobalSignal( &OnJavaScriptAlert );
1738 gInstance->mJavaScriptAlertCallback( "this is an alert popup." );
1743 bool OnJavaScriptConfirm()
1745 DisconnectFromGlobalSignal( &OnJavaScriptConfirm );
1748 gInstance->mJavaScriptConfirmCallback( "this is a confirm popup." );
1753 bool OnJavaScriptPrompt()
1755 DisconnectFromGlobalSignal( &OnJavaScriptPrompt );
1758 gInstance->mJavaScriptPromptCallback( "this is a prompt pompt.", "" );
1763 bool OnScreenshotCaptured()
1765 DisconnectFromGlobalSignal( &OnScreenshotCaptured );
1768 uint8_t* pixel = new uint8_t[ 2 * 2 * 4 ];
1769 memset(pixel, 0xff, 2 * 2 * 4);
1770 Dali::PixelData data = Dali::PixelData::New( pixel, 2 * 2 * 4, 2, 2,
1771 Dali::Pixel::Format::RGBA8888,
1772 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
1773 gInstance->mScreenshotCapturedCallback( data );
1778 bool OnVideoPlaying()
1780 DisconnectFromGlobalSignal( &OnVideoPlaying );
1783 gInstance->mVideoPlayingCallback( true );
1788 bool OnGeolocationPermission()
1790 DisconnectFromGlobalSignal( &OnGeolocationPermission );
1793 gInstance->mGeolocationPermissionCallback( "", "" );
1798 bool OnHitTestCreated()
1800 DisconnectFromGlobalSignal(&OnHitTestCreated);
1803 std::unique_ptr<Dali::WebEngineHitTest> test(new MockWebEngineHitTest());
1804 gInstance->mHitTestCreatedCallback(std::move(test));
1809 bool OnClearHistory()
1811 DisconnectFromGlobalSignal( &OnClearHistory );
1813 if( gInstance && gInstance->mCurrentPlusOnePos )
1815 std::string url = gInstance->mHistory[ gInstance->mCurrentPlusOnePos - 1 ];
1816 std::vector< std::string >().swap( gInstance->mHistory );
1817 gInstance->mHistory.push_back( url );
1818 gInstance->mCurrentPlusOnePos = 1;
1823 bool OnSecurityOriginAcquired()
1825 DisconnectFromGlobalSignal(&OnSecurityOriginAcquired);
1826 if (gWebEngineContextInstance)
1828 std::vector<std::unique_ptr<Dali::WebEngineSecurityOrigin>> securityOriginList;
1829 std::unique_ptr<Dali::WebEngineSecurityOrigin> origin(new MockWebEngineSecurityOrigin());
1830 securityOriginList.push_back(std::move(origin));
1831 gWebEngineContextInstance->mSecurityOriginAcquiredCallback(securityOriginList);
1836 bool OnStorageUsageAcquired()
1838 DisconnectFromGlobalSignal(&OnStorageUsageAcquired);
1839 if (gWebEngineContextInstance)
1841 gWebEngineContextInstance->mStorageUsageAcquiredCallback(0);
1846 bool OnFormPasswordAcquired()
1848 DisconnectFromGlobalSignal(&OnFormPasswordAcquired);
1849 if (gWebEngineContextInstance)
1851 std::vector<std::unique_ptr<Dali::WebEngineContext::PasswordData>> formPasswordList;
1852 std::unique_ptr<Dali::WebEngineContext::PasswordData> data(new Dali::WebEngineContext::PasswordData());
1853 data->url = "http://test.html";
1854 data->useFingerprint = false;
1855 formPasswordList.push_back(std::move(data));
1856 gWebEngineContextInstance->mFormPasswordAcquiredCallback(formPasswordList);
1861 bool OnDownloadStarted()
1863 DisconnectFromGlobalSignal(&OnDownloadStarted);
1864 if (gWebEngineContextInstance)
1866 gWebEngineContextInstance->mDownloadStartedCallback("http://test.html");
1871 bool OnMimeOverridden()
1873 DisconnectFromGlobalSignal(&OnMimeOverridden);
1874 if (gWebEngineContextInstance)
1876 std::string newMime;
1877 gWebEngineContextInstance->mMimeOverriddenCallback("http://test.html", "txt/xml", newMime);
1882 bool OnChangesWatch()
1884 DisconnectFromGlobalSignal( &OnChangesWatch );
1888 MockWebEngineCookieManager* temp = (MockWebEngineCookieManager *)(&(gInstance->GetCookieManager()));
1891 temp->mChangesWatchCallback();
1898 bool OnPlainTextReceived()
1900 DisconnectFromGlobalSignal(&OnPlainTextReceived);
1903 std::string dummyResultText;
1904 gInstance->mPlainTextReceivedCallback(dummyResultText);
1911 inline WebEngine& GetImplementation( Dali::WebEngine& webEngine )
1913 DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
1914 BaseObject& handle = webEngine.GetBaseObject();
1915 return static_cast< Internal::Adaptor::WebEngine& >( handle );
1918 inline const WebEngine& GetImplementation( const Dali::WebEngine& webEngine )
1920 DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
1921 const BaseObject& handle = webEngine.GetBaseObject();
1922 return static_cast< const Internal::Adaptor::WebEngine& >( handle );
1925 } // namespace Adaptor
1927 } // namespace Internal
1929 // Dali::WebEngine Implementation
1930 WebEngine::WebEngine()
1934 WebEngine::WebEngine( Internal::Adaptor::WebEngine* internal )
1935 : BaseHandle( internal )
1939 WebEngine::~WebEngine()
1943 WebEngine WebEngine::New()
1945 Internal::Adaptor::WebEngine* baseObject = new Internal::Adaptor::WebEngine();
1947 return WebEngine( baseObject );
1950 WebEngine::WebEngine( const WebEngine& WebEngine )
1951 : BaseHandle( WebEngine )
1955 WebEngine& WebEngine::operator=( const WebEngine& webEngine )
1957 BaseHandle::operator=( webEngine );
1961 WebEngine WebEngine::DownCast( BaseHandle handle )
1963 return WebEngine( dynamic_cast< Internal::Adaptor::WebEngine* >( handle.GetObjectPtr() ) );
1966 void WebEngine::Create( uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId )
1970 void WebEngine::Create( uint32_t width, uint32_t height, uint32_t argc, char** argv )
1974 void WebEngine::Destroy()
1978 WebEngineSettings& WebEngine::GetSettings() const
1980 return Internal::Adaptor::GetImplementation( *this ).GetSettings();
1983 WebEngineContext& WebEngine::GetContext() const
1985 return Internal::Adaptor::GetImplementation( *this ).GetContext();
1988 WebEngineCookieManager& WebEngine::GetCookieManager() const
1990 return Internal::Adaptor::GetImplementation( *this ).GetCookieManager();
1993 WebEngineBackForwardList& WebEngine::GetBackForwardList() const
1995 return Internal::Adaptor::GetImplementation( *this ).GetBackForwardList();
1998 void WebEngine::LoadUrl( const std::string& url )
2000 return Internal::Adaptor::GetImplementation( *this ).LoadUrl( url );
2003 std::string WebEngine::GetTitle() const
2005 return Internal::Adaptor::GetImplementation( *this ).GetTitle();
2008 Dali::PixelData WebEngine::GetFavicon() const
2010 return Internal::Adaptor::GetImplementation( *this ).GetFavicon();
2013 std::string WebEngine::GetUrl() const
2015 return Internal::Adaptor::GetImplementation( *this ).GetUrl();
2018 NativeImageInterfacePtr WebEngine::GetNativeImageSource()
2021 Dali::NativeImageSourcePtr sourcePtr = Dali::NativeImageSource::New( source );
2025 void WebEngine::LoadHtmlString( const std::string& htmlString )
2029 bool WebEngine::LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl)
2034 bool WebEngine::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri)
2039 void WebEngine::Reload()
2043 bool WebEngine::ReloadWithoutCache()
2048 void WebEngine::StopLoading()
2052 void WebEngine::Suspend()
2056 void WebEngine::Resume()
2060 void WebEngine::SuspendNetworkLoading()
2064 void WebEngine::ResumeNetworkLoading()
2068 bool WebEngine::AddCustomHeader(const std::string& name, const std::string& value)
2073 bool WebEngine::RemoveCustomHeader(const std::string& name)
2078 uint32_t WebEngine::StartInspectorServer(uint32_t port)
2083 bool WebEngine::StopInspectorServer()
2088 bool WebEngine::CanGoForward()
2090 return Internal::Adaptor::GetImplementation( *this ).CanGoForward();
2093 void WebEngine::GoForward()
2095 Internal::Adaptor::GetImplementation( *this ).GoForward();
2098 bool WebEngine::CanGoBack()
2100 return Internal::Adaptor::GetImplementation( *this ).CanGoBack();
2103 void WebEngine::GoBack()
2105 Internal::Adaptor::GetImplementation( *this ).GoBack();
2108 void WebEngine::EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
2110 Internal::Adaptor::GetImplementation( *this ).EvaluateJavaScript( script, resultHandler );
2113 void WebEngine::AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void(const std::string&) > handler )
2117 void WebEngine::RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
2119 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptAlertCallback( callback );
2122 void WebEngine::JavaScriptAlertReply()
2126 void WebEngine::RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
2128 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptConfirmCallback( callback );
2131 void WebEngine::JavaScriptConfirmReply( bool confirmed )
2135 void WebEngine::RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
2137 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptPromptCallback( callback );
2140 void WebEngine::JavaScriptPromptReply( const std::string& result )
2144 std::unique_ptr<Dali::WebEngineHitTest> WebEngine::CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode)
2146 return Internal::Adaptor::GetImplementation(*this).CreateHitTest(x, y, mode);
2149 bool WebEngine::CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback)
2151 return Internal::Adaptor::GetImplementation(*this).CreateHitTestAsynchronously(x, y, mode, callback);
2154 void WebEngine::ClearAllTilesResources()
2158 void WebEngine::ClearHistory()
2160 Internal::Adaptor::GetImplementation( *this ).ClearHistory();
2163 void WebEngine::SetScaleFactor(float scaleFactor, Dali::Vector2 point)
2165 Internal::Adaptor::GetImplementation( *this ).SetScaleFactor(scaleFactor, point);
2168 float WebEngine::GetScaleFactor() const
2170 return Internal::Adaptor::GetImplementation( *this ).GetScaleFactor();
2173 void WebEngine::ActivateAccessibility(bool activated)
2177 bool WebEngine::HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount)
2182 void WebEngine::AddDynamicCertificatePath(const std::string& host, const std::string& certPath)
2186 Dali::PixelData WebEngine::GetScreenshot(Dali::Rect<int32_t> viewArea, float scaleFactor)
2188 return Internal::Adaptor::GetImplementation( *this ).GetScreenshot(viewArea, scaleFactor);
2191 bool WebEngine::GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
2193 return Internal::Adaptor::GetImplementation( *this ).GetScreenshotAsynchronously(viewArea, scaleFactor, callback);
2196 bool WebEngine::CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
2198 return Internal::Adaptor::GetImplementation( *this ).CheckVideoPlayingAsynchronously(callback);
2201 void WebEngine::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
2203 Internal::Adaptor::GetImplementation( *this ).RegisterGeolocationPermissionCallback(callback);
2206 std::string WebEngine::GetUserAgent() const
2208 return Internal::Adaptor::GetImplementation( *this ).GetUserAgent();
2211 void WebEngine::SetUserAgent( const std::string& userAgent )
2213 Internal::Adaptor::GetImplementation( *this ).SetUserAgent( userAgent );
2216 void WebEngine::ScrollBy( int32_t dx, int32_t dy )
2218 Internal::Adaptor::GetImplementation( *this ).ScrollBy( dx, dy );
2221 bool WebEngine::ScrollEdgeBy( int32_t dx, int32_t dy )
2223 return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeBy( dx, dy );
2226 void WebEngine::SetScrollPosition( int32_t x, int32_t y )
2228 Internal::Adaptor::GetImplementation( *this ).SetScrollPosition( x, y );
2231 Dali::Vector2 WebEngine::GetScrollPosition() const
2233 return Internal::Adaptor::GetImplementation( *this ).GetScrollPosition();
2236 Dali::Vector2 WebEngine::GetScrollSize() const
2238 return Internal::Adaptor::GetImplementation( *this ).GetScrollSize();
2241 Dali::Vector2 WebEngine::GetContentSize() const
2243 return Internal::Adaptor::GetImplementation( *this ).GetContentSize();
2246 void WebEngine::SetSize( uint32_t width, uint32_t height )
2250 void WebEngine::SetDocumentBackgroundColor(Dali::Vector4 color)
2254 void WebEngine::ClearTilesWhenHidden(bool cleared)
2258 void WebEngine::SetTileCoverAreaMultiplier(float multiplier)
2262 void WebEngine::EnableCursorByClient(bool enabled)
2266 std::string WebEngine::GetSelectedText() const
2271 bool WebEngine::SendTouchEvent( const TouchEvent& touch )
2276 bool WebEngine::SendKeyEvent( const KeyEvent& event )
2281 bool WebEngine::SendHoverEvent( const HoverEvent& event )
2286 bool WebEngine::SendWheelEvent( const WheelEvent& event )
2291 void WebEngine::SetFocus( bool focused )
2295 void WebEngine::SetPageZoomFactor(float zoomFactor)
2297 Internal::Adaptor::GetImplementation( *this ).SetPageZoomFactor(zoomFactor);
2300 float WebEngine::GetPageZoomFactor() const
2302 return Internal::Adaptor::GetImplementation( *this ).GetPageZoomFactor();
2305 void WebEngine::SetTextZoomFactor(float zoomFactor)
2307 Internal::Adaptor::GetImplementation( *this ).SetTextZoomFactor(zoomFactor);
2310 float WebEngine::GetTextZoomFactor() const
2312 return Internal::Adaptor::GetImplementation( *this ).GetTextZoomFactor();
2315 float WebEngine::GetLoadProgressPercentage() const
2317 return Internal::Adaptor::GetImplementation( *this ).GetLoadProgressPercentage();
2320 void WebEngine::UpdateDisplayArea( Dali::Rect< int32_t > displayArea )
2324 void WebEngine::EnableVideoHole( bool enabled )
2328 void WebEngine::EnableMouseEvents( bool enabled )
2332 void WebEngine::EnableKeyEvents( bool enabled )
2336 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal()
2338 return Internal::Adaptor::GetImplementation(*this).FrameRenderedSignal();
2341 void WebEngine::RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
2343 Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadStartedCallback(callback);
2346 void WebEngine::RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
2348 Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadInProgressCallback(callback);
2351 void WebEngine::RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
2353 Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadFinishedCallback(callback);
2356 void WebEngine::RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback)
2358 Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadErrorCallback(callback);
2361 void WebEngine::RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback)
2363 Internal::Adaptor::GetImplementation( *this ).RegisterScrollEdgeReachedCallback(callback);
2366 void WebEngine::RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback)
2368 Internal::Adaptor::GetImplementation( *this ).RegisterUrlChangedCallback(callback);
2371 void WebEngine::RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback)
2373 Internal::Adaptor::GetImplementation( *this ).RegisterFormRepostDecidedCallback(callback);
2376 void WebEngine::RegisterRequestInterceptorCallback(Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback callback)
2378 Internal::Adaptor::GetImplementation( *this ).RegisterRequestInterceptorCallback(callback);
2381 void WebEngine::RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback)
2383 Internal::Adaptor::GetImplementation( *this ).RegisterConsoleMessageReceivedCallback(callback);
2386 void WebEngine::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback)
2388 Internal::Adaptor::GetImplementation( *this ).RegisterResponsePolicyDecidedCallback(callback);
2391 void WebEngine::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
2393 Internal::Adaptor::GetImplementation( *this ).RegisterCertificateConfirmedCallback(callback);
2396 void WebEngine::RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
2398 Internal::Adaptor::GetImplementation( *this ).RegisterSslCertificateChangedCallback(callback);
2401 void WebEngine::RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback)
2403 Internal::Adaptor::GetImplementation( *this ).RegisterHttpAuthHandlerCallback(callback);
2406 void WebEngine::RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback)
2408 Internal::Adaptor::GetImplementation( *this ).RegisterContextMenuShownCallback(callback);
2411 void WebEngine::RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback)
2413 Internal::Adaptor::GetImplementation( *this ).RegisterContextMenuHiddenCallback(callback);
2416 void WebEngine::GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback)
2418 Internal::Adaptor::GetImplementation(*this).GetPlainTextAsynchronously(callback);
2421 } // namespace Dali;