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();
88 static void ConnectToGlobalSignal( bool ( *func )() )
90 Dali::Timer timer = Dali::Timer::New( 0 );
91 timer.TickSignal().Connect( func );
94 static void DisconnectFromGlobalSignal( bool ( *func )() )
96 Dali::Timer timer = Dali::Timer::New( 0 );
97 timer.TickSignal().Disconnect( func );
99 } // namespace anonymous
101 class MockWebEngineContext : public Dali::WebEngineContext
104 MockWebEngineContext()
105 : mockModel( Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER )
109 Dali::WebEngineContext::CacheModel GetCacheModel() const override
114 void SetCacheModel( Dali::WebEngineContext::CacheModel cacheModel ) override
116 mockModel = cacheModel;
119 void SetProxyUri( const std::string& uri ) override
124 std::string GetProxyUri() const override
129 void SetProxyBypassRule(const std::string& proxy, const std::string& bypass) override
131 mockBypassRule = bypass;
134 std::string GetProxyBypassRule() const override
136 return mockBypassRule;
139 void SetDefaultProxyAuth( const std::string& username, const std::string& password ) override
143 void SetCertificateFilePath( const std::string& certificatePath ) override
145 mockCertificateFilePath = certificatePath;
148 std::string GetCertificateFilePath() const override
150 return mockCertificateFilePath;
153 void DeleteAllWebDatabase() override
157 bool GetWebDatabaseOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback)
161 ConnectToGlobalSignal(&OnSecurityOriginAcquired);
162 mSecurityOriginAcquiredCallback = callback;
167 bool DeleteWebDatabase(Dali::WebEngineSecurityOrigin& origin)
172 bool GetWebStorageOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback)
176 ConnectToGlobalSignal(&OnSecurityOriginAcquired);
177 mSecurityOriginAcquiredCallback = callback;
182 bool GetWebStorageUsageForOrigin(Dali::WebEngineSecurityOrigin& origin, Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback callback)
186 ConnectToGlobalSignal(&OnStorageUsageAcquired);
187 mStorageUsageAcquiredCallback = callback;
192 void DeleteAllWebStorage() override
196 bool DeleteWebStorage(Dali::WebEngineSecurityOrigin& origin)
201 void DeleteLocalFileSystem() override
205 void ClearCache() override
209 bool DeleteApplicationCache(Dali::WebEngineSecurityOrigin& origin)
214 void GetFormPasswordList(Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback callback)
218 ConnectToGlobalSignal(&OnFormPasswordAcquired);
219 mFormPasswordAcquiredCallback = callback;
223 void RegisterDownloadStartedCallback(Dali::WebEngineContext::WebEngineDownloadStartedCallback callback)
227 ConnectToGlobalSignal(&OnDownloadStarted);
228 mDownloadStartedCallback = callback;
232 void RegisterMimeOverriddenCallback(Dali::WebEngineContext::WebEngineMimeOverriddenCallback callback)
236 ConnectToGlobalSignal(&OnMimeOverridden);
237 mMimeOverriddenCallback = callback;
241 void EnableCache( bool cacheEnabled ) override
243 mockCacheEnabled = cacheEnabled;
246 bool IsCacheEnabled() const override
248 return mockCacheEnabled;
251 void SetAppId(const std::string& appID) override
255 bool SetAppVersion(const std::string& appVersion) override
260 void SetApplicationType(const Dali::WebEngineContext::ApplicationType applicationType) override
264 void SetTimeOffset(float timeOffset) override
268 void SetTimeZoneOffset(float timeZoneOffset, float daylightSavingTime) override
272 void RegisterUrlSchemesAsCorsEnabled(const std::vector<std::string>& schemes) override
276 void RegisterJsPluginMimeTypes(const std::vector<std::string>& mimeTypes) override
280 void SetDefaultZoomFactor(float zoomFactor) override
282 mockZoomFactor = zoomFactor;
285 float GetDefaultZoomFactor() const override
287 return mockZoomFactor;
290 bool DeleteAllApplicationCache() override
295 bool DeleteAllWebIndexedDatabase() override
300 void DeleteFormPasswordDataList(const std::vector<std::string>& list) override
304 void DeleteAllFormPasswordData() override
308 void DeleteAllFormCandidateData() override
312 bool FreeUnusedMemory() override
318 Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback mSecurityOriginAcquiredCallback;
319 Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback mStorageUsageAcquiredCallback;
320 Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback mFormPasswordAcquiredCallback;
321 Dali::WebEngineContext::WebEngineDownloadStartedCallback mDownloadStartedCallback;
322 Dali::WebEngineContext::WebEngineMimeOverriddenCallback mMimeOverriddenCallback;
325 Dali::WebEngineContext::CacheModel mockModel;
326 std::string mockProxyUri;
327 std::string mockBypassRule;
328 std::string mockCertificateFilePath;
329 bool mockCacheEnabled;
330 float mockZoomFactor;
333 class MockWebEngineCookieManager : public Dali::WebEngineCookieManager
336 MockWebEngineCookieManager()
337 : mockCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY )
341 void SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy policy ) override
343 mockCookieAcceptPolicy = policy;
346 Dali::WebEngineCookieManager::CookieAcceptPolicy GetCookieAcceptPolicy() const override
348 return mockCookieAcceptPolicy;
351 void ClearCookies() override
355 void SetPersistentStorage( const std::string& path, Dali::WebEngineCookieManager::CookiePersistentStorage storage ) override
359 void ChangesWatch( Dali::WebEngineCookieManager::WebEngineCookieManagerChangesWatchCallback callback ) override
363 ConnectToGlobalSignal( &OnChangesWatch );
364 mChangesWatchCallback = callback;
369 Dali::WebEngineCookieManager::WebEngineCookieManagerChangesWatchCallback mChangesWatchCallback;
372 Dali::WebEngineCookieManager::CookieAcceptPolicy mockCookieAcceptPolicy;
375 class MockWebEngineBackForwardListItem : public Dali::WebEngineBackForwardListItem
378 MockWebEngineBackForwardListItem()
379 : mockUrl( "http://url" ),
380 mockTitle( "title" ),
381 mockOriginalUrl( "http://originalurl" )
385 std::string GetUrl() const override
390 std::string GetTitle() const override
395 std::string GetOriginalUrl() const override
397 return mockOriginalUrl;
402 std::string mockTitle;
403 std::string mockOriginalUrl;
406 class MockWebEngineBackForwardList : public Dali::WebEngineBackForwardList
409 MockWebEngineBackForwardList()
413 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetCurrentItem() const override
415 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
419 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetPreviousItem() const override
421 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
425 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetNextItem() const override
427 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
431 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetItemAtIndex( uint32_t index ) const override
433 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
437 uint32_t GetItemCount() const override
442 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> GetBackwardItems(int limit) override
444 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> ret;
445 std::unique_ptr<Dali::WebEngineBackForwardListItem> item(new MockWebEngineBackForwardListItem());
446 ret.push_back(std::move(item));
450 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> GetForwardItems(int limit) override
452 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> ret;
453 std::unique_ptr<Dali::WebEngineBackForwardListItem> item(new MockWebEngineBackForwardListItem());
454 ret.push_back(std::move(item));
460 class MockWebEngineCertificate : public Dali::WebEngineCertificate
463 MockWebEngineCertificate()
467 void Allow(bool allowed) override
471 bool IsFromMainFrame() const override
476 std::string GetPem() const override
481 bool IsContextSecure() const override
487 class MockWebEngineHttpAuthHandler : public Dali::WebEngineHttpAuthHandler
490 MockWebEngineHttpAuthHandler()
494 std::string GetRealm() const override
499 void Suspend() override
503 void UseCredential(const std::string& user, const std::string& password) override
507 void CancelCredential() override
512 class MockWebEngineFormRepostDecision : public WebEngineFormRepostDecision
515 MockWebEngineFormRepostDecision()
519 void Reply(bool allowed) override {}
522 class MockWebEngineFrame : public Dali::WebEngineFrame
529 bool IsMainFrame() const override
535 class MockWebEnginePolicyDecision : public Dali::WebEnginePolicyDecision
538 MockWebEnginePolicyDecision()
542 std::string GetUrl() const override
544 return "http://test.html";
547 std::string GetCookie() const override
552 Dali::WebEnginePolicyDecision::DecisionType GetDecisionType() const
554 return Dali::WebEnginePolicyDecision::DecisionType::USE;
557 std::string GetResponseMime() const
562 int32_t GetResponseStatusCode() const
567 Dali::WebEnginePolicyDecision::NavigationType GetNavigationType() const
569 return Dali::WebEnginePolicyDecision::NavigationType::LINK_CLICKED;
572 Dali::WebEngineFrame& GetFrame() const
574 return *(Dali::WebEngineFrame*)(&mockWebFrame);
577 std::string GetScheme() const
598 MockWebEngineFrame mockWebFrame;
601 class MockWebEngineRequestInterceptor : public WebEngineRequestInterceptor
604 MockWebEngineRequestInterceptor()
608 std::string GetUrl() const override
610 return "http://test.html";
613 bool Ignore() override
618 bool SetResponseStatus(int statusCode, const std::string &customedStatusText) override
623 bool AddResponseHeader(const std::string &fieldName, const std::string &fieldValue) override
628 bool AddResponseBody(const std::string &body, uint32_t length) override
634 class MockWebEngineConsoleMessage : public Dali::WebEngineConsoleMessage
637 MockWebEngineConsoleMessage()
641 std::string GetSource() const override
646 uint32_t GetLine() const override
651 SeverityLevel GetSeverityLevel() const override
653 return SeverityLevel::EMPTY;
656 std::string GetText() const override
658 return "This is a text.";
662 class MockWebEngineLoadError : public Dali::WebEngineLoadError
665 MockWebEngineLoadError(const std::string& url)
670 std::string GetUrl() const override
675 ErrorCode GetCode() const override
677 return ErrorCode::UNKNOWN;
680 std::string GetDescription() const override
682 return "This is an error.";
685 ErrorType GetType() const override
687 return ErrorType::NONE;
694 class MockWebEngineContextMenuItem : public Dali::WebEngineContextMenuItem
697 MockWebEngineContextMenuItem()
701 ItemTag GetTag() const override
703 return ItemTag::NO_ACTION;
706 ItemType GetType() const override
708 return ItemType::ACTION;
711 bool IsEnabled() const override
716 std::string GetLinkUrl() const override
718 return "http://test.html";
721 std::string GetImageUrl() const override
723 return "http://test.jpg";
726 std::string GetTitle() const override
731 std::unique_ptr<Dali::WebEngineContextMenu> GetParentMenu() const override
733 std::unique_ptr<Dali::WebEngineContextMenu> result;
738 class MockWebEngineContextMenu : public Dali::WebEngineContextMenu
741 MockWebEngineContextMenu()
745 uint32_t GetItemCount() const override
750 std::unique_ptr<Dali::WebEngineContextMenuItem> GetItemAt(uint32_t index) const override
752 std::unique_ptr<Dali::WebEngineContextMenuItem> webitem(new MockWebEngineContextMenuItem());
756 std::vector<std::unique_ptr<WebEngineContextMenuItem>> GetItemList() const override
758 std::vector<std::unique_ptr<WebEngineContextMenuItem>> result;
759 std::unique_ptr<Dali::WebEngineContextMenuItem> webitem(new MockWebEngineContextMenuItem());
760 result.push_back(std::move(webitem));
764 bool RemoveItem(WebEngineContextMenuItem& item) override
769 bool AppendItemAsAction(WebEngineContextMenuItem::ItemTag tag, const std::string& title, bool enabled) override
774 bool AppendItem(WebEngineContextMenuItem::ItemTag tag, const std::string& title, const std::string& iconFile, bool enabled) override
779 bool SelectItem(WebEngineContextMenuItem& item) override
790 class MockWebEngineHitTest : public Dali::WebEngineHitTest
793 MockWebEngineHitTest()
797 ResultContext GetResultContext() const override
799 return ResultContext::DOCUMENT;
802 std::string GetLinkUri() const override
804 return "http://test.html";
807 std::string GetLinkTitle() const override
812 std::string GetLinkLabel() const override
817 std::string GetImageUri() const override
819 return "http://test.jpg";
822 std::string GetMediaUri() const override
824 return "http://test.mp4";
827 std::string GetTagName() const override
832 std::string GetNodeValue() const override
837 Dali::Property::Map& GetAttributes() const override
839 return mockAttributesMap;
842 std::string GetImageFileNameExtension() const override
847 Dali::PixelData GetImageBuffer() override
849 uint8_t* imageData = new uint8_t[16];
850 memset(imageData, 0xff, 16);
851 return Dali::PixelData::New(imageData, 16, 2, 2,
852 Dali::Pixel::Format::RGBA8888,
853 Dali::PixelData::ReleaseFunction::DELETE_ARRAY);
857 mutable Dali::Property::Map mockAttributesMap;
860 class MockWebEngineSecurityOrigin : public Dali::WebEngineSecurityOrigin
863 MockWebEngineSecurityOrigin()
864 : mockUrl("https://test.html")
865 , mockPotocol("https")
869 std::string GetHost() const
874 std::string GetProtocol() const
881 std::string mockPotocol;
884 class MockWebEngineSettings : public WebEngineSettings
887 MockWebEngineSettings()
888 : mockDefaultFontSize( 16 ),
889 mockJavaScriptEnabled( true ),
890 mockAutoFittingEnabled ( true ),
891 mockPluginsEnabled ( true ),
892 mockPrivateBrowsingEnabled( true ),
893 mockLinkMagnifierEnabled( true ),
894 mockKeypadWithoutUserActionUsed( true ),
895 mockAutofillPasswordFormEnabled( true ),
896 mockFormCandidateDataEnabled( true ),
897 mockTextSelectionEnabled( true ),
898 mockTextAutosizingEnable( true ),
899 mockArrowScrollEnable( true ),
900 mockClipboardEnabled( true ),
901 mockImePanelEnabled( true ),
902 mockImageLoadedAutomatically( true ),
903 mockDefaultTextEncodingName()
907 uint32_t GetDefaultFontSize() const override
909 return mockDefaultFontSize;
912 void SetDefaultFontSize( uint32_t size ) override
914 mockDefaultFontSize = size;
917 bool IsJavaScriptEnabled() const override
919 return mockJavaScriptEnabled;
922 void EnableJavaScript( bool enabled ) override
924 mockJavaScriptEnabled = enabled;
927 bool IsAutoFittingEnabled() const override
929 return mockAutoFittingEnabled;
932 void EnableAutoFitting( bool enabled ) override
934 mockAutoFittingEnabled = enabled;
937 bool ArePluginsEnabled() const override
939 return mockPluginsEnabled;
942 void EnablePlugins( bool enabled ) override
944 mockPluginsEnabled = enabled;
947 bool IsPrivateBrowsingEnabled() const override
949 return mockPrivateBrowsingEnabled;
952 void EnablePrivateBrowsing( bool enabled ) override
954 mockPrivateBrowsingEnabled = enabled;
957 bool IsLinkMagnifierEnabled() const override
959 return mockLinkMagnifierEnabled;
962 void EnableLinkMagnifier( bool enabled ) override
964 mockLinkMagnifierEnabled = enabled;
967 bool IsKeypadWithoutUserActionUsed() const override
969 return mockKeypadWithoutUserActionUsed;
972 void UseKeypadWithoutUserAction( bool used ) override
974 mockKeypadWithoutUserActionUsed = used;
977 bool IsAutofillPasswordFormEnabled() const override
979 return mockAutofillPasswordFormEnabled;
982 void EnableAutofillPasswordForm( bool enabled ) override
984 mockAutofillPasswordFormEnabled = enabled;
987 bool IsFormCandidateDataEnabled() const override
989 return mockFormCandidateDataEnabled;
992 void EnableFormCandidateData( bool enabled ) override
994 mockFormCandidateDataEnabled = enabled;
997 bool IsTextSelectionEnabled() const override
999 return mockTextSelectionEnabled;
1002 void EnableTextSelection( bool enabled ) override
1004 mockTextSelectionEnabled = enabled;
1007 bool IsTextAutosizingEnabled() const override
1009 return mockTextAutosizingEnable;
1012 void EnableTextAutosizing( bool enabled ) override
1014 mockTextAutosizingEnable = enabled;
1017 bool IsArrowScrollEnabled() const override
1019 return mockArrowScrollEnable;
1022 void EnableArrowScroll( bool enabled ) override
1024 mockArrowScrollEnable = enabled;
1027 bool IsClipboardEnabled() const override
1029 return mockClipboardEnabled;
1032 void EnableClipboard( bool enabled ) override
1034 mockClipboardEnabled = enabled;
1037 bool IsImePanelEnabled() const override
1039 return mockImePanelEnabled;
1042 void EnableImePanel( bool enabled ) override
1044 mockImePanelEnabled = enabled;
1047 bool AreImagesLoadedAutomatically() const override
1049 return mockImageLoadedAutomatically;
1052 void AllowImagesLoadAutomatically( bool automatic ) override
1054 mockImageLoadedAutomatically = automatic;
1057 std::string GetDefaultTextEncodingName() const override
1059 return mockDefaultTextEncodingName;
1062 void SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) override
1064 mockDefaultTextEncodingName = defaultTextEncodingName;
1067 void AllowMixedContents( bool allowed ) override
1071 void EnableSpatialNavigation( bool enabled ) override
1075 void EnableWebSecurity( bool enabled ) override
1079 void EnableCacheBuilder( bool enabled ) override
1083 void UseScrollbarThumbFocusNotifications( bool used ) override
1087 void EnableDoNotTrack( bool enabled ) override
1091 void AllowFileAccessFromExternalUrl( bool allowed ) override
1095 void AllowScriptsOpenWindows( bool allowed ) override
1099 bool SetViewportMetaTag(bool enable) override
1104 bool SetForceZoom(bool enable) override
1109 bool IsZoomForced() const override
1114 bool SetTextZoomEnabled(bool enable) override
1119 bool IsTextZoomEnabled() const override
1124 void SetExtraFeature(const std::string& feature, bool enable) override
1128 bool IsExtraFeatureEnabled(const std::string& feature) const override
1134 int mockDefaultFontSize;
1135 bool mockJavaScriptEnabled;
1136 bool mockAutoFittingEnabled;
1137 bool mockPluginsEnabled;
1138 bool mockPrivateBrowsingEnabled;
1139 bool mockLinkMagnifierEnabled;
1140 bool mockKeypadWithoutUserActionUsed;
1141 bool mockAutofillPasswordFormEnabled;
1142 bool mockFormCandidateDataEnabled;
1143 bool mockTextSelectionEnabled;
1144 bool mockTextAutosizingEnable;
1145 bool mockArrowScrollEnable;
1146 bool mockClipboardEnabled;
1147 bool mockImePanelEnabled;
1148 bool mockImageLoadedAutomatically;
1149 std::string mockDefaultTextEncodingName;
1152 class WebEngine: public Dali::BaseObject
1158 , mCurrentPlusOnePos( 0 )
1160 , mEvaluating( false )
1161 , mScrollPosition( 0, 0 )
1162 , mScrollSize( 500, 500 )
1163 , mContentSize( 500, 500 )
1166 if ( gInstanceCount == 1 ) // only first web engine need be saved.
1171 mockWebEngineSettings = new MockWebEngineSettings();
1172 MockWebEngineContext* engineContext = new MockWebEngineContext();
1173 mockWebEngineContext = engineContext;
1174 if ( gInstanceCount == 1 )
1176 gWebEngineContextInstance = engineContext;
1178 mockWebEngineCookieManager = new MockWebEngineCookieManager();
1179 mockWebEngineBackForwardList = new MockWebEngineBackForwardList();
1182 virtual ~WebEngine()
1185 if( !gInstanceCount )
1188 gWebEngineContextInstance = 0;
1191 delete mockWebEngineSettings;
1192 delete mockWebEngineContext;
1193 delete mockWebEngineCookieManager;
1194 delete mockWebEngineBackForwardList;
1197 Dali::WebEngineSettings& GetSettings() const
1199 return *mockWebEngineSettings;
1202 Dali::WebEngineContext& GetContext() const
1204 return *mockWebEngineContext;
1207 Dali::WebEngineCookieManager& GetCookieManager() const
1209 return *mockWebEngineCookieManager;
1212 Dali::WebEngineBackForwardList& GetBackForwardList() const
1214 return *mockWebEngineBackForwardList;
1217 void LoadUrl( const std::string& url )
1220 ConnectToGlobalSignal( &OnLoadUrl );
1223 std::string GetUrl() const
1228 std::string GetTitle() const
1230 return std::string("title");
1233 Dali::PixelData GetFavicon() const
1235 static int testGetFaviconCount = 0;
1236 if (testGetFaviconCount == 0)
1238 testGetFaviconCount++;
1239 uint8_t* faviconData = new uint8_t[16];
1240 memset(faviconData, 0xff, 16);
1241 return Dali::PixelData::New(faviconData, 16, 2, 2,
1242 Dali::Pixel::Format::RGBA8888,
1243 Dali::PixelData::ReleaseFunction::DELETE_ARRAY);
1247 return Dali::PixelData();
1251 bool CanGoForward() const
1253 return mHistory.size() > mCurrentPlusOnePos;
1258 ConnectToGlobalSignal( &OnGoForward );
1261 bool CanGoBack() const
1263 return mCurrentPlusOnePos > 1;
1268 ConnectToGlobalSignal( &OnGoBack );
1271 void EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
1277 ConnectToGlobalSignal( &OnEvaluteJavaScript );
1279 mResultCallbacks.push_back( resultHandler );
1283 void RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
1287 ConnectToGlobalSignal( &OnJavaScriptAlert );
1288 mJavaScriptAlertCallback = callback;
1292 void RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
1296 ConnectToGlobalSignal( &OnJavaScriptConfirm );
1297 mJavaScriptConfirmCallback = callback;
1301 void RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
1305 ConnectToGlobalSignal( &OnJavaScriptPrompt );
1306 mJavaScriptPromptCallback = callback;
1310 std::unique_ptr<Dali::WebEngineHitTest> CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode)
1312 std::unique_ptr<Dali::WebEngineHitTest> hitTest(new MockWebEngineHitTest());
1316 bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback)
1320 ConnectToGlobalSignal( &OnHitTestCreated );
1321 mHitTestCreatedCallback = callback;
1328 ConnectToGlobalSignal( &OnClearHistory );
1331 std::string GetUserAgent() const
1336 void SetUserAgent( const std::string& userAgent )
1338 mUserAgent = userAgent;
1341 void ScrollBy( int32_t dx, int32_t dy )
1343 mScrollPosition += Dali::Vector2( dx, dy );
1344 if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
1346 ConnectToGlobalSignal( &OnScrollEdge );
1350 bool ScrollEdgeBy( int32_t dx, int32_t dy )
1352 mScrollPosition += Dali::Vector2( dx, dy );
1353 if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
1355 ConnectToGlobalSignal( &OnScrollEdge );
1360 void SetScrollPosition( int32_t x, int32_t y )
1362 mScrollPosition.x = x;
1363 mScrollPosition.y = y;
1366 Dali::Vector2 GetScrollPosition() const
1368 return mScrollPosition;
1371 Dali::Vector2 GetScrollSize() const
1376 Dali::Vector2 GetContentSize() const
1378 return mContentSize;
1381 void SetPageZoomFactor(float zoomFactor)
1383 mPageZoomFactor = zoomFactor;
1386 float GetPageZoomFactor() const
1388 return mPageZoomFactor;
1391 void SetTextZoomFactor(float zoomFactor)
1393 mTextZoomFactor = zoomFactor;
1396 float GetTextZoomFactor() const
1398 return mTextZoomFactor;
1401 float GetLoadProgressPercentage() const
1406 void SetScaleFactor(float scaleFactor, Dali::Vector2 point)
1408 mScaleFactor = scaleFactor;
1411 float GetScaleFactor() const
1413 return mScaleFactor;
1416 Dali::PixelData GetScreenshot(Dali::Rect<int32_t> viewArea, float scaleFactor)
1418 uint32_t bufferSize = viewArea.width * viewArea.height * 4 ;
1419 uint8_t* pixel = new uint8_t[ bufferSize ];
1420 memset(pixel, 0xff, bufferSize);
1421 return Dali::PixelData::New( pixel, bufferSize, viewArea.width, viewArea.height,
1422 Dali::Pixel::Format::RGBA8888,
1423 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
1426 bool GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
1430 ConnectToGlobalSignal( &OnScreenshotCaptured );
1431 mScreenshotCapturedCallback = callback;
1436 bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
1440 ConnectToGlobalSignal( &OnVideoPlaying );
1441 mVideoPlayingCallback = callback;
1446 void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
1450 ConnectToGlobalSignal( &OnGeolocationPermission );
1451 mGeolocationPermissionCallback = callback;
1455 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal()
1457 return mFrameRenderedSignal;
1460 void RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
1462 mPageLoadStartedCallback = callback;
1465 void RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
1467 mPageLoadInProgressCallback = callback;
1470 void RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
1472 mPageLoadFinishedCallback = callback;
1475 void RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback)
1477 mPageLoadErrorCallback = callback;
1480 void RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback)
1482 mScrollEdgeReachedCallback = callback;
1485 void RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback)
1487 mUrlChangedCallback = callback;
1490 void RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback)
1492 mFormRepostDecidedCallback = callback;
1495 void RegisterRequestInterceptorCallback(Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback callback)
1497 mRequestInterceptorCallback = callback;
1500 void RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback)
1502 mConsoleMessageCallback = callback;
1505 void RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback)
1507 mResponsePolicyDecisionCallback = callback;
1510 void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
1512 mCertificateConfirmCallback = callback;
1515 void RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
1517 mSslCertificateChangedCallback = callback;
1520 void RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback)
1522 mHttpAuthHandlerCallback = callback;
1525 void RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback)
1527 mContextMenuShownCallback = callback;
1530 void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback)
1532 mContextMenuHiddenCallback = callback;
1536 std::vector<std::string> mHistory;
1537 size_t mCurrentPlusOnePos;
1538 std::string mUserAgent;
1540 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType mFrameRenderedSignal;
1543 float mPageZoomFactor;
1544 float mTextZoomFactor;
1547 Dali::Vector2 mScrollPosition;
1548 Dali::Vector2 mScrollSize;
1549 Dali::Vector2 mContentSize;
1550 WebEngineBackForwardList* mockWebEngineBackForwardList;
1551 WebEngineContext* mockWebEngineContext;
1552 WebEngineCookieManager* mockWebEngineCookieManager;
1553 WebEngineSettings* mockWebEngineSettings;
1555 std::vector<Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback> mResultCallbacks;
1557 Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadStartedCallback;
1558 Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadInProgressCallback;
1559 Dali::WebEnginePlugin::WebEnginePageLoadCallback mPageLoadFinishedCallback;
1560 Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback mPageLoadErrorCallback;
1561 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback mScrollEdgeReachedCallback;
1562 Dali::WebEnginePlugin::WebEngineUrlChangedCallback mUrlChangedCallback;
1563 Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback mFormRepostDecidedCallback;
1564 Dali::WebEnginePlugin::WebEngineFrameRenderedCallback mFrameRenderedCallback;
1565 Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback mRequestInterceptorCallback;
1566 Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback mConsoleMessageCallback;
1567 Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback mResponsePolicyDecisionCallback;
1568 Dali::WebEnginePlugin::WebEngineCertificateCallback mCertificateConfirmCallback;
1569 Dali::WebEnginePlugin::WebEngineCertificateCallback mSslCertificateChangedCallback;
1570 Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback mHttpAuthHandlerCallback;
1571 Dali::WebEnginePlugin::WebEngineContextMenuShownCallback mContextMenuShownCallback;
1572 Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback mContextMenuHiddenCallback;
1573 Dali::WebEnginePlugin::JavaScriptAlertCallback mJavaScriptAlertCallback;
1574 Dali::WebEnginePlugin::JavaScriptConfirmCallback mJavaScriptConfirmCallback;
1575 Dali::WebEnginePlugin::JavaScriptPromptCallback mJavaScriptPromptCallback;
1576 Dali::WebEnginePlugin::ScreenshotCapturedCallback mScreenshotCapturedCallback;
1577 Dali::WebEnginePlugin::VideoPlayingCallback mVideoPlayingCallback;
1578 Dali::WebEnginePlugin::GeolocationPermissionCallback mGeolocationPermissionCallback;
1579 Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback mHitTestCreatedCallback;
1588 DisconnectFromGlobalSignal( &OnGoBack );
1590 if( gInstance && gInstance->CanGoBack() )
1592 gInstance->mCurrentPlusOnePos--;
1599 DisconnectFromGlobalSignal( &OnGoForward );
1601 if( gInstance && gInstance->CanGoForward() )
1603 gInstance->mCurrentPlusOnePos++;
1610 DisconnectFromGlobalSignal( &OnLoadUrl );
1614 if( gInstance->mHistory.size() > gInstance->mCurrentPlusOnePos )
1616 gInstance->mHistory.erase( gInstance->mHistory.begin() + gInstance->mCurrentPlusOnePos, gInstance->mHistory.end() );
1618 gInstance->mHistory.push_back( gInstance->mUrl );
1619 gInstance->mCurrentPlusOnePos++;
1620 if (gInstance->mPageLoadStartedCallback)
1622 gInstance->mPageLoadStartedCallback( gInstance->mUrl );
1624 if (gInstance->mPageLoadInProgressCallback)
1626 gInstance->mPageLoadInProgressCallback( gInstance->mUrl );
1628 if (gInstance->mPageLoadFinishedCallback)
1630 gInstance->mPageLoadFinishedCallback( gInstance->mUrl );
1632 if (gInstance->mPageLoadErrorCallback)
1634 std::unique_ptr<Dali::WebEngineLoadError> error(new MockWebEngineLoadError(gInstance->mUrl));
1635 gInstance->mPageLoadErrorCallback(std::move(error));
1637 if (gInstance->mUrlChangedCallback)
1639 gInstance->mUrlChangedCallback( "http://new-test" );
1641 if (gInstance->mFormRepostDecidedCallback)
1643 std::unique_ptr<Dali::WebEngineFormRepostDecision> repostDecision(new MockWebEngineFormRepostDecision());
1644 gInstance->mFormRepostDecidedCallback(std::move(repostDecision));
1646 gInstance->mFrameRenderedSignal.Emit();
1647 if (gInstance->mFrameRenderedCallback)
1649 gInstance->mFrameRenderedCallback();
1651 if (gInstance->mRequestInterceptorCallback)
1653 std::unique_ptr<Dali::WebEngineRequestInterceptor> interceptor(new MockWebEngineRequestInterceptor());
1654 gInstance->mRequestInterceptorCallback(std::move(interceptor));
1656 if (gInstance->mConsoleMessageCallback)
1658 std::unique_ptr<Dali::WebEngineConsoleMessage> message(new MockWebEngineConsoleMessage());
1659 gInstance->mConsoleMessageCallback(std::move(message));
1661 if (gInstance->mResponsePolicyDecisionCallback)
1663 std::unique_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
1664 gInstance->mResponsePolicyDecisionCallback(std::move(policyDecision));
1666 if (gInstance->mCertificateConfirmCallback)
1668 std::unique_ptr<Dali::WebEngineCertificate> certificate(new MockWebEngineCertificate());
1669 gInstance->mCertificateConfirmCallback(std::move(certificate));
1671 if (gInstance->mSslCertificateChangedCallback)
1673 std::unique_ptr<Dali::WebEngineCertificate> sslCertificate(new MockWebEngineCertificate());
1674 gInstance->mSslCertificateChangedCallback(std::move(sslCertificate));
1676 if (gInstance->mHttpAuthHandlerCallback)
1678 std::unique_ptr<Dali::WebEngineHttpAuthHandler> handler(new MockWebEngineHttpAuthHandler());
1679 gInstance->mHttpAuthHandlerCallback(std::move(handler));
1681 if (gInstance->mContextMenuShownCallback)
1683 std::unique_ptr<Dali::WebEngineContextMenu> menu(new MockWebEngineContextMenu());
1684 gInstance->mContextMenuShownCallback(std::move(menu));
1686 if (gInstance->mContextMenuHiddenCallback)
1688 std::unique_ptr<Dali::WebEngineContextMenu> hiddenMenu(new MockWebEngineContextMenu());
1689 gInstance->mContextMenuHiddenCallback(std::move(hiddenMenu));
1697 DisconnectFromGlobalSignal( &OnScrollEdge );
1699 if( gInstance && gInstance->mScrollEdgeReachedCallback )
1701 gInstance->mScrollEdgeReachedCallback( Dali::WebEnginePlugin::ScrollEdge::BOTTOM );
1707 bool OnEvaluteJavaScript()
1709 DisconnectFromGlobalSignal( &OnEvaluteJavaScript );
1713 for( auto& func : gInstance->mResultCallbacks )
1717 gInstance->mResultCallbacks.clear();
1722 bool OnJavaScriptAlert()
1724 DisconnectFromGlobalSignal( &OnJavaScriptAlert );
1727 gInstance->mJavaScriptAlertCallback( "this is an alert popup." );
1732 bool OnJavaScriptConfirm()
1734 DisconnectFromGlobalSignal( &OnJavaScriptConfirm );
1737 gInstance->mJavaScriptConfirmCallback( "this is a confirm popup." );
1742 bool OnJavaScriptPrompt()
1744 DisconnectFromGlobalSignal( &OnJavaScriptPrompt );
1747 gInstance->mJavaScriptPromptCallback( "this is a prompt pompt.", "" );
1752 bool OnScreenshotCaptured()
1754 DisconnectFromGlobalSignal( &OnScreenshotCaptured );
1757 uint8_t* pixel = new uint8_t[ 2 * 2 * 4 ];
1758 memset(pixel, 0xff, 2 * 2 * 4);
1759 Dali::PixelData data = Dali::PixelData::New( pixel, 2 * 2 * 4, 2, 2,
1760 Dali::Pixel::Format::RGBA8888,
1761 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
1762 gInstance->mScreenshotCapturedCallback( data );
1767 bool OnVideoPlaying()
1769 DisconnectFromGlobalSignal( &OnVideoPlaying );
1772 gInstance->mVideoPlayingCallback( true );
1777 bool OnGeolocationPermission()
1779 DisconnectFromGlobalSignal( &OnGeolocationPermission );
1782 gInstance->mGeolocationPermissionCallback( "", "" );
1787 bool OnHitTestCreated()
1789 DisconnectFromGlobalSignal(&OnHitTestCreated);
1792 std::unique_ptr<Dali::WebEngineHitTest> test(new MockWebEngineHitTest());
1793 gInstance->mHitTestCreatedCallback(std::move(test));
1798 bool OnClearHistory()
1800 DisconnectFromGlobalSignal( &OnClearHistory );
1802 if( gInstance && gInstance->mCurrentPlusOnePos )
1804 std::string url = gInstance->mHistory[ gInstance->mCurrentPlusOnePos - 1 ];
1805 std::vector< std::string >().swap( gInstance->mHistory );
1806 gInstance->mHistory.push_back( url );
1807 gInstance->mCurrentPlusOnePos = 1;
1812 bool OnSecurityOriginAcquired()
1814 DisconnectFromGlobalSignal(&OnSecurityOriginAcquired);
1815 if (gWebEngineContextInstance)
1817 std::vector<std::unique_ptr<Dali::WebEngineSecurityOrigin>> securityOriginList;
1818 std::unique_ptr<Dali::WebEngineSecurityOrigin> origin(new MockWebEngineSecurityOrigin());
1819 securityOriginList.push_back(std::move(origin));
1820 gWebEngineContextInstance->mSecurityOriginAcquiredCallback(securityOriginList);
1825 bool OnStorageUsageAcquired()
1827 DisconnectFromGlobalSignal(&OnStorageUsageAcquired);
1828 if (gWebEngineContextInstance)
1830 gWebEngineContextInstance->mStorageUsageAcquiredCallback(0);
1835 bool OnFormPasswordAcquired()
1837 DisconnectFromGlobalSignal(&OnFormPasswordAcquired);
1838 if (gWebEngineContextInstance)
1840 std::vector<std::unique_ptr<Dali::WebEngineContext::PasswordData>> formPasswordList;
1841 std::unique_ptr<Dali::WebEngineContext::PasswordData> data(new Dali::WebEngineContext::PasswordData());
1842 data->url = "http://test.html";
1843 data->useFingerprint = false;
1844 formPasswordList.push_back(std::move(data));
1845 gWebEngineContextInstance->mFormPasswordAcquiredCallback(formPasswordList);
1850 bool OnDownloadStarted()
1852 DisconnectFromGlobalSignal(&OnDownloadStarted);
1853 if (gWebEngineContextInstance)
1855 gWebEngineContextInstance->mDownloadStartedCallback("http://test.html");
1860 bool OnMimeOverridden()
1862 DisconnectFromGlobalSignal(&OnMimeOverridden);
1863 if (gWebEngineContextInstance)
1865 std::string newMime;
1866 gWebEngineContextInstance->mMimeOverriddenCallback("http://test.html", "txt/xml", newMime);
1871 bool OnChangesWatch()
1873 DisconnectFromGlobalSignal( &OnChangesWatch );
1877 MockWebEngineCookieManager* temp = (MockWebEngineCookieManager *)(&(gInstance->GetCookieManager()));
1880 temp->mChangesWatchCallback();
1889 inline WebEngine& GetImplementation( Dali::WebEngine& webEngine )
1891 DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
1892 BaseObject& handle = webEngine.GetBaseObject();
1893 return static_cast< Internal::Adaptor::WebEngine& >( handle );
1896 inline const WebEngine& GetImplementation( const Dali::WebEngine& webEngine )
1898 DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
1899 const BaseObject& handle = webEngine.GetBaseObject();
1900 return static_cast< const Internal::Adaptor::WebEngine& >( handle );
1903 } // namespace Adaptor
1905 } // namespace Internal
1907 // Dali::WebEngine Implementation
1908 WebEngine::WebEngine()
1912 WebEngine::WebEngine( Internal::Adaptor::WebEngine* internal )
1913 : BaseHandle( internal )
1917 WebEngine::~WebEngine()
1921 WebEngine WebEngine::New()
1923 Internal::Adaptor::WebEngine* baseObject = new Internal::Adaptor::WebEngine();
1925 return WebEngine( baseObject );
1928 WebEngine::WebEngine( const WebEngine& WebEngine )
1929 : BaseHandle( WebEngine )
1933 WebEngine& WebEngine::operator=( const WebEngine& webEngine )
1935 BaseHandle::operator=( webEngine );
1939 WebEngine WebEngine::DownCast( BaseHandle handle )
1941 return WebEngine( dynamic_cast< Internal::Adaptor::WebEngine* >( handle.GetObjectPtr() ) );
1944 void WebEngine::Create( uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId )
1948 void WebEngine::Create( uint32_t width, uint32_t height, uint32_t argc, char** argv )
1952 void WebEngine::Destroy()
1956 WebEngineSettings& WebEngine::GetSettings() const
1958 return Internal::Adaptor::GetImplementation( *this ).GetSettings();
1961 WebEngineContext& WebEngine::GetContext() const
1963 return Internal::Adaptor::GetImplementation( *this ).GetContext();
1966 WebEngineCookieManager& WebEngine::GetCookieManager() const
1968 return Internal::Adaptor::GetImplementation( *this ).GetCookieManager();
1971 WebEngineBackForwardList& WebEngine::GetBackForwardList() const
1973 return Internal::Adaptor::GetImplementation( *this ).GetBackForwardList();
1976 void WebEngine::LoadUrl( const std::string& url )
1978 return Internal::Adaptor::GetImplementation( *this ).LoadUrl( url );
1981 std::string WebEngine::GetTitle() const
1983 return Internal::Adaptor::GetImplementation( *this ).GetTitle();
1986 Dali::PixelData WebEngine::GetFavicon() const
1988 return Internal::Adaptor::GetImplementation( *this ).GetFavicon();
1991 std::string WebEngine::GetUrl() const
1993 return Internal::Adaptor::GetImplementation( *this ).GetUrl();
1996 NativeImageInterfacePtr WebEngine::GetNativeImageSource()
1999 Dali::NativeImageSourcePtr sourcePtr = Dali::NativeImageSource::New( source );
2003 void WebEngine::LoadHtmlString( const std::string& htmlString )
2007 bool WebEngine::LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl)
2012 bool WebEngine::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri)
2017 void WebEngine::Reload()
2021 bool WebEngine::ReloadWithoutCache()
2026 void WebEngine::StopLoading()
2030 void WebEngine::Suspend()
2034 void WebEngine::Resume()
2038 void WebEngine::SuspendNetworkLoading()
2042 void WebEngine::ResumeNetworkLoading()
2046 bool WebEngine::AddCustomHeader(const std::string& name, const std::string& value)
2051 bool WebEngine::RemoveCustomHeader(const std::string& name)
2056 uint32_t WebEngine::StartInspectorServer(uint32_t port)
2061 bool WebEngine::StopInspectorServer()
2066 bool WebEngine::CanGoForward()
2068 return Internal::Adaptor::GetImplementation( *this ).CanGoForward();
2071 void WebEngine::GoForward()
2073 Internal::Adaptor::GetImplementation( *this ).GoForward();
2076 bool WebEngine::CanGoBack()
2078 return Internal::Adaptor::GetImplementation( *this ).CanGoBack();
2081 void WebEngine::GoBack()
2083 Internal::Adaptor::GetImplementation( *this ).GoBack();
2086 void WebEngine::EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
2088 Internal::Adaptor::GetImplementation( *this ).EvaluateJavaScript( script, resultHandler );
2091 void WebEngine::AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void(const std::string&) > handler )
2095 void WebEngine::RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
2097 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptAlertCallback( callback );
2100 void WebEngine::JavaScriptAlertReply()
2104 void WebEngine::RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
2106 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptConfirmCallback( callback );
2109 void WebEngine::JavaScriptConfirmReply( bool confirmed )
2113 void WebEngine::RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
2115 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptPromptCallback( callback );
2118 void WebEngine::JavaScriptPromptReply( const std::string& result )
2122 std::unique_ptr<Dali::WebEngineHitTest> WebEngine::CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode)
2124 return Internal::Adaptor::GetImplementation(*this).CreateHitTest(x, y, mode);
2127 bool WebEngine::CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback)
2129 return Internal::Adaptor::GetImplementation(*this).CreateHitTestAsynchronously(x, y, mode, callback);
2132 void WebEngine::ClearAllTilesResources()
2136 void WebEngine::ClearHistory()
2138 Internal::Adaptor::GetImplementation( *this ).ClearHistory();
2141 void WebEngine::SetScaleFactor(float scaleFactor, Dali::Vector2 point)
2143 Internal::Adaptor::GetImplementation( *this ).SetScaleFactor(scaleFactor, point);
2146 float WebEngine::GetScaleFactor() const
2148 return Internal::Adaptor::GetImplementation( *this ).GetScaleFactor();
2151 void WebEngine::ActivateAccessibility(bool activated)
2155 bool WebEngine::HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount)
2160 void WebEngine::AddDynamicCertificatePath(const std::string& host, const std::string& certPath)
2164 Dali::PixelData WebEngine::GetScreenshot(Dali::Rect<int32_t> viewArea, float scaleFactor)
2166 return Internal::Adaptor::GetImplementation( *this ).GetScreenshot(viewArea, scaleFactor);
2169 bool WebEngine::GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
2171 return Internal::Adaptor::GetImplementation( *this ).GetScreenshotAsynchronously(viewArea, scaleFactor, callback);
2174 bool WebEngine::CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
2176 return Internal::Adaptor::GetImplementation( *this ).CheckVideoPlayingAsynchronously(callback);
2179 void WebEngine::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
2181 Internal::Adaptor::GetImplementation( *this ).RegisterGeolocationPermissionCallback(callback);
2184 std::string WebEngine::GetUserAgent() const
2186 return Internal::Adaptor::GetImplementation( *this ).GetUserAgent();
2189 void WebEngine::SetUserAgent( const std::string& userAgent )
2191 Internal::Adaptor::GetImplementation( *this ).SetUserAgent( userAgent );
2194 void WebEngine::ScrollBy( int32_t dx, int32_t dy )
2196 Internal::Adaptor::GetImplementation( *this ).ScrollBy( dx, dy );
2199 bool WebEngine::ScrollEdgeBy( int32_t dx, int32_t dy )
2201 return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeBy( dx, dy );
2204 void WebEngine::SetScrollPosition( int32_t x, int32_t y )
2206 Internal::Adaptor::GetImplementation( *this ).SetScrollPosition( x, y );
2209 Dali::Vector2 WebEngine::GetScrollPosition() const
2211 return Internal::Adaptor::GetImplementation( *this ).GetScrollPosition();
2214 Dali::Vector2 WebEngine::GetScrollSize() const
2216 return Internal::Adaptor::GetImplementation( *this ).GetScrollSize();
2219 Dali::Vector2 WebEngine::GetContentSize() const
2221 return Internal::Adaptor::GetImplementation( *this ).GetContentSize();
2224 void WebEngine::SetSize( uint32_t width, uint32_t height )
2228 void WebEngine::SetDocumentBackgroundColor(Dali::Vector4 color)
2232 void WebEngine::ClearTilesWhenHidden(bool cleared)
2236 void WebEngine::SetTileCoverAreaMultiplier(float multiplier)
2240 void WebEngine::EnableCursorByClient(bool enabled)
2244 std::string WebEngine::GetSelectedText() const
2249 bool WebEngine::SendTouchEvent( const TouchEvent& touch )
2254 bool WebEngine::SendKeyEvent( const KeyEvent& event )
2259 bool WebEngine::SendHoverEvent( const HoverEvent& event )
2264 bool WebEngine::SendWheelEvent( const WheelEvent& event )
2269 void WebEngine::SetFocus( bool focused )
2273 void WebEngine::SetPageZoomFactor(float zoomFactor)
2275 Internal::Adaptor::GetImplementation( *this ).SetPageZoomFactor(zoomFactor);
2278 float WebEngine::GetPageZoomFactor() const
2280 return Internal::Adaptor::GetImplementation( *this ).GetPageZoomFactor();
2283 void WebEngine::SetTextZoomFactor(float zoomFactor)
2285 Internal::Adaptor::GetImplementation( *this ).SetTextZoomFactor(zoomFactor);
2288 float WebEngine::GetTextZoomFactor() const
2290 return Internal::Adaptor::GetImplementation( *this ).GetTextZoomFactor();
2293 float WebEngine::GetLoadProgressPercentage() const
2295 return Internal::Adaptor::GetImplementation( *this ).GetLoadProgressPercentage();
2298 void WebEngine::UpdateDisplayArea( Dali::Rect< int32_t > displayArea )
2302 void WebEngine::EnableVideoHole( bool enabled )
2306 void WebEngine::EnableMouseEvents( bool enabled )
2310 void WebEngine::EnableKeyEvents( bool enabled )
2314 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal()
2316 return Internal::Adaptor::GetImplementation(*this).FrameRenderedSignal();
2319 void WebEngine::RegisterPageLoadStartedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
2321 Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadStartedCallback(callback);
2324 void WebEngine::RegisterPageLoadInProgressCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
2326 Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadInProgressCallback(callback);
2329 void WebEngine::RegisterPageLoadFinishedCallback(Dali::WebEnginePlugin::WebEnginePageLoadCallback callback)
2331 Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadFinishedCallback(callback);
2334 void WebEngine::RegisterPageLoadErrorCallback(Dali::WebEnginePlugin::WebEnginePageLoadErrorCallback callback)
2336 Internal::Adaptor::GetImplementation( *this ).RegisterPageLoadErrorCallback(callback);
2339 void WebEngine::RegisterScrollEdgeReachedCallback(Dali::WebEnginePlugin::WebEngineScrollEdgeReachedCallback callback)
2341 Internal::Adaptor::GetImplementation( *this ).RegisterScrollEdgeReachedCallback(callback);
2344 void WebEngine::RegisterUrlChangedCallback(Dali::WebEnginePlugin::WebEngineUrlChangedCallback callback)
2346 Internal::Adaptor::GetImplementation( *this ).RegisterUrlChangedCallback(callback);
2349 void WebEngine::RegisterFormRepostDecidedCallback(Dali::WebEnginePlugin::WebEngineFormRepostDecidedCallback callback)
2351 Internal::Adaptor::GetImplementation( *this ).RegisterFormRepostDecidedCallback(callback);
2354 void WebEngine::RegisterRequestInterceptorCallback(Dali::WebEnginePlugin::WebEngineRequestInterceptorCallback callback)
2356 Internal::Adaptor::GetImplementation( *this ).RegisterRequestInterceptorCallback(callback);
2359 void WebEngine::RegisterConsoleMessageReceivedCallback(Dali::WebEnginePlugin::WebEngineConsoleMessageReceivedCallback callback)
2361 Internal::Adaptor::GetImplementation( *this ).RegisterConsoleMessageReceivedCallback(callback);
2364 void WebEngine::RegisterResponsePolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineResponsePolicyDecidedCallback callback)
2366 Internal::Adaptor::GetImplementation( *this ).RegisterResponsePolicyDecidedCallback(callback);
2369 void WebEngine::RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
2371 Internal::Adaptor::GetImplementation( *this ).RegisterCertificateConfirmedCallback(callback);
2374 void WebEngine::RegisterSslCertificateChangedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback)
2376 Internal::Adaptor::GetImplementation( *this ).RegisterSslCertificateChangedCallback(callback);
2379 void WebEngine::RegisterHttpAuthHandlerCallback(Dali::WebEnginePlugin::WebEngineHttpAuthHandlerCallback callback)
2381 Internal::Adaptor::GetImplementation( *this ).RegisterHttpAuthHandlerCallback(callback);
2384 void WebEngine::RegisterContextMenuShownCallback(Dali::WebEnginePlugin::WebEngineContextMenuShownCallback callback)
2386 Internal::Adaptor::GetImplementation( *this ).RegisterContextMenuShownCallback(callback);
2389 void WebEngine::RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback)
2391 Internal::Adaptor::GetImplementation( *this ).RegisterContextMenuHiddenCallback(callback);
2394 } // namespace Dali;