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-http-auth-handler.h>
32 #include <dali/devel-api/adaptor-framework/web-engine-load-error.h>
33 #include <dali/devel-api/adaptor-framework/web-engine-policy-decision.h>
34 #include <dali/devel-api/adaptor-framework/web-engine-request-interceptor.h>
35 #include <dali/devel-api/adaptor-framework/web-engine-security-origin.h>
36 #include <dali/devel-api/adaptor-framework/web-engine-settings.h>
37 #include <dali/public-api/adaptor-framework/native-image-source.h>
38 #include <dali/public-api/images/pixel-data.h>
39 #include <dali/public-api/object/any.h>
40 #include <dali/public-api/object/base-object.h>
43 #include <toolkit-application.h>
55 class MockWebEngineContext;
60 // Generally only one WebEngine instance exists.
61 // If > 1, a new web engine has been created by CreateWindowSignal.
62 static WebEngine* gInstance = nullptr;
63 static int gInstanceCount = 0;
64 static MockWebEngineContext* gWebEngineContextInstance = nullptr;
69 bool OnEvaluteJavaScript();
70 bool OnJavaScriptAlert();
71 bool OnJavaScriptConfirm();
72 bool OnJavaScriptPrompt();
74 bool OnScreenshotCaptured();
75 bool OnVideoPlaying();
76 bool OnGeolocationPermission();
77 bool OnClearHistory();
78 bool OnSecurityOriginAcquired();
79 bool OnStorageUsageAcquired();
80 bool OnFormPasswordAcquired();
81 bool OnDownloadStarted();
82 bool OnMimeOverridden();
84 static void ConnectToGlobalSignal( bool ( *func )() )
86 Dali::Timer timer = Dali::Timer::New( 0 );
87 timer.TickSignal().Connect( func );
90 static void DisconnectFromGlobalSignal( bool ( *func )() )
92 Dali::Timer timer = Dali::Timer::New( 0 );
93 timer.TickSignal().Disconnect( func );
95 } // namespace anonymous
97 class MockWebEngineContext : public Dali::WebEngineContext
100 MockWebEngineContext()
101 : mockModel( Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER )
105 Dali::WebEngineContext::CacheModel GetCacheModel() const override
110 void SetCacheModel( Dali::WebEngineContext::CacheModel cacheModel ) override
112 mockModel = cacheModel;
115 void SetProxyUri( const std::string& uri ) override
119 void SetDefaultProxyAuth( const std::string& username, const std::string& password ) override
123 void SetCertificateFilePath( const std::string& certificatePath ) override
127 void DeleteAllWebDatabase() override
131 bool GetWebDatabaseOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback)
135 ConnectToGlobalSignal(&OnSecurityOriginAcquired);
136 mSecurityOriginAcquiredCallback = callback;
141 bool DeleteWebDatabase(Dali::WebEngineSecurityOrigin& origin)
146 bool GetWebStorageOrigins(Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback callback)
150 ConnectToGlobalSignal(&OnSecurityOriginAcquired);
151 mSecurityOriginAcquiredCallback = callback;
156 bool GetWebStorageUsageForOrigin(Dali::WebEngineSecurityOrigin& origin, Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback callback)
160 ConnectToGlobalSignal(&OnStorageUsageAcquired);
161 mStorageUsageAcquiredCallback = callback;
166 void DeleteAllWebStorage() override
170 bool DeleteWebStorageOrigin(Dali::WebEngineSecurityOrigin& origin)
175 void DeleteLocalFileSystem() override
179 void DisableCache( bool cacheDisabled ) override
183 void ClearCache() override
187 bool DeleteApplicationCache(Dali::WebEngineSecurityOrigin& origin)
192 void GetFormPasswordList(Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback callback)
196 ConnectToGlobalSignal(&OnFormPasswordAcquired);
197 mFormPasswordAcquiredCallback = callback;
201 void RegisterDownloadStartedCallback(Dali::WebEngineContext::WebEngineDownloadStartedCallback callback)
205 ConnectToGlobalSignal(&OnDownloadStarted);
206 mDownloadStartedCallback = callback;
210 void RegisterMimeOverriddenCallback(Dali::WebEngineContext::WebEngineMimeOverriddenCallback callback)
214 ConnectToGlobalSignal(&OnMimeOverridden);
215 mMimeOverriddenCallback = callback;
220 Dali::WebEngineContext::WebEngineSecurityOriginAcquiredCallback mSecurityOriginAcquiredCallback;
221 Dali::WebEngineContext::WebEngineStorageUsageAcquiredCallback mStorageUsageAcquiredCallback;
222 Dali::WebEngineContext::WebEngineFormPasswordAcquiredCallback mFormPasswordAcquiredCallback;
223 Dali::WebEngineContext::WebEngineDownloadStartedCallback mDownloadStartedCallback;
224 Dali::WebEngineContext::WebEngineMimeOverriddenCallback mMimeOverriddenCallback;
227 Dali::WebEngineContext::CacheModel mockModel;
230 class MockWebEngineSecurityOrigin : public Dali::WebEngineSecurityOrigin
233 MockWebEngineSecurityOrigin()
234 : mockUrl("https://test.html")
235 , mockPotocol("https")
239 std::string GetHost() const
244 std::string GetProtocol() const
251 std::string mockPotocol;
254 class MockWebEngineCookieManager : public Dali::WebEngineCookieManager
257 MockWebEngineCookieManager()
258 : mockCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY )
262 void SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy policy ) override
264 mockCookieAcceptPolicy = policy;
267 Dali::WebEngineCookieManager::CookieAcceptPolicy GetCookieAcceptPolicy() const override
269 return mockCookieAcceptPolicy;
272 void ClearCookies() override
276 void SetPersistentStorage( const std::string& path, Dali::WebEngineCookieManager::CookiePersistentStorage storage ) override
281 Dali::WebEngineCookieManager::CookieAcceptPolicy mockCookieAcceptPolicy;
284 class MockWebEngineBackForwardListItem : public Dali::WebEngineBackForwardListItem
287 MockWebEngineBackForwardListItem()
288 : mockUrl( "http://url" ),
289 mockTitle( "title" ),
290 mockOriginalUrl( "http://originalurl" )
294 std::string GetUrl() const override
299 std::string GetTitle() const override
304 std::string GetOriginalUrl() const override
306 return mockOriginalUrl;
311 std::string mockTitle;
312 std::string mockOriginalUrl;
315 class MockWebEngineBackForwardList : public Dali::WebEngineBackForwardList
318 MockWebEngineBackForwardList()
320 pMockItem( &mockItem )
324 Dali::WebEngineBackForwardListItem& GetCurrentItem() const override
329 Dali::WebEngineBackForwardListItem& GetItemAtIndex( uint32_t index ) const override
334 uint32_t GetItemCount() const override
340 MockWebEngineBackForwardListItem mockItem;
341 WebEngineBackForwardListItem* pMockItem;
344 class MockWebEngineCertificate : public Dali::WebEngineCertificate
347 MockWebEngineCertificate()
351 void Allow(bool allowed) override
355 bool IsFromMainFrame() const override
360 std::string GetPem() const override
365 bool IsContextSecure() const override
371 class MockWebEngineHttpAuthHandler : public Dali::WebEngineHttpAuthHandler
374 MockWebEngineHttpAuthHandler()
378 std::string GetRealm() const override
383 void Suspend() override
387 void UseCredential(const std::string& user, const std::string& password) override
391 void CancelCredential() override
396 class MockWebEngineFormRepostDecision : public WebEngineFormRepostDecision
399 MockWebEngineFormRepostDecision()
403 void Reply(bool allowed) override {}
406 class MockWebEngineFrame : public Dali::WebEngineFrame
413 bool IsMainFrame() const override
419 class MockWebEnginePolicyDecision : public Dali::WebEnginePolicyDecision
422 MockWebEnginePolicyDecision()
426 std::string GetUrl() const override
428 return "http://test.html";
431 std::string GetCookie() const override
436 Dali::WebEnginePolicyDecision::DecisionType GetDecisionType() const
438 return Dali::WebEnginePolicyDecision::DecisionType::USE;
441 std::string GetResponseMime() const
446 int32_t GetResponseStatusCode() const
451 Dali::WebEnginePolicyDecision::NavigationType GetNavigationType() const
453 return Dali::WebEnginePolicyDecision::NavigationType::LINK_CLICKED;
456 Dali::WebEngineFrame& GetFrame() const
458 return *(Dali::WebEngineFrame*)(&mockWebFrame);
461 std::string GetScheme() const
482 MockWebEngineFrame mockWebFrame;
485 class MockWebEngineRequestInterceptor : public WebEngineRequestInterceptor
488 MockWebEngineRequestInterceptor()
492 std::string GetUrl() const override
494 return "http://test.html";
497 bool Ignore() override
502 bool SetResponseStatus(int statusCode, const std::string &customedStatusText) override
507 bool AddResponseHeader(const std::string &fieldName, const std::string &fieldValue) override
512 bool AddResponseBody(const std::string &body, uint32_t length) override
518 class MockWebEngineConsoleMessage : public Dali::WebEngineConsoleMessage
521 MockWebEngineConsoleMessage()
525 std::string GetSource() const override
530 uint32_t GetLine() const override
535 SeverityLevel GetSeverityLevel() const override
537 return SeverityLevel::EMPTY;
540 std::string GetText() const override
542 return "This is a text.";
546 class MockWebEngineLoadError : public Dali::WebEngineLoadError
549 MockWebEngineLoadError(const std::string& url)
554 std::string GetUrl() const override
559 ErrorCode GetCode() const override
561 return ErrorCode::UNKNOWN;
564 std::string GetDescription() const override
566 return "This is an error.";
569 ErrorType GetType() const override
571 return ErrorType::NONE;
578 class MockWebEngineContextMenuItem : public Dali::WebEngineContextMenuItem
581 MockWebEngineContextMenuItem()
585 ItemTag GetTag() const override
587 return ItemTag::NO_ACTION;
590 ItemType GetType() const override
592 return ItemType::ACTION;
595 bool IsEnabled() const override
600 std::string GetLinkUrl() const override
602 return "http://test.html";
605 std::string GetImageUrl() const override
607 return "http://test.jpg";
610 std::string GetTitle() const override
615 std::unique_ptr<Dali::WebEngineContextMenu> GetParentMenu() const override
617 std::unique_ptr<Dali::WebEngineContextMenu> result;
622 class MockWebEngineContextMenu : public Dali::WebEngineContextMenu
625 MockWebEngineContextMenu()
629 uint32_t GetItemCount() const override
634 std::unique_ptr<Dali::WebEngineContextMenuItem> GetItemAt(uint32_t index) const override
636 std::unique_ptr<Dali::WebEngineContextMenuItem> webitem(new MockWebEngineContextMenuItem());
640 std::vector<std::unique_ptr<WebEngineContextMenuItem>> GetItemList() const override
642 std::vector<std::unique_ptr<WebEngineContextMenuItem>> result;
643 std::unique_ptr<Dali::WebEngineContextMenuItem> webitem(new MockWebEngineContextMenuItem());
644 result.push_back(std::move(webitem));
648 Dali::Vector2 GetPosition() const override
650 return Dali::Vector2(100, 100);
653 bool RemoveItem(WebEngineContextMenuItem& item) override
658 bool AppendItemAsAction(WebEngineContextMenuItem::ItemTag tag, const std::string& title, bool enabled) override
663 bool AppendItem(WebEngineContextMenuItem::ItemTag tag, const std::string& title, const std::string& iconFile, bool enabled) override
668 bool SelectItem(WebEngineContextMenuItem& item) override
679 class MockWebEngineSettings : public WebEngineSettings
682 MockWebEngineSettings()
683 : mockDefaultFontSize( 16 ),
684 mockJavaScriptEnabled( true ),
685 mockAutoFittingEnabled ( true ),
686 mockPluginsEnabled ( true ),
687 mockPrivateBrowsingEnabled( true ),
688 mockLinkMagnifierEnabled( true ),
689 mockKeypadWithoutUserActionUsed( true ),
690 mockAutofillPasswordFormEnabled( true ),
691 mockFormCandidateDataEnabled( true ),
692 mockTextSelectionEnabled( true ),
693 mockTextAutosizingEnable( true ),
694 mockArrowScrollEnable( true ),
695 mockClipboardEnabled( true ),
696 mockImePanelEnabled( true ),
697 mockImageLoadedAutomatically( true ),
698 mockDefaultTextEncodingName()
702 uint32_t GetDefaultFontSize() const override
704 return mockDefaultFontSize;
707 void SetDefaultFontSize( uint32_t size ) override
709 mockDefaultFontSize = size;
712 bool IsJavaScriptEnabled() const override
714 return mockJavaScriptEnabled;
717 void EnableJavaScript( bool enabled ) override
719 mockJavaScriptEnabled = enabled;
722 bool IsAutoFittingEnabled() const override
724 return mockAutoFittingEnabled;
727 void EnableAutoFitting( bool enabled ) override
729 mockAutoFittingEnabled = enabled;
732 bool ArePluginsEnabled() const override
734 return mockPluginsEnabled;
737 void EnablePlugins( bool enabled ) override
739 mockPluginsEnabled = enabled;
742 bool IsPrivateBrowsingEnabled() const override
744 return mockPrivateBrowsingEnabled;
747 void EnablePrivateBrowsing( bool enabled ) override
749 mockPrivateBrowsingEnabled = enabled;
752 bool IsLinkMagnifierEnabled() const override
754 return mockLinkMagnifierEnabled;
757 void EnableLinkMagnifier( bool enabled ) override
759 mockLinkMagnifierEnabled = enabled;
762 bool IsKeypadWithoutUserActionUsed() const override
764 return mockKeypadWithoutUserActionUsed;
767 void UseKeypadWithoutUserAction( bool used ) override
769 mockKeypadWithoutUserActionUsed = used;
772 bool IsAutofillPasswordFormEnabled() const override
774 return mockAutofillPasswordFormEnabled;
777 void EnableAutofillPasswordForm( bool enabled ) override
779 mockAutofillPasswordFormEnabled = enabled;
782 bool IsFormCandidateDataEnabled() const override
784 return mockFormCandidateDataEnabled;
787 void EnableFormCandidateData( bool enabled ) override
789 mockFormCandidateDataEnabled = enabled;
792 bool IsTextSelectionEnabled() const override
794 return mockTextSelectionEnabled;
797 void EnableTextSelection( bool enabled ) override
799 mockTextSelectionEnabled = enabled;
802 bool IsTextAutosizingEnabled() const override
804 return mockTextAutosizingEnable;
807 void EnableTextAutosizing( bool enabled ) override
809 mockTextAutosizingEnable = enabled;
812 bool IsArrowScrollEnabled() const override
814 return mockArrowScrollEnable;
817 void EnableArrowScroll( bool enabled ) override
819 mockArrowScrollEnable = enabled;
822 bool IsClipboardEnabled() const override
824 return mockClipboardEnabled;
827 void EnableClipboard( bool enabled ) override
829 mockClipboardEnabled = enabled;
832 bool IsImePanelEnabled() const override
834 return mockImePanelEnabled;
837 void EnableImePanel( bool enabled ) override
839 mockImePanelEnabled = enabled;
842 bool AreImagesLoadedAutomatically() const override
844 return mockImageLoadedAutomatically;
847 void AllowImagesLoadAutomatically( bool automatic ) override
849 mockImageLoadedAutomatically = automatic;
852 std::string GetDefaultTextEncodingName() const override
854 return mockDefaultTextEncodingName;
857 void SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) override
859 mockDefaultTextEncodingName = defaultTextEncodingName;
862 void AllowMixedContents( bool allowed ) override
866 void EnableSpatialNavigation( bool enabled ) override
870 void EnableWebSecurity( bool enabled ) override
874 void EnableCacheBuilder( bool enabled ) override
878 void UseScrollbarThumbFocusNotifications( bool used ) override
882 void EnableDoNotTrack( bool enabled ) override
886 void AllowFileAccessFromExternalUrl( bool allowed ) override
890 void AllowScriptsOpenWindows( bool allowed ) override
895 int mockDefaultFontSize;
896 bool mockJavaScriptEnabled;
897 bool mockAutoFittingEnabled;
898 bool mockPluginsEnabled;
899 bool mockPrivateBrowsingEnabled;
900 bool mockLinkMagnifierEnabled;
901 bool mockKeypadWithoutUserActionUsed;
902 bool mockAutofillPasswordFormEnabled;
903 bool mockFormCandidateDataEnabled;
904 bool mockTextSelectionEnabled;
905 bool mockTextAutosizingEnable;
906 bool mockArrowScrollEnable;
907 bool mockClipboardEnabled;
908 bool mockImePanelEnabled;
909 bool mockImageLoadedAutomatically;
910 std::string mockDefaultTextEncodingName;
913 class WebEngine: public Dali::BaseObject
917 using JavaScriptEvaluatedResultCallback = std::function<void(const std::string&)>;
921 , mCurrentPlusOnePos( 0 )
923 , mEvaluating( false )
924 , mScrollPosition( 0, 0 )
925 , mScrollSize( 500, 500 )
926 , mContentSize( 500, 500 )
929 if ( gInstanceCount == 1 ) // only first web engine need be saved.
934 mockWebEngineSettings = new MockWebEngineSettings();
935 MockWebEngineContext* engineContext = new MockWebEngineContext();
936 mockWebEngineContext = engineContext;
937 if ( gInstanceCount == 1 )
939 gWebEngineContextInstance = engineContext;
941 mockWebEngineCookieManager = new MockWebEngineCookieManager();
942 mockWebEngineBackForwardList = new MockWebEngineBackForwardList();
948 if( !gInstanceCount )
951 gWebEngineContextInstance = 0;
954 delete mockWebEngineSettings;
955 delete mockWebEngineContext;
956 delete mockWebEngineCookieManager;
957 delete mockWebEngineBackForwardList;
960 Dali::WebEngineSettings& GetSettings() const
962 return *mockWebEngineSettings;
965 Dali::WebEngineContext& GetContext() const
967 return *mockWebEngineContext;
970 Dali::WebEngineCookieManager& GetCookieManager() const
972 return *mockWebEngineCookieManager;
975 Dali::WebEngineBackForwardList& GetBackForwardList() const
977 return *mockWebEngineBackForwardList;
980 void LoadUrl( const std::string& url )
983 ConnectToGlobalSignal( &OnLoadUrl );
986 const std::string& GetUrl() const
991 std::string GetTitle() const
993 return std::string("title");
996 Dali::PixelData GetFavicon() const
998 uint8_t* faviconData = new uint8_t[ 16 ];
1000 faviconData[ 0 ] = 0xff;
1001 faviconData[ 1 ] = 0x00;
1002 faviconData[ 2 ] = 0x00;
1003 faviconData[ 3 ] = 0xff;
1004 faviconData[ 4 ] = 0xff;
1005 faviconData[ 5 ] = 0x00;
1006 faviconData[ 6 ] = 0x00;
1007 faviconData[ 7 ] = 0xff;
1008 faviconData[ 8 ] = 0xff;
1009 faviconData[ 9 ] = 0x00;
1010 faviconData[ 10 ] = 0x00;
1011 faviconData[ 11 ] = 0xff;
1012 faviconData[ 12 ] = 0xff;
1013 faviconData[ 13 ] = 0x00;
1014 faviconData[ 14 ] = 0x00;
1015 faviconData[ 15 ] = 0xff;
1017 return Dali::PixelData::New( faviconData, 16, 2, 2,
1018 Dali::Pixel::Format::RGBA8888,
1019 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
1022 bool CanGoForward() const
1024 return mHistory.size() > mCurrentPlusOnePos;
1029 ConnectToGlobalSignal( &OnGoForward );
1032 bool CanGoBack() const
1034 return mCurrentPlusOnePos > 1;
1039 ConnectToGlobalSignal( &OnGoBack );
1042 void EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
1048 ConnectToGlobalSignal( &OnEvaluteJavaScript );
1050 mResultCallbacks.push_back( resultHandler );
1054 void RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
1058 ConnectToGlobalSignal( &OnJavaScriptAlert );
1059 mJavaScriptAlertCallback = callback;
1063 void RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
1067 ConnectToGlobalSignal( &OnJavaScriptConfirm );
1068 mJavaScriptConfirmCallback = callback;
1072 void RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
1076 ConnectToGlobalSignal( &OnJavaScriptPrompt );
1077 mJavaScriptPromptCallback = callback;
1083 ConnectToGlobalSignal( &OnClearHistory );
1086 const std::string& GetUserAgent() const
1091 void SetUserAgent( const std::string& userAgent )
1093 mUserAgent = userAgent;
1096 void ScrollBy( int dx, int dy )
1098 mScrollPosition += Dali::Vector2( dx, dy );
1099 if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
1101 ConnectToGlobalSignal( &OnScrollEdge );
1105 bool ScrollEdgeBy( int dx, int dy )
1107 mScrollPosition += Dali::Vector2( dx, dy );
1108 if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
1110 ConnectToGlobalSignal( &OnScrollEdge );
1115 void SetScrollPosition( int x, int y )
1117 mScrollPosition.x = x;
1118 mScrollPosition.y = y;
1121 Dali::Vector2 GetScrollPosition() const
1123 return mScrollPosition;
1126 Dali::Vector2 GetScrollSize() const
1131 Dali::Vector2 GetContentSize() const
1133 return mContentSize;
1136 void SetPageZoomFactor(float zoomFactor)
1138 mPageZoomFactor = zoomFactor;
1141 float GetPageZoomFactor() const
1143 return mPageZoomFactor;
1146 void SetTextZoomFactor(float zoomFactor)
1148 mTextZoomFactor = zoomFactor;
1151 float GetTextZoomFactor() const
1153 return mTextZoomFactor;
1156 float GetLoadProgressPercentage() const
1161 void SetScaleFactor(float scaleFactor, Dali::Vector2 point)
1163 mScaleFactor = scaleFactor;
1166 float GetScaleFactor() const
1168 return mScaleFactor;
1171 Dali::PixelData GetScreenshot(Dali::Rect<int> viewArea, float scaleFactor)
1173 uint32_t bufferSize = viewArea.width * viewArea.height * 4 ;
1174 uint8_t* pixel = new uint8_t[ bufferSize ];
1175 memset(pixel, 0xff, bufferSize);
1176 return Dali::PixelData::New( pixel, bufferSize, viewArea.width, viewArea.height,
1177 Dali::Pixel::Format::RGBA8888,
1178 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
1181 bool GetScreenshotAsynchronously(Dali::Rect<int> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
1185 ConnectToGlobalSignal( &OnScreenshotCaptured );
1186 mScreenshotCapturedCallback = callback;
1191 bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
1195 ConnectToGlobalSignal( &OnVideoPlaying );
1196 mVideoPlayingCallback = callback;
1201 void RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
1205 ConnectToGlobalSignal( &OnGeolocationPermission );
1206 mGeolocationPermissionCallback = callback;
1210 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal()
1212 return mPageLoadStartedSignal;
1215 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal()
1217 return mPageLoadInProgressSignal;
1220 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal()
1222 return mPageLoadFinishedSignal;
1225 Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal()
1227 return mPageLoadErrorSignal;
1230 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal()
1232 return mScrollEdgeReachedSignal;
1235 Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal()
1237 return mUrlChangedSignal;
1240 Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& FormRepostDecisionSignal()
1242 return mFormRepostDecisionSignal;
1245 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal()
1247 return mFrameRenderedSignal;
1250 Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& RequestInterceptorSignal()
1252 return mRequestInterceptorSignal;
1255 Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& ConsoleMessageSignal()
1257 return mConsoleMessageSignal;
1260 Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType& PolicyDecisionSignal()
1262 return mPolicyDecisionSignal;
1265 Dali::WebEnginePlugin::WebEngineCertificateSignalType& CertificateConfirmSignal()
1267 return mCertificateConfirmSignal;
1270 Dali::WebEnginePlugin::WebEngineCertificateSignalType& SslCertificateChangedSignal()
1272 return mSslCertificateChangedSignal;
1275 Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& HttpAuthHandlerSignal()
1277 return mHttpAuthHandlerSignal;
1280 Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& ContextMenuCustomizedSignal()
1282 return mContextMenuCustomizedSignal;
1285 Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& ContextMenuItemSelectedSignal()
1287 return mContextMenuItemSelectedSignal;
1291 std::vector<std::string> mHistory;
1292 size_t mCurrentPlusOnePos;
1293 std::string mUserAgent;
1295 Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadStartedSignal;
1296 Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadInProgressSignal;
1297 Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadFinishedSignal;
1298 Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType mPageLoadErrorSignal;
1299 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType mScrollEdgeReachedSignal;
1300 Dali::WebEnginePlugin::WebEngineUrlChangedSignalType mUrlChangedSignal;
1301 Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType mFormRepostDecisionSignal;
1302 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType mFrameRenderedSignal;
1303 Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType mRequestInterceptorSignal;
1304 Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType mConsoleMessageSignal;
1305 Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType mPolicyDecisionSignal;
1306 Dali::WebEnginePlugin::WebEngineCertificateSignalType mCertificateConfirmSignal;
1307 Dali::WebEnginePlugin::WebEngineCertificateSignalType mSslCertificateChangedSignal;
1308 Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType mHttpAuthHandlerSignal;
1309 Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType mContextMenuCustomizedSignal;
1310 Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType mContextMenuItemSelectedSignal;
1313 float mPageZoomFactor;
1314 float mTextZoomFactor;
1317 Dali::Vector2 mScrollPosition;
1318 Dali::Vector2 mScrollSize;
1319 Dali::Vector2 mContentSize;
1320 WebEngineBackForwardList* mockWebEngineBackForwardList;
1321 WebEngineContext* mockWebEngineContext;
1322 WebEngineCookieManager* mockWebEngineCookieManager;
1323 WebEngineSettings* mockWebEngineSettings;
1325 std::vector<JavaScriptEvaluatedResultCallback> mResultCallbacks;
1326 Dali::WebEnginePlugin::JavaScriptAlertCallback mJavaScriptAlertCallback;
1327 Dali::WebEnginePlugin::JavaScriptConfirmCallback mJavaScriptConfirmCallback;
1328 Dali::WebEnginePlugin::JavaScriptPromptCallback mJavaScriptPromptCallback;
1329 Dali::WebEnginePlugin::ScreenshotCapturedCallback mScreenshotCapturedCallback;
1330 Dali::WebEnginePlugin::VideoPlayingCallback mVideoPlayingCallback;
1331 Dali::WebEnginePlugin::GeolocationPermissionCallback mGeolocationPermissionCallback;
1340 DisconnectFromGlobalSignal( &OnGoBack );
1342 if( gInstance && gInstance->CanGoBack() )
1344 gInstance->mCurrentPlusOnePos--;
1351 DisconnectFromGlobalSignal( &OnGoForward );
1353 if( gInstance && gInstance->CanGoForward() )
1355 gInstance->mCurrentPlusOnePos++;
1362 DisconnectFromGlobalSignal( &OnLoadUrl );
1366 if( gInstance->mHistory.size() > gInstance->mCurrentPlusOnePos )
1368 gInstance->mHistory.erase( gInstance->mHistory.begin() + gInstance->mCurrentPlusOnePos, gInstance->mHistory.end() );
1370 gInstance->mHistory.push_back( gInstance->mUrl );
1371 gInstance->mCurrentPlusOnePos++;
1372 gInstance->mPageLoadStartedSignal.Emit( gInstance->mUrl );
1373 gInstance->mPageLoadInProgressSignal.Emit( gInstance->mUrl );
1374 gInstance->mPageLoadFinishedSignal.Emit( gInstance->mUrl );
1375 gInstance->mUrlChangedSignal.Emit( "http://new-test" );
1377 std::shared_ptr<Dali::WebEngineFormRepostDecision> repostDecision(new MockWebEngineFormRepostDecision());
1378 gInstance->mFormRepostDecisionSignal.Emit(std::move(repostDecision));
1379 gInstance->mFrameRenderedSignal.Emit();
1380 std::shared_ptr<Dali::WebEngineRequestInterceptor> interceptor(new MockWebEngineRequestInterceptor());
1381 gInstance->mRequestInterceptorSignal.Emit(std::move(interceptor));
1383 std::shared_ptr<Dali::WebEngineLoadError> error(new MockWebEngineLoadError(gInstance->mUrl));
1384 gInstance->mPageLoadErrorSignal.Emit(std::move(error));
1385 std::shared_ptr<Dali::WebEngineConsoleMessage> message(new MockWebEngineConsoleMessage());
1386 gInstance->mConsoleMessageSignal.Emit(std::move(message));
1387 std::shared_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
1388 gInstance->mPolicyDecisionSignal.Emit(std::move(policyDecision));
1390 std::shared_ptr<Dali::WebEngineCertificate> certificate(new MockWebEngineCertificate());
1391 gInstance->mCertificateConfirmSignal.Emit(std::move(certificate));
1392 std::shared_ptr<Dali::WebEngineCertificate> sslCertificate(new MockWebEngineCertificate());
1393 gInstance->mSslCertificateChangedSignal.Emit(std::move(sslCertificate));
1394 std::shared_ptr<Dali::WebEngineHttpAuthHandler> handler(new MockWebEngineHttpAuthHandler());
1395 gInstance->mHttpAuthHandlerSignal.Emit(std::move(handler));
1397 std::shared_ptr<Dali::WebEngineContextMenu> menu(new MockWebEngineContextMenu());
1398 gInstance->mContextMenuCustomizedSignal.Emit(std::move(menu));
1399 std::shared_ptr<Dali::WebEngineContextMenuItem> item(new MockWebEngineContextMenuItem());
1400 gInstance->mContextMenuItemSelectedSignal.Emit(std::move(item));
1407 DisconnectFromGlobalSignal( &OnScrollEdge );
1411 gInstance->mScrollEdgeReachedSignal.Emit( Dali::WebEnginePlugin::ScrollEdge::BOTTOM );
1417 bool OnEvaluteJavaScript()
1419 DisconnectFromGlobalSignal( &OnEvaluteJavaScript );
1423 for( auto& func : gInstance->mResultCallbacks )
1427 gInstance->mResultCallbacks.clear();
1432 bool OnJavaScriptAlert()
1434 DisconnectFromGlobalSignal( &OnJavaScriptAlert );
1437 gInstance->mJavaScriptAlertCallback( "this is an alert popup." );
1442 bool OnJavaScriptConfirm()
1444 DisconnectFromGlobalSignal( &OnJavaScriptConfirm );
1447 gInstance->mJavaScriptConfirmCallback( "this is a confirm popup." );
1452 bool OnJavaScriptPrompt()
1454 DisconnectFromGlobalSignal( &OnJavaScriptPrompt );
1457 gInstance->mJavaScriptPromptCallback( "this is a prompt pompt.", "" );
1462 bool OnScreenshotCaptured()
1464 DisconnectFromGlobalSignal( &OnScreenshotCaptured );
1467 uint8_t* pixel = new uint8_t[ 2 * 2 * 4 ];
1468 memset(pixel, 0xff, 2 * 2 * 4);
1469 Dali::PixelData data = Dali::PixelData::New( pixel, 2 * 2 * 4, 2, 2,
1470 Dali::Pixel::Format::RGBA8888,
1471 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
1472 gInstance->mScreenshotCapturedCallback( data );
1477 bool OnVideoPlaying()
1479 DisconnectFromGlobalSignal( &OnVideoPlaying );
1482 gInstance->mVideoPlayingCallback( true );
1487 bool OnGeolocationPermission()
1489 DisconnectFromGlobalSignal( &OnGeolocationPermission );
1492 gInstance->mGeolocationPermissionCallback( "", "" );
1497 bool OnClearHistory()
1499 DisconnectFromGlobalSignal( &OnClearHistory );
1501 if( gInstance && gInstance->mCurrentPlusOnePos )
1503 std::string url = gInstance->mHistory[ gInstance->mCurrentPlusOnePos - 1 ];
1504 std::vector< std::string >().swap( gInstance->mHistory );
1505 gInstance->mHistory.push_back( url );
1506 gInstance->mCurrentPlusOnePos = 1;
1511 bool OnSecurityOriginAcquired()
1513 DisconnectFromGlobalSignal(&OnSecurityOriginAcquired);
1514 if (gWebEngineContextInstance)
1516 std::vector<std::unique_ptr<Dali::WebEngineSecurityOrigin>> securityOriginList;
1517 std::unique_ptr<Dali::WebEngineSecurityOrigin> origin(new MockWebEngineSecurityOrigin());
1518 securityOriginList.push_back(std::move(origin));
1519 gWebEngineContextInstance->mSecurityOriginAcquiredCallback(securityOriginList);
1524 bool OnStorageUsageAcquired()
1526 DisconnectFromGlobalSignal(&OnStorageUsageAcquired);
1527 if (gWebEngineContextInstance)
1529 gWebEngineContextInstance->mStorageUsageAcquiredCallback(0);
1534 bool OnFormPasswordAcquired()
1536 DisconnectFromGlobalSignal(&OnFormPasswordAcquired);
1537 if (gWebEngineContextInstance)
1539 std::vector<std::unique_ptr<Dali::WebEngineContext::PasswordData>> formPasswordList;
1540 std::unique_ptr<Dali::WebEngineContext::PasswordData> data(new Dali::WebEngineContext::PasswordData());
1541 data->url = "http://test.html";
1542 data->useFingerprint = false;
1543 formPasswordList.push_back(std::move(data));
1544 gWebEngineContextInstance->mFormPasswordAcquiredCallback(formPasswordList);
1549 bool OnDownloadStarted()
1551 DisconnectFromGlobalSignal(&OnDownloadStarted);
1552 if (gWebEngineContextInstance)
1554 gWebEngineContextInstance->mDownloadStartedCallback("http://test.html");
1559 bool OnMimeOverridden()
1561 DisconnectFromGlobalSignal(&OnMimeOverridden);
1562 if (gWebEngineContextInstance)
1564 std::string newMime;
1565 gWebEngineContextInstance->mMimeOverriddenCallback("http://test.html", "txt/xml", newMime);
1572 inline WebEngine& GetImplementation( Dali::WebEngine& webEngine )
1574 DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
1575 BaseObject& handle = webEngine.GetBaseObject();
1576 return static_cast< Internal::Adaptor::WebEngine& >( handle );
1579 inline const WebEngine& GetImplementation( const Dali::WebEngine& webEngine )
1581 DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
1582 const BaseObject& handle = webEngine.GetBaseObject();
1583 return static_cast< const Internal::Adaptor::WebEngine& >( handle );
1586 } // namespace Adaptor
1588 } // namespace Internal
1590 // Dali::WebEngine Implementation
1591 WebEngine::WebEngine()
1595 WebEngine::WebEngine( Internal::Adaptor::WebEngine* internal )
1596 : BaseHandle( internal )
1600 WebEngine::~WebEngine()
1604 WebEngine WebEngine::New()
1606 Internal::Adaptor::WebEngine* baseObject = new Internal::Adaptor::WebEngine();
1608 return WebEngine( baseObject );
1611 WebEngine::WebEngine( const WebEngine& WebEngine )
1612 : BaseHandle( WebEngine )
1616 WebEngine& WebEngine::operator=( const WebEngine& webEngine )
1618 BaseHandle::operator=( webEngine );
1622 WebEngine WebEngine::DownCast( BaseHandle handle )
1624 return WebEngine( dynamic_cast< Internal::Adaptor::WebEngine* >( handle.GetObjectPtr() ) );
1627 void WebEngine::Create( int width, int height, const std::string& locale, const std::string& timezoneId )
1631 void WebEngine::Create( int width, int height, int argc, char** argv )
1635 void WebEngine::Destroy()
1639 WebEngineSettings& WebEngine::GetSettings() const
1641 return Internal::Adaptor::GetImplementation( *this ).GetSettings();
1644 WebEngineContext& WebEngine::GetContext() const
1646 return Internal::Adaptor::GetImplementation( *this ).GetContext();
1649 WebEngineCookieManager& WebEngine::GetCookieManager() const
1651 return Internal::Adaptor::GetImplementation( *this ).GetCookieManager();
1654 WebEngineBackForwardList& WebEngine::GetBackForwardList() const
1656 return Internal::Adaptor::GetImplementation( *this ).GetBackForwardList();
1659 void WebEngine::LoadUrl( const std::string& url )
1661 return Internal::Adaptor::GetImplementation( *this ).LoadUrl( url );
1664 std::string WebEngine::GetTitle() const
1666 return Internal::Adaptor::GetImplementation( *this ).GetTitle();
1669 Dali::PixelData WebEngine::GetFavicon() const
1671 return Internal::Adaptor::GetImplementation( *this ).GetFavicon();
1674 const std::string& WebEngine::GetUrl()
1676 return Internal::Adaptor::GetImplementation( *this ).GetUrl();
1679 NativeImageInterfacePtr WebEngine::GetNativeImageSource()
1682 Dali::NativeImageSourcePtr sourcePtr = Dali::NativeImageSource::New( source );
1686 void WebEngine::LoadHtmlString( const std::string& htmlString )
1690 bool WebEngine::LoadHtmlStringOverrideCurrentEntry(const std::string& html, const std::string& basicUri, const std::string& unreachableUrl)
1695 bool WebEngine::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri)
1700 void WebEngine::Reload()
1704 bool WebEngine::ReloadWithoutCache()
1709 void WebEngine::StopLoading()
1713 void WebEngine::Suspend()
1717 void WebEngine::Resume()
1721 void WebEngine::SuspendNetworkLoading()
1725 void WebEngine::ResumeNetworkLoading()
1729 bool WebEngine::AddCustomHeader(const std::string& name, const std::string& value)
1734 bool WebEngine::RemoveCustomHeader(const std::string& name)
1739 uint32_t WebEngine::StartInspectorServer(uint32_t port)
1744 bool WebEngine::StopInspectorServer()
1749 bool WebEngine::CanGoForward()
1751 return Internal::Adaptor::GetImplementation( *this ).CanGoForward();
1754 void WebEngine::GoForward()
1756 Internal::Adaptor::GetImplementation( *this ).GoForward();
1759 bool WebEngine::CanGoBack()
1761 return Internal::Adaptor::GetImplementation( *this ).CanGoBack();
1764 void WebEngine::GoBack()
1766 Internal::Adaptor::GetImplementation( *this ).GoBack();
1769 void WebEngine::EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
1771 Internal::Adaptor::GetImplementation( *this ).EvaluateJavaScript( script, resultHandler );
1774 void WebEngine::AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void(const std::string&) > handler )
1778 void WebEngine::RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
1780 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptAlertCallback( callback );
1783 void WebEngine::JavaScriptAlertReply()
1787 void WebEngine::RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
1789 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptConfirmCallback( callback );
1792 void WebEngine::JavaScriptConfirmReply( bool confirmed )
1796 void WebEngine::RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
1798 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptPromptCallback( callback );
1801 void WebEngine::JavaScriptPromptReply( const std::string& result )
1805 void WebEngine::ClearAllTilesResources()
1809 void WebEngine::ClearHistory()
1811 Internal::Adaptor::GetImplementation( *this ).ClearHistory();
1814 void WebEngine::SetScaleFactor(float scaleFactor, Dali::Vector2 point)
1816 Internal::Adaptor::GetImplementation( *this ).SetScaleFactor(scaleFactor, point);
1819 float WebEngine::GetScaleFactor() const
1821 return Internal::Adaptor::GetImplementation( *this ).GetScaleFactor();
1824 void WebEngine::ActivateAccessibility(bool activated)
1828 bool WebEngine::HighlightText(const std::string& text, Dali::WebEnginePlugin::FindOption options, uint32_t maxMatchCount)
1833 void WebEngine::AddDynamicCertificatePath(const std::string& host, const std::string& certPath)
1837 Dali::PixelData WebEngine::GetScreenshot(Dali::Rect<int> viewArea, float scaleFactor)
1839 return Internal::Adaptor::GetImplementation( *this ).GetScreenshot(viewArea, scaleFactor);
1842 bool WebEngine::GetScreenshotAsynchronously(Dali::Rect<int> viewArea, float scaleFactor, Dali::WebEnginePlugin::ScreenshotCapturedCallback callback)
1844 return Internal::Adaptor::GetImplementation( *this ).GetScreenshotAsynchronously(viewArea, scaleFactor, callback);
1847 bool WebEngine::CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback)
1849 return Internal::Adaptor::GetImplementation( *this ).CheckVideoPlayingAsynchronously(callback);
1852 void WebEngine::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
1854 Internal::Adaptor::GetImplementation( *this ).RegisterGeolocationPermissionCallback(callback);
1857 const std::string& WebEngine::GetUserAgent() const
1859 return Internal::Adaptor::GetImplementation( *this ).GetUserAgent();
1862 void WebEngine::SetUserAgent( const std::string& userAgent )
1864 Internal::Adaptor::GetImplementation( *this ).SetUserAgent( userAgent );
1867 void WebEngine::ScrollBy( int dx, int dy )
1869 Internal::Adaptor::GetImplementation( *this ).ScrollBy( dx, dy );
1872 bool WebEngine::ScrollEdgeBy( int dx, int dy )
1874 return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeBy( dx, dy );
1877 void WebEngine::SetScrollPosition( int x, int y )
1879 Internal::Adaptor::GetImplementation( *this ).SetScrollPosition( x, y );
1882 Dali::Vector2 WebEngine::GetScrollPosition() const
1884 return Internal::Adaptor::GetImplementation( *this ).GetScrollPosition();
1887 Dali::Vector2 WebEngine::GetScrollSize() const
1889 return Internal::Adaptor::GetImplementation( *this ).GetScrollSize();
1892 Dali::Vector2 WebEngine::GetContentSize() const
1894 return Internal::Adaptor::GetImplementation( *this ).GetContentSize();
1897 void WebEngine::SetSize( int width, int height )
1901 void WebEngine::SetDocumentBackgroundColor(Dali::Vector4 color)
1905 void WebEngine::ClearTilesWhenHidden(bool cleared)
1909 void WebEngine::SetTileCoverAreaMultiplier(float multiplier)
1913 void WebEngine::EnableCursorByClient(bool enabled)
1917 std::string WebEngine::GetSelectedText() const
1922 bool WebEngine::SendTouchEvent( const TouchEvent& touch )
1927 bool WebEngine::SendKeyEvent( const KeyEvent& event )
1932 bool WebEngine::SendHoverEvent( const HoverEvent& event )
1937 bool WebEngine::SendWheelEvent( const WheelEvent& event )
1942 void WebEngine::SetFocus( bool focused )
1946 void WebEngine::SetPageZoomFactor(float zoomFactor)
1948 Internal::Adaptor::GetImplementation( *this ).SetPageZoomFactor(zoomFactor);
1951 float WebEngine::GetPageZoomFactor() const
1953 return Internal::Adaptor::GetImplementation( *this ).GetPageZoomFactor();
1956 void WebEngine::SetTextZoomFactor(float zoomFactor)
1958 Internal::Adaptor::GetImplementation( *this ).SetTextZoomFactor(zoomFactor);
1961 float WebEngine::GetTextZoomFactor() const
1963 return Internal::Adaptor::GetImplementation( *this ).GetTextZoomFactor();
1966 float WebEngine::GetLoadProgressPercentage() const
1968 return Internal::Adaptor::GetImplementation( *this ).GetLoadProgressPercentage();
1971 void WebEngine::UpdateDisplayArea( Dali::Rect< int > displayArea )
1975 void WebEngine::EnableVideoHole( bool enabled )
1979 void WebEngine::EnableMouseEvents( bool enabled )
1983 void WebEngine::EnableKeyEvents( bool enabled )
1987 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadStartedSignal()
1989 return Internal::Adaptor::GetImplementation( *this ).PageLoadStartedSignal();
1992 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadInProgressSignal()
1994 return Internal::Adaptor::GetImplementation( *this ).PageLoadInProgressSignal();
1997 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadFinishedSignal()
1999 return Internal::Adaptor::GetImplementation( *this ).PageLoadFinishedSignal();
2002 Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& WebEngine::PageLoadErrorSignal()
2004 return Internal::Adaptor::GetImplementation( *this ).PageLoadErrorSignal();
2007 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& WebEngine::ScrollEdgeReachedSignal()
2009 return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeReachedSignal();
2012 Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& WebEngine::UrlChangedSignal()
2014 return Internal::Adaptor::GetImplementation( *this ).UrlChangedSignal();
2017 Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& WebEngine::FormRepostDecisionSignal()
2019 return Internal::Adaptor::GetImplementation(*this).FormRepostDecisionSignal();
2022 Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal()
2024 return Internal::Adaptor::GetImplementation(*this).FrameRenderedSignal();
2027 Dali::WebEnginePlugin::WebEngineRequestInterceptorSignalType& WebEngine::RequestInterceptorSignal()
2029 return Internal::Adaptor::GetImplementation(*this).RequestInterceptorSignal();
2032 Dali::WebEnginePlugin::WebEngineConsoleMessageSignalType& WebEngine::ConsoleMessageSignal()
2034 return Internal::Adaptor::GetImplementation(*this).ConsoleMessageSignal();
2037 Dali::WebEnginePlugin::WebEnginePolicyDecisionSignalType& WebEngine::PolicyDecisionSignal()
2039 return Internal::Adaptor::GetImplementation(*this).PolicyDecisionSignal();
2042 Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::CertificateConfirmSignal()
2044 return Internal::Adaptor::GetImplementation(*this).CertificateConfirmSignal();
2047 Dali::WebEnginePlugin::WebEngineCertificateSignalType& WebEngine::SslCertificateChangedSignal()
2049 return Internal::Adaptor::GetImplementation(*this).SslCertificateChangedSignal();
2052 Dali::WebEnginePlugin::WebEngineHttpAuthHandlerSignalType& WebEngine::HttpAuthHandlerSignal()
2054 return Internal::Adaptor::GetImplementation(*this).HttpAuthHandlerSignal();
2057 Dali::WebEnginePlugin::WebEngineContextMenuCustomizedSignalType& WebEngine::ContextMenuCustomizedSignal()
2059 return Internal::Adaptor::GetImplementation( *this ).ContextMenuCustomizedSignal();
2062 Dali::WebEnginePlugin::WebEngineContextMenuItemSelectedSignalType& WebEngine::ContextMenuItemSelectedSignal()
2064 return Internal::Adaptor::GetImplementation( *this ).ContextMenuItemSelectedSignal();
2067 } // namespace Dali;