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();
87 static void ConnectToGlobalSignal( bool ( *func )() )
89 Dali::Timer timer = Dali::Timer::New( 0 );
90 timer.TickSignal().Connect( func );
93 static void DisconnectFromGlobalSignal( bool ( *func )() )
95 Dali::Timer timer = Dali::Timer::New( 0 );
96 timer.TickSignal().Disconnect( func );
98 } // namespace anonymous
100 class MockWebEngineContext : public Dali::WebEngineContext
103 MockWebEngineContext()
104 : mockModel( Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER )
108 Dali::WebEngineContext::CacheModel GetCacheModel() const override
113 void SetCacheModel( Dali::WebEngineContext::CacheModel cacheModel ) override
115 mockModel = cacheModel;
118 void SetProxyUri( const std::string& uri ) override
122 void SetDefaultProxyAuth( const std::string& username, const std::string& password ) override
126 void SetCertificateFilePath( const std::string& certificatePath ) override
130 void DeleteAllWebDatabase() override
134 bool GetWebDatabaseOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback)
138 ConnectToGlobalSignal(&OnSecurityOriginAcquired);
139 mSecurityOriginAcquiredCallback = callback;
144 bool DeleteWebDatabase(Dali::WebEngineSecurityOrigin& origin)
149 bool GetWebStorageOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback)
153 ConnectToGlobalSignal(&OnSecurityOriginAcquired);
154 mSecurityOriginAcquiredCallback = callback;
159 bool GetWebStorageUsageForOrigin(Dali::WebEngineSecurityOrigin& origin, Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback callback)
163 ConnectToGlobalSignal(&OnStorageUsageAcquired);
164 mStorageUsageAcquiredCallback = callback;
169 void DeleteAllWebStorage() override
173 bool DeleteWebStorageOrigin(Dali::WebEngineSecurityOrigin& origin)
178 void DeleteLocalFileSystem() override
182 void DisableCache( bool cacheDisabled ) override
186 void ClearCache() override
190 bool DeleteApplicationCache(Dali::WebEngineSecurityOrigin& origin)
195 void GetFormPasswordList(Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback callback)
199 ConnectToGlobalSignal(&OnFormPasswordAcquired);
200 mFormPasswordAcquiredCallback = callback;
204 void RegisterDownloadStartedCallback(Dali::WebEngineContext::WebEngineDownloadStartedCallback callback)
208 ConnectToGlobalSignal(&OnDownloadStarted);
209 mDownloadStartedCallback = callback;
213 void RegisterMimeOverriddenCallback(Dali::WebEngineContext::WebEngineMimeOverriddenCallback callback)
217 ConnectToGlobalSignal(&OnMimeOverridden);
218 mMimeOverriddenCallback = callback;
223 Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback mSecurityOriginAcquiredCallback;
224 Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback mStorageUsageAcquiredCallback;
225 Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback mFormPasswordAcquiredCallback;
226 Dali::WebEngineContext::WebEngineDownloadStartedCallback mDownloadStartedCallback;
227 Dali::WebEngineContext::WebEngineMimeOverriddenCallback mMimeOverriddenCallback;
230 Dali::WebEngineContext::CacheModel mockModel;
233 class MockWebEngineCookieManager : public Dali::WebEngineCookieManager
236 MockWebEngineCookieManager()
237 : mockCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY )
241 void SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy policy ) override
243 mockCookieAcceptPolicy = policy;
246 Dali::WebEngineCookieManager::CookieAcceptPolicy GetCookieAcceptPolicy() const override
248 return mockCookieAcceptPolicy;
251 void ClearCookies() override
255 void SetPersistentStorage( const std::string& path, Dali::WebEngineCookieManager::CookiePersistentStorage storage ) override
260 Dali::WebEngineCookieManager::CookieAcceptPolicy mockCookieAcceptPolicy;
263 class MockWebEngineBackForwardListItem : public Dali::WebEngineBackForwardListItem
266 MockWebEngineBackForwardListItem()
267 : mockUrl( "http://url" ),
268 mockTitle( "title" ),
269 mockOriginalUrl( "http://originalurl" )
273 std::string GetUrl() const override
278 std::string GetTitle() const override
283 std::string GetOriginalUrl() const override
285 return mockOriginalUrl;
290 std::string mockTitle;
291 std::string mockOriginalUrl;
294 class MockWebEngineBackForwardList : public Dali::WebEngineBackForwardList
297 MockWebEngineBackForwardList()
301 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetCurrentItem() const override
303 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
307 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetPreviousItem() const override
309 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
313 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetNextItem() const override
315 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
319 std::unique_ptr<Dali::WebEngineBackForwardListItem> GetItemAtIndex( uint32_t index ) const override
321 std::unique_ptr<Dali::WebEngineBackForwardListItem> ret(new MockWebEngineBackForwardListItem());
325 uint32_t GetItemCount() const override
330 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> GetBackwardItems(int limit) override
332 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> ret;
333 std::unique_ptr<Dali::WebEngineBackForwardListItem> item(new MockWebEngineBackForwardListItem());
334 ret.push_back(std::move(item));
338 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> GetForwardItems(int limit) override
340 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> ret;
341 std::unique_ptr<Dali::WebEngineBackForwardListItem> item(new MockWebEngineBackForwardListItem());
342 ret.push_back(std::move(item));
348 class MockWebEngineCertificate : public Dali::WebEngineCertificate
351 MockWebEngineCertificate()
355 void Allow(bool allowed) override
359 bool IsFromMainFrame() const override
364 std::string GetPem() const override
369 bool IsContextSecure() const override
375 class MockWebEngineHttpAuthHandler : public Dali::WebEngineHttpAuthHandler
378 MockWebEngineHttpAuthHandler()
382 std::string GetRealm() const override
387 void Suspend() override
391 void UseCredential(const std::string& user, const std::string& password) override
395 void CancelCredential() override
400 class MockWebEngineFormRepostDecision : public WebEngineFormRepostDecision
403 MockWebEngineFormRepostDecision()
407 void Reply(bool allowed) override {}
410 class MockWebEngineFrame : public Dali::WebEngineFrame
417 bool IsMainFrame() const override
423 class MockWebEnginePolicyDecision : public Dali::WebEnginePolicyDecision
426 MockWebEnginePolicyDecision()
430 std::string GetUrl() const override
432 return "http://test.html";
435 std::string GetCookie() const override
440 Dali::WebEnginePolicyDecision::DecisionType GetDecisionType() const
442 return Dali::WebEnginePolicyDecision::DecisionType::USE;
445 std::string GetResponseMime() const
450 int32_t GetResponseStatusCode() const
455 Dali::WebEnginePolicyDecision::NavigationType GetNavigationType() const
457 return Dali::WebEnginePolicyDecision::NavigationType::LINK_CLICKED;
460 Dali::WebEngineFrame& GetFrame() const
462 return *(Dali::WebEngineFrame*)(&mockWebFrame);
465 std::string GetScheme() const
486 MockWebEngineFrame mockWebFrame;
489 class MockWebEngineRequestInterceptor : public WebEngineRequestInterceptor
492 MockWebEngineRequestInterceptor()
496 std::string GetUrl() const override
498 return "http://test.html";
501 bool Ignore() override
506 bool SetResponseStatus(int statusCode, const std::string &customedStatusText) override
511 bool AddResponseHeader(const std::string &fieldName, const std::string &fieldValue) override
516 bool AddResponseBody(const std::string &body, uint32_t length) override
522 class MockWebEngineConsoleMessage : public Dali::WebEngineConsoleMessage
525 MockWebEngineConsoleMessage()
529 std::string GetSource() const override
534 uint32_t GetLine() const override
539 SeverityLevel GetSeverityLevel() const override
541 return SeverityLevel::EMPTY;
544 std::string GetText() const override
546 return "This is a text.";
550 class MockWebEngineLoadError : public Dali::WebEngineLoadError
553 MockWebEngineLoadError(const std::string& url)
558 std::string GetUrl() const override
563 ErrorCode GetCode() const override
565 return ErrorCode::UNKNOWN;
568 std::string GetDescription() const override
570 return "This is an error.";
573 ErrorType GetType() const override
575 return ErrorType::NONE;
582 class MockWebEngineContextMenuItem : public Dali::WebEngineContextMenuItem
585 MockWebEngineContextMenuItem()
589 ItemTag GetTag() const override
591 return ItemTag::NO_ACTION;
594 ItemType GetType() const override
596 return ItemType::ACTION;
599 bool IsEnabled() const override
604 std::string GetLinkUrl() const override
606 return "http://test.html";
609 std::string GetImageUrl() const override
611 return "http://test.jpg";
614 std::string GetTitle() const override
619 std::unique_ptr<Dali::WebEngineContextMenu> GetParentMenu() const override
621 std::unique_ptr<Dali::WebEngineContextMenu> result;
626 class MockWebEngineContextMenu : public Dali::WebEngineContextMenu
629 MockWebEngineContextMenu()
633 uint32_t GetItemCount() const override
638 std::unique_ptr<Dali::WebEngineContextMenuItem> GetItemAt(uint32_t index) const override
640 std::unique_ptr<Dali::WebEngineContextMenuItem> webitem(new MockWebEngineContextMenuItem());
644 std::vector<std::unique_ptr<WebEngineContextMenuItem>> GetItemList() const override
646 std::vector<std::unique_ptr<WebEngineContextMenuItem>> result;
647 std::unique_ptr<Dali::WebEngineContextMenuItem> webitem(new MockWebEngineContextMenuItem());
648 result.push_back(std::move(webitem));
652 Dali::Vector2 GetPosition() const override
654 return Dali::Vector2(100, 100);
657 bool RemoveItem(WebEngineContextMenuItem& item) override
662 bool AppendItemAsAction(WebEngineContextMenuItem::ItemTag tag, const std::string& title, bool enabled) override
667 bool AppendItem(WebEngineContextMenuItem::ItemTag tag, const std::string& title, const std::string& iconFile, bool enabled) override
672 bool SelectItem(WebEngineContextMenuItem& item) override
683 class MockWebEngineHitTest : public Dali::WebEngineHitTest
686 MockWebEngineHitTest()
690 ResultContext GetResultContext() const override
692 return ResultContext::DOCUMENT;
695 std::string GetLinkUri() const override
697 return "http://test.html";
700 std::string GetLinkTitle() const override
705 std::string GetLinkLabel() const override
710 std::string GetImageUri() const override
712 return "http://test.jpg";
715 std::string GetMediaUri() const override
717 return "http://test.mp4";
720 std::string GetTagName() const override
725 std::string GetNodeValue() const override
730 Dali::Property::Map& GetAttributes() const override
732 return mockAttributesMap;
735 std::string GetImageFileNameExtension() const override
740 Dali::PixelData GetImageBuffer() override
742 uint8_t* faviconData = new uint8_t[ 16 ];
743 memset(faviconData, 0xff, 16);
744 return Dali::PixelData::New( faviconData, 16, 2, 2,
745 Dali::Pixel::Format::RGBA8888,
746 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
750 mutable Dali::Property::Map mockAttributesMap;
753 class MockWebEngineSecurityOrigin : public Dali::WebEngineSecurityOrigin
756 MockWebEngineSecurityOrigin()
757 : mockUrl("https://test.html")
758 , mockPotocol("https")
762 std::string GetHost() const
767 std::string GetProtocol() const
774 std::string mockPotocol;
777 class MockWebEngineSettings : public WebEngineSettings
780 MockWebEngineSettings()
781 : mockDefaultFontSize( 16 ),
782 mockJavaScriptEnabled( true ),
783 mockAutoFittingEnabled ( true ),
784 mockPluginsEnabled ( true ),
785 mockPrivateBrowsingEnabled( true ),
786 mockLinkMagnifierEnabled( true ),
787 mockKeypadWithoutUserActionUsed( true ),
788 mockAutofillPasswordFormEnabled( true ),
789 mockFormCandidateDataEnabled( true ),
790 mockTextSelectionEnabled( true ),
791 mockTextAutosizingEnable( true ),
792 mockArrowScrollEnable( true ),
793 mockClipboardEnabled( true ),
794 mockImePanelEnabled( true ),
795 mockImageLoadedAutomatically( true ),
796 mockDefaultTextEncodingName()
800 uint32_t GetDefaultFontSize() const override
802 return mockDefaultFontSize;
805 void SetDefaultFontSize( uint32_t size ) override
807 mockDefaultFontSize = size;
810 bool IsJavaScriptEnabled() const override
812 return mockJavaScriptEnabled;
815 void EnableJavaScript( bool enabled ) override
817 mockJavaScriptEnabled = enabled;
820 bool IsAutoFittingEnabled() const override
822 return mockAutoFittingEnabled;
825 void EnableAutoFitting( bool enabled ) override
827 mockAutoFittingEnabled = enabled;
830 bool ArePluginsEnabled() const override
832 return mockPluginsEnabled;
835 void EnablePlugins( bool enabled ) override
837 mockPluginsEnabled = enabled;
840 bool IsPrivateBrowsingEnabled() const override
842 return mockPrivateBrowsingEnabled;
845 void EnablePrivateBrowsing( bool enabled ) override
847 mockPrivateBrowsingEnabled = enabled;
850 bool IsLinkMagnifierEnabled() const override
852 return mockLinkMagnifierEnabled;
855 void EnableLinkMagnifier( bool enabled ) override
857 mockLinkMagnifierEnabled = enabled;
860 bool IsKeypadWithoutUserActionUsed() const override
862 return mockKeypadWithoutUserActionUsed;
865 void UseKeypadWithoutUserAction( bool used ) override
867 mockKeypadWithoutUserActionUsed = used;
870 bool IsAutofillPasswordFormEnabled() const override
872 return mockAutofillPasswordFormEnabled;
875 void EnableAutofillPasswordForm( bool enabled ) override
877 mockAutofillPasswordFormEnabled = enabled;
880 bool IsFormCandidateDataEnabled() const override
882 return mockFormCandidateDataEnabled;
885 void EnableFormCandidateData( bool enabled ) override
887 mockFormCandidateDataEnabled = enabled;
890 bool IsTextSelectionEnabled() const override
892 return mockTextSelectionEnabled;
895 void EnableTextSelection( bool enabled ) override
897 mockTextSelectionEnabled = enabled;
900 bool IsTextAutosizingEnabled() const override
902 return mockTextAutosizingEnable;
905 void EnableTextAutosizing( bool enabled ) override
907 mockTextAutosizingEnable = enabled;
910 bool IsArrowScrollEnabled() const override
912 return mockArrowScrollEnable;
915 void EnableArrowScroll( bool enabled ) override
917 mockArrowScrollEnable = enabled;
920 bool IsClipboardEnabled() const override
922 return mockClipboardEnabled;
925 void EnableClipboard( bool enabled ) override
927 mockClipboardEnabled = enabled;
930 bool IsImePanelEnabled() const override
932 return mockImePanelEnabled;
935 void EnableImePanel( bool enabled ) override
937 mockImePanelEnabled = enabled;
940 bool AreImagesLoadedAutomatically() const override
942 return mockImageLoadedAutomatically;
945 void AllowImagesLoadAutomatically( bool automatic ) override
947 mockImageLoadedAutomatically = automatic;
950 std::string GetDefaultTextEncodingName() const override
952 return mockDefaultTextEncodingName;
955 void SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) override
957 mockDefaultTextEncodingName = defaultTextEncodingName;
960 void AllowMixedContents( bool allowed ) override
964 void EnableSpatialNavigation( bool enabled ) override
968 void EnableWebSecurity( bool enabled ) override
972 void EnableCacheBuilder( bool enabled ) override
976 void UseScrollbarThumbFocusNotifications( bool used ) override
980 void EnableDoNotTrack( bool enabled ) override
984 void AllowFileAccessFromExternalUrl( bool allowed ) override
988 void AllowScriptsOpenWindows( bool allowed ) override
993 int mockDefaultFontSize;
994 bool mockJavaScriptEnabled;
995 bool mockAutoFittingEnabled;
996 bool mockPluginsEnabled;
997 bool mockPrivateBrowsingEnabled;
998 bool mockLinkMagnifierEnabled;
999 bool mockKeypadWithoutUserActionUsed;
1000 bool mockAutofillPasswordFormEnabled;
1001 bool mockFormCandidateDataEnabled;
1002 bool mockTextSelectionEnabled;
1003 bool mockTextAutosizingEnable;
1004 bool mockArrowScrollEnable;
1005 bool mockClipboardEnabled;
1006 bool mockImePanelEnabled;
1007 bool mockImageLoadedAutomatically;
1008 std::string mockDefaultTextEncodingName;
1011 class WebEngine: public Dali::BaseObject
1015 using JavaScriptEvaluatedResultCallback = std::function<void(const std::string&)>;
1019 , mCurrentPlusOnePos( 0 )
1021 , mEvaluating( false )
1022 , mScrollPosition( 0, 0 )
1023 , mScrollSize( 500, 500 )
1024 , mContentSize( 500, 500 )
1027 if ( gInstanceCount == 1 ) // only first web engine need be saved.
1032 mockWebEngineSettings = new MockWebEngineSettings();
1033 MockWebEngineContext* engineContext = new MockWebEngineContext();
1034 mockWebEngineContext = engineContext;
1035 if ( gInstanceCount == 1 )
1037 gWebEngineContextInstance = engineContext;
1039 mockWebEngineCookieManager = new MockWebEngineCookieManager();
1040 mockWebEngineBackForwardList = new MockWebEngineBackForwardList();
1043 virtual ~WebEngine()
1046 if( !gInstanceCount )
1049 gWebEngineContextInstance = 0;
1052 delete mockWebEngineSettings;
1053 delete mockWebEngineContext;
1054 delete mockWebEngineCookieManager;
1055 delete mockWebEngineBackForwardList;
1058 Dali::WebEngineSettings& GetSettings() const
1060 return *mockWebEngineSettings;
1063 Dali::WebEngineContext& GetContext() const
1065 return *mockWebEngineContext;
1068 Dali::WebEngineCookieManager& GetCookieManager() const
1070 return *mockWebEngineCookieManager;
1073 Dali::WebEngineBackForwardList& GetBackForwardList() const
1075 return *mockWebEngineBackForwardList;
1078 void LoadUrl( const std::string& url )
1081 ConnectToGlobalSignal( &OnLoadUrl );
1084 const std::string& GetUrl() const
1089 std::string GetTitle() const
1091 return std::string("title");
1094 Dali::PixelData GetFavicon() const
1096 uint8_t* faviconData = new uint8_t[ 16 ];
1098 faviconData[ 0 ] = 0xff;
1099 faviconData[ 1 ] = 0x00;
1100 faviconData[ 2 ] = 0x00;
1101 faviconData[ 3 ] = 0xff;
1102 faviconData[ 4 ] = 0xff;
1103 faviconData[ 5 ] = 0x00;
1104 faviconData[ 6 ] = 0x00;
1105 faviconData[ 7 ] = 0xff;
1106 faviconData[ 8 ] = 0xff;
1107 faviconData[ 9 ] = 0x00;
1108 faviconData[ 10 ] = 0x00;
1109 faviconData[ 11 ] = 0xff;
1110 faviconData[ 12 ] = 0xff;
1111 faviconData[ 13 ] = 0x00;
1112 faviconData[ 14 ] = 0x00;
1113 faviconData[ 15 ] = 0xff;
1115 return Dali::PixelData::New( faviconData, 16, 2, 2,
1116 Dali::Pixel::Format::RGBA8888,
1117 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
1120 bool CanGoForward() const
1122 return mHistory.size() > mCurrentPlusOnePos;
1127 ConnectToGlobalSignal( &OnGoForward );
1130 bool CanGoBack() const
1132 return mCurrentPlusOnePos > 1;
1137 ConnectToGlobalSignal( &OnGoBack );
1140 void EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
1146 ConnectToGlobalSignal( &OnEvaluteJavaScript );
1148 mResultCallbacks.push_back( resultHandler );
1152 void RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
1156 ConnectToGlobalSignal( &OnJavaScriptAlert );
1157 mJavaScriptAlertCallback = callback;
1161 void RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
1165 ConnectToGlobalSignal( &OnJavaScriptConfirm );
1166 mJavaScriptConfirmCallback = callback;
1170 void RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
1174 ConnectToGlobalSignal( &OnJavaScriptPrompt );
1175 mJavaScriptPromptCallback = callback;
1179 std::unique_ptr<Dali::WebEngineHitTest> CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode)
1181 std::unique_ptr<Dali::WebEngineHitTest> hitTest(new MockWebEngineHitTest());
1185 bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback)
1189 ConnectToGlobalSignal( &OnHitTestCreated );
1190 mHitTestCreatedCallback = callback;
1197 ConnectToGlobalSignal( &OnClearHistory );
1200 const std::string& GetUserAgent() const
1205 void SetUserAgent( const std::string& userAgent )
1207 mUserAgent = userAgent;
1210 void ScrollBy( int32_t dx, int32_t dy )
1212 mScrollPosition += Dali::Vector2( dx, dy );
1213 if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
1215 ConnectToGlobalSignal( &OnScrollEdge );
1219 bool ScrollEdgeBy( int32_t dx, int32_t dy )
1221 mScrollPosition += Dali::Vector2( dx, dy );
1222 if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
1224 ConnectToGlobalSignal( &OnScrollEdge );
1229 void SetScrollPosition( int32_t x, int32_t y )
1231 mScrollPosition.x = x;
1232 mScrollPosition.y = y;
1235 Dali::Vector2 GetScrollPosition() const
1237 return mScrollPosition;
1240 Dali::Vector2 GetScrollSize() const
1245 Dali::Vector2 GetContentSize() const
1247 return mContentSize;
1250 void SetPageZoomFactor(float zoomFactor)
1252 mPageZoomFactor = zoomFactor;
1255 float GetPageZoomFactor() const
1257 return mPageZoomFactor;
1260 void SetTextZoomFactor(float zoomFactor)
1262 mTextZoomFactor = zoomFactor;
1265 float GetTextZoomFactor() const
1267 return mTextZoomFactor;
1270 float GetLoadProgressPercentage() const
1275 void SetScaleFactor(float scaleFactor, Dali::Vector2 point)
1277 mScaleFactor = scaleFactor;
1280 float GetScaleFactor() const
1282 return mScaleFactor;
1285 Dali::PixelData GetScreenshot(Dali::Rect<int32_t> viewArea, float scaleFactor)
1287 uint32_t bufferSize = viewArea.width * viewArea.height * 4 ;
1288 uint8_t* pixel = new uint8_t[ bufferSize ];
1289 memset(pixel, 0xff, bufferSize);
1290 return Dali::PixelData::New( pixel, bufferSize, viewArea.width, viewArea.height,
1291 Dali::Pixel::Format::RGBA8888,
1292 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
1295 bool GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
1299 ConnectToGlobalSignal( &OnScreenshotCaptured );
1300 mScreenshotCapturedCallback = callback;
1305 bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
1309 ConnectToGlobalSignal( &OnVideoPlaying );
1310 mVideoPlayingCallback = callback;
1315 void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
1319 ConnectToGlobalSignal( &OnGeolocationPermission );
1320 mGeolocationPermissionCallback = callback;
1324 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal()
1326 return mPageLoadStartedSignal;
1329 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal()
1331 return mPageLoadInProgressSignal;
1334 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal()
1336 return mPageLoadFinishedSignal;
1339 Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal()
1341 return mPageLoadErrorSignal;
1344 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal()
1346 return mScrollEdgeReachedSignal;
1349 Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal()
1351 return mUrlChangedSignal;
1354 Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& FormRepostDecisionSignal()
1356 return mFormRepostDecisionSignal;
1359 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal()
1361 return mFrameRenderedSignal;
1364 Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& RequestInterceptorSignal()
1366 return mRequestInterceptorSignal;
1369 Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& ConsoleMessageSignal()
1371 return mConsoleMessageSignal;
1374 Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType& PolicyDecisionSignal()
1376 return mPolicyDecisionSignal;
1379 Dali::WebEnginePlugin::WebEngineCertificateSignalType& CertificateConfirmSignal()
1381 return mCertificateConfirmSignal;
1384 Dali::WebEnginePlugin::WebEngineCertificateSignalType& SslCertificateChangedSignal()
1386 return mSslCertificateChangedSignal;
1389 Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& HttpAuthHandlerSignal()
1391 return mHttpAuthHandlerSignal;
1394 Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& ContextMenuCustomizedSignal()
1396 return mContextMenuCustomizedSignal;
1399 Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& ContextMenuItemSelectedSignal()
1401 return mContextMenuItemSelectedSignal;
1405 std::vector<std::string> mHistory;
1406 size_t mCurrentPlusOnePos;
1407 std::string mUserAgent;
1409 Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadStartedSignal;
1410 Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadInProgressSignal;
1411 Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadFinishedSignal;
1412 Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType mPageLoadErrorSignal;
1413 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType mScrollEdgeReachedSignal;
1414 Dali::WebEnginePlugin::WebEngineUrlChangedSignalType mUrlChangedSignal;
1415 Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType mFormRepostDecisionSignal;
1416 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType mFrameRenderedSignal;
1417 Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType mRequestInterceptorSignal;
1418 Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType mConsoleMessageSignal;
1419 Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType mPolicyDecisionSignal;
1420 Dali::WebEnginePlugin::WebEngineCertificateSignalType mCertificateConfirmSignal;
1421 Dali::WebEnginePlugin::WebEngineCertificateSignalType mSslCertificateChangedSignal;
1422 Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType mHttpAuthHandlerSignal;
1423 Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType mContextMenuCustomizedSignal;
1424 Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType mContextMenuItemSelectedSignal;
1427 float mPageZoomFactor;
1428 float mTextZoomFactor;
1431 Dali::Vector2 mScrollPosition;
1432 Dali::Vector2 mScrollSize;
1433 Dali::Vector2 mContentSize;
1434 WebEngineBackForwardList* mockWebEngineBackForwardList;
1435 WebEngineContext* mockWebEngineContext;
1436 WebEngineCookieManager* mockWebEngineCookieManager;
1437 WebEngineSettings* mockWebEngineSettings;
1439 std::vector<JavaScriptEvaluatedResultCallback> mResultCallbacks;
1440 Dali::WebEnginePlugin::JavaScriptAlertCallback mJavaScriptAlertCallback;
1441 Dali::WebEnginePlugin::JavaScriptConfirmCallback mJavaScriptConfirmCallback;
1442 Dali::WebEnginePlugin::JavaScriptPromptCallback mJavaScriptPromptCallback;
1443 Dali::WebEnginePlugin::ScreenshotCapturedCallback mScreenshotCapturedCallback;
1444 Dali::WebEnginePlugin::VideoPlayingCallback mVideoPlayingCallback;
1445 Dali::WebEnginePlugin::GeolocationPermissionCallback mGeolocationPermissionCallback;
1446 Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback mHitTestCreatedCallback;
1455 DisconnectFromGlobalSignal( &OnGoBack );
1457 if( gInstance && gInstance->CanGoBack() )
1459 gInstance->mCurrentPlusOnePos--;
1466 DisconnectFromGlobalSignal( &OnGoForward );
1468 if( gInstance && gInstance->CanGoForward() )
1470 gInstance->mCurrentPlusOnePos++;
1477 DisconnectFromGlobalSignal( &OnLoadUrl );
1481 if( gInstance->mHistory.size() > gInstance->mCurrentPlusOnePos )
1483 gInstance->mHistory.erase( gInstance->mHistory.begin() + gInstance->mCurrentPlusOnePos, gInstance->mHistory.end() );
1485 gInstance->mHistory.push_back( gInstance->mUrl );
1486 gInstance->mCurrentPlusOnePos++;
1487 gInstance->mPageLoadStartedSignal.Emit( gInstance->mUrl );
1488 gInstance->mPageLoadInProgressSignal.Emit( gInstance->mUrl );
1489 gInstance->mPageLoadFinishedSignal.Emit( gInstance->mUrl );
1490 gInstance->mUrlChangedSignal.Emit( "http://new-test" );
1492 std::shared_ptr<Dali::WebEngineFormRepostDecision> repostDecision(new MockWebEngineFormRepostDecision());
1493 gInstance->mFormRepostDecisionSignal.Emit(std::move(repostDecision));
1494 gInstance->mFrameRenderedSignal.Emit();
1495 std::shared_ptr<Dali::WebEngineRequestInterceptor> interceptor(new MockWebEngineRequestInterceptor());
1496 gInstance->mRequestInterceptorSignal.Emit(std::move(interceptor));
1498 std::shared_ptr<Dali::WebEngineLoadError> error(new MockWebEngineLoadError(gInstance->mUrl));
1499 gInstance->mPageLoadErrorSignal.Emit(std::move(error));
1500 std::shared_ptr<Dali::WebEngineConsoleMessage> message(new MockWebEngineConsoleMessage());
1501 gInstance->mConsoleMessageSignal.Emit(std::move(message));
1502 std::shared_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
1503 gInstance->mPolicyDecisionSignal.Emit(std::move(policyDecision));
1505 std::shared_ptr<Dali::WebEngineCertificate> certificate(new MockWebEngineCertificate());
1506 gInstance->mCertificateConfirmSignal.Emit(std::move(certificate));
1507 std::shared_ptr<Dali::WebEngineCertificate> sslCertificate(new MockWebEngineCertificate());
1508 gInstance->mSslCertificateChangedSignal.Emit(std::move(sslCertificate));
1509 std::shared_ptr<Dali::WebEngineHttpAuthHandler> handler(new MockWebEngineHttpAuthHandler());
1510 gInstance->mHttpAuthHandlerSignal.Emit(std::move(handler));
1512 std::shared_ptr<Dali::WebEngineContextMenu> menu(new MockWebEngineContextMenu());
1513 gInstance->mContextMenuCustomizedSignal.Emit(std::move(menu));
1514 std::shared_ptr<Dali::WebEngineContextMenuItem> item(new MockWebEngineContextMenuItem());
1515 gInstance->mContextMenuItemSelectedSignal.Emit(std::move(item));
1522 DisconnectFromGlobalSignal( &OnScrollEdge );
1526 gInstance->mScrollEdgeReachedSignal.Emit( Dali::WebEnginePlugin::ScrollEdge::BOTTOM );
1532 bool OnEvaluteJavaScript()
1534 DisconnectFromGlobalSignal( &OnEvaluteJavaScript );
1538 for( auto& func : gInstance->mResultCallbacks )
1542 gInstance->mResultCallbacks.clear();
1547 bool OnJavaScriptAlert()
1549 DisconnectFromGlobalSignal( &OnJavaScriptAlert );
1552 gInstance->mJavaScriptAlertCallback( "this is an alert popup." );
1557 bool OnJavaScriptConfirm()
1559 DisconnectFromGlobalSignal( &OnJavaScriptConfirm );
1562 gInstance->mJavaScriptConfirmCallback( "this is a confirm popup." );
1567 bool OnJavaScriptPrompt()
1569 DisconnectFromGlobalSignal( &OnJavaScriptPrompt );
1572 gInstance->mJavaScriptPromptCallback( "this is a prompt pompt.", "" );
1577 bool OnScreenshotCaptured()
1579 DisconnectFromGlobalSignal( &OnScreenshotCaptured );
1582 uint8_t* pixel = new uint8_t[ 2 * 2 * 4 ];
1583 memset(pixel, 0xff, 2 * 2 * 4);
1584 Dali::PixelData data = Dali::PixelData::New( pixel, 2 * 2 * 4, 2, 2,
1585 Dali::Pixel::Format::RGBA8888,
1586 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
1587 gInstance->mScreenshotCapturedCallback( data );
1592 bool OnVideoPlaying()
1594 DisconnectFromGlobalSignal( &OnVideoPlaying );
1597 gInstance->mVideoPlayingCallback( true );
1602 bool OnGeolocationPermission()
1604 DisconnectFromGlobalSignal( &OnGeolocationPermission );
1607 gInstance->mGeolocationPermissionCallback( "", "" );
1612 bool OnHitTestCreated()
1614 DisconnectFromGlobalSignal(&OnHitTestCreated);
1617 std::unique_ptr<Dali::WebEngineHitTest> test(new MockWebEngineHitTest());
1618 gInstance->mHitTestCreatedCallback(std::move(test));
1623 bool OnClearHistory()
1625 DisconnectFromGlobalSignal( &OnClearHistory );
1627 if( gInstance && gInstance->mCurrentPlusOnePos )
1629 std::string url = gInstance->mHistory[ gInstance->mCurrentPlusOnePos - 1 ];
1630 std::vector< std::string >().swap( gInstance->mHistory );
1631 gInstance->mHistory.push_back( url );
1632 gInstance->mCurrentPlusOnePos = 1;
1637 bool OnSecurityOriginAcquired()
1639 DisconnectFromGlobalSignal(&OnSecurityOriginAcquired);
1640 if (gWebEngineContextInstance)
1642 std::vector<std::unique_ptr<Dali::WebEngineSecurityOrigin>> securityOriginList;
1643 std::unique_ptr<Dali::WebEngineSecurityOrigin> origin(new MockWebEngineSecurityOrigin());
1644 securityOriginList.push_back(std::move(origin));
1645 gWebEngineContextInstance->mSecurityOriginAcquiredCallback(securityOriginList);
1650 bool OnStorageUsageAcquired()
1652 DisconnectFromGlobalSignal(&OnStorageUsageAcquired);
1653 if (gWebEngineContextInstance)
1655 gWebEngineContextInstance->mStorageUsageAcquiredCallback(0);
1660 bool OnFormPasswordAcquired()
1662 DisconnectFromGlobalSignal(&OnFormPasswordAcquired);
1663 if (gWebEngineContextInstance)
1665 std::vector<std::unique_ptr<Dali::WebEngineContext::PasswordData>> formPasswordList;
1666 std::unique_ptr<Dali::WebEngineContext::PasswordData> data(new Dali::WebEngineContext::PasswordData());
1667 data->url = "http://test.html";
1668 data->useFingerprint = false;
1669 formPasswordList.push_back(std::move(data));
1670 gWebEngineContextInstance->mFormPasswordAcquiredCallback(formPasswordList);
1675 bool OnDownloadStarted()
1677 DisconnectFromGlobalSignal(&OnDownloadStarted);
1678 if (gWebEngineContextInstance)
1680 gWebEngineContextInstance->mDownloadStartedCallback("http://test.html");
1685 bool OnMimeOverridden()
1687 DisconnectFromGlobalSignal(&OnMimeOverridden);
1688 if (gWebEngineContextInstance)
1690 std::string newMime;
1691 gWebEngineContextInstance->mMimeOverriddenCallback("http://test.html", "txt/xml", newMime);
1698 inline WebEngine& GetImplementation( Dali::WebEngine& webEngine )
1700 DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
1701 BaseObject& handle = webEngine.GetBaseObject();
1702 return static_cast< Internal::Adaptor::WebEngine& >( handle );
1705 inline const WebEngine& GetImplementation( const Dali::WebEngine& webEngine )
1707 DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
1708 const BaseObject& handle = webEngine.GetBaseObject();
1709 return static_cast< const Internal::Adaptor::WebEngine& >( handle );
1712 } // namespace Adaptor
1714 } // namespace Internal
1716 // Dali::WebEngine Implementation
1717 WebEngine::WebEngine()
1721 WebEngine::WebEngine( Internal::Adaptor::WebEngine* internal )
1722 : BaseHandle( internal )
1726 WebEngine::~WebEngine()
1730 WebEngine WebEngine::New()
1732 Internal::Adaptor::WebEngine* baseObject = new Internal::Adaptor::WebEngine();
1734 return WebEngine( baseObject );
1737 WebEngine::WebEngine( const WebEngine& WebEngine )
1738 : BaseHandle( WebEngine )
1742 WebEngine& WebEngine::operator=( const WebEngine& webEngine )
1744 BaseHandle::operator=( webEngine );
1748 WebEngine WebEngine::DownCast( BaseHandle handle )
1750 return WebEngine( dynamic_cast< Internal::Adaptor::WebEngine* >( handle.GetObjectPtr() ) );
1753 void WebEngine::Create( uint32_t width, uint32_t height, const std::string& locale, const std::string& timezoneId )
1757 void WebEngine::Create( uint32_t width, uint32_t height, uint32_t argc, char** argv )
1761 void WebEngine::Destroy()
1765 WebEngineSettings& WebEngine::GetSettings() const
1767 return Internal::Adaptor::GetImplementation( *this ).GetSettings();
1770 WebEngineContext& WebEngine::GetContext() const
1772 return Internal::Adaptor::GetImplementation( *this ).GetContext();
1775 WebEngineCookieManager& WebEngine::GetCookieManager() const
1777 return Internal::Adaptor::GetImplementation( *this ).GetCookieManager();
1780 WebEngineBackForwardList& WebEngine::GetBackForwardList() const
1782 return Internal::Adaptor::GetImplementation( *this ).GetBackForwardList();
1785 void WebEngine::LoadUrl( const std::string& url )
1787 return Internal::Adaptor::GetImplementation( *this ).LoadUrl( url );
1790 std::string WebEngine::GetTitle() const
1792 return Internal::Adaptor::GetImplementation( *this ).GetTitle();
1795 Dali::PixelData WebEngine::GetFavicon() const
1797 return Internal::Adaptor::GetImplementation( *this ).GetFavicon();
1800 const std::string& WebEngine::GetUrl()
1802 return Internal::Adaptor::GetImplementation( *this ).GetUrl();
1805 NativeImageInterfacePtr WebEngine::GetNativeImageSource()
1808 Dali::NativeImageSourcePtr sourcePtr = Dali::NativeImageSource::New( source );
1812 void WebEngine::LoadHtmlString( const std::string& htmlString )
1816 bool WebEngine::LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl)
1821 bool WebEngine::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri)
1826 void WebEngine::Reload()
1830 bool WebEngine::ReloadWithoutCache()
1835 void WebEngine::StopLoading()
1839 void WebEngine::Suspend()
1843 void WebEngine::Resume()
1847 void WebEngine::SuspendNetworkLoading()
1851 void WebEngine::ResumeNetworkLoading()
1855 bool WebEngine::AddCustomHeader(const std::string& name, const std::string& value)
1860 bool WebEngine::RemoveCustomHeader(const std::string& name)
1865 uint32_t WebEngine::StartInspectorServer(uint32_t port)
1870 bool WebEngine::StopInspectorServer()
1875 bool WebEngine::CanGoForward()
1877 return Internal::Adaptor::GetImplementation( *this ).CanGoForward();
1880 void WebEngine::GoForward()
1882 Internal::Adaptor::GetImplementation( *this ).GoForward();
1885 bool WebEngine::CanGoBack()
1887 return Internal::Adaptor::GetImplementation( *this ).CanGoBack();
1890 void WebEngine::GoBack()
1892 Internal::Adaptor::GetImplementation( *this ).GoBack();
1895 void WebEngine::EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
1897 Internal::Adaptor::GetImplementation( *this ).EvaluateJavaScript( script, resultHandler );
1900 void WebEngine::AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void(const std::string&) > handler )
1904 void WebEngine::RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
1906 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptAlertCallback( callback );
1909 void WebEngine::JavaScriptAlertReply()
1913 void WebEngine::RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
1915 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptConfirmCallback( callback );
1918 void WebEngine::JavaScriptConfirmReply( bool confirmed )
1922 void WebEngine::RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
1924 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptPromptCallback( callback );
1927 void WebEngine::JavaScriptPromptReply( const std::string& result )
1931 std::unique_ptr<Dali::WebEngineHitTest> WebEngine::CreateHitTest(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode)
1933 return Internal::Adaptor::GetImplementation(*this).CreateHitTest(x, y, mode);
1936 bool WebEngine::CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback)
1938 return Internal::Adaptor::GetImplementation(*this).CreateHitTestAsynchronously(x, y, mode, callback);
1941 void WebEngine::ClearAllTilesResources()
1945 void WebEngine::ClearHistory()
1947 Internal::Adaptor::GetImplementation( *this ).ClearHistory();
1950 void WebEngine::SetScaleFactor(float scaleFactor, Dali::Vector2 point)
1952 Internal::Adaptor::GetImplementation( *this ).SetScaleFactor(scaleFactor, point);
1955 float WebEngine::GetScaleFactor() const
1957 return Internal::Adaptor::GetImplementation( *this ).GetScaleFactor();
1960 void WebEngine::ActivateAccessibility(bool activated)
1964 bool WebEngine::HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount)
1969 void WebEngine::AddDynamicCertificatePath(const std::string& host, const std::string& certPath)
1973 Dali::PixelData WebEngine::GetScreenshot(Dali::Rect<int32_t> viewArea, float scaleFactor)
1975 return Internal::Adaptor::GetImplementation( *this ).GetScreenshot(viewArea, scaleFactor);
1978 bool WebEngine::GetScreenshotAsynchronously(Dali::Rect<int32_t> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
1980 return Internal::Adaptor::GetImplementation( *this ).GetScreenshotAsynchronously(viewArea, scaleFactor, callback);
1983 bool WebEngine::CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
1985 return Internal::Adaptor::GetImplementation( *this ).CheckVideoPlayingAsynchronously(callback);
1988 void WebEngine::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
1990 Internal::Adaptor::GetImplementation( *this ).RegisterGeolocationPermissionCallback(callback);
1993 const std::string& WebEngine::GetUserAgent() const
1995 return Internal::Adaptor::GetImplementation( *this ).GetUserAgent();
1998 void WebEngine::SetUserAgent( const std::string& userAgent )
2000 Internal::Adaptor::GetImplementation( *this ).SetUserAgent( userAgent );
2003 void WebEngine::ScrollBy( int32_t dx, int32_t dy )
2005 Internal::Adaptor::GetImplementation( *this ).ScrollBy( dx, dy );
2008 bool WebEngine::ScrollEdgeBy( int32_t dx, int32_t dy )
2010 return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeBy( dx, dy );
2013 void WebEngine::SetScrollPosition( int32_t x, int32_t y )
2015 Internal::Adaptor::GetImplementation( *this ).SetScrollPosition( x, y );
2018 Dali::Vector2 WebEngine::GetScrollPosition() const
2020 return Internal::Adaptor::GetImplementation( *this ).GetScrollPosition();
2023 Dali::Vector2 WebEngine::GetScrollSize() const
2025 return Internal::Adaptor::GetImplementation( *this ).GetScrollSize();
2028 Dali::Vector2 WebEngine::GetContentSize() const
2030 return Internal::Adaptor::GetImplementation( *this ).GetContentSize();
2033 void WebEngine::SetSize( uint32_t width, uint32_t height )
2037 void WebEngine::SetDocumentBackgroundColor(Dali::Vector4 color)
2041 void WebEngine::ClearTilesWhenHidden(bool cleared)
2045 void WebEngine::SetTileCoverAreaMultiplier(float multiplier)
2049 void WebEngine::EnableCursorByClient(bool enabled)
2053 std::string WebEngine::GetSelectedText() const
2058 bool WebEngine::SendTouchEvent( const TouchEvent& touch )
2063 bool WebEngine::SendKeyEvent( const KeyEvent& event )
2068 bool WebEngine::SendHoverEvent( const HoverEvent& event )
2073 bool WebEngine::SendWheelEvent( const WheelEvent& event )
2078 void WebEngine::SetFocus( bool focused )
2082 void WebEngine::SetPageZoomFactor(float zoomFactor)
2084 Internal::Adaptor::GetImplementation( *this ).SetPageZoomFactor(zoomFactor);
2087 float WebEngine::GetPageZoomFactor() const
2089 return Internal::Adaptor::GetImplementation( *this ).GetPageZoomFactor();
2092 void WebEngine::SetTextZoomFactor(float zoomFactor)
2094 Internal::Adaptor::GetImplementation( *this ).SetTextZoomFactor(zoomFactor);
2097 float WebEngine::GetTextZoomFactor() const
2099 return Internal::Adaptor::GetImplementation( *this ).GetTextZoomFactor();
2102 float WebEngine::GetLoadProgressPercentage() const
2104 return Internal::Adaptor::GetImplementation( *this ).GetLoadProgressPercentage();
2107 void WebEngine::UpdateDisplayArea( Dali::Rect< int32_t > displayArea )
2111 void WebEngine::EnableVideoHole( bool enabled )
2115 void WebEngine::EnableMouseEvents( bool enabled )
2119 void WebEngine::EnableKeyEvents( bool enabled )
2123 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadStartedSignal()
2125 return Internal::Adaptor::GetImplementation( *this ).PageLoadStartedSignal();
2128 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadInProgressSignal()
2130 return Internal::Adaptor::GetImplementation( *this ).PageLoadInProgressSignal();
2133 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadFinishedSignal()
2135 return Internal::Adaptor::GetImplementation( *this ).PageLoadFinishedSignal();
2138 Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& WebEngine::PageLoadErrorSignal()
2140 return Internal::Adaptor::GetImplementation( *this ).PageLoadErrorSignal();
2143 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& WebEngine::ScrollEdgeReachedSignal()
2145 return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeReachedSignal();
2148 Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& WebEngine::UrlChangedSignal()
2150 return Internal::Adaptor::GetImplementation( *this ).UrlChangedSignal();
2153 Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& WebEngine::FormRepostDecisionSignal()
2155 return Internal::Adaptor::GetImplementation(*this).FormRepostDecisionSignal();
2158 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal()
2160 return Internal::Adaptor::GetImplementation(*this).FrameRenderedSignal();
2163 Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& WebEngine::RequestInterceptorSignal()
2165 return Internal::Adaptor::GetImplementation(*this).RequestInterceptorSignal();
2168 Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& WebEngine::ConsoleMessageSignal()
2170 return Internal::Adaptor::GetImplementation(*this).ConsoleMessageSignal();
2173 Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType& WebEngine::PolicyDecisionSignal()
2175 return Internal::Adaptor::GetImplementation(*this).PolicyDecisionSignal();
2178 Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::CertificateConfirmSignal()
2180 return Internal::Adaptor::GetImplementation(*this).CertificateConfirmSignal();
2183 Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::SslCertificateChangedSignal()
2185 return Internal::Adaptor::GetImplementation(*this).SslCertificateChangedSignal();
2188 Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& WebEngine::HttpAuthHandlerSignal()
2190 return Internal::Adaptor::GetImplementation(*this).HttpAuthHandlerSignal();
2193 Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& WebEngine::ContextMenuCustomizedSignal()
2195 return Internal::Adaptor::GetImplementation( *this ).ContextMenuCustomizedSignal();
2198 Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& WebEngine::ContextMenuItemSelectedSignal()
2200 return Internal::Adaptor::GetImplementation( *this ).ContextMenuItemSelectedSignal();
2203 } // namespace Dali;