mWidth = width;
mHeight = height;
- InitWebView(0, nullptr);
+ InitWebView();
WebEngineManager::Get().Add(mWebView, this);
}
void TizenWebEngineChromium::Create(uint32_t width, uint32_t height, uint32_t argc, char** argv)
{
+ // This API must be called at first.
+ ewk_set_arguments(argc, argv);
+
// Check if web engine is available and make sure that web engine is initialized.
if(!WebEngineManager::IsAvailable())
{
mWidth = width;
mHeight = height;
- InitWebView(argc, argv);
+ InitWebView();
WebEngineManager::Get().Add(mWebView, this);
}
-void TizenWebEngineChromium::InitWebView(uint32_t argc, char** argv)
+void TizenWebEngineChromium::InitWebView()
{
- if(argc > 0)
- {
- ewk_set_arguments(argc, argv);
- }
-
Ecore_Wl2_Window* win = AnyCast<Ecore_Wl2_Window*>(Adaptor::Get().GetNativeWindowHandle());
Ewk_Context* context = ewk_context_default_get();
ewk_context_max_refresh_rate_set(context, 60);
evas_object_smart_callback_add(mWebView, "contextmenu,show", &TizenWebEngineChromium::OnContextMenuShown, this);
evas_object_smart_callback_add(mWebView, "contextmenu,hide", &TizenWebEngineChromium::OnContextMenuHidden, this);
- ewk_view_authentication_callback_set(mWebView, &TizenWebEngineChromium::OnAuthenticationChallenged, this);
-
evas_object_resize(mWebView, mWidth, mHeight);
evas_object_show(mWebView);
}
void TizenWebEngineChromium::RegisterJavaScriptAlertCallback(JavaScriptAlertCallback callback)
{
mJavaScriptAlertCallback = callback;
- ewk_view_javascript_alert_callback_set(mWebView, &TizenWebEngineChromium::OnJavaScriptAlert, this);
+ if (mJavaScriptAlertCallback)
+ {
+ ewk_view_javascript_alert_callback_set(mWebView, &TizenWebEngineChromium::OnJavaScriptAlert, this);
+ }
+ else
+ {
+ ewk_view_javascript_alert_callback_set(mWebView, nullptr, nullptr);
+ }
}
void TizenWebEngineChromium::JavaScriptAlertReply()
void TizenWebEngineChromium::RegisterJavaScriptConfirmCallback(JavaScriptConfirmCallback callback)
{
mJavaScriptConfirmCallback = callback;
- ewk_view_javascript_confirm_callback_set(mWebView, &TizenWebEngineChromium::OnJavaScriptConfirm, this);
+ if (mJavaScriptConfirmCallback)
+ {
+ ewk_view_javascript_confirm_callback_set(mWebView, &TizenWebEngineChromium::OnJavaScriptConfirm, this);
+ }
+ else
+ {
+ ewk_view_javascript_confirm_callback_set(mWebView, nullptr, nullptr);
+ }
}
void TizenWebEngineChromium::JavaScriptConfirmReply(bool confirmed)
void TizenWebEngineChromium::RegisterJavaScriptPromptCallback(JavaScriptPromptCallback callback)
{
mJavaScriptPromptCallback = callback;
- ewk_view_javascript_prompt_callback_set(mWebView, &TizenWebEngineChromium::OnJavaScriptPrompt, this);
+ if (mJavaScriptPromptCallback)
+ {
+ ewk_view_javascript_prompt_callback_set(mWebView, &TizenWebEngineChromium::OnJavaScriptPrompt, this);
+ }
+ else
+ {
+ ewk_view_javascript_prompt_callback_set(mWebView, nullptr, nullptr);
+ }
}
void TizenWebEngineChromium::JavaScriptPromptReply(const std::string& result)
void TizenWebEngineChromium::RegisterHttpAuthHandlerCallback(WebEngineHttpAuthHandlerCallback callback)
{
mHttpAuthHandlerCallback = callback;
+ if (mHttpAuthHandlerCallback)
+ {
+ ewk_view_authentication_callback_set(mWebView, &TizenWebEngineChromium::OnAuthenticationChallenged, this);
+ }
+ else
+ {
+ ewk_view_authentication_callback_set(mWebView, nullptr, nullptr);
+ }
}
void TizenWebEngineChromium::RegisterContextMenuShownCallback(WebEngineContextMenuShownCallback callback)
/*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
void TizenWebEngineContext::RegisterDownloadStartedCallback(Dali::WebEngineContext::WebEngineDownloadStartedCallback callback)
{
mWebDownloadStartedCallback = callback;
- ewk_context_did_start_download_callback_set(mEwkContext, &TizenWebEngineContext::OnDownloadStarted, this);
+ if (mWebDownloadStartedCallback)
+ {
+ ewk_context_did_start_download_callback_set(mEwkContext, &TizenWebEngineContext::OnDownloadStarted, this);
+ }
+ else
+ {
+ ewk_context_did_start_download_callback_set(mEwkContext, nullptr, nullptr);
+ }
}
void TizenWebEngineContext::RegisterMimeOverriddenCallback(Dali::WebEngineContext::WebEngineMimeOverriddenCallback callback)
{
mWebMimeOverriddenCallback = callback;
- ewk_context_mime_override_callback_set(mEwkContext, &TizenWebEngineContext::OnMimeOverridden, this);
+ if (mWebMimeOverriddenCallback)
+ {
+ ewk_context_mime_override_callback_set(mEwkContext, &TizenWebEngineContext::OnMimeOverridden, this);
+ }
+ else
+ {
+ ewk_context_mime_override_callback_set(mEwkContext, nullptr, nullptr);
+ }
}
void TizenWebEngineContext::RegisterRequestInterceptedCallback(Dali::WebEngineContext::WebEngineRequestInterceptedCallback callback)
{
mWebRequestInterceptedCallback = callback;
- if (callback)
+ if (mWebRequestInterceptedCallback)
{
ewk_context_intercept_request_callback_set(mEwkContext, &TizenWebEngineContext::OnRequestIntercepted, this);
}
/*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
TizenWebEngineCookieManager::~TizenWebEngineCookieManager()
{
+ ewk_cookie_manager_changes_watch(mEwkCookieManager, nullptr, nullptr);
}
void TizenWebEngineCookieManager::SetCookieAcceptPolicy(Dali::WebEngineCookieManager::CookieAcceptPolicy policy)
void TizenWebEngineCookieManager::ChangesWatch(Dali::WebEngineCookieManager::WebEngineCookieManagerChangesWatchCallback callback)
{
mWebChangesWatchCallback = callback;
- ewk_cookie_manager_changes_watch(mEwkCookieManager, &TizenWebEngineCookieManager::OnChangesWatch, this);
+ if (mWebChangesWatchCallback)
+ {
+ ewk_cookie_manager_changes_watch(mEwkCookieManager, &TizenWebEngineCookieManager::OnChangesWatch, this);
+ }
+ else
+ {
+ ewk_cookie_manager_changes_watch(mEwkCookieManager, nullptr, nullptr);
+ }
}
void TizenWebEngineCookieManager::OnChangesWatch(void *data)
{
TizenWebEngineCookieManager* pThis = static_cast<TizenWebEngineCookieManager*>(data);
- pThis->mWebChangesWatchCallback();
+ if (pThis->mWebChangesWatchCallback)
+ {
+ pThis->mWebChangesWatchCallback();
+ }
}
} // namespace Plugin