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-context.h>
24 #include <dali/devel-api/adaptor-framework/web-engine-cookie-manager.h>
25 #include <dali/devel-api/adaptor-framework/web-engine-settings.h>
26 #include <dali/public-api/adaptor-framework/native-image-source.h>
27 #include <dali/public-api/images/pixel-data.h>
28 #include <dali/public-api/object/any.h>
29 #include <dali/public-api/object/base-object.h>
30 #include <toolkit-application.h>
46 // Generally only one WebEngine instance exists.
47 // If > 1, a new web engine has been created by CreateWindowSignal.
48 static WebEngine* gInstance = 0;
49 static int gInstanceCount = 0;
54 bool OnEvaluteJavaScript();
55 bool OnJavaScriptAlert();
56 bool OnJavaScriptConfirm();
57 bool OnJavaScriptPrompt();
59 bool OnClearHistory();
61 static void ConnectToGlobalSignal( bool ( *func )() )
63 Dali::Timer timer = Dali::Timer::New( 0 );
64 timer.TickSignal().Connect( func );
67 static void DisconnectFromGlobalSignal( bool ( *func )() )
69 Dali::Timer timer = Dali::Timer::New( 0 );
70 timer.TickSignal().Disconnect( func );
72 } // namespace anonymous
74 class MockWebEngineContext : public Dali::WebEngineContext
77 MockWebEngineContext()
78 : mockModel( Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER )
82 Dali::WebEngineContext::CacheModel GetCacheModel() const override
87 void SetCacheModel( Dali::WebEngineContext::CacheModel cacheModel ) override
89 mockModel = cacheModel;
92 void SetProxyUri( const std::string& uri ) override
96 void SetDefaultProxyAuth( const std::string& username, const std::string& password ) override
100 void SetCertificateFilePath( const std::string& certificatePath ) override
104 void DeleteWebDatabase() override
108 void DeleteWebStorage() override
112 void DeleteLocalFileSystem() override
116 void DisableCache( bool cacheDisabled ) override
120 void ClearCache() override
125 Dali::WebEngineContext::CacheModel mockModel;
128 class MockWebEngineCookieManager : public Dali::WebEngineCookieManager
131 MockWebEngineCookieManager()
132 : mockCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY )
136 void SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy policy ) override
138 mockCookieAcceptPolicy = policy;
141 Dali::WebEngineCookieManager::CookieAcceptPolicy GetCookieAcceptPolicy() const override
143 return mockCookieAcceptPolicy;
146 void ClearCookies() override
150 void SetPersistentStorage( const std::string& path, Dali::WebEngineCookieManager::CookiePersistentStorage storage ) override
155 Dali::WebEngineCookieManager::CookieAcceptPolicy mockCookieAcceptPolicy;
158 class MockWebEngineBackForwardListItem : public Dali::WebEngineBackForwardListItem
161 MockWebEngineBackForwardListItem()
162 : mockUrl( "http://url" ),
163 mockTitle( "title" ),
164 mockOriginalUrl( "http://originalurl" )
168 std::string GetUrl() const override
173 std::string GetTitle() const override
178 std::string GetOriginalUrl() const override
180 return mockOriginalUrl;
185 std::string mockTitle;
186 std::string mockOriginalUrl;
189 class MockWebEngineBackForwardList : public Dali::WebEngineBackForwardList
192 MockWebEngineBackForwardList( )
194 pMockItem( &mockItem )
198 Dali::WebEngineBackForwardListItem& GetCurrentItem() const override
203 Dali::WebEngineBackForwardListItem& GetItemAtIndex( uint32_t index ) const override
208 uint32_t GetItemCount() const override
214 MockWebEngineBackForwardListItem mockItem;
215 WebEngineBackForwardListItem* pMockItem;
218 class MockWebEngineSettings : public WebEngineSettings
221 MockWebEngineSettings()
222 : mockDefaultFontSize( 16 ),
223 mockJavaScriptEnabled( true ),
224 mockAutoFittingEnabled ( true ),
225 mockPluginsEnabled ( true ),
226 mockPrivateBrowsingEnabled( true ),
227 mockLinkMagnifierEnabled( true ),
228 mockKeypadWithoutUserActionUsed( true ),
229 mockAutofillPasswordFormEnabled( true ),
230 mockFormCandidateDataEnabled( true ),
231 mockTextSelectionEnabled( true ),
232 mockTextAutosizingEnable( true ),
233 mockArrowScrollEnable( true ),
234 mockClipboardEnabled( true ),
235 mockImePanelEnabled( true ),
236 mockImageLoadedAutomatically( true ),
237 mockDefaultTextEncodingName()
241 uint32_t GetDefaultFontSize() const override
243 return mockDefaultFontSize;
246 void SetDefaultFontSize( uint32_t size ) override
248 mockDefaultFontSize = size;
251 bool IsJavaScriptEnabled() const override
253 return mockJavaScriptEnabled;
256 void EnableJavaScript( bool enabled ) override
258 mockJavaScriptEnabled = enabled;
261 bool IsAutoFittingEnabled() const override
263 return mockAutoFittingEnabled;
266 void EnableAutoFitting( bool enabled ) override
268 mockAutoFittingEnabled = enabled;
271 bool ArePluginsEnabled() const override
273 return mockPluginsEnabled;
276 void EnablePlugins( bool enabled ) override
278 mockPluginsEnabled = enabled;
281 bool IsPrivateBrowsingEnabled() const override
283 return mockPrivateBrowsingEnabled;
286 void EnablePrivateBrowsing( bool enabled ) override
288 mockPrivateBrowsingEnabled = enabled;
291 bool IsLinkMagnifierEnabled() const override
293 return mockLinkMagnifierEnabled;
296 void EnableLinkMagnifier( bool enabled ) override
298 mockLinkMagnifierEnabled = enabled;
301 bool IsKeypadWithoutUserActionUsed() const override
303 return mockKeypadWithoutUserActionUsed;
306 void UseKeypadWithoutUserAction( bool used ) override
308 mockKeypadWithoutUserActionUsed = used;
311 bool IsAutofillPasswordFormEnabled() const override
313 return mockAutofillPasswordFormEnabled;
316 void EnableAutofillPasswordForm( bool enabled ) override
318 mockAutofillPasswordFormEnabled = enabled;
321 bool IsFormCandidateDataEnabled() const override
323 return mockFormCandidateDataEnabled;
326 void EnableFormCandidateData( bool enabled ) override
328 mockFormCandidateDataEnabled = enabled;
331 bool IsTextSelectionEnabled() const override
333 return mockTextSelectionEnabled;
336 void EnableTextSelection( bool enabled ) override
338 mockTextSelectionEnabled = enabled;
341 bool IsTextAutosizingEnabled() const override
343 return mockTextAutosizingEnable;
346 void EnableTextAutosizing( bool enabled ) override
348 mockTextAutosizingEnable = enabled;
351 bool IsArrowScrollEnabled() const override
353 return mockArrowScrollEnable;
356 void EnableArrowScroll( bool enabled ) override
358 mockArrowScrollEnable = enabled;
361 bool IsClipboardEnabled() const override
363 return mockClipboardEnabled;
366 void EnableClipboard( bool enabled ) override
368 mockClipboardEnabled = enabled;
371 bool IsImePanelEnabled() const override
373 return mockImePanelEnabled;
376 void EnableImePanel( bool enabled ) override
378 mockImePanelEnabled = enabled;
381 bool AreImagesLoadedAutomatically() const override
383 return mockImageLoadedAutomatically;
386 void AllowImagesLoadAutomatically( bool automatic ) override
388 mockImageLoadedAutomatically = automatic;
391 std::string GetDefaultTextEncodingName() const override
393 return mockDefaultTextEncodingName;
396 void SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) override
398 mockDefaultTextEncodingName = defaultTextEncodingName;
401 void AllowMixedContents( bool allowed ) override
405 void EnableSpatialNavigation( bool enabled ) override
409 void EnableWebSecurity( bool enabled ) override
413 void EnableCacheBuilder( bool enabled ) override
417 void UseScrollbarThumbFocusNotifications( bool used ) override
421 void EnableDoNotTrack( bool enabled ) override
425 void AllowFileAccessFromExternalUrl( bool allowed ) override
429 void AllowScriptsOpenWindows( bool allowed ) override
434 int mockDefaultFontSize;
435 bool mockJavaScriptEnabled;
436 bool mockAutoFittingEnabled;
437 bool mockPluginsEnabled;
438 bool mockPrivateBrowsingEnabled;
439 bool mockLinkMagnifierEnabled;
440 bool mockKeypadWithoutUserActionUsed;
441 bool mockAutofillPasswordFormEnabled;
442 bool mockFormCandidateDataEnabled;
443 bool mockTextSelectionEnabled;
444 bool mockTextAutosizingEnable;
445 bool mockArrowScrollEnable;
446 bool mockClipboardEnabled;
447 bool mockImePanelEnabled;
448 bool mockImageLoadedAutomatically;
449 std::string mockDefaultTextEncodingName;
452 class WebEngine: public Dali::BaseObject
456 using JavaScriptEvaluatedResultCallback = std::function<void(const std::string&)>;
457 using JavaScriptAlertCallback = std::function<bool(const std::string&)>;
458 using JavaScriptConfirmCallback = std::function<bool(const std::string&)>;
459 using JavaScriptPromptCallback = std::function<bool(const std::string&, const std::string&)>;
463 , mCurrentPlusOnePos( 0 )
465 , mEvaluating( false )
466 , mScrollPosition( 0, 0 )
467 , mScrollSize( 500, 500 )
468 , mContentSize( 500, 500 )
471 if ( gInstanceCount == 1 ) // only first web engine need be saved.
476 mockWebEngineSettings = new MockWebEngineSettings();
477 mockWebEngineContext = new MockWebEngineContext();
478 mockWebEngineCookieManager = new MockWebEngineCookieManager();
479 mockWebEngineBackForwardList = new MockWebEngineBackForwardList();
485 if( !gInstanceCount )
490 delete mockWebEngineSettings;
491 delete mockWebEngineContext;
492 delete mockWebEngineCookieManager;
493 delete mockWebEngineBackForwardList;
496 Dali::WebEngineSettings& GetSettings() const
498 return *mockWebEngineSettings;
501 Dali::WebEngineContext& GetContext() const
503 return *mockWebEngineContext;
506 Dali::WebEngineCookieManager& GetCookieManager() const
508 return *mockWebEngineCookieManager;
511 Dali::WebEngineBackForwardList& GetBackForwardList() const
513 return *mockWebEngineBackForwardList;
516 void LoadUrl( const std::string& url )
519 ConnectToGlobalSignal( &OnLoadUrl );
522 const std::string& GetUrl() const
527 std::string GetTitle() const
529 return std::string("title");
532 Dali::PixelData GetFavicon() const
534 uint8_t* faviconData = new uint8_t[ 16 ];
536 faviconData[ 0 ] = 0xff;
537 faviconData[ 1 ] = 0x00;
538 faviconData[ 2 ] = 0x00;
539 faviconData[ 3 ] = 0xff;
540 faviconData[ 4 ] = 0xff;
541 faviconData[ 5 ] = 0x00;
542 faviconData[ 6 ] = 0x00;
543 faviconData[ 7 ] = 0xff;
544 faviconData[ 8 ] = 0xff;
545 faviconData[ 9 ] = 0x00;
546 faviconData[ 10 ] = 0x00;
547 faviconData[ 11 ] = 0xff;
548 faviconData[ 12 ] = 0xff;
549 faviconData[ 13 ] = 0x00;
550 faviconData[ 14 ] = 0x00;
551 faviconData[ 15 ] = 0xff;
553 return Dali::PixelData::New( faviconData, 16, 2, 2,
554 Dali::Pixel::Format::RGBA8888,
555 Dali::PixelData::ReleaseFunction::DELETE_ARRAY );
558 bool CanGoForward() const
560 return mHistory.size() > mCurrentPlusOnePos;
565 ConnectToGlobalSignal( &OnGoForward );
568 bool CanGoBack() const
570 return mCurrentPlusOnePos > 1;
575 ConnectToGlobalSignal( &OnGoBack );
578 void EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
584 ConnectToGlobalSignal( &OnEvaluteJavaScript );
586 mResultCallbacks.push_back( resultHandler );
590 void RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
594 ConnectToGlobalSignal( &OnJavaScriptAlert );
595 mJavaScriptAlertCallback = callback;
599 void RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
603 ConnectToGlobalSignal( &OnJavaScriptConfirm );
604 mJavaScriptConfirmCallback = callback;
608 void RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
612 ConnectToGlobalSignal( &OnJavaScriptPrompt );
613 mJavaScriptPromptCallback = callback;
619 ConnectToGlobalSignal( &OnClearHistory );
622 const std::string& GetUserAgent() const
627 void SetUserAgent( const std::string& userAgent )
629 mUserAgent = userAgent;
632 void ScrollBy( int dx, int dy )
634 mScrollPosition += Dali::Vector2( dx, dy );
635 if ( mScrollPosition.y + mScrollSize.height > mContentSize.height )
637 ConnectToGlobalSignal( &OnScrollEdge );
641 void SetScrollPosition( int x, int y )
643 mScrollPosition.x = x;
644 mScrollPosition.y = y;
647 Dali::Vector2 GetScrollPosition() const
649 return mScrollPosition;
652 Dali::Vector2 GetScrollSize() const
657 Dali::Vector2 GetContentSize() const
662 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal()
664 return mPageLoadStartedSignal;
667 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadInProgressSignal()
669 return mPageLoadInProgressSignal;
672 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal()
674 return mPageLoadFinishedSignal;
677 Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal()
679 return mPageLoadErrorSignal;
682 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal()
684 return mScrollEdgeReachedSignal;
687 Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& UrlChangedSignal()
689 return mUrlChangedSignal;
693 std::vector< std::string > mHistory;
694 size_t mCurrentPlusOnePos;
695 std::string mUserAgent;
696 Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadStartedSignal;
697 Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadInProgressSignal;
698 Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadFinishedSignal;
699 Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType mPageLoadErrorSignal;
700 std::vector<JavaScriptEvaluatedResultCallback> mResultCallbacks;
703 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType mScrollEdgeReachedSignal;
704 Dali::Vector2 mScrollPosition;
705 Dali::Vector2 mScrollSize;
706 Dali::Vector2 mContentSize;
707 WebEngineBackForwardList* mockWebEngineBackForwardList;
708 WebEngineContext* mockWebEngineContext;
709 WebEngineCookieManager* mockWebEngineCookieManager;
710 WebEngineSettings* mockWebEngineSettings;
711 Dali::WebEnginePlugin::WebEngineUrlChangedSignalType mUrlChangedSignal;
713 JavaScriptAlertCallback mJavaScriptAlertCallback;
714 JavaScriptConfirmCallback mJavaScriptConfirmCallback;
715 JavaScriptPromptCallback mJavaScriptPromptCallback;
724 DisconnectFromGlobalSignal( &OnGoBack );
726 if( gInstance && gInstance->CanGoBack() )
728 gInstance->mCurrentPlusOnePos--;
735 DisconnectFromGlobalSignal( &OnGoForward );
737 if( gInstance && gInstance->CanGoForward() )
739 gInstance->mCurrentPlusOnePos++;
746 DisconnectFromGlobalSignal( &OnLoadUrl );
750 if( gInstance->mHistory.size() > gInstance->mCurrentPlusOnePos )
752 gInstance->mHistory.erase( gInstance->mHistory.begin() + gInstance->mCurrentPlusOnePos, gInstance->mHistory.end() );
754 gInstance->mHistory.push_back( gInstance->mUrl );
755 gInstance->mCurrentPlusOnePos++;
756 gInstance->mPageLoadStartedSignal.Emit( gInstance->mUrl );
757 gInstance->mPageLoadInProgressSignal.Emit( gInstance->mUrl );
758 gInstance->mPageLoadFinishedSignal.Emit( gInstance->mUrl );
759 gInstance->mUrlChangedSignal.Emit( "http://new-test" );
766 DisconnectFromGlobalSignal( &OnScrollEdge );
770 gInstance->mScrollEdgeReachedSignal.Emit( Dali::WebEnginePlugin::ScrollEdge::BOTTOM );
776 bool OnEvaluteJavaScript()
778 DisconnectFromGlobalSignal( &OnEvaluteJavaScript );
782 for( auto& func : gInstance->mResultCallbacks )
786 gInstance->mResultCallbacks.clear();
791 bool OnJavaScriptAlert()
793 DisconnectFromGlobalSignal( &OnJavaScriptAlert );
796 gInstance->mJavaScriptAlertCallback( "this is an alert popup." );
801 bool OnJavaScriptConfirm()
803 DisconnectFromGlobalSignal( &OnJavaScriptConfirm );
806 gInstance->mJavaScriptConfirmCallback( "this is a confirm popup." );
811 bool OnJavaScriptPrompt()
813 DisconnectFromGlobalSignal( &OnJavaScriptPrompt );
816 gInstance->mJavaScriptPromptCallback( "this is a prompt pompt.", "" );
821 bool OnClearHistory()
823 DisconnectFromGlobalSignal( &OnClearHistory );
825 if( gInstance && gInstance->mCurrentPlusOnePos )
827 std::string url = gInstance->mHistory[ gInstance->mCurrentPlusOnePos - 1 ];
828 std::vector< std::string >().swap( gInstance->mHistory );
829 gInstance->mHistory.push_back( url );
830 gInstance->mCurrentPlusOnePos = 1;
837 inline WebEngine& GetImplementation( Dali::WebEngine& webEngine )
839 DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
840 BaseObject& handle = webEngine.GetBaseObject();
841 return static_cast< Internal::Adaptor::WebEngine& >( handle );
844 inline const WebEngine& GetImplementation( const Dali::WebEngine& webEngine )
846 DALI_ASSERT_ALWAYS( webEngine && "WebEngine handle is empty." );
847 const BaseObject& handle = webEngine.GetBaseObject();
848 return static_cast< const Internal::Adaptor::WebEngine& >( handle );
851 } // namespace Adaptor
853 } // namespace Internal
855 // Dali::WebEngine Implementation
856 WebEngine::WebEngine()
860 WebEngine::WebEngine( Internal::Adaptor::WebEngine* internal )
861 : BaseHandle( internal )
865 WebEngine::~WebEngine()
869 WebEngine WebEngine::New()
871 Internal::Adaptor::WebEngine* baseObject = new Internal::Adaptor::WebEngine();
873 return WebEngine( baseObject );
876 WebEngine::WebEngine( const WebEngine& WebEngine )
877 : BaseHandle( WebEngine )
881 WebEngine& WebEngine::operator=( const WebEngine& webEngine )
883 BaseHandle::operator=( webEngine );
887 WebEngine WebEngine::DownCast( BaseHandle handle )
889 return WebEngine( dynamic_cast< Internal::Adaptor::WebEngine* >( handle.GetObjectPtr() ) );
892 void WebEngine::Create( int width, int height, const std::string& locale, const std::string& timezoneId )
896 void WebEngine::Create( int width, int height, int argc, char** argv )
900 void WebEngine::Destroy()
904 WebEngineSettings& WebEngine::GetSettings() const
906 return Internal::Adaptor::GetImplementation( *this ).GetSettings();
909 WebEngineContext& WebEngine::GetContext() const
911 return Internal::Adaptor::GetImplementation( *this ).GetContext();
914 WebEngineCookieManager& WebEngine::GetCookieManager() const
916 return Internal::Adaptor::GetImplementation( *this ).GetCookieManager();
919 WebEngineBackForwardList& WebEngine::GetBackForwardList() const
921 return Internal::Adaptor::GetImplementation( *this ).GetBackForwardList();
924 void WebEngine::LoadUrl( const std::string& url )
926 return Internal::Adaptor::GetImplementation( *this ).LoadUrl( url );
929 std::string WebEngine::GetTitle() const
931 return Internal::Adaptor::GetImplementation( *this ).GetTitle();
934 Dali::PixelData WebEngine::GetFavicon() const
936 return Internal::Adaptor::GetImplementation( *this ).GetFavicon();
939 const std::string& WebEngine::GetUrl()
941 return Internal::Adaptor::GetImplementation( *this ).GetUrl();
944 NativeImageInterfacePtr WebEngine::GetNativeImageSource()
947 Dali::NativeImageSourcePtr sourcePtr = Dali::NativeImageSource::New( source );
951 void WebEngine::LoadHtmlString( const std::string& htmlString )
955 void WebEngine::Reload()
959 void WebEngine::StopLoading()
963 void WebEngine::Suspend()
967 void WebEngine::Resume()
971 bool WebEngine::CanGoForward()
973 return Internal::Adaptor::GetImplementation( *this ).CanGoForward();
976 void WebEngine::GoForward()
978 Internal::Adaptor::GetImplementation( *this ).GoForward();
981 bool WebEngine::CanGoBack()
983 return Internal::Adaptor::GetImplementation( *this ).CanGoBack();
986 void WebEngine::GoBack()
988 Internal::Adaptor::GetImplementation( *this ).GoBack();
991 void WebEngine::EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler )
993 Internal::Adaptor::GetImplementation( *this ).EvaluateJavaScript( script, resultHandler );
996 void WebEngine::AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void(const std::string&) > handler )
1000 void WebEngine::RegisterJavaScriptAlertCallback( Dali::WebEnginePlugin::JavaScriptAlertCallback callback )
1002 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptAlertCallback( callback );
1005 void WebEngine::JavaScriptAlertReply()
1009 void WebEngine::RegisterJavaScriptConfirmCallback( Dali::WebEnginePlugin::JavaScriptConfirmCallback callback )
1011 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptConfirmCallback( callback );
1014 void WebEngine::JavaScriptConfirmReply( bool confirmed )
1018 void WebEngine::RegisterJavaScriptPromptCallback( Dali::WebEnginePlugin::JavaScriptPromptCallback callback )
1020 Internal::Adaptor::GetImplementation( *this ).RegisterJavaScriptPromptCallback( callback );
1023 void WebEngine::JavaScriptPromptReply( const std::string& result )
1027 void WebEngine::ClearAllTilesResources()
1031 void WebEngine::ClearHistory()
1033 Internal::Adaptor::GetImplementation( *this ).ClearHistory();
1036 const std::string& WebEngine::GetUserAgent() const
1038 return Internal::Adaptor::GetImplementation( *this ).GetUserAgent();
1041 void WebEngine::SetUserAgent( const std::string& userAgent )
1043 Internal::Adaptor::GetImplementation( *this ).SetUserAgent( userAgent );
1046 void WebEngine::ScrollBy( int dx, int dy )
1048 Internal::Adaptor::GetImplementation( *this ).ScrollBy( dx, dy );
1051 void WebEngine::SetScrollPosition( int x, int y )
1053 Internal::Adaptor::GetImplementation( *this ).SetScrollPosition( x, y );
1056 Dali::Vector2 WebEngine::GetScrollPosition() const
1058 return Internal::Adaptor::GetImplementation( *this ).GetScrollPosition();
1061 Dali::Vector2 WebEngine::GetScrollSize() const
1063 return Internal::Adaptor::GetImplementation( *this ).GetScrollSize();
1066 Dali::Vector2 WebEngine::GetContentSize() const
1068 return Internal::Adaptor::GetImplementation( *this ).GetContentSize();
1071 void WebEngine::SetSize( int width, int height )
1075 bool WebEngine::SendTouchEvent( const TouchEvent& touch )
1080 bool WebEngine::SendKeyEvent( const KeyEvent& event )
1085 bool WebEngine::SendHoverEvent( const HoverEvent& event )
1090 bool WebEngine::SendWheelEvent( const WheelEvent& event )
1095 void WebEngine::SetFocus( bool focused )
1099 void WebEngine::UpdateDisplayArea( Dali::Rect< int > displayArea )
1103 void WebEngine::EnableVideoHole( bool enabled )
1107 void WebEngine::EnableMouseEvents( bool enabled )
1111 void WebEngine::EnableKeyEvents( bool enabled )
1115 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadStartedSignal()
1117 return Internal::Adaptor::GetImplementation( *this ).PageLoadStartedSignal();
1120 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadInProgressSignal()
1122 return Internal::Adaptor::GetImplementation( *this ).PageLoadInProgressSignal();
1125 Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadFinishedSignal()
1127 return Internal::Adaptor::GetImplementation( *this ).PageLoadFinishedSignal();
1130 Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& WebEngine::PageLoadErrorSignal()
1132 return Internal::Adaptor::GetImplementation( *this ).PageLoadErrorSignal();
1135 Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& WebEngine::ScrollEdgeReachedSignal()
1137 return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeReachedSignal();
1140 Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& WebEngine::UrlChangedSignal()
1142 return Internal::Adaptor::GetImplementation( *this ).UrlChangedSignal();
1145 } // namespace Dali;