#define ewk_view_product_h
#include "ewk_context_product.h"
+#include "ewk_media_playback_info_product.h"
#include "ewk_value_product.h"
#include "ewk_view_internal.h"
-#if defined(TIZEN_PEPPER_EXTENSIONS)
-#include "ewk_value_product.h"
-#endif
-
#ifdef __cplusplus
extern "C" {
#endif
EXPORT_API void ewk_view_unfocus_allow_callback_set(Evas_Object* o, Ewk_View_Unfocus_Allow_Callback callback, void* user_data);
/**
+ * @brief Set to callback to show or hide the notification of bluetooth mic to user.
+ *
+ * @since_tizen 5.0
+ *
+ * @param[in] o view object
+ * @param[in] callback to show or hide the notification
+ * @param[in] user_data user_data will be passed when result_callback is
+ * called\n -I.e., user data will be kept until callback is called
+ */
+EXPORT_API void ewk_view_smartrc_show_mic_notification_callback_set(Evas_Object* o, Ewk_View_SmartRC_Mic_Notification_Callback callback, void* user_data);
+
+/**
* @brief Requests loading the given contents.
*
* @since_tizen 2.3
* @param item view object to resume new url loading
*
*/
-EXPORT_API void ewk_view_resume_network_loading(Evas_Object* item);
+EXPORT_API void ewk_view_resume_network_loading(Evas_Object* ewkView);
EXPORT_API void ewk_view_poweroff_suspend(Evas_Object *item);
* @param item view object to suspend url loading
*
*/
-EXPORT_API void ewk_view_suspend_network_loading(Evas_Object* item);
+EXPORT_API void ewk_view_suspend_network_loading(Evas_Object* ewkView);
/**
* This function should be use for browser edge scroll.
EXPORT_API void ewk_view_run_mixed_content_confirm_reply(Evas_Object* ewkView, Eina_Bool result);
/**
- * Sets the cover-area (soon rect) multiplier.
+ * Sets the cover-area (soon rect) multiplier.
*
* @param ewkView view object
- * @param coverAreaMultiplier the multiplier of cover-area.
+ * @param cover_area_multiplier the multiplier of cover-area.
*/
EXPORT_API void ewk_view_tile_cover_area_multiplier_set(
Evas_Object* ewkView,
*
* @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
*/
-EXPORT_API Eina_Bool ewk_view_set_support_video_hole(Evas_Object* ewkView, Evas_Object* window, Eina_Bool enable, Eina_Bool isVideoWindow);
+EXPORT_API Eina_Bool ewk_view_set_support_video_hole(Evas_Object* ewkView,
+ void* window,
+ Eina_Bool enable,
+ Eina_Bool isVideoWindow);
/**
- * @brief Sets the support of 4K video, Customize the device pixel ratio for
- * video plane.
+ * @brief Sets the support of canvas hole, Use H/W overlay for video quality of WebGL 360 degree.
+ * Also, The WebBrowser provisionally want to show plane 360 video through canvas hole.
*
* @since_tizen 3.0
*
* @note Should be used after ewk_view_url_set().
*
* @param[in] o the view object
- * @param[in] o enabled a state to set
+ * @param[in] url string (ex. "youtube.com")
*
* @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
*/
-EXPORT_API Eina_Bool ewk_view_set_custom_device_pixel_ratio(Evas_Object* ewkView, Eina_Bool enabled);
+EXPORT_API Eina_Bool ewk_view_set_support_canvas_hole(Evas_Object* ewkView, const char* url);
-/**
- * @brief Gets whether vertical panning is holding.
- *
- * @since_tizen 2.3
- *
- * @param[in] o view object to get whether vertical panning is holding
- *
- * @return @c EINA_TRUE if vertical panning is holding
- * @c EINA_FALSE if not or on failure
- */
-EXPORT_API Eina_Bool ewk_view_vertical_panning_hold_get(Evas_Object* o);
-
-/**
- * Block/Release the vertical pan
- *
- * @param o view object on which pan is to be blocked/release
- * @param hold status of pan
- */
-EXPORT_API void ewk_view_vertical_panning_hold_set(Evas_Object* o, Eina_Bool hold);
/**
* Callback for the generic sync call.
*/
EXPORT_API void ewk_view_widget_pepper_extension_info_set(Evas_Object* ewk_view, Ewk_Value widget_pepper_ext_info);
-#if defined(OS_TIZEN_TV)
+/**
+ * @brief Sets the support of 4K video, Customize the device pixel ratio for
+ * video plane.
+ *
+ * @since_tizen 3.0
+ *
+ * @note Should be used after ewk_view_url_set().
+ *
+ * @param[in] o the view object
+ * @param[in] o enabled a state to set
+ *
+ * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EXPORT_API Eina_Bool ewk_view_set_custom_device_pixel_ratio(Evas_Object* ewkView, Eina_Bool enabled);
+
+/**
+ * @brief Gets whether horizontal panning is holding.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to get whether horizontal panning is holding
+ *
+ * @return @c EINA_TRUE if horizontal panning is holding
+ * @c EINA_FALSE if not or on failure
+ */
+EXPORT_API Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* o);
+
+/**
+ * @brief Sets to hold horizontal panning.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to set to hold horizontal panning
+ * @param[in] hold @c EINA_TRUE to hold horizontal panning
+ * @c EINA_FALSE not to hold
+ */
+EXPORT_API void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold);
+
+/**
+ * @brief Gets whether vertical panning is holding.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] o view object to get whether vertical panning is holding
+ *
+ * @return @c EINA_TRUE if vertical panning is holding
+ * @c EINA_FALSE if not or on failure
+ */
+EXPORT_API Eina_Bool ewk_view_vertical_panning_hold_get(Evas_Object* o);
+
+/**
+ * Block/Release the vertical pan
+ *
+ * @param o view object on which pan is to be blocked/release
+ * @param hold status of pan
+ */
+EXPORT_API void ewk_view_vertical_panning_hold_set(Evas_Object* o, Eina_Bool hold);
+
/**
* Set the translated url to media player.
*
* @return @c EINA_TRUE on success or @c EINA_FALSE on failure
*/
EXPORT_API Eina_Bool ewk_media_translated_url_set(Evas_Object* ewkView, const char* url);
-#endif
/**
* Set app is preload type or not.
EXPORT_API Eina_Bool ewk_view_app_preload_set(Evas_Object* ewkView, Eina_Bool is_preload);
/**
+* Set app enable marlin or not.
+*
+* @param ewkView view object
+* @param is_enable if app enable marlin drm
+*
+* @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+*/
+EXPORT_API Eina_Bool ewk_view_marlin_enable_set(Evas_Object* ewkView, Eina_Bool is_enable);
+
+/**
+ * Sets whitelisted DRM key systems. Passed key systems will be available
+ * through EME. Other systems even if available in the platform will be
+ * unavailable through EME
+ *
+ * @param ewkView View object
+ * @param list Key system names
+ * @param list_size Key system count
+ */
+EXPORT_API Eina_Bool ewk_view_key_system_whitelist_set(Evas_Object* ewkView,
+ const char** list,
+ unsigned list_size);
+
+/**
+ * Sets the active DRM system identifier as provided by the HbbTV application.
+ *
+ * @param ewkView View object
+ * @param drm_system_id Identifier of requested DRM system
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EXPORT_API Eina_Bool ewk_view_active_drm_set(Evas_Object* view, const char* drm_system_id);
+
+/**
+ * Inform webengine about decoder used by broadcast for dual decoding.
+ *
+ * @param view View object
+ * @param decoder Identifier of used decoder
+ */
+EXPORT_API void ewk_view_broadcast_decoder_set(Evas_Object* view,
+ Ewk_Hardware_Decoders decoder);
+
+/**
+* Set the selected text track language to media player.
+*
+* @param ewkView view object
+* @param lang_list comma separated three_digit_language code. (For example "eng,deu")
+*
+*/
+EXPORT_API void ewk_media_set_subtitle_lang(Evas_Object* ewkView, const char* lang_list);
+
+
+/**
+* Set parental rating result to media player.
+*
+* @param ewkView view object
+* @param url media url
+* @param is_pass authentication result true/false
+*
+*/
+EXPORT_API void ewk_media_set_parental_rating_result(Evas_Object* ewkView, const char* url, Eina_Bool is_pass);
+
+/**
+* Set the if use high bit rate to media player.
+*
+* @param ewkView view object
+* @param is_high if app use high bit rate
+*
+*/
+EXPORT_API void ewk_media_start_with_high_bit_rate(Evas_Object* ewkView, Eina_Bool is_high_bitrate);
+
+
+/**
* @brief Sends key event.
*
* @since_tizen 2.4
* @param[in] o View object to set the atk use.
* @param[in] enable EINA_TRUE to set on the atk use.
* EINA_FALSE makes atk not to use, but app use WebSpeech instead of ATK.
- * The default value is EINA_FALSE.
*/
EXPORT_API void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable);
-/*
- * Get cookies associated with an URL.
+typedef enum {
+ EWK_TTS_MODE_DEFAULT = 0, /**< Default mode for normal application */
+ EWK_TTS_MODE_NOTIFICATION = 1, /**< Notification mode(it has same behavior with EWK_TTS_MODE_DEFAULT. not supported in vd) */
+ EWK_TTS_MODE_SCREEN_READER = 2 /**< Accessibiliity mode(TTS works only for accessibility mode) */
+} ewk_tts_mode;
+
+/**
+ * @brief Sets tts mode
+ * up to tizen 4.0(in VD), default tts mode is EWK_TTS_MODE_SCREEN_READER.
+ * so TTS api disabled when accessibility mode turn off.
+ * this api provided to use tts api in none accessibility mode
+ * (tts mode decided in chromium's init time. so it should be called in init time)
+ * tts mode affect to below web apis
+ * speech_syntesis
*
- * @param o view object in which URL is opened.
- * @param url the url for which cookies needs to be obtained.
+ * @since_tizen 4.0 @if TV @endif
*
- * @return @c character array containing cookies, @c NULL if no cookies are found.
+ * @param[in] o View object to set.
+ * @param[in] ewk_tts_mode.
*
- * The return character array has to be owned by the application and freed when not required.
*/
-EXPORT_API char* ewk_view_cookies_get(Evas_Object* o, const char* url);
+EXPORT_API Eina_Bool ewk_view_tts_mode_set(Evas_Object* view, ewk_tts_mode tts_mode);
/**
- * @brief To give a chance to intercept request data before sending it.
+ * remove custom header
*
- * @since_tizen 2.3
+ * @param o view object to remove custom header
*
- * @param[in] o view object to intercept request
- * @param[in] intercept_request Defined structure to notify requesting infomation
- * @param[in] user_data user data
+ * @param name custom header name to remove the custom header
*
- * @see ewk_view_intercept_request_callback_set()
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
*/
-typedef void (*Ewk_View_Intercept_Request_Callback)(Evas_Object* o, Ewk_Intercept_Request* intercept_request, void* user_data);
+EXPORT_API Eina_Bool ewk_view_custom_header_remove(const Evas_Object* o, const char* name);
/**
- * @brief To set Ewk_View_Intercept_Request_Callback to give a chance to intercept request data before sending it.
+ * Returns application name string.
*
- * @since_tizen 2.3
+ * @param o view object to get the application name
*
- * @param[in] o view object to intercept request
- * @param[in] callback Defined callback
- * @param[in] user_data user data
+ * @return @c application name. The returned string @b should be freed by
+ * eina_stringshare_del() after use.
+ */
+EXPORT_API const char* ewk_view_application_name_for_user_agent_get(const Evas_Object* o);
+
+/*
+ * Get cookies associated with an URL.
+ *
+ * @param o view object in which URL is opened.
+ * @param url the url for which cookies needs to be obtained.
*
- * @see Ewk_View_Intercept_Request_Callback
+ * @return @c character array containing cookies, @c NULL if no cookies are found.
+ *
+ * The return character array has to be owned by the application and freed when not required.
*/
-EXPORT_API void ewk_view_intercept_request_callback_set (Evas_Object* o, Ewk_View_Intercept_Request_Callback callback, void* user_data);
+EXPORT_API char* ewk_view_cookies_get(Evas_Object* o, const char* url);
/**
* @internal
EXPORT_API void ewk_view_force_layout(const Evas_Object* o);
/**
-* Creates a type name for the callback function used to get video current time.
-*
-* @param o view object
-* @param current time of the video
-*@param user_data user data will be passed when ewk_media_current_time_get
-*called
-*/
-typedef void (*Ewk_View_Video_Current_Time_Get_Callback)(Evas_Object *o, double current_time, void *user_data);
-
-/**
* Gets the video's timestamp.
*
* @param o view object to get the video's timestamp
*
* @return timestamp value
*/
-EXPORT_API void ewk_media_current_time_get(const Evas_Object* o, Ewk_View_Video_Current_Time_Get_Callback callback, void *user_data);
+EXPORT_API double ewk_view_media_current_time_get(const Evas_Object *o);
/**
* @brief Enforces web page to close
EXPORT_API Eina_Bool ewk_view_page_close(Evas_Object* o);
/**
+* Clear all tile resources.
+*
+* @param ewkView view object
+*/
+EXPORT_API void ewk_view_clear_all_tiles_resources(Evas_Object* ewkView);
+
+/**
+* Request canvas to be shown in full-screen.
+*
+* @param ewkView view object
+*/
+EXPORT_API void ewk_view_request_canvas_fullscreen(Evas_Object* ewkView);
+
+/**
+* play 360 video in the view
+*
+* @param ewkView view object
+*/
+EXPORT_API void ewk_view_360video_play(Evas_Object* ewkView);
+
+/**
+* pause 360 video in the view
+*
+* @param ewkView view object
+*/
+EXPORT_API void ewk_view_360video_pause(Evas_Object* ewkView);
+
+/**
+ * Callback for ewk_view_360video_duration
+ *
+ * @param o view object
+ * @param duration 360 video's duration
+ * @param user_data user_data will be passsed when ewk_view_360video_duration is called
+ */
+typedef void (*Ewk_360_Video_Duration_Callback)(Evas_Object* o, double duration, void* user_data);
+
+/**
+* get duration of the 360 video in the view
+*
+* @param ewkView view object
+*
+* @return duration of the video
+*/
+EXPORT_API void ewk_view_360video_duration(Evas_Object* ewkView, Ewk_360_Video_Duration_Callback callback, void* user_data);
+
+/**
+ * Callback for ewk_view_360video_current_time
+ *
+ * @param o view object
+ * @param current_time 360 video's current time
+ * @param user_data user_data will be passsed when ewk_view_360video_current_time is called
+ */
+typedef void (*Ewk_360_Video_CurrentTime_Callback)(Evas_Object* o, double current_time, void* user_data);
+
+/**
+* get current time of the 360 video in the view
+*
+* @param ewkView view object
+*
+* @return current time of the video
+*/
+EXPORT_API void ewk_view_360video_current_time(Evas_Object* ewkView, Ewk_360_Video_CurrentTime_Callback callback, void* user_data);
+
+/**
+* set current time of the 360 video in the view
+*
+* @param ewkView view object
+*
+* @param current_time set current time
+*/
+EXPORT_API void ewk_view_360video_set_current_time(Evas_Object* ewkView, double current_time);
+
+/**
* @brief Request to set the atk usage set by web app(config.xml).
*
* Some TV apps use WebSpeech instead of use ATK for regulation U.S.FCC
*/
EXPORT_API void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable);
-typedef enum {
- EWK_TTS_MODE_DEFAULT = 0, /**< Default mode for normal application */
- EWK_TTS_MODE_NOTIFICATION = 1, /**< Notification mode(it has same behavior
- with EWK_TTS_MODE_DEFAULT. not supported in
- vd) */
- EWK_TTS_MODE_SCREEN_READER =
- 2 /**< Accessibiliity mode(TTS works only for accessibility mode) */
-} ewk_tts_mode;
-
/**
- * @brief Sets tts mode
- * up to tizen 4.0(in VD), default tts mode is EWK_TTS_MODE_SCREEN_READER.
- * so TTS api disabled when accessibility mode turn off.
- * this api provided to use tts api in none accessibility mode
- * (tts mode decided in chromium's init time. so it should be called in init
- * time) tts mode affect to below web apis speech_syntesis
+ * Requests execution of the given script in the main frame and subframes of the page.
*
- * @since_tizen 4.0 @if TV @endif
+ * The result value for the execution can be retrieved from the asynchronous callback.
*
- * @param[in] o View object to set.
- * @param[in] ewk_tts_mode.
+ * @param o The view to execute script
+ * @param script JavaScript to execute
+ * @param callback The function to call when the execution is completed, may be @c NULL
+ * @param user_data User data, may be @c NULL
*
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
*/
-EXPORT_API Eina_Bool ewk_view_tts_mode_set(Evas_Object* view, ewk_tts_mode tts_mode);
+EXPORT_API Eina_Bool ewk_view_script_execute_all_frames(Evas_Object *o, const char *script, Ewk_View_Script_Execute_Cb callback, void *user_data);
/**
- * @brief Request to set the spatial navigation usage set by hbbtv
+ * Floating video's window ON/OFF
*
- * @since_tizen 3.0
+ * @param o view object
+ * @param bool status (true/false)
*
- * @param[in] settings setting object
- * @param[in] enable @c EINA_TRUE enable to use spatial navigation
- * @c EINA_FALSE to disable
*/
-EXPORT_API void ewk_settings_spatial_navigation_enabled_set(Ewk_Settings* settings, Eina_Bool Enabled);
+EXPORT_API void ewk_view_floating_window_state_changed(const Evas_Object *o, Eina_Bool status);
/**
- * Clear all tile resources.
+ * Auto login by samsung pass
+ *
+ * @param view view object
+ * @param user_name user name to login
+ * @param password user password to login
*
- * @param ewkView view object
*/
-EXPORT_API void ewk_view_clear_all_tiles_resources(Evas_Object* ewkView);
+EXPORT_API void ewk_view_auto_login(Evas_Object *view, const char* user_name, const char* password);
/**
* @}