#if defined(TIZEN_WEB_SPEECH_RECOGNITION)
#include "content/browser/speech/tts_platform_impl_tizen.h"
#endif
+#if defined(TIZEN_VIDEO_HOLE)
+#include "tizen_src/chromium_impl/media/base/tizen/video_plane_controller.h"
+#endif
static Eina_Bool _ewk_view_default_user_media_permission(
Evas_Object*, Ewk_User_Media_Permission_Request*, void*);
Evas_Object* ret = ewk_view_add(canvas);
- EWebView *webView = GetWebViewFromEvasObject(ret);
+ EWebView* webView = GetEWebViewFromEwkView(ret);
if (!webView || !data || !length)
return ret;
{
EINA_SAFETY_ON_NULL_RETURN_VAL(context, 0);
Evas_Object* ewk_view = CreateWebViewAsEvasObject(context, e);
-
+ LOG(INFO) << "evas: " << e << ", context: " << context << ", ewk_view:" << ewk_view;
if (ewk_view) {
+#if !BUILDFLAG(IS_TIZEN_TV)
ewk_view_user_media_permission_callback_set(ewk_view,
_ewk_view_default_user_media_permission, 0);
+#endif
ewk_view_geolocation_permission_callback_set(ewk_view,
_ewk_view_default_geolocation_permission, 0);
ewk_view_notification_permission_callback_set(ewk_view,
// default web context. It won't be released by destroyed eweb_view because
// ewk_context_default_get does AddRef
Ewk_Context* context = ewk_context_default_get();
+ LOG(INFO) << "evas: " << e << ", context: " << context;
return ewk_view_add_with_context(e, context);
}
Evas_Object* ewk_view_add_in_incognito_mode(Evas* e)
{
- Ewk_Context* context = Ewk_Context::Create(true);
- EINA_SAFETY_ON_NULL_RETURN_VAL(context, NULL);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(e, nullptr);
+ Ewk_Context* context = Ewk_Context::IncognitoContext();
+ LOG(INFO) << "evas: " << e << ", context: " << context;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(context, nullptr);
return ewk_view_add_with_context(e, context);
}
Eina_Bool ewk_view_url_set(Evas_Object* view, const char* url_string)
{
TTRACE_WEB("ewk_view_url_set url: %s", url_string);
+ LOG(INFO) << "view: " << view << ", url: " << url_string;
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, false);
EINA_SAFETY_ON_NULL_RETURN_VAL(url_string, false);
GURL url(url_string);
Eina_Bool ewk_view_reload(Evas_Object *view)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, false);
+ LOG(INFO) << "view: " << view;
impl->Reload();
return true;
}
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
impl->SetScale(scale_factor);
impl->SetScroll(x, y);
+ LOG(INFO) << "view: " << view << ", scale_factor: " << scale_factor << ", x:" << x << ", y:" << y;
return EINA_TRUE;
}
+void ewk_view_scale_changed_callback_set(
+ Evas_Object* view,
+ Ewk_View_Scale_Changed_Callback callback,
+ void* user_data) {
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ impl->SetScaleChangedCallback(callback, user_data);
+}
+
double ewk_view_scale_get(const Evas_Object *view)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, -1);
Eina_Bool ewk_view_back(Evas_Object *view)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, false);
+ LOG(INFO) << "view: " << view;
return impl->GoBack();
}
Eina_Bool ewk_view_forward(Evas_Object *view)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, false);
+ LOG(INFO) << "view: " << view;
return impl->GoForward();
}
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(html, EINA_FALSE);
+ LOG(INFO) << "view: " << view;
impl->LoadHTMLString(html, base_uri, unreachable_uri);
return EINA_TRUE;
}
void ewk_view_suspend(Evas_Object* ewkView)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+ LOG(INFO) << "view: " << ewkView;
impl->Suspend();
}
Eina_Bool ewk_view_user_agent_set(Evas_Object* ewkView, const char* user_agent)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, false);
-
+ LOG(INFO) << "view: " << ewkView << ", user_agent: " << user_agent;
return impl->SetUserAgent(user_agent);
}
Eina_Bool ewk_view_visibility_set(Evas_Object* view, Eina_Bool enable)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
+ LOG(INFO) << "view: " << view << ", enable:" << (bool)enable;
return impl->SetVisibility(enable);
}
{
EINA_SAFETY_ON_NULL_RETURN_VAL(canvas, NULL);
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, NULL);
+ LOG(INFO) << "view: " << view;
return impl->GetSnapshot(view_area, scale_factor);
}
{
EINA_SAFETY_ON_NULL_RETURN_VAL(callback, EINA_FALSE);
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
+ LOG(INFO) << "view: " << view;
return impl->GetSnapshotAsync(view_area, callback, user_data, scale_factor)
? EINA_TRUE
: EINA_FALSE;
unsigned int ewk_view_inspector_server_start(Evas_Object* ewkView, unsigned int port)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, false);
+ LOG(INFO) << "view: " << ewkView << ", port:" << port;
return impl->StartInspectorServer(port);
}
Eina_Bool ewk_view_inspector_server_stop(Evas_Object* ewkView)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, false);
+ LOG(INFO) << "view: " << ewkView;
return impl->StopInspectorServer();
}
void ewk_view_scroll_by(Evas_Object* ewkView, int deltaX, int deltaY)
{
int x, y;
-
+ LOG(INFO) << "view: " << ewkView << ", deltaX:" << deltaX << ", deltaY:" << deltaY;
if (EINA_TRUE == ewk_view_scroll_pos_get(ewkView, &x, &y)) {
ewk_view_scroll_set(ewkView, x + deltaX, y + deltaY);
}
Eina_Bool ewk_view_scroll_pos_get(Evas_Object* ewkView, int* x, int* y)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, false);
- EINA_SAFETY_ON_NULL_RETURN_VAL(x, EINA_FALSE);
- EINA_SAFETY_ON_NULL_RETURN_VAL(y, EINA_FALSE);
return impl->GetScrollPosition(x, y);
}
Eina_Bool ewk_view_scroll_set(Evas_Object* view, int x, int y)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
+ LOG(INFO) << "view: " << view << ", x:" << x << ", y:" << y;
impl->SetScroll(x, y);
return EINA_TRUE;
return EINA_TRUE;
}
+void ewk_view_clear_tiles_on_hide_enabled_set(Evas_Object* ewkView, Eina_Bool enable)
+{
+ LOG_EWK_API_MOCKUP();
+}
+
void ewk_view_password_confirm_popup_callback_set(Evas_Object* view, Ewk_View_Password_Confirm_Popup_Callback callback, void* user_data)
{
LOG_EWK_API_MOCKUP();
void ewk_view_javascript_alert_callback_set(Evas_Object* view, Ewk_View_JavaScript_Alert_Callback callback, void* user_data)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ LOG(INFO) << "view: " << view;
if (callback)
impl->SetJavaScriptAlertCallback(callback, user_data);
}
void ewk_view_javascript_alert_reply(Evas_Object* view)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ LOG(INFO) << "view: " << view;
impl->JavaScriptAlertReply();
}
void ewk_view_javascript_confirm_callback_set(Evas_Object* view, Ewk_View_JavaScript_Confirm_Callback callback, void* user_data)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ LOG(INFO) << "view: " << view;
if (callback)
impl->SetJavaScriptConfirmCallback(callback, user_data);
}
void ewk_view_javascript_confirm_reply(Evas_Object* view, Eina_Bool result)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ LOG(INFO) << "view: " << view;
impl->JavaScriptConfirmReply(result);
}
void ewk_view_javascript_prompt_callback_set(Evas_Object* view, Ewk_View_JavaScript_Prompt_Callback callback, void* user_data)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ LOG(INFO) << "view: " << view;
if (callback)
impl->SetJavaScriptPromptCallback(callback, user_data);
}
void ewk_view_javascript_prompt_reply(Evas_Object* view, const char* result)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ LOG(INFO) << "view: " << view;
impl->JavaScriptPromptReply(result);
}
void ewk_view_before_unload_confirm_panel_callback_set(Evas_Object* ewkView, Ewk_View_Before_Unload_Confirm_Panel_Callback callback, void* userData)
{
- LOG_EWK_API_MOCKUP();
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+ EINA_SAFETY_ON_NULL_RETURN(callback);
+ impl->SetBeforeUnloadConfirmPanelCallback(callback, userData);
}
void ewk_view_before_unload_confirm_panel_reply(Evas_Object* ewkView, Eina_Bool result)
{
- LOG_EWK_API_MOCKUP();
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+ impl->ReplyBeforeUnloadConfirmPanel(result);
}
Eina_Bool ewk_view_web_application_capable_get(Evas_Object* ewkView, Ewk_Web_App_Capable_Get_Callback callback, void* userData)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(callback, EINA_FALSE);
+#if !defined(EWK_BRINGUP) // FIXME::M94 Bringup IPC to MOJO conversion in
+ // WebAppCapableGet
return impl->WebAppCapableGet(callback, userData) ? EINA_TRUE : EINA_FALSE;
+#else
+ return EINA_FALSE;
+#endif
}
Eina_Bool ewk_view_web_application_icon_url_get(Evas_Object* ewkView, Ewk_Web_App_Icon_URL_Get_Callback callback, void* userData)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(callback, EINA_FALSE);
+#if !defined(EWK_BRINGUP) // FIXME::M94 Bringup IPC to MOJO conversion in
+ // WebAppIconUrlGet
return impl->WebAppIconUrlGet(callback, userData) ? EINA_TRUE : EINA_FALSE;
+#else
+ return EINA_FALSE;
+#endif
}
Eina_Bool ewk_view_web_application_icon_urls_get(Evas_Object* ewkView, Ewk_Web_App_Icon_URLs_Get_Callback callback, void* userData)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(callback, EINA_FALSE);
+#if !defined(EWK_BRINGUP) // FIXME::M94 Bringup IPC to MOJO conversion in
+ // WebAppIconUrlsGet
return impl->WebAppIconUrlsGet(callback, userData) ? EINA_TRUE : EINA_FALSE;
+#else
+ return EINA_FALSE;
+#endif
}
Eina_Bool ewk_view_command_execute(Evas_Object* view, const char* command, const char* value)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, false);
EINA_SAFETY_ON_NULL_RETURN_VAL(script, false);
+ LOG(INFO) << "view: " << ewkView;
// callback can be null, so do not test it for null
if (0 != strcmp(script, "")) //check for empty string
return impl->ExecuteJavaScript(script, callback, user_data);
return false;
}
-
Eina_Bool ewk_view_plain_text_get(Evas_Object* view, Ewk_View_Plain_Text_Get_Callback callback, void* user_data)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
void ewk_view_orientation_send(Evas_Object* ewkView, int orientation)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+ LOG(INFO) << "view: " << ewkView << ", orientation:" << orientation;
impl->SetOrientation(orientation);
}
return NULL;
}
+Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* ewkView) {
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, EINA_FALSE);
+ return impl->GetHorizontalPanningHold();
+}
+
+void ewk_view_horizontal_panning_hold_set(Evas_Object* ewkView,
+ Eina_Bool hold) {
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+ impl->SetHorizontalPanningHold(hold);
+}
+
Eina_Bool ewk_view_vertical_panning_hold_get(Evas_Object* ewkView)
{
- LOG_EWK_API_MOCKUP();
- return false;
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, EINA_FALSE);
+ return impl->GetVerticalPanningHold();
}
-void ewk_view_vertical_panning_hold_set(Evas_Object* view, Eina_Bool hold)
-{
- LOG_EWK_API_MOCKUP();
+void ewk_view_vertical_panning_hold_set(Evas_Object* view, Eina_Bool hold) {
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
- // FIX ME: Currently the pan support is not present.
- // In WK2 panning was implemented with evas directly, here its with chorme gesture reconignation
- // So paning is not present yet
+ impl->SetVerticalPanningHold(hold);
}
void ewk_view_orientation_lock_callback_set(Evas_Object* ewkView, Ewk_Orientation_Lock_Cb func, void* data)
impl->SetViewUnfocusAllowCallback(callback, user_data);
}
+void ewk_view_smartrc_show_mic_notification_callback_set(Evas_Object* ewkView, Ewk_View_SmartRC_Mic_Notification_Callback callback, void* user_data)
+{
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+ impl->SetViewSmartrcMicNotificationCallback(callback, user_data);
+#else
+ LOG_EWK_API_MOCKUP("This API is only available in Tizen TV product.");
+#endif
+}
+
void ewk_view_geolocation_permission_callback_set(Evas_Object* ewk_view, Ewk_View_Geolocation_Permission_Callback callback, void* user_data)
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl);
{
EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl, EINA_FALSE);
- std::string value = std::string(ewk_security_origin_host_get(
- ewk_user_media_permission_request_origin_get(
- user_media_permission_request)));
-
- std::string message = std::string(dgettext(
- "WebKit",
- "IDS_WEBVIEW_POP_P1SS_HP2SS_IS_REQUESTING_PERMISSION_TO_USE_YOUR_CAMERA"));
-
- std::string replace_str = std::string("%1$s");
- size_t pos = message.find(replace_str.c_str());
- if (pos != std::string::npos)
- message.replace(pos, replace_str.length(), value.c_str());
-
- replace_str = std::string("(%2$s)");
- pos = message.find(replace_str.c_str());
- if (pos != std::string::npos)
- message.replace(pos, replace_str.length(), "");
+ std::string message =
+ CreatePermissionMessageRequest(user_media_permission_request);
// add for suspending
ewk_user_media_permission_request_suspend(user_media_permission_request);
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(url, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(impl->context(), 0);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(impl->context()->cookieManager(), 0);
std::string cookiesForURL =
impl->context()->cookieManager()->GetCookiesForURL(std::string(url));
if (cookiesForURL.empty())
Eina_Bool ewk_view_fullscreen_exit(Evas_Object* view)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
+ LOG(INFO) << "view: " << view;
impl->ExitFullscreen();
return EINA_TRUE;
}
Eina_Bool ewk_view_draws_transparent_background_set(Evas_Object *view, Eina_Bool enabled)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
- impl->SetDrawsTransparentBackground(enabled);
- return EINA_TRUE;
+ return impl->SetDrawsTransparentBackground(!!enabled);
}
void ewk_view_browser_font_set(Evas_Object* ewkView)
EINA_SAFETY_ON_NULL_RETURN(data);
EINA_SAFETY_ON_NULL_RETURN(length);
- EWebView* impl = GetWebViewFromEvasObject(ewkView);
+ EWebView* impl = GetEWebViewFromEwkView(ewkView);
if (!impl) {
*data = NULL;
*length = 0;
Evas_Object* ewk_view_smart_add(Evas* canvas, Evas_Smart* smart, Ewk_Context* context, Ewk_Page_Group* pageGroup)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(context, 0);
+ LOG(INFO) << "evas: " << canvas << ", context:" << context;
return CreateWebViewAsEvasObject(context, canvas, smart);
}
EINA_SAFETY_ON_NULL_RETURN(request);
Evas_Object* ewkView = request->getView();
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+#if !defined(EWK_BRINGUP) // FIXME: m114 bringup
impl->QuotaRequestReply(request, allow == EINA_TRUE);
+#endif
}
void ewk_view_quota_permission_request_cancel(const Ewk_Quota_Permission_Request* request)
EINA_SAFETY_ON_NULL_RETURN(request);
Evas_Object* ewkView = request->getView();
EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+#if !defined(EWK_BRINGUP) // FIXME: m114 bringup
impl->QuotaRequestCancel(request);
+#endif
}
Eina_Bool ewk_view_focus_set(const Evas_Object* view, Eina_Bool focused)
{
EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
+ LOG(INFO) << "view: " << view << ", focused:" << (bool)focused;
impl->SetFocus(focused);
return EINA_TRUE;
}
return NULL;
}
-Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* o)
+Eina_Bool ewk_view_draws_transparent_background_get(Evas_Object* o)
{
+ EWK_VIEW_IMPL_GET_OR_RETURN(o, impl, EINA_FALSE);
+ return impl->GetDrawsTransparentBackground();
+}
+
+Eina_Bool ewk_view_did_change_theme_color_callback_set(
+ Evas_Object* o,
+ Ewk_View_Did_Change_Theme_Color_Callback callback,
+ void* user_data) {
+ EWK_VIEW_IMPL_GET_OR_RETURN(o, impl, EINA_FALSE);
+ impl->SetDidChangeThemeColorCallback(callback, user_data);
+ return EINA_TRUE;
+}
+
+Eina_Bool ewk_view_split_scroll_overflow_enabled_get(const Evas_Object* o) {
LOG_EWK_API_MOCKUP();
return false;
}
-void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold)
+Eina_Bool ewk_view_save_page_as_mhtml(Evas_Object* o, const char* path, Ewk_View_Save_Page_Callback callback, void* user_data)
+{
+ EWK_VIEW_IMPL_GET_OR_RETURN(o, impl, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(path, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(callback, EINA_FALSE);
+ return impl->SavePageAsMHTML(path, callback, user_data);
+}
+
+void ewk_view_reader_mode_set(Evas_Object* ewk_view, Eina_Bool enable)
{
LOG_EWK_API_MOCKUP();
}
-Eina_Bool ewk_view_draws_transparent_background_get(Evas_Object* o)
+Eina_Bool ewk_view_top_controls_height_set(Evas_Object* ewk_view, size_t top_height, size_t bottom_height)
{
LOG_EWK_API_MOCKUP();
return false;
}
-Eina_Bool ewk_view_split_scroll_overflow_enabled_get(const Evas_Object* o)
+Eina_Bool ewk_view_top_controls_state_set(Evas_Object* ewk_view, Ewk_Top_Control_State constraint, Ewk_Top_Control_State current, Eina_Bool animation)
{
LOG_EWK_API_MOCKUP();
return false;
}
-Eina_Bool ewk_view_did_change_theme_color_callback_set(Evas_Object* o, Ewk_View_Did_Change_Theme_Color_Callback callback, void* user_data)
+Eina_Bool ewk_view_main_frame_scrollbar_visible_set(Evas_Object* ewk_view,
+ Eina_Bool visible) {
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl, EINA_FALSE);
+ return impl->SetMainFrameScrollbarVisible(!!visible);
+}
+
+Eina_Bool ewk_view_main_frame_scrollbar_visible_get(
+ Evas_Object* ewk_view,
+ Ewk_View_Main_Frame_Scrollbar_Visible_Get_Callback callback,
+ void* user_data) {
+ EINA_SAFETY_ON_NULL_RETURN_VAL(callback, EINA_FALSE);
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl, EINA_FALSE);
+
+ return impl->GetMainFrameScrollbarVisible(callback, user_data);
+}
+
+Eina_Bool ewk_view_set_custom_device_pixel_ratio(Evas_Object* ewkView, Eina_Bool enabled)
{
LOG_EWK_API_MOCKUP();
return false;
}
-Eina_Bool ewk_view_save_page_as_mhtml(Evas_Object* o, const char* path, Ewk_View_Save_Page_Callback callback, void* user_data)
+Ewk_Board_Decoding_Capabilities ewk_view_board_decoding_capabilities_get(
+ const Evas_Object* view)
{
- EWK_VIEW_IMPL_GET_OR_RETURN(o, impl, EINA_FALSE);
- EINA_SAFETY_ON_NULL_RETURN_VAL(path, EINA_FALSE);
- EINA_SAFETY_ON_NULL_RETURN_VAL(callback, EINA_FALSE);
- return impl->SavePageAsMHTML(path, callback, user_data);
+ LOG_EWK_API_MOCKUP();
+ return EWK_BOARD_DECODING_CAPABILITIES_UNKNOWN;
}
-void ewk_view_reader_mode_set(Evas_Object* ewk_view, Eina_Bool enable)
+void ewk_view_next_player_for_media_switch_set(
+ Evas_Object* view,
+ int player_id)
{
LOG_EWK_API_MOCKUP();
}
-Eina_Bool ewk_view_top_controls_height_set(Evas_Object* ewk_view, size_t top_height, size_t bottom_height)
+void ewk_view_sw_audio_decoding_set(
+ Evas_Object* view,
+ Eina_Bool use_sw_audio_decoder)
{
LOG_EWK_API_MOCKUP();
- return false;
}
-Eina_Bool ewk_view_top_controls_state_set(Evas_Object* ewk_view, Ewk_Top_Control_State constraint, Ewk_Top_Control_State current, Eina_Bool animation)
+void ewk_view_set_video_geometry(
+ Evas_Object* view,
+ Eina_Rectangle v_area)
{
LOG_EWK_API_MOCKUP();
- return false;
}
-Eina_Bool ewk_view_main_frame_scrollbar_visible_set(Evas_Object* o, Eina_Bool visible)
+void ewk_view_release_players(
+ Evas_Object* view)
{
LOG_EWK_API_MOCKUP();
- return false;
}
-Eina_Bool ewk_view_set_custom_device_pixel_ratio(Evas_Object* ewkView, Eina_Bool enabled)
+void ewk_view_player_set_visibility(
+ Evas_Object* view,
+ int video_id,
+ bool visibility)
{
LOG_EWK_API_MOCKUP();
- return false;
}
-#if BUILDFLAG(IS_TIZEN_TV)
-Eina_Bool ewk_media_translated_url_set(Evas_Object* ewkView, const char* url)
+void ewk_view_broadcast_set_visibility(
+ Evas_Object* view,
+ bool visibility)
{
LOG_EWK_API_MOCKUP();
- return false;
}
-Eina_Bool ewk_view_app_preload_set(Evas_Object* ewkView, Eina_Bool is_preload)
+void ewk_view_player_play(
+ Evas_Object* view,
+ int video_id)
{
LOG_EWK_API_MOCKUP();
- return false;
}
-#endif
-Eina_Bool ewk_view_html_string_override_current_entry_load(Evas_Object* view, const char* html, const char* base_uri, const char* unreachable_url)
+void ewk_view_player_pause(
+ Evas_Object* view,
+ int video_id)
{
LOG_EWK_API_MOCKUP();
+}
+
+Eina_Bool ewk_media_translated_url_set(Evas_Object* ewkView, const char* url)
+{
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(url, EINA_FALSE);
+ impl->SetTranslatedURL(url);
+ return EINA_TRUE;
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
return false;
+#endif
}
-Eina_Bool ewk_view_text_matches_count(Evas_Object* o, const char* text, Ewk_Find_Options options, unsigned max_match_count)
+#if BUILDFLAG(IS_TIZEN_TV)
+Eina_Bool ewk_view_app_preload_set(Evas_Object* ewkView, Eina_Bool is_preload)
{
LOG_EWK_API_MOCKUP();
return false;
}
+#endif
-void ewk_view_voicemanager_label_draw(Evas_Object* view, Evas_Object* image, Eina_Rectangle rect){
- LOG_EWK_API_MOCKUP();
+Evas_Object* ewk_view_favicon_get(const Evas_Object* ewkView)
+{
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, nullptr);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(impl->context(), nullptr);
+ const char* url = ewk_view_url_get(ewkView);
+ return impl->context()->AddFaviconObject(url, impl->GetEvas());
}
-void ewk_view_voicemanager_labels_clear(Evas_Object* view)
+Eina_Bool ewk_view_html_string_override_current_entry_load(Evas_Object* view, const char* html, const char* base_uri, const char* unreachable_url)
+{
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(html, EINA_FALSE);
+ impl->LoadHTMLStringOverridingCurrentEntry(html, base_uri, unreachable_url);
+ return EINA_TRUE;
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
+ return EINA_FALSE;
+#endif
+}
+
+Eina_Bool ewk_view_text_matches_count(Evas_Object* o, const char* text, Ewk_Find_Options options, unsigned max_match_count)
{
LOG_EWK_API_MOCKUP();
+ return false;
}
void ewk_view_mirrored_blur_set(Evas_Object* o, Eina_Bool state)
void ewk_view_add_dynamic_certificate_path(const Evas_Object *ewkView, const char* host, const char* cert_path)
{
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+ impl->AddDynamicCertificatePath(std::string(host), std::string(cert_path));
+#else
LOG_EWK_API_MOCKUP();
+#endif
}
void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable)
{
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ LOG(INFO)<< "ewk_view_atk_deactivation_by_app, enable: " << (bool)enable;
+ impl->DeactivateAtk(enable == EINA_FALSE);
+#else
LOG_EWK_API_MOCKUP();
+#endif
}
char* ewk_view_cookies_get(Evas_Object* o, const char* url)
}
Eina_Bool ewk_view_send_key_event(Evas_Object* ewk_view, void* key_event, Eina_Bool is_press) {
- LOG_EWK_API_MOCKUP();
- return false;
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(key_event, EINA_FALSE);
+#if BUILDFLAG(IS_TIZEN_TV)
+ LOG(INFO) << "view: " << ewk_view << ", is_press :" << (bool)is_press;
+#endif
+ impl->SendKeyEvent(ewk_view, key_event, !!is_press);
+ return EINA_TRUE;
}
Eina_Bool ewk_view_tts_mode_set(Evas_Object* view, ewk_tts_mode tts_mode) {
}
Eina_Bool ewk_view_bg_color_set(Evas_Object* o, int r, int g, int b, int a) {
- LOG_EWK_API_MOCKUP("This will be implemented soon");
- return false;
+ EWK_VIEW_IMPL_GET_OR_RETURN(o, impl, EINA_FALSE);
+ if (r < 0 || r > 255 || g < 0 || g > 255 || b < 0 || b > 255 || a < 0 ||
+ a > 255) {
+ LOG(ERROR) << "Invalid background color";
+ return EINA_FALSE;
+ }
+ return impl->SetBackgroundColor(r, g, b, a);
}
Eina_Bool ewk_view_key_events_enabled_set(Evas_Object* o, Eina_Bool enabled) {
- LOG_EWK_API_MOCKUP();
- return false;
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(o, impl, EINA_FALSE);
+ LOG(INFO)<< "ewk_view_key_events_enabled_set, enabled: " << (bool)enabled;
+ return impl->SetKeyEventsEnabled(!!enabled);
+#else
+ LOG_EWK_API_MOCKUP("This API is only available in Tizen TV product.");
+ return EINA_FALSE;
+#endif
+
+}
+
+Eina_Bool ewk_view_bg_color_get(Evas_Object* view,
+ Ewk_View_Background_Color_Get_Callback callback,
+ void* user_data) {
+ EINA_SAFETY_ON_NULL_RETURN_VAL(callback, EINA_FALSE);
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl, EINA_FALSE);
+
+ return impl->GetBackgroundColor(callback, user_data);
}
void ewk_view_clear_all_tiles_resources(Evas_Object* ewkView) {
+#if BUILDFLAG(IS_TIZEN_TV)
+ LOG(INFO) << "view: " << ewkView;
+#else
LOG_EWK_API_MOCKUP();
+#endif
}
-Eina_Bool ewk_view_set_support_video_hole(Evas_Object* ewkView, Evas_Object* window, Eina_Bool enable, Eina_Bool isVideoWindow) {
+Eina_Bool ewk_view_edge_scroll_by(Evas_Object *ewkView, int dx, int dy)
+{
LOG_EWK_API_MOCKUP();
- return false;
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, EINA_FALSE);
+ LOG(INFO) << "view: " << ewkView << ", dx:" << dx << ", dy:" << dy;
+ return impl->EdgeScrollBy(dx, dy);
+#else
+ LOG_EWK_API_MOCKUP("edge_scroll_by feature is not enabled");
+ return EINA_FALSE;
+#endif
}
-void ewk_view_widget_pepper_extension_callback_set(Evas_Object* ewk_view, Generic_Sync_Call_Callback cb, void* user_data) {
+Eina_Bool ewk_view_set_support_video_hole(Evas_Object* ewkView,
+ void* window,
+ Eina_Bool enable,
+ Eina_Bool isVideoWindow) {
LOG_EWK_API_MOCKUP();
+#if defined(TIZEN_VIDEO_HOLE)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl, EINA_FALSE);
+ LOG(INFO) << "view: " << ewkView << ", enable:" << (bool)enable;
+ // Video hole is set false by default. So further calls are not needed
+ // if |enable| is false.
+ if (enable == EINA_FALSE)
+ return EINA_FALSE;
+
+ impl->EnableVideoHoleSupport();
+ media::VideoPlaneController::SetSharedVideoWindowHandle(
+ window,
+ static_cast<media::VideoPlaneController::RenderingMode>(isVideoWindow));
+ return EINA_TRUE;
+#else
+ LOG_EWK_API_MOCKUP("Video Hole feature is not enabled");
+ return EINA_FALSE;
+#endif
+}
+
+void ewk_view_set_cursor_by_client(Evas_Object* ewkView, Eina_Bool enable) {}
+
+void ewk_view_widget_pepper_extension_callback_set(Evas_Object* ewk_view, Generic_Sync_Call_Callback cb, void* user_data) {
+#if defined(TIZEN_PEPPER_EXTENSIONS) && BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl);
+ impl->SetPepperExtensionCallback(cb, user_data);
+#else
+ NOTIMPLEMENTED() << "This API is only available with TIZEN_PEPPER_EXTENSIONS"
+ << " macro on TIZEN_TV products.";
+#endif
}
void ewk_view_widget_pepper_extension_info_set(Evas_Object* ewk_view, Ewk_Value widget_pepper_ext_info) {
- LOG_EWK_API_MOCKUP();
+#if defined(TIZEN_PEPPER_EXTENSIONS) && BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl);
+ impl->SetPepperExtensionWidgetInfo(widget_pepper_ext_info);
+#else
+ NOTIMPLEMENTED() << "This API is only available with TIZEN_PEPPER_EXTENSIONS"
+ << " macro on TIZEN_TV products.";
+#endif
}
-void ewk_view_offscreen_rendering_enabled_set(Evas_Object* o, Eina_Bool enabled)
+void ewk_view_resume_network_loading(Evas_Object* ewk_view)
{
- LOG_EWK_API_MOCKUP();
+#if BUILDFLAG(IS_TIZEN_TV)
+ LOG(INFO) << "view : " << ewk_view;
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl);
+ impl->ResumeNetworkLoading();
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV Browser");
+#endif
}
-void ewk_view_ime_window_set(Evas_Object* o, void* window)
+void ewk_view_suspend_network_loading(Evas_Object* ewk_view)
+{
+#if BUILDFLAG(IS_TIZEN_TV)
+ LOG(INFO) << "view : " << ewk_view;
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl);
+ impl->SuspendNetworkLoading();
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV Browser");
+#endif
+}
+
+void ewk_view_offscreen_rendering_enabled_set(Evas_Object* o, Eina_Bool enabled)
{
+#if defined(TIZEN_TBM_SUPPORT)
+ EWK_VIEW_IMPL_GET_OR_RETURN(o, impl);
+ impl->SetOffscreenRendering(enabled);
+#if defined(TIZEN_VIDEO_HOLE)
+ media::VideoPlaneController::set_use_wayland_window(true);
+#endif
+#else
LOG_EWK_API_MOCKUP();
+#endif
}
-void ewk_view_smartrc_show_mic_notification_callback_set(Evas_Object* o, Ewk_View_SmartRC_Mic_Notification_Callback callback, void* user_data)
+void ewk_view_ime_window_set(Evas_Object* o, void* window)
{
LOG_EWK_API_MOCKUP();
}
return EINA_FALSE;
}
+void ewk_view_tile_cover_area_multiplier_set(Evas_Object* ewkView,
+ float cover_area_multiplier) {
+ LOG_EWK_API_MOCKUP();
+}
+
Eina_Bool ewk_view_marlin_enable_set(Evas_Object* ewkView, Eina_Bool is_enable)
{
LOG_EWK_API_MOCKUP();
return EINA_FALSE;
}
+Eina_Bool ewk_view_is_video_playing(Evas_Object* o, Ewk_Is_Video_Playing_Callback callback, void* user_data)
+{
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(o, impl, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(callback, EINA_FALSE);
+ LOG(INFO) << __func__;
+ return impl->IsVideoPlaying(callback, user_data) ? EINA_TRUE : EINA_FALSE;
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
+ return EINA_FALSE;
+#endif
+}
+
+Eina_Bool ewk_view_stop_video(Evas_Object* o, Ewk_Stop_Video_Callback callback, void* user_data)
+{
+ LOG_EWK_API_MOCKUP();
+ return EINA_FALSE;
+}
+
Eina_Bool ewk_view_active_drm_set(Evas_Object* view, const char* drm_system_id)
{
LOG_EWK_API_MOCKUP();
return EINA_FALSE;
}
+void ewk_view_broadcast_decoder_set(
+ Evas_Object* view,
+ Ewk_Hardware_Decoders decoder)
+{
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ /* waiting for implement*/
+ //impl->SetBroadcastDecoder(decoder);
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
+#endif
+}
+
void ewk_media_set_subtitle_lang(Evas_Object* ewkView, const char* lang_list)
{
- LOG_EWK_API_MOCKUP();
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+ impl->SetPreferSubtitleLang(lang_list);
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
+#endif
}
void ewk_media_set_parental_rating_result(Evas_Object* ewkView, const char* url, Eina_Bool is_pass)
{
- LOG_EWK_API_MOCKUP();
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+ impl->SetParentalRatingResult(url, is_pass);
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
+#endif
}
-void ewk_media_start_with_high_bit_rate(Evas_Object* ewkView, Eina_Bool is_high_bitrate)
+void ewk_media_start_with_high_bit_rate(Evas_Object* ewkView, Eina_Bool high_bitrate)
{
- LOG_EWK_API_MOCKUP();
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewkView, impl);
+ impl->SetHighBitRate(high_bitrate);
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
+#endif
}
double ewk_view_media_current_time_get(const Evas_Object *o)
{
- LOG_EWK_API_MOCKUP();
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(o, impl, 0);
+ return impl->GetCurrentTime();
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
return 0;
+#endif
}
void ewk_view_request_canvas_fullscreen(Evas_Object* ewkView)
Eina_Bool ewk_view_script_execute_all_frames(Evas_Object *o, const char *script, Ewk_View_Script_Execute_Cb callback, void *user_data)
{
+#if BUILDFLAG(IS_TIZEN_TV)
+ LOG(INFO) << ", view: " << o;
+#else
LOG_EWK_API_MOCKUP();
+#endif
return EINA_FALSE;
}
-void ewk_view_floating_window_state_changed(const Evas_Object *o, Eina_Bool status)
+void ewk_view_voicemanager_label_draw(Evas_Object* view,
+ Evas_Object* image,
+ Eina_Rectangle rect) {
+#if BUILDFLAG(IS_TIZEN_TV)
+ EINA_SAFETY_ON_NULL_RETURN(image);
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ impl->DrawLabel(image, rect);
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
+#endif
+}
+
+void ewk_view_voicemanager_labels_clear(Evas_Object* view) {
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ impl->ClearLabels();
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
+#endif
+}
+
+void ewk_view_floating_window_state_changed(const Evas_Object *view, Eina_Bool status)
{
+#if BUILDFLAG(IS_TIZEN_TV)
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ LOG(INFO) << __FUNCTION__ << ", view: "<< view << ", status: " << status;
+ impl->SetFloatVideoWindowState(status);
+#else
LOG_EWK_API_MOCKUP();
+#endif
+}
+
+void ewk_view_feed_mouse_down(Evas_Object* view,
+ Ewk_Mouse_Button_Type button,
+ int x,
+ int y) {
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ LOG(INFO) << "ewk_view_feed_mouse_down";
+ impl->SendMouseDown(button, x, y);
+}
+
+void ewk_view_feed_mouse_up(Evas_Object* view,
+ Ewk_Mouse_Button_Type button,
+ int x,
+ int y) {
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ impl->SendMouseUp(button, x, y);
+}
+
+void ewk_view_feed_mouse_move(Evas_Object* view, int x, int y) {
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ impl->SendMouseMove(x, y);
+}
+
+void ewk_view_feed_mouse_wheel(Evas_Object* view,
+ Eina_Bool y_direction,
+ int step,
+ int x,
+ int y) {
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ impl->SendMouseWheel(!!y_direction, step, x, y);
}
+void ewk_view_feed_mouse_out(Evas_Object* view) {
+ EWK_VIEW_IMPL_GET_OR_RETURN(view, impl);
+ impl->SendMouseOut();
+}
void ewk_view_auto_login(Evas_Object *view, const char* user_name, const char* password)
{
- LOG_EWK_API_MOCKUP();
+ LOG_EWK_API_MOCKUP("This API is not supported.");
}
void ewk_view_request_manifest(Evas_Object* o,
EWK_VIEW_IMPL_GET_OR_RETURN(o, impl);
impl->RequestManifest(callback, user_data);
}
+
+void ewk_view_media_device_list_get(Evas_Object* o, Ewk_Media_Device_List_Get_Callback callback, void* user_data) {
+#if BUILDFLAG(IS_TIZEN_TV)
+ LOG(INFO) << "ewk_view_media_device_list_get called";
+ EWK_VIEW_IMPL_GET_OR_RETURN(o, impl);
+ EINA_SAFETY_ON_NULL_RETURN(callback);
+ impl->GetMediaDeviceList(callback, user_data);
+#else
+ LOG_EWK_API_MOCKUP("Only for Tizen TV.");
+#endif
+}
+
+void ewk_view_run_mixed_content_confirm_callback_set(
+ Evas_Object* /* ewkView */,
+ Ewk_View_Run_Mixed_Content_Confirm_Callback /* callback */,
+ void* /* user_data */) {}
+
+void ewk_view_error_page_load_callback_set(Evas_Object* ewk_view, Ewk_View_Error_Page_Load_Callback callback, void* user_data)
+{
+ EWK_VIEW_IMPL_GET_OR_RETURN(ewk_view, impl);
+ EINA_SAFETY_ON_NULL_RETURN(callback);
+ impl->SetViewLoadErrorPageCallback(callback, user_data);
+}
+
+Eina_Bool ewk_view_add_item_to_back_forward_list(Evas_Object* o, const Ewk_Back_Forward_List_Item* item)
+{
+ return EINA_FALSE;
+}
+
+void ewk_view_poweroff_suspend(Evas_Object *item) {}