X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fweb-engine%2Fcommon%2Fweb-engine-impl.cpp;h=257b067694f33ff0f87ec0b7c5271194fd57f4eb;hb=5e107006fc541ce919d678785c54b314e7ba6c4e;hp=0a6ecf08ad88631a5435db1ddfb3ab96bb4da18b;hpb=90b33a3ebac36696f21ce91910b2e0bf2d60fb42;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/web-engine/common/web-engine-impl.cpp b/dali/internal/web-engine/common/web-engine-impl.cpp index 0a6ecf0..257b067 100755 --- a/dali/internal/web-engine/common/web-engine-impl.cpp +++ b/dali/internal/web-engine/common/web-engine-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,9 +19,9 @@ #include // EXTERNAL INCLUDES -#include #include #include +#include #include // INTERNAL INCLUDES @@ -36,29 +36,25 @@ namespace Dali { - namespace Internal { - namespace Adaptor { - namespace // unnamed namespace { - -constexpr char const * const kPluginFullNamePrefix = "libdali2-web-engine-"; -constexpr char const * const kPluginFullNamePostfix = "-plugin.so"; -constexpr char const * const kPluginFullNameDefault = "libdali2-web-engine-plugin.so"; +constexpr char const* const kPluginFullNamePrefix = "libdali2-web-engine-"; +constexpr char const* const kPluginFullNamePostfix = "-plugin.so"; +constexpr char const* const kPluginFullNameDefault = "libdali2-web-engine-plugin.so"; // Note: Dali WebView policy does not allow to use multiple web engines in an application. // So once pluginName is set to non-empty string, it will not change. std::string pluginName; -std::string MakePluginName( const char* environmentName ) +std::string MakePluginName(const char* environmentName) { std::stringstream fullName; fullName << kPluginFullNamePrefix << environmentName << kPluginFullNamePostfix; - return std::move( fullName.str() ); + return std::move(fullName.str()); } Dali::BaseHandle Create() @@ -66,7 +62,7 @@ Dali::BaseHandle Create() return Dali::WebEngine::New(); } -Dali::TypeRegistration type( typeid( Dali::WebEngine ), typeid( Dali::BaseHandle ), Create ); +Dali::TypeRegistration type(typeid(Dali::WebEngine), typeid(Dali::BaseHandle), Create); } // unnamed namespace @@ -74,7 +70,7 @@ WebEnginePtr WebEngine::New() { WebEngine* instance = new WebEngine(); - if( !instance->Initialize() ) + if(!instance->Initialize()) { delete instance; return nullptr; @@ -84,49 +80,49 @@ WebEnginePtr WebEngine::New() } WebEngine::WebEngine() -: mPlugin( NULL ), - mHandle( NULL ), - mCreateWebEnginePtr( NULL ), - mDestroyWebEnginePtr( NULL ) +: mPlugin(NULL), + mHandle(NULL), + mCreateWebEnginePtr(NULL), + mDestroyWebEnginePtr(NULL) { } WebEngine::~WebEngine() { - if( mHandle != NULL ) + if(mHandle != NULL) { - if( mDestroyWebEnginePtr != NULL ) + if(mDestroyWebEnginePtr != NULL) { mPlugin->Destroy(); - mDestroyWebEnginePtr( mPlugin ); + mDestroyWebEnginePtr(mPlugin); } - dlclose( mHandle ); + dlclose(mHandle); } } bool WebEngine::InitializePluginHandle() { - if( pluginName.length() == 0 ) + if(pluginName.length() == 0) { // pluginName is not initialized yet. - const char* name = EnvironmentVariable::GetEnvironmentVariable( DALI_ENV_WEB_ENGINE_NAME ); - if( name ) + const char* name = EnvironmentVariable::GetEnvironmentVariable(DALI_ENV_WEB_ENGINE_NAME); + if(name) { - pluginName = MakePluginName( name ); - mHandle = dlopen( pluginName.c_str(), RTLD_LAZY ); - if( mHandle ) + pluginName = MakePluginName(name); + mHandle = dlopen(pluginName.c_str(), RTLD_LAZY); + if(mHandle) { return true; } } - pluginName = std::string( kPluginFullNameDefault ); + pluginName = std::string(kPluginFullNameDefault); } - mHandle = dlopen( pluginName.c_str(), RTLD_LAZY ); - if( !mHandle ) + mHandle = dlopen(pluginName.c_str(), RTLD_LAZY); + if(!mHandle) { - DALI_LOG_ERROR( "Can't load %s : %s\n", pluginName.c_str(), dlerror() ); + DALI_LOG_ERROR("Can't load %s : %s\n", pluginName.c_str(), dlerror()); return false; } @@ -137,45 +133,45 @@ bool WebEngine::Initialize() { char* error = NULL; - if( !InitializePluginHandle() ) + if(!InitializePluginHandle()) { return false; } - mCreateWebEnginePtr = reinterpret_cast< CreateWebEngineFunction >( dlsym( mHandle, "CreateWebEnginePlugin" ) ); - if( mCreateWebEnginePtr == NULL ) + mCreateWebEnginePtr = reinterpret_cast(dlsym(mHandle, "CreateWebEnginePlugin")); + if(mCreateWebEnginePtr == NULL) { - DALI_LOG_ERROR( "Can't load symbol CreateWebEnginePlugin(), error: %s\n", error ); + DALI_LOG_ERROR("Can't load symbol CreateWebEnginePlugin(), error: %s\n", error); return false; } - mDestroyWebEnginePtr = reinterpret_cast< DestroyWebEngineFunction >( dlsym( mHandle, "DestroyWebEnginePlugin" ) ); + mDestroyWebEnginePtr = reinterpret_cast(dlsym(mHandle, "DestroyWebEnginePlugin")); - if( mDestroyWebEnginePtr == NULL ) + if(mDestroyWebEnginePtr == NULL) { - DALI_LOG_ERROR( "Can't load symbol DestroyWebEnginePlugin(), error: %s\n", error ); + DALI_LOG_ERROR("Can't load symbol DestroyWebEnginePlugin(), error: %s\n", error); return false; } mPlugin = mCreateWebEnginePtr(); - if( mPlugin == NULL ) + if(mPlugin == NULL) { - DALI_LOG_ERROR( "Can't create the WebEnginePlugin object\n" ); + DALI_LOG_ERROR("Can't create the WebEnginePlugin object\n"); return false; } return true; } -void WebEngine::Create( int width, int height, const std::string& locale, const std::string& timezoneId ) +void WebEngine::Create(int width, int height, const std::string& locale, const std::string& timezoneId) { - mPlugin->Create( width, height, locale, timezoneId ); + mPlugin->Create(width, height, locale, timezoneId); } -void WebEngine::Create( int width, int height, int argc, char** argv ) +void WebEngine::Create(int width, int height, int argc, char** argv) { - mPlugin->Create( width, height, argc, argv ); + mPlugin->Create(width, height, argc, argv); } void WebEngine::Destroy() @@ -208,9 +204,9 @@ Dali::WebEngineBackForwardList& WebEngine::GetBackForwardList() const return mPlugin->GetBackForwardList(); } -void WebEngine::LoadUrl( const std::string& url ) +void WebEngine::LoadUrl(const std::string& url) { - mPlugin->LoadUrl( url ); + mPlugin->LoadUrl(url); } std::string WebEngine::GetTitle() const @@ -233,14 +229,14 @@ const std::string& WebEngine::GetUserAgent() const return mPlugin->GetUserAgent(); } -void WebEngine::SetUserAgent( const std::string& userAgent ) +void WebEngine::SetUserAgent(const std::string& userAgent) { - mPlugin->SetUserAgent( userAgent ); + mPlugin->SetUserAgent(userAgent); } -void WebEngine::LoadHtmlString( const std::string& htmlString ) +void WebEngine::LoadHtmlString(const std::string& htmlString) { - mPlugin->LoadHtmlString( htmlString ); + mPlugin->LoadHtmlString(htmlString); } void WebEngine::Reload() @@ -263,14 +259,14 @@ void WebEngine::Resume() mPlugin->Resume(); } -void WebEngine::ScrollBy( int deltaX, int deltaY ) +void WebEngine::ScrollBy(int deltaX, int deltaY) { - mPlugin->ScrollBy( deltaX, deltaY ); + mPlugin->ScrollBy(deltaX, deltaY); } -void WebEngine::SetScrollPosition( int x, int y ) +void WebEngine::SetScrollPosition(int x, int y) { - mPlugin->SetScrollPosition( x, y ); + mPlugin->SetScrollPosition(x, y); } Dali::Vector2 WebEngine::GetScrollPosition() const @@ -288,6 +284,36 @@ Dali::Vector2 WebEngine::GetContentSize() const return mPlugin->GetContentSize(); } +void WebEngine::RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback) +{ + mPlugin->RegisterJavaScriptAlertCallback(callback); +} + +void WebEngine::JavaScriptAlertReply() +{ + mPlugin->JavaScriptAlertReply(); +} + +void WebEngine::RegisterJavaScriptConfirmCallback(Dali::WebEnginePlugin::JavaScriptConfirmCallback callback) +{ + mPlugin->RegisterJavaScriptAlertCallback(callback); +} + +void WebEngine::JavaScriptConfirmReply(bool confirmed) +{ + mPlugin->JavaScriptConfirmReply(confirmed); +} + +void WebEngine::RegisterJavaScriptPromptCallback(Dali::WebEnginePlugin::JavaScriptPromptCallback callback) +{ + mPlugin->RegisterJavaScriptPromptCallback(callback); +} + +void WebEngine::JavaScriptPromptReply(const std::string& result) +{ + mPlugin->JavaScriptPromptReply(result); +} + bool WebEngine::CanGoForward() { return mPlugin->CanGoForward(); @@ -308,14 +334,14 @@ void WebEngine::GoBack() mPlugin->GoBack(); } -void WebEngine::EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler ) +void WebEngine::EvaluateJavaScript(const std::string& script, std::function resultHandler) { - mPlugin->EvaluateJavaScript( script, resultHandler ); + mPlugin->EvaluateJavaScript(script, resultHandler); } -void WebEngine::AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void(const std::string&) > handler ) +void WebEngine::AddJavaScriptMessageHandler(const std::string& exposedObjectName, std::function handler) { - mPlugin->AddJavaScriptMessageHandler( exposedObjectName, handler ); + mPlugin->AddJavaScriptMessageHandler(exposedObjectName, handler); } void WebEngine::ClearAllTilesResources() @@ -328,24 +354,79 @@ void WebEngine::ClearHistory() mPlugin->ClearHistory(); } -void WebEngine::SetSize( int width, int height ) +void WebEngine::SetSize(int width, int height) { - mPlugin->SetSize( width, height ); + mPlugin->SetSize(width, height); } -bool WebEngine::SendTouchEvent( const Dali::TouchEvent& touch ) +void WebEngine::EnableMouseEvents(bool enabled) { - return mPlugin->SendTouchEvent( touch ); + mPlugin->EnableMouseEvents(enabled); } -bool WebEngine::SendKeyEvent( const Dali::KeyEvent& event ) +void WebEngine::EnableKeyEvents(bool enabled) { - return mPlugin->SendKeyEvent( event ); + mPlugin->EnableKeyEvents(enabled); } -void WebEngine::SetFocus( bool focused ) +bool WebEngine::SendTouchEvent(const Dali::TouchEvent& touch) { - mPlugin->SetFocus( focused ); + return mPlugin->SendTouchEvent(touch); +} + +bool WebEngine::SendKeyEvent(const Dali::KeyEvent& event) +{ + return mPlugin->SendKeyEvent(event); +} + +void WebEngine::SetFocus(bool focused) +{ + mPlugin->SetFocus(focused); +} + +void WebEngine::SetDocumentBackgroundColor(Dali::Vector4 color) +{ + mPlugin->SetDocumentBackgroundColor(color); +} + +void WebEngine::ClearTilesWhenHidden(bool cleared) +{ + mPlugin->ClearTilesWhenHidden(cleared); +} + +void WebEngine::SetTileCoverAreaMultiplier(float multiplier) +{ + mPlugin->SetTileCoverAreaMultiplier(multiplier); +} + +void WebEngine::EnableCursorByClient(bool enabled) +{ + mPlugin->EnableCursorByClient(enabled); +} + +std::string WebEngine::GetSelectedText() const +{ + return mPlugin->GetSelectedText(); +} + +void WebEngine::UpdateDisplayArea(Dali::Rect displayArea) +{ + mPlugin->UpdateDisplayArea(displayArea); +} + +void WebEngine::EnableVideoHole(bool enabled) +{ + mPlugin->EnableVideoHole(enabled); +} + +bool WebEngine::SendHoverEvent( const Dali::HoverEvent& event ) +{ + return mPlugin->SendHoverEvent( event ); +} + +bool WebEngine::SendWheelEvent( const Dali::WheelEvent& event ) +{ + return mPlugin->SendWheelEvent( event ); } Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadStartedSignal() @@ -353,6 +434,11 @@ Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadStartedSi return mPlugin->PageLoadStartedSignal(); } +Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadInProgressSignal() +{ + return mPlugin->PageLoadInProgressSignal(); +} + Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadFinishedSignal() { return mPlugin->PageLoadFinishedSignal(); @@ -368,8 +454,21 @@ Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& WebEngine::ScrollEd return mPlugin->ScrollEdgeReachedSignal(); } -} // namespace Adaptor; -} // namespace Internal; -} // namespace Dali; +Dali::WebEnginePlugin::WebEngineUrlChangedSignalType& WebEngine::UrlChangedSignal() +{ + return mPlugin->UrlChangedSignal(); +} + +Dali::WebEnginePlugin::WebEngineFormRepostDecisionSignalType& WebEngine::FormRepostDecisionSignal() +{ + return mPlugin->FormRepostDecisionSignal(); +} +Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& WebEngine::FrameRenderedSignal() +{ + return mPlugin->FrameRenderedSignal(); +} +} // namespace Adaptor +} // namespace Internal +} // namespace Dali