{
return true;
}
+
+ int GetPolicyDecisionError() const override
+ {
+ return 1;
+ }
+
+ bool SuspendPolicyDecision() const override
+ {
+ return true;
+ }
};
class MockWebEngineHttpAuthHandler : public Dali::WebEngineHttpAuthHandler
{
return nullptr;
}
+ void ChangeOrientation(int orientation) override
+ {
+ }
std::string GetUrl() const override
{
return std::string();
void AddJavaScriptMessageHandler(const std::string& exposedObjectName, JavaScriptMessageHandlerCallback handler) override
{
}
+ void AddJavaScriptEntireMessageHandler(const std::string& exposedObjectName, JavaScriptEntireMessageHandlerCallback handler) override
+ {
+ }
void RegisterJavaScriptAlertCallback(JavaScriptAlertCallback callback) override
{
}
{
return false;
}
+ void ExitFullscreen() override
+ {
+ }
void RegisterFrameRenderedCallback(WebEngineFrameRenderedCallback callback) override
{
}
void RegisterNavigationPolicyDecidedCallback(WebEngineNavigationPolicyDecidedCallback callback) override
{
}
+ void RegisterNewWindowPolicyDecidedCallback(WebEngineNewWindowPolicyDecidedCallback callback) override
+ {
+ }
void RegisterNewWindowCreatedCallback(WebEngineNewWindowCreatedCallback callback) override
{
}
void RegisterContextMenuHiddenCallback(WebEngineContextMenuHiddenCallback callback) override
{
}
+ void RegisterFullscreenEnteredCallback(WebEngineFullscreenEnteredCallback callback) override
+ {
+ }
+ void RegisterFullscreenExitedCallback(WebEngineFullscreenExitedCallback callback) override
+ {
+ }
+ void RegisterTextFoundCallback(WebEngineTextFoundCallback callback) override
+ {
+ }
void GetPlainTextAsynchronously(PlainTextReceivedCallback callback) override
{
}
}
}
+ void RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback)
+ {
+ mNewWindowPolicyDecidedCallback = callback;
+ }
+
+ void RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback)
+ {
+ mFullscreenEnteredCallback = callback;
+ }
+
+ void RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback)
+ {
+ mFullscreenExitedCallback = callback;
+ }
+
+ void RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback)
+ {
+ mTextFoundCallback = callback;
+ }
+
std::string mUrl;
std::vector<std::string> mHistory;
size_t mCurrentPlusOnePos;
Dali::WebEnginePlugin::GeolocationPermissionCallback mGeolocationPermissionCallback;
Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback mHitTestCreatedCallback;
Dali::WebEnginePlugin::PlainTextReceivedCallback mPlainTextReceivedCallback;
+ Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback mNewWindowPolicyDecidedCallback;
+ Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback mFullscreenEnteredCallback;
+ Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback mFullscreenExitedCallback;
+ Dali::WebEnginePlugin::WebEngineTextFoundCallback mTextFoundCallback;
};
namespace
std::unique_ptr<Dali::WebEngineContextMenu> hiddenMenu(new MockWebEngineContextMenu());
gInstance->mContextMenuHiddenCallback(std::move(hiddenMenu));
}
+ if(gInstance->mNewWindowPolicyDecidedCallback)
+ {
+ std::unique_ptr<Dali::WebEnginePolicyDecision> policyDecision(new MockWebEnginePolicyDecision());
+ gInstance->mNewWindowPolicyDecidedCallback(std::move(policyDecision));
+ }
+ if(gInstance->mFullscreenEnteredCallback)
+ {
+ gInstance->mFullscreenEnteredCallback();
+ }
+ if(gInstance->mFullscreenExitedCallback)
+ {
+ gInstance->mFullscreenExitedCallback();
+ }
+ if(gInstance->mTextFoundCallback)
+ {
+ gInstance->mTextFoundCallback(1);
+ }
}
return false;
}
return sourcePtr;
}
+void WebEngine::ChangeOrientation(int orientation)
+{
+}
+
void WebEngine::LoadHtmlString(const std::string& htmlString)
{
}
{
}
+void WebEngine::AddJavaScriptEntireMessageHandler(const std::string& exposedObjectName, std::function<void(const std::string&, const std::string&)> handler)
+{
+}
+
void WebEngine::RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback)
{
Internal::Adaptor::GetImplementation(*this).RegisterJavaScriptAlertCallback(callback);
return true;
}
+void WebEngine::ExitFullscreen()
+{
+}
+
void WebEngine::SetFocus(bool focused)
{
}
Internal::Adaptor::GetImplementation(*this).GetPlainTextAsynchronously(callback);
}
+void WebEngine::RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback)
+{
+ Internal::Adaptor::GetImplementation(*this).RegisterNewWindowPolicyDecidedCallback(callback);
+}
+
+void WebEngine::RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback)
+{
+ Internal::Adaptor::GetImplementation(*this).RegisterFullscreenEnteredCallback(callback);
+}
+
+void WebEngine::RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback)
+{
+ Internal::Adaptor::GetImplementation(*this).RegisterFullscreenExitedCallback(callback);
+}
+
+void WebEngine::RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback)
+{
+ Internal::Adaptor::GetImplementation(*this).RegisterTextFoundCallback(callback);
+}
+
+
} // namespace Dali
static int gHitTestCreatedCallbackCalled = 0;
static int gCookieManagerChangsWatchCallbackCalled = 0;
static int gPlainTextReceivedCallbackCalled = 0;
+static int gNewWindowPolicyDecidedCallbackCalled = 0;
+static int gFullscreenEnteredCallbackCalled = 0;
+static int gFullscreenExitedCallbackCalled = 0;
+static int gTextFoundCallbackCalled = 0;
struct CallbackFunctor
{
gContextMenuHiddenInstance = std::move(menu);
}
+static void OnNewWindowPolicyDecided(std::unique_ptr<Dali::WebEnginePolicyDecision> decision)
+{
+ gNewWindowPolicyDecidedCallbackCalled++;
+}
+
+static void OnFullscreenEntered()
+{
+ gFullscreenEnteredCallbackCalled++;
+}
+
+static void OnFullscreenExited()
+{
+ gFullscreenExitedCallbackCalled++;
+}
+
+static void OnTextFound(uint32_t arg)
+{
+ gTextFoundCallbackCalled++;
+}
+
} // namespace
void web_view_startup(void)
DALI_TEST_CHECK(gSslCertificateInstance);
DALI_TEST_EQUALS(gSslCertificateInstance->GetPem(), "abc", TEST_LOCATION);
DALI_TEST_CHECK(gSslCertificateInstance->IsContextSecure());
+ DALI_TEST_EQUALS(gSslCertificateInstance->GetPolicyDecisionError(), 1, TEST_LOCATION);
+ DALI_TEST_CHECK(gSslCertificateInstance->SuspendPolicyDecision());
// http authentication.
DALI_TEST_CHECK(gHttpAuthInstance);
view.AddJavaScriptMessageHandler("jsObject",
[](const std::string& arg) {
});
+
+ view.AddJavaScriptEntireMessageHandler("jsObject2",
+ [](const std::string& arg, const std::string& arg2) {
+ });
+
view.SetTtsFocus(true);
+ //view.ChangeOrientation(90);
+
DALI_TEST_CHECK(view);
+ //view.ExitFullscreen();
+
END_TEST;
}
}
END_TEST;
-}
\ No newline at end of file
+}
+
+int UtcDaliWebViewMethodsForCoverage2(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ view.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+ view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+ view.SetProperty(Actor::Property::POSITION, Vector2(0, 0));
+ view.SetProperty(Actor::Property::SIZE, Vector2(800, 600));
+
+ application.GetScene().Add(view);
+ application.SendNotification();
+ application.Render();
+ DALI_TEST_CHECK(view);
+
+ try
+ {
+ // Just call API and exception check.
+ view.ChangeOrientation(90);
+ view.ExitFullscreen();
+ tet_result(TET_PASS);
+ }
+ catch(...)
+ {
+ // Should not throw exception
+ tet_result(TET_FAIL);
+ }
+
+ END_TEST;
+}
+
+int UtcDaliWebViewRegisterNewWindowPolicyDecidedCallback(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ DALI_TEST_CHECK(view);
+
+ view.RegisterNewWindowPolicyDecidedCallback(&OnNewWindowPolicyDecided);
+ DALI_TEST_EQUALS(gNewWindowPolicyDecidedCallbackCalled, 0, TEST_LOCATION);
+
+ view.LoadUrl(TEST_URL1);
+ Test::EmitGlobalTimerSignal();
+ DALI_TEST_EQUALS(gNewWindowPolicyDecidedCallbackCalled, 1, TEST_LOCATION);
+ END_TEST;
+}
+
+int UtcDaliWebViewRegisterFullscreenEnteredCallback(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ DALI_TEST_CHECK(view);
+
+ view.RegisterFullscreenEnteredCallback(&OnFullscreenEntered);
+ DALI_TEST_EQUALS(gFullscreenEnteredCallbackCalled, 0, TEST_LOCATION);
+
+ view.LoadUrl(TEST_URL1);
+ Test::EmitGlobalTimerSignal();
+ DALI_TEST_EQUALS(gFullscreenEnteredCallbackCalled, 1, TEST_LOCATION);
+ END_TEST;
+}
+
+int UtcDaliWebViewRegisterFullscreenExitedCallback(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ DALI_TEST_CHECK(view);
+
+ view.RegisterFullscreenExitedCallback(&OnFullscreenExited);
+ DALI_TEST_EQUALS(gFullscreenExitedCallbackCalled, 0, TEST_LOCATION);
+
+ view.LoadUrl(TEST_URL1);
+ Test::EmitGlobalTimerSignal();
+ DALI_TEST_EQUALS(gFullscreenExitedCallbackCalled, 1, TEST_LOCATION);
+ END_TEST;
+}
+
+int UtcDaliWebViewRegisterTextFoundCallback(void)
+{
+ ToolkitTestApplication application;
+
+ WebView view = WebView::New();
+ DALI_TEST_CHECK(view);
+
+ view.RegisterTextFoundCallback(&OnTextFound);
+ DALI_TEST_EQUALS(gTextFoundCallbackCalled, 0, TEST_LOCATION);
+
+ view.LoadUrl(TEST_URL1);
+ Test::EmitGlobalTimerSignal();
+ DALI_TEST_EQUALS(gTextFoundCallbackCalled, 1, TEST_LOCATION);
+ END_TEST;
+}
/*
- * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 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.
return Control::DownCast<WebView, Internal::WebView>(handle);
}
+void WebView::ChangeOrientation(int orientation)
+{
+ return Dali::Toolkit::GetImpl(*this).ChangeOrientation(orientation);
+}
+
Dali::Toolkit::WebSettings* WebView::GetSettings() const
{
return Dali::Toolkit::GetImpl(*this).GetSettings();
Dali::Toolkit::GetImpl(*this).AddJavaScriptMessageHandler(exposedObjectName, handler);
}
+void WebView::AddJavaScriptEntireMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptEntireMessageHandlerCallback handler)
+{
+ Dali::Toolkit::GetImpl(*this).AddJavaScriptEntireMessageHandler(exposedObjectName, handler);
+}
+
void WebView::RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback)
{
Dali::Toolkit::GetImpl(*this).RegisterJavaScriptAlertCallback(callback);
return Dali::Toolkit::GetImpl(*this).CreateHitTestAsynchronously(x, y, mode, callback);
}
+void WebView::ExitFullscreen()
+{
+ Dali::Toolkit::GetImpl(*this).ExitFullscreen();
+}
+
void WebView::ClearHistory()
{
Dali::Toolkit::GetImpl(*this).ClearHistory();
Dali::Toolkit::GetImpl(*this).RegisterNavigationPolicyDecidedCallback(callback);
}
+void WebView::RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback)
+{
+ Dali::Toolkit::GetImpl(*this).RegisterNewWindowPolicyDecidedCallback(callback);
+}
+
void WebView::RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback)
{
Dali::Toolkit::GetImpl(*this).RegisterNewWindowCreatedCallback(callback);
Dali::Toolkit::GetImpl(*this).RegisterContextMenuHiddenCallback(callback);
}
+void WebView::RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback)
+{
+ Dali::Toolkit::GetImpl(*this).RegisterFullscreenEnteredCallback(callback);
+}
+
+void WebView::RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback)
+{
+ Dali::Toolkit::GetImpl(*this).RegisterFullscreenExitedCallback(callback);
+}
+
+void WebView::RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback)
+{
+ Dali::Toolkit::GetImpl(*this).RegisterTextFoundCallback(callback);
+}
+
void WebView::GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback)
{
Dali::Toolkit::GetImpl(*this).GetPlainTextAsynchronously(callback);
#define DALI_TOOLKIT_WEB_VIEW_H
/*
- * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 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.
*/
static WebView DownCast(BaseHandle handle);
+ /**
+ * @brief Change orientation.
+ */
+ void ChangeOrientation(int orientation);
+
/**
* @brief Get WebSettings of WebEngine.
*/
*/
void AddJavaScriptMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback handler);
+ /**
+ * @brief Inject a JavaScript object with a message handler into the WebView.
+ *
+ * @param[in] exposedObjectName The name of exposed object
+ * @param[in] handler The callback function
+ */
+ void AddJavaScriptEntireMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptEntireMessageHandlerCallback handler);
+
/**
* @brief Register alert callback for javascript.
*
*/
bool CreateHitTestAsynchronously(int32_t x, int32_t y, Dali::WebEngineHitTest::HitTestMode mode, Dali::WebEnginePlugin::WebEngineHitTestCreatedCallback callback);
+ /**
+ * @brief Exit fullscreen.
+ */
+ void ExitFullscreen();
+
/**
* @brief Clear the history of Web.
*/
*/
void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback);
+ /**
+ * @brief Callback to be called when new window policy would be decided.
+ *
+ * @param[in] callback
+ */
+ void RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback);
+
/**
* @brief Callback to be called when a new window would be created.
*
*/
void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback);
+ /**
+ * @brief Callback to be called when fullscreen would be entered.
+ *
+ * @param[in] callback
+ */
+ void RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback);
+
+ /**
+ * @brief Callback to be called when fullscreen would be exited.
+ *
+ * @param[in] callback
+ */
+ void RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback);
+
+ /**
+ * @brief Callback to be called when text would be found.
+ *
+ * @param[in] callback
+ */
+ void RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback);
+
/**
* @brief Get a plain text of current web page asynchronously.
*
#include <dali-toolkit/public-api/image-loader/image-url.h>
#include <dali-toolkit/public-api/image-loader/image.h>
#include <dali-toolkit/public-api/visuals/image-visual-properties.h>
+#include <dali/integration-api/debug.h>
#include <functional>
#include <memory>
mKeyEventsEnabled(true),
mVisualChangeRequired(false),
mScreenshotCapturedCallback{nullptr},
- mFrameRenderedCallback{nullptr}
+ mFrameRenderedCallback{nullptr},
+ mCornerRadius(Vector4::ZERO),
+ mCornerRadiusPolicy(1.0f)
{
mWebEngine = Dali::WebEngine::New();
mKeyEventsEnabled(true),
mVisualChangeRequired(false),
mScreenshotCapturedCallback{nullptr},
- mFrameRenderedCallback{nullptr}
+ mFrameRenderedCallback{nullptr},
+ mCornerRadius(Vector4::ZERO),
+ mCornerRadiusPolicy(1.0f)
{
mWebEngine = Dali::WebEngine::New();
Actor self = Self();
self.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
- self.SetProperty(DevelActor::Property::TOUCH_FOCUSABLE, true);
self.TouchedSignal().Connect(this, &WebView::OnTouchEvent);
self.HoveredSignal().Connect(this, &WebView::OnHoverEvent);
self.WheelEventSignal().Connect(this, &WebView::OnWheelEvent);
mSizeUpdateNotification.NotifySignal().Connect(this, &WebView::OnDisplayAreaUpdated);
mScaleUpdateNotification.NotifySignal().Connect(this, &WebView::OnDisplayAreaUpdated);
+ // Create WebVisual for WebView
+ Property::Map propertyMap;
+ propertyMap.Insert(Dali::Toolkit::Visual::Property::TYPE, Dali::Toolkit::Visual::COLOR);
+ propertyMap.Insert(Dali::Toolkit::Visual::Property::MIX_COLOR, Color::TRANSPARENT);
+ Toolkit::Visual::Base webVisual = Toolkit::VisualFactory::Get().CreateVisual(propertyMap);
+ if(webVisual)
+ {
+ Dali::Toolkit::DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, webVisual);
+ }
+ else
+ {
+ DALI_LOG_ERROR("fail to create webVisual for CornerRadius");
+ Dali::Toolkit::DevelControl::UnregisterVisual(*this, Toolkit::WebView::Property::URL);
+ }
+
if(mWebEngine)
{
mWebEngine.RegisterFrameRenderedCallback(std::bind(&WebView::OnFrameRendered, this));
SetDisplayArea(displayArea);
}
+void WebView::ChangeOrientation(int orientation)
+{
+ if(mWebEngine)
+ {
+ mWebEngine.ChangeOrientation(orientation);
+ }
+}
+
Dali::Toolkit::WebSettings* WebView::GetSettings() const
{
return mWebSettings.get();
}
}
+void WebView::AddJavaScriptEntireMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptEntireMessageHandlerCallback handler)
+{
+ if(mWebEngine)
+ {
+ mWebEngine.AddJavaScriptEntireMessageHandler(exposedObjectName, std::move(handler));
+ }
+}
+
void WebView::RegisterJavaScriptAlertCallback(Dali::WebEnginePlugin::JavaScriptAlertCallback callback)
{
if(mWebEngine)
return mWebEngine ? mWebEngine.CheckVideoPlayingAsynchronously(std::move(callback)) : false;
}
+void WebView::ExitFullscreen()
+{
+ if(mWebEngine)
+ {
+ mWebEngine.ExitFullscreen();
+ }
+}
+
void WebView::RegisterGeolocationPermissionCallback(Dali::WebEnginePlugin::GeolocationPermissionCallback callback)
{
if(mWebEngine)
}
}
+void WebView::RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback)
+{
+ if(mWebEngine)
+ {
+ mWebEngine.RegisterNewWindowPolicyDecidedCallback(callback);
+ }
+}
+
void WebView::RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback)
{
if(mWebEngine)
}
}
+void WebView::RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback)
+{
+ if(mWebEngine)
+ {
+ mWebEngine.RegisterFullscreenEnteredCallback(callback);
+ }
+}
+
+void WebView::RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback)
+{
+ if(mWebEngine)
+ {
+ mWebEngine.RegisterFullscreenExitedCallback(callback);
+ }
+}
+
+void WebView::RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback)
+{
+ if(mWebEngine)
+ {
+ mWebEngine.RegisterTextFoundCallback(callback);
+ }
+}
+
void WebView::GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback)
{
if(mWebEngine)
mFrameRenderedCallback();
}
- // Make sure that mVisual is created only if required.
- if(mVisualChangeRequired || !mVisual)
+ // Make sure that mVisual is created only once.
+ if (mVisual)
+ return;
+
+ // Get webVisual for checking corner radius
+ Toolkit::Visual::Base webVisual = Dali::Toolkit::DevelControl::GetVisual(*this, Toolkit::WebView::Property::URL);
+ Property::Map webMap;
+ webVisual.CreatePropertyMap(webMap);
+ Property::Value* cornerRadiusValue = webMap.Find(Dali::Toolkit::DevelVisual::Property::CORNER_RADIUS);
+ if(cornerRadiusValue)
+ {
+ mCornerRadius = cornerRadiusValue->Get<Vector4>();
+ }
+ Property::Value* cornerRadiusValuePolicy = webMap.Find(Dali::Toolkit::DevelVisual::Property::CORNER_RADIUS_POLICY);
+ if(cornerRadiusValuePolicy)
+ {
+ mCornerRadiusPolicy = cornerRadiusValuePolicy->Get<int>();
+ }
+
+ Dali::Toolkit::ImageUrl nativeImageUrl = Dali::Toolkit::Image::GenerateUrl(mWebEngine.GetNativeImageSource());
+ Property::Map propertyMap;
+ propertyMap.Insert(Dali::Toolkit::Visual::Property::TYPE, Dali::Toolkit::Visual::IMAGE);
+ propertyMap.Insert(Dali::Toolkit::ImageVisual::Property::URL, nativeImageUrl.GetUrl());
+ propertyMap.Insert(Dali::Toolkit::DevelVisual::Property::CORNER_RADIUS, mCornerRadius);
+ propertyMap.Insert(Dali::Toolkit::DevelVisual::Property::CORNER_RADIUS_POLICY, mCornerRadiusPolicy);
+ mVisual = Toolkit::VisualFactory::Get().CreateVisual(propertyMap);
+ if(mVisual)
{
// Reset flag
mVisualChangeRequired = false;
*/
static Dali::WebEngineCookieManager* GetCookieManager();
+ /**
+ * @copydoc Dali::Toolkit::WebView::ChangeOrientation()
+ */
+ void ChangeOrientation(int orientation);
+
/**
* @copydoc Dali::Toolkit::WebView::GetSettings()
*/
*/
void AddJavaScriptMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptMessageHandlerCallback handler);
+ /**
+ * @copydoc Dali::Toolkit::WebView::AddJavaScriptEntireMessageHandler()
+ */
+ void AddJavaScriptEntireMessageHandler(const std::string& exposedObjectName, Dali::WebEnginePlugin::JavaScriptEntireMessageHandlerCallback handler);
+
/**
* @copydoc Dali::Toolkit::WebView::RegisterJavaScriptAlertCallback()
*/
*/
bool CheckVideoPlayingAsynchronously(Dali::WebEnginePlugin::VideoPlayingCallback callback);
+ /**
+ * @copydoc Dali::Toolkit::WebView::ExitFullscreen()
+ */
+ void ExitFullscreen();
+
/**
* @copydoc Dali::Toolkit::WebView::RegisterGeolocationPermissionCallback()
*/
*/
void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback);
+ /**
+ * @copydoc Dali::Toolkit::WebView::RegisterNewWindowPolicyDecidedCallback()
+ */
+ void RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback);
+
/**
* @copydoc Dali::Toolkit::WebView::RegisterNewWindowCreatedCallback()
*/
*/
void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback);
+ /**
+ * @copydoc Dali::Toolkit::WebView::RegisterFullscreenEnteredCallback()
+ */
+ void RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback);
+
+ /**
+ * @copydoc Dali::Toolkit::WebView::RegisterFullscreenExitedCallback()
+ */
+ void RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback);
+
+ /**
+ * @copydoc Dali::Toolkit::WebView::RegisterTextFoundCallback()
+ */
+ void RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback);
+
/**
* @copydoc Dali::Toolkit::WebView::GetPlainTextAsynchronously()
*/
Dali::Toolkit::WebView::WebViewScreenshotCapturedCallback mScreenshotCapturedCallback;
Dali::WebEnginePlugin::WebEngineFrameRenderedCallback mFrameRenderedCallback;
+
+ Vector4 mCornerRadius; /// < Corner radius
+ float mCornerRadiusPolicy; /// < Corner radius policy
+ static std::unordered_map<Dali::WebEnginePlugin*, Dali::WeakHandle<Toolkit::WebView>> mPluginWebViewMap;
};
} // namespace Internal