2 * Copyright (C) 2011-2016 Samsung Electronics. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY SAMSUNG ELECTRONICS. AND ITS CONTRIBUTORS
14 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SAMSUNG ELECTRONICS. OR ITS
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
21 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
22 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
23 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 * @file ewk_view_product.h
28 * @brief Chromium main smart object.
30 * This object provides view related APIs of Chromium to EFL object.
33 #ifndef ewk_view_product_h
34 #define ewk_view_product_h
36 #include "ewk_context_product.h"
37 #include "ewk_media_playback_info_product.h"
38 #include "ewk_value_product.h"
39 #include "ewk_view_internal.h"
46 * A callback to check whether allowed to run mixed content or not
48 * @param ewkView view object
49 * @param user_data user_data will be passed when callback is called
50 * @return true: allow to run mixed content. false: not allow to run mixed content
52 typedef Eina_Bool (*Ewk_View_Run_Mixed_Content_Confirm_Callback)(Evas_Object* ewkView, void* user_data);
55 * @brief Creates a new EFL Chromium view object.
59 * @param[in] e canvas object where to create the view object
60 * @param[in] data a pointer to data to restore session data
61 * @param[in] length length of session data to restore session data
63 * @return view object on success or @c NULL on failure
65 EXPORT_API Evas_Object* ewk_view_add_with_session_data(Evas* e, const char* data, unsigned length);
68 * @brief Gets the reference object for frame that represents the main frame.
72 * @param[in] o view object to get main frame
74 * @return frame reference of frame object on success, or NULL on failure
76 EXPORT_API Ewk_Frame_Ref ewk_view_main_frame_get(Evas_Object* o);
79 * @brief Reply of javascript alert popup
83 * @param[in] o view object
85 EXPORT_API void ewk_view_javascript_alert_reply(Evas_Object* o);
88 * @brief Reply of javascript confirm popup
92 * @param[in] o view object
93 * @param[in] result result of javascript confirm popup
95 EXPORT_API void ewk_view_javascript_confirm_reply(Evas_Object* o, Eina_Bool result);
98 * @brief Reply of javascript prompt popup
102 * @param[in] o view object
103 * @param[in] result entered characters of javascript prompt popup
105 EXPORT_API void ewk_view_javascript_prompt_reply(Evas_Object* o, const char* result);
108 * @brief Callback for before unload popup
112 * @param[in] o view object
113 * @param[in] message the contents of before unload popup
114 * @param[in] user_data user data
116 typedef Eina_Bool (*Ewk_View_Before_Unload_Confirm_Panel_Callback)(Evas_Object* o, const char* message, void* user_data);
119 * @brief Sets callback of before unload popup
123 * @param[in] o view object to set the callback
124 * @param[in] callback callback function for before unload popoup
125 * @param[in] user_data user data
127 EXPORT_API void ewk_view_before_unload_confirm_panel_callback_set(Evas_Object* o, Ewk_View_Before_Unload_Confirm_Panel_Callback callback, void* user_data);
130 * @brief Reply of before unload popup
134 * @param[in] o view object
135 * @param[in] result result of before unload popup
137 EXPORT_API void ewk_view_before_unload_confirm_panel_reply(Evas_Object* o, Eina_Bool result);
140 * @brief Sets callback of getting application cache permission.
144 * @param[in] o view object to set the callback of application cache permission
145 * @param[in] callback function to be called when application cache need to
147 * @param[in] user_data user data
149 EXPORT_API void ewk_view_application_cache_permission_callback_set(Evas_Object* o, Ewk_View_Applicacion_Cache_Permission_Callback callback, void* user_data);
152 * @brief Application cache permission confirm popup reply
156 * @param[in] o view object to reply permission confirm popup
157 * @param[in] allow of response
159 EXPORT_API void ewk_view_application_cache_permission_reply(Evas_Object* o, Eina_Bool allow);
162 * @brief Set to callback to controll unfocus operation from the arrow of
167 * @param[in] o view object
168 * @param[in] callback callback to controll unfocus operation from the arrow of
170 * @param[in] user_data user data
172 EXPORT_API void ewk_view_unfocus_allow_callback_set(Evas_Object* o, Ewk_View_Unfocus_Allow_Callback callback, void* user_data);
175 * @brief Set to callback to show or hide the notification of bluetooth mic to user.
179 * @param[in] o view object
180 * @param[in] callback to show or hide the notification
181 * @param[in] user_data user_data will be passed when result_callback is
182 * called\n -I.e., user data will be kept until callback is called
184 EXPORT_API void ewk_view_smartrc_show_mic_notification_callback_set(Evas_Object* o, Ewk_View_SmartRC_Mic_Notification_Callback callback, void* user_data);
187 * @brief Requests loading the given contents.
191 * @param[in] o view object to load document
192 * @param[in] html what to load
193 * @param[in] base_uri base uri to use for relative resources, may be @c 0,\n
194 * if provided @b must be an absolute uri
196 * @return @c EINA_TRUE on successful request, @c EINA_FALSE on errors
198 EXPORT_API Eina_Bool ewk_view_html_contents_set(Evas_Object* o, const char* html, const char* base_uri);
201 * @brief Callback for ewk_view_cache_image_get
205 * @param[in] o view object
206 * @param[in] image_url url of the image in the cache
207 * @param[in] image cache image @b should be freed after use
208 * @param[in] user_data user data
210 typedef void (*Ewk_View_Cache_Image_Get_Callback)(Evas_Object* o, const char* image_url, Evas_Object* image, void* user_data);
213 * @brief Asynchronous request for get the cache image specified in url.
217 * @param[in] o view object
218 * @param[in] image_url url of the image in the cache
219 * @param[in] canvas canvas for creating evas image
220 * @param[in] callback result callback to get cache image
221 * @param[in] user_data user_data will be passed when @a callback is called
223 * @return @c EINA_TRUE on successful request, @c EINA_FALSE on failure
225 EXPORT_API Eina_Bool ewk_view_cache_image_get(const Evas_Object* o, const char* image_url, Evas* canvas,
226 Ewk_View_Cache_Image_Get_Callback callback, void* user_data);
229 * @brief Requests for getting web application capable.
233 * @param[in] o view object
234 * @param[in] callback result callback to get web database quota
235 * @param[in] user_data user_data will be passed when result_callback is
236 * called\n -I.e., user data will be kept until callback is called
238 * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
240 EXPORT_API Eina_Bool ewk_view_web_application_capable_get(Evas_Object* o, Ewk_Web_App_Capable_Get_Callback callback, void* user_data);
243 * @brief Requests for getting web application icon string.
247 * @param[in] o view object
248 * @param[in] callback result callback to get web database quota
249 * @param[in] user_data user_data will be passed when result_callback is
250 * called\n -I.e., user data will be kept until callback is called
252 * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
254 EXPORT_API Eina_Bool ewk_view_web_application_icon_url_get(Evas_Object* o, Ewk_Web_App_Icon_URL_Get_Callback callback, void* user_data);
257 * @brief Requests for getting web application icon list of
258 * Ewk_Web_App_Icon_Data.
262 * @param[in] o view object
263 * @param[in] callback result callback to get web application icon urls
264 * @param[in] user_data user_data will be passed when result_callback is
265 * called\n -I.e., user data will be kept until callback is called
267 * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
269 EXPORT_API Eina_Bool ewk_view_web_application_icon_urls_get(Evas_Object* o, Ewk_Web_App_Icon_URLs_Get_Callback callback, void* user_data);
272 * @brief Get the whole history(whole back & forward list) associated with this
277 * @param[in] o view object to get the history(whole back & forward list)
279 * @return a newly allocated history of @b newly allocated item\n
280 * instance. This memory of each item must be released with\n
281 * ewk_history_free() after use
283 * @see ewk_history_free()
285 EXPORT_API Ewk_History* ewk_view_history_get(Evas_Object* o);
288 * @brief Gets the selection ranges
292 * @param[in] o view object to get theselection ranges
293 * @param[out] left_rect the start lect(left rect) of the selection ranges
294 * @param[out] right_rect the end lect(right rect) of the selection ranges
296 * @return @c EINA_TRUE on success, @c EINA_FALSE on failure
298 EXPORT_API Eina_Bool ewk_view_text_selection_range_get(Evas_Object* o, Eina_Rectangle* left_rect, Eina_Rectangle* right_rect);
301 * @brief Sets the focused input element value
305 * @param[in] o view object to send the value
306 * @param[in] value the string value to be set
308 EXPORT_API void ewk_view_focused_input_element_value_set(Evas_Object* o, const char* value);
311 * @brief Gets the focused input element's value
315 * @param[in] o view object to get the value
317 * @return focused input element's value on success or NULL on failure
319 EXPORT_API const char* ewk_view_focused_input_element_value_get(Evas_Object* o);
322 * @brief Selects index of current popup menu.
326 * @param[in] o view object contains popup menu
327 * @param[in] index index of item to select
329 * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (probably\n
330 * popup menu is not selected or index is out of range)
332 EXPORT_API Eina_Bool ewk_view_popup_menu_select(Evas_Object* o, unsigned int index);
335 * @brief Selects Multiple indexes of current popup menu.
339 * @param[in] o view object contains popup menu.
340 * @param[in] changed_list list of item selected and deselected
342 * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (probably\n
343 * popup menu is not selected or index is out of range)
345 EXPORT_API Eina_Bool ewk_view_popup_menu_multiple_select(Evas_Object* o, Eina_Inarray* changed_list);
348 * @brief Sets the user chosen color. To be used when implementing a color
351 * @details The function should only be called when a color has been requested
352 * by the document.\n If called when this is not the case or when the
353 * input picker has been dismissed, this\n function will fail and
358 * @param[in] o view object contains color picker
359 * @param[in] r red channel value to be set
360 * @param[in] g green channel value to be set
361 * @param[in] b blue channel value to be set
362 * @param[in] a alpha channel value to be set
364 * @return @c EINA_TRUE on success @c EINA_FALSE otherwise
366 EXPORT_API Eina_Bool ewk_view_color_picker_color_set(Evas_Object* o, int r, int g, int b, int a);
369 * @brief Feeds the touch event to the view.
373 * @param[in] o view object to feed touch event
374 * @param[in] type the type of touch event
375 * @param[in] points a list of points (Ewk_Touch_Point) to process
376 * @param[in] modifiers an Evas_Modifier handle to the list of modifier keys\n
377 * registered in the Evas. Users can get the Evas_Modifier from the
378 * Evas\n using evas_key_modifier_get() and can set each modifier key
379 * using\n evas_key_modifier_on() and evas_key_modifier_off()
381 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
383 EXPORT_API Eina_Bool ewk_view_feed_touch_event(Evas_Object* o, Ewk_Touch_Event_Type type, const Eina_List* points, const Evas_Modifier* modifiers);
386 * Creates a type name for the callback function used to get the background color.
388 * @param o view object
389 * @param r red color component
390 * @param g green color component
391 * @param b blue color component
392 * @param a transparency
393 * @param user_data user data will be passed when ewk_view_bg_color_get is called
395 typedef void (*Ewk_View_Background_Color_Get_Callback)(Evas_Object *o, int r, int g, int b, int a, void* user_data);
398 * Gets the background color and transparency of the view.
400 * @param o view object to get the background color from
401 * @param callback callback function
402 * @param user_data user data will be passed when the callback is called
404 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
406 * On success the background color of the view object o is retrieved
407 * in the callback function
409 EXPORT_API Eina_Bool ewk_view_bg_color_get(Evas_Object *o, Ewk_View_Background_Color_Get_Callback callback, void *user_data);
412 * Callback for ewk_view_main_frame_scrollbar_visible_get
414 * @param o view object
415 * @param visibility visibility of main frame scrollbar
416 * @param user_data user data passed to ewk_view_main_frame_scrollbar_visible_get
418 typedef void (*Ewk_View_Main_Frame_Scrollbar_Visible_Get_Callback)(Evas_Object* o, Eina_Bool visible, void* user_data);
421 * @brief Gets the visibility of main frame scrollbar.
425 * @param[in] o view object
426 * @param callback callback function
427 * @param user_data user data will be passed when the callback is caller
429 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
431 * On success the visibility of the scrollbar of the view object o is retrieved
432 * in the callback function
434 EXPORT_API Eina_Bool ewk_view_main_frame_scrollbar_visible_get(Evas_Object* view, Ewk_View_Main_Frame_Scrollbar_Visible_Get_Callback callback, void* user_data);
437 * @brief Gets the session data to be saved in a persistent store on
442 * @param[in] o view object whose session needs to be stored.
443 * @param[in] data out parameter session data
444 * @param[in] length out parameter length of session data
446 EXPORT_API void ewk_view_session_data_get(Evas_Object* o, const char** data, unsigned* length);
449 * @brief Reloads the current page's document without cache.
453 * @param[in] o view object to reload current document
455 * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise
457 EXPORT_API Eina_Bool ewk_view_reload_bypass_cache(Evas_Object* o);
460 * @brief Creates a new hit test for the given veiw object and point.
464 * @remarks The returned object should be freed by ewk_hit_test_free().
466 * @param[in] o view object to do hit test on
467 * @param[in] x the horizontal position to query
468 * @param[in] y the vertical position to query
469 * @param[in] hit_test_mode the #Ewk_Hit_Test_Mode enum value to query
471 * @return a newly allocated hit test on success, @c 0 otherwise
473 EXPORT_API Ewk_Hit_Test* ewk_view_hit_test_new(Evas_Object* o, int x, int y, int hit_test_mode);
476 * Create PDF file of page contents
478 * @param o view object to get page contents.
479 * @param width the suface width of PDF file.
480 * @param height the suface height of PDF file.
481 * @param fileName the file name for creating PDF file.
483 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
485 /* This return value is status of the request not the status of actual operation.
486 * There should be some callback to get the actual status or reason of failure.
488 EXPORT_API Eina_Bool ewk_view_contents_pdf_get(Evas_Object* o, int width, int height, const char* fileName);
491 * Requests for setting callback function
493 * @param ewkView view object
494 * @param user_data user_data will be passed when callback is called
495 * @param callback callback function
497 EXPORT_API void ewk_view_run_mixed_content_confirm_callback_set(Evas_Object* ewkView, Ewk_View_Run_Mixed_Content_Confirm_Callback callback, void* user_data);
500 * Returns the current favicon of view object.
502 * @param item view object to get current icon URL
504 * @return current favicon on success or @c NULL if unavailable or on failure.
505 * The returned Evas_Object needs to be freed after use.
507 EXPORT_API Evas_Object* ewk_view_favicon_get(const Evas_Object* ewkView);
510 * To resume new url network loading
512 * @param item view object to resume new url loading
515 EXPORT_API void ewk_view_resume_network_loading(Evas_Object* ewkView);
517 EXPORT_API void ewk_view_poweroff_suspend(Evas_Object *item);
520 * To suspend all url loading
522 * @param item view object to suspend url loading
525 EXPORT_API void ewk_view_suspend_network_loading(Evas_Object* ewkView);
528 * This function should be use for browser edge scroll.
529 * It can also be used when the mouse pointer is out of webview.
530 * Scrolls webpage of view by dx and dy.
532 * @param item view object to scroll
533 * @param dx horizontal offset to scroll
534 * @param dy vertical offset to scroll
535 * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
537 EXPORT_API Eina_Bool ewk_view_edge_scroll_by(Evas_Object *item, int dx, int dy);
540 * Allow a browser to set its own cursor by setting a flag
541 * which prevents setting a default web page cursor.
543 * @param ewkView view object
544 * @param enable EINA_TRUE - prevent update of cursor by engine
545 * EINA_FALSE - allow for update of cursor by engine
547 EXPORT_API void ewk_view_set_cursor_by_client(Evas_Object* ewkView, Eina_Bool enable);
550 * Reply of running mixed content or not
552 * @param ewkView view object
553 * @param result reply
555 EXPORT_API void ewk_view_run_mixed_content_confirm_reply(Evas_Object* ewkView, Eina_Bool result);
558 * Sets the cover-area (soon rect) multiplier.
560 * @param ewkView view object
561 * @param cover_area_multiplier the multiplier of cover-area.
563 EXPORT_API void ewk_view_tile_cover_area_multiplier_set(
564 Evas_Object* ewkView,
565 float cover_area_multiplier);
568 * Set to enabled/disabled clear tiles on hide.
570 * @param ewkView view object
571 * @param enabled/disabled a state to set
574 EXPORT_API void ewk_view_clear_tiles_on_hide_enabled_set(Evas_Object* ewkView,
578 * @brief Callback for ewk_view_is_video_playing
580 * @param[in] o the view object
581 * @param[in] is_playing video is playing or not
582 * @param[in] user_data user_data will be passsed when ewk_view_is_video_playing is
585 typedef void (*Ewk_Is_Video_Playing_Callback)(Evas_Object* o, Eina_Bool is_playing, void* user_data);
588 * @brief Asynchronous request for check if there is a video playing in the given view
590 * @param[in] o The view object
591 * @param[in] callback result callback to get web application capable
592 * @param[in] user_data user_data will be passed when result_callback is called
594 * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
596 EXPORT_API Eina_Bool ewk_view_is_video_playing(Evas_Object* o, Ewk_Is_Video_Playing_Callback callback, void* user_data);
599 * Callback for ewk_view_stop_video
601 * @param o view object
602 * @param is_stopped video is stopped or not
603 * @param user_data user_data will be passsed when ewk_view_stop_video is called
605 typedef void (*Ewk_Stop_Video_Callback)(Evas_Object* o, Eina_Bool is_stopped, void* user_data);
608 * Asynchronous request for stopping any playing video in the given view
610 * @param[in] o The view object
611 * @param[in] callback result callback to get web application capable
612 * @param[in] user_data user_data will be passed when result_callback is called
614 * @return @c EINA_TRUE if any video was stopped or @c EINA_FALSE is there was no active video
616 EXPORT_API Eina_Bool ewk_view_stop_video(Evas_Object* o, Ewk_Stop_Video_Callback callback, void* user_data);
619 * @brief Sets the support of video hole and video window, Use H/W overlay for performance of video output
623 * @param[in] o the view object
624 * @param[in] o the top-level window object
625 * @param[in] enable EINA_TRUE to set on support the video hole,
626 * EINA_FALSE otherwise
627 * @param[in] enable EINA_TRUE to set on the video window of video hole,
628 * EINA_FALSE to set on the video windowless of video hole
630 * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
632 EXPORT_API Eina_Bool ewk_view_set_support_video_hole(Evas_Object* ewkView,
635 Eina_Bool isVideoWindow);
638 * @brief Sets the support of canvas hole, Use H/W overlay for video quality of WebGL 360 degree.
639 * Also, The WebBrowser provisionally want to show plane 360 video through canvas hole.
643 * @note Should be used after ewk_view_url_set().
645 * @param[in] o the view object
646 * @param[in] url string (ex. "youtube.com")
648 * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
650 EXPORT_API Eina_Bool ewk_view_set_support_canvas_hole(Evas_Object* ewkView, const char* url);
654 * Callback for the generic sync call.
655 * It requests for performing operation/call giving its name. Arguments
656 * and return value is operation/call specific.
658 * @param[in] name requested call name
659 * @param[in] arguments call argumets, format is defined by opertion itself
660 * @param[in] user_data user_data will be passed when result_callback is called
662 * @return return value from the call, format is defind by operation itself
664 typedef Ewk_Value (*Generic_Sync_Call_Callback)(const char* name, Ewk_Value arguments, void* user_data);
667 * Sets the function pointer for the generic sync call
669 * @param ewk_view view object to set the function pointer in
670 * @param cb pointer to the function
671 * @param user_data pointer to user data to be passed to the function when
674 EXPORT_API void ewk_view_widget_pepper_extension_callback_set(Evas_Object* ewk_view, Generic_Sync_Call_Callback cb, void* user_data);
677 * Sets the pepper widget extension info
679 * @param ewk_view view object to set the info in
680 * @param widget_pepper_ext_info the Ewk_Value containing the information
682 EXPORT_API void ewk_view_widget_pepper_extension_info_set(Evas_Object* ewk_view, Ewk_Value widget_pepper_ext_info);
685 * @brief Sets the support of 4K video, Customize the device pixel ratio for
690 * @note Should be used after ewk_view_url_set().
692 * @param[in] o the view object
693 * @param[in] o enabled a state to set
695 * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
697 EXPORT_API Eina_Bool ewk_view_set_custom_device_pixel_ratio(Evas_Object* ewkView, Eina_Bool enabled);
700 * @brief Gets whether horizontal panning is holding.
704 * @param[in] o view object to get whether horizontal panning is holding
706 * @return @c EINA_TRUE if horizontal panning is holding
707 * @c EINA_FALSE if not or on failure
709 EXPORT_API Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* o);
712 * @brief Sets to hold horizontal panning.
716 * @param[in] o view object to set to hold horizontal panning
717 * @param[in] hold @c EINA_TRUE to hold horizontal panning
718 * @c EINA_FALSE not to hold
720 EXPORT_API void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold);
723 * @brief Gets whether vertical panning is holding.
727 * @param[in] o view object to get whether vertical panning is holding
729 * @return @c EINA_TRUE if vertical panning is holding
730 * @c EINA_FALSE if not or on failure
732 EXPORT_API Eina_Bool ewk_view_vertical_panning_hold_get(Evas_Object* o);
735 * Block/Release the vertical pan
737 * @param o view object on which pan is to be blocked/release
738 * @param hold status of pan
740 EXPORT_API void ewk_view_vertical_panning_hold_set(Evas_Object* o, Eina_Bool hold);
743 * Set the translated url to media player.
745 * @param ewkView view object
748 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
750 EXPORT_API Eina_Bool ewk_media_translated_url_set(Evas_Object* ewkView, const char* url);
753 * Set app is preload type or not.
755 * @param ewkView view object
756 * @param is_preload if app is preload type
758 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
760 EXPORT_API Eina_Bool ewk_view_app_preload_set(Evas_Object* ewkView, Eina_Bool is_preload);
763 * Set app enable marlin or not.
765 * @param ewkView view object
766 * @param is_enable if app enable marlin drm
768 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
770 EXPORT_API Eina_Bool ewk_view_marlin_enable_set(Evas_Object* ewkView, Eina_Bool is_enable);
773 * Sets whitelisted DRM key systems. Passed key systems will be available
774 * through EME. Other systems even if available in the platform will be
775 * unavailable through EME
777 * @param ewkView View object
778 * @param list Key system names
779 * @param list_size Key system count
781 EXPORT_API Eina_Bool ewk_view_key_system_whitelist_set(Evas_Object* ewkView,
786 * Sets the active DRM system identifier as provided by the HbbTV application.
788 * @param ewkView View object
789 * @param drm_system_id Identifier of requested DRM system
791 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
793 EXPORT_API Eina_Bool ewk_view_active_drm_set(Evas_Object* view, const char* drm_system_id);
796 * Inform webengine about decoder used by broadcast for dual decoding.
798 * @param view View object
799 * @param decoder Identifier of used decoder
801 EXPORT_API void ewk_view_broadcast_decoder_set(Evas_Object* view,
802 Ewk_Hardware_Decoders decoder);
805 * Set the selected text track language to media player.
807 * @param ewkView view object
808 * @param lang_list comma separated three_digit_language code. (For example "eng,deu")
811 EXPORT_API void ewk_media_set_subtitle_lang(Evas_Object* ewkView, const char* lang_list);
815 * Set parental rating result to media player.
817 * @param ewkView view object
818 * @param url media url
819 * @param is_pass authentication result true/false
822 EXPORT_API void ewk_media_set_parental_rating_result(Evas_Object* ewkView, const char* url, Eina_Bool is_pass);
825 * Set the if use high bit rate to media player.
827 * @param ewkView view object
828 * @param is_high if app use high bit rate
831 EXPORT_API void ewk_media_start_with_high_bit_rate(Evas_Object* ewkView, Eina_Bool is_high_bitrate);
835 * @brief Sends key event.
839 * @param[in] o The view object
840 * @param[in] key_event Evas_Event_Key_Down struct or Evas_Event_Key_Up struct
841 * @param[in] isPress EINA_TRUE: keydown, EINA_FALSE: keyup
842 * @return @c EINA_TRUE on success,\n
843 * otherwise @c EINA_FALSE
845 EXPORT_API Eina_Bool ewk_view_send_key_event(Evas_Object* o, void* key_event, Eina_Bool is_press);
848 * @brief Sets whether the ewk_view supports the key events or not.
852 * @note Should be used after ewk_view_url_set().
854 * @remarks The ewk_view will support the key events if EINA_TRUE or not support the
855 * key events otherwise. The default value is EINA_TRUE.
857 * @param[in] o The view object
858 * @param[in] enabled a state to set
860 * @return @c EINA_TRUE on success,\n
861 * otherwise @c EINA_FALSE
863 EXPORT_API Eina_Bool ewk_view_key_events_enabled_set(Evas_Object *o, Eina_Bool enabled);
865 enum Ewk_Scrollbar_Orientation {
866 EWK_HORIZONTAL_SCROLLBAR = 0,
867 EWK_VERTICAL_SCROLLBAR
870 typedef enum Ewk_Scrollbar_Orientation Ewk_Scrollbar_Orientation;
872 struct Ewk_Scrollbar_Data {
873 Ewk_Scrollbar_Orientation orientation; /**< scrollbar orientation */
874 Eina_Bool focused; /**< isFocused */
877 typedef struct Ewk_Scrollbar_Data Ewk_Scrollbar_Data;
880 * @brief Adds an item to back forward list
884 * @param[in] o The view object
885 * @param[in] item The back-forward list item instance
886 * @return @c EINA_TRUE on success,\n
887 * otherwise @c EINA_FALSE
890 ewk_view_add_item_to_back_forward_list(Evas_Object* o,
891 const Ewk_Back_Forward_List_Item* item);
894 * @brief Load the specified @a html string as the content of the view overriding
895 * current history entry. Can be used to ignore the malicious page while
896 * navigation backward/forward.
900 * @param[in] view object to load the HTML into
901 * @param[in] html HTML data to load
902 * @param[in] base_url Base URL used for relative paths to external objects
904 * @param[in] unreachable_url URL that could not be reached (optional)
906 * @return @c EINA_TRUE if it the HTML was successfully loaded,
907 * @c EINA_FALSE otherwise
909 EXPORT_API Eina_Bool ewk_view_html_string_override_current_entry_load(Evas_Object* view, const char* html, const char* base_uri, const char* unreachable_url);
912 * Sets whether to draw transparent background or not.
914 * @param o view object to enable/disable transparent background
915 * @param enabled a state to set
917 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
919 EXPORT_API Eina_Bool ewk_view_draws_transparent_background_set(Evas_Object *o, Eina_Bool enabled);
922 * Creates a type name for the callback function used to get the page contents.
924 * @param o view object
925 * @param data mhtml data of the page contents
926 * @param user_data user data will be passed when ewk_view_mhtml_data_get is called
928 typedef void (*Ewk_View_MHTML_Data_Get_Callback)(Evas_Object *o, const char *data, void *user_data);
931 * Get page contents as MHTML data
933 * @param o view object to get the page contents
934 * @param callback callback function to be called when the operation is finished
935 * @param user_data user data to be passed to the callback function
937 * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise
939 EXPORT_API Eina_Bool ewk_view_mhtml_data_get(Evas_Object *o, Ewk_View_MHTML_Data_Get_Callback callback, void *user_data);
942 * Gets the minimum and maximum value of the scale range or -1 on failure
944 * @param o view object to get the minimum and maximum value of the scale range
945 * @param min_scale Pointer to an double in which to store the minimum scale factor of the object.
946 * @param max_scale Pointer to an double in which to store the maximum scale factor of the object.
948 * @note Use @c NULL pointers on the scale components you're not
949 * interested in: they'll be ignored by the function.
951 EXPORT_API void ewk_view_scale_range_get(Evas_Object* o, double* min_scale, double* max_scale);
954 * Returns the evas image object of the specified viewArea of page
956 * The returned evas image object @b should be freed after use.
958 * @param o view object to get specified rectangle of cairo surface.
959 * @param viewArea rectangle of cairo surface.
960 * @param scaleFactor scale factor of cairo surface.
961 * @param canvas canvas for creating evas image.
963 * @return newly allocated evas image object on sucess or @c 0 on failure.
965 EXPORT_API Evas_Object* ewk_view_screenshot_contents_get(const Evas_Object* o, Eina_Rectangle viewArea, float scaleFactor, Evas* canvas);
968 * Gets the possible scroll size of the given view.
970 * Possible scroll size is contents size minus the viewport size.
972 * @param o view object to get scroll size
973 * @param w the pointer to store the horizontal size that is possible to scroll,
975 * @param h the pointer to store the vertical size that is possible to scroll,
978 * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise and
981 EXPORT_API Eina_Bool ewk_view_scroll_size_get(const Evas_Object* o, int* w, int* h);
984 * Clears the highlight of searched text.
986 * @param o view object to find text
988 * @return @c EINA_TRUE on success, @c EINA_FALSE on errors
990 EXPORT_API Eina_Bool ewk_view_text_find_highlight_clear(Evas_Object *o);
993 * Counts the given string in the document.
995 * This does not highlight the matched string and just count the matched string.\n
997 * As the search is carried out through the whole document,\n
998 * only the following #Ewk_Find_Options are valid.\n
999 * - EWK_FIND_OPTIONS_NONE\n
1000 * - EWK_FIND_OPTIONS_CASE_INSENSITIVE\n
1001 * - EWK_FIND_OPTIONS_AT_WORD_START\n
1002 * - EWK_FIND_OPTIONS_TREAT_MEDIAL_CAPITAL_AS_WORD_START\n
1004 * The "text,found" callback will be called with the number of matched string.
1008 * @param o view object to find text
1009 * @param text text to find
1010 * @param options options to find
1011 * @param max_match_count maximum match count to find, unlimited if 0
1013 * @return @c EINA_TRUE on success, @c EINA_FALSE on errors
1015 EXPORT_API Eina_Bool ewk_view_text_matches_count(Evas_Object* o, const char* text, Ewk_Find_Options options, unsigned max_match_count);
1018 * Gets the current text zoom level.
1020 * @param o view object to get the zoom level
1022 * @return current zoom level in use on success or @c -1.0 on failure
1024 EXPORT_API double ewk_view_text_zoom_get(const Evas_Object* o);
1027 * Sets the current text zoom level.
1029 * @param o view object to set the zoom level
1030 * @param textZoomFactor a new level to set
1032 * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise
1034 EXPORT_API Eina_Bool ewk_view_text_zoom_set(Evas_Object* o, double text_zoom_factor);
1037 * @brief Draw the evas image object for the VoiceManager
1041 * @param[in] view the view object
1042 * @param[in] image evas image obejct for drawing
1043 * @param[in] rect rectangle of image object for drawing
1045 EXPORT_API void ewk_view_voicemanager_label_draw(Evas_Object* view, Evas_Object* image, Eina_Rectangle rect);
1048 * @brief Hide and remove all labels for the VoiceManager
1050 * @details All labels are cleared on mouse down.
1054 * @param[in] view the view object
1056 EXPORT_API void ewk_view_voicemanager_labels_clear(Evas_Object* view);
1059 * This api is used for Canal+ App and HBB TV Application.
1060 * They need to access various url required a client authentication while the apps is running.
1061 * So when XWalk call this API with host and related cert path, We store these information to map.
1062 * After that, When we get the "Certificate Request" packet from server,
1063 * We find matched cert path to host in the map.
1065 * @param ewkView view object to add host and cert path to the map
1066 * @param host host that required client authentication
1067 * @param cert_path the file path stored certificate
1070 EXPORT_API void ewk_view_add_dynamic_certificate_path(const Evas_Object *ewkView, const char* host, const char* cert_path);
1073 * @brief Request to set the atk usage set by web app(config.xml).
1075 * Some TV apps use WebSpeech instead of use ATK for regulation U.S.FCC
1077 * @since_tizen 3.0 @if TV @endif
1079 * @param[in] o View object to set the atk use.
1080 * @param[in] enable EINA_TRUE to set on the atk use.
1081 * EINA_FALSE makes atk not to use, but app use WebSpeech instead of ATK.
1083 EXPORT_API void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable);
1086 EWK_TTS_MODE_DEFAULT = 0, /**< Default mode for normal application */
1087 EWK_TTS_MODE_NOTIFICATION = 1, /**< Notification mode(it has same behavior with EWK_TTS_MODE_DEFAULT. not supported in vd) */
1088 EWK_TTS_MODE_SCREEN_READER = 2 /**< Accessibiliity mode(TTS works only for accessibility mode) */
1092 * @brief Sets tts mode
1093 * up to tizen 4.0(in VD), default tts mode is EWK_TTS_MODE_SCREEN_READER.
1094 * so TTS api disabled when accessibility mode turn off.
1095 * this api provided to use tts api in none accessibility mode
1096 * (tts mode decided in chromium's init time. so it should be called in init time)
1097 * tts mode affect to below web apis
1100 * @since_tizen 4.0 @if TV @endif
1102 * @param[in] o View object to set.
1103 * @param[in] ewk_tts_mode.
1106 EXPORT_API Eina_Bool ewk_view_tts_mode_set(Evas_Object* view, ewk_tts_mode tts_mode);
1109 * remove custom header
1111 * @param o view object to remove custom header
1113 * @param name custom header name to remove the custom header
1115 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
1117 EXPORT_API Eina_Bool ewk_view_custom_header_remove(const Evas_Object* o, const char* name);
1120 * Returns application name string.
1122 * @param o view object to get the application name
1124 * @return @c application name. The returned string @b should be freed by
1125 * eina_stringshare_del() after use.
1127 EXPORT_API const char* ewk_view_application_name_for_user_agent_get(const Evas_Object* o);
1130 * Get cookies associated with an URL.
1132 * @param o view object in which URL is opened.
1133 * @param url the url for which cookies needs to be obtained.
1135 * @return @c character array containing cookies, @c NULL if no cookies are found.
1137 * The return character array has to be owned by the application and freed when not required.
1139 EXPORT_API char* ewk_view_cookies_get(Evas_Object* o, const char* url);
1143 * @brief Callback for ewk_view_notification_show_callback_set
1147 * @param[in] o view object to request the notification show
1148 * @param[in] notification Ewk_Notification object to get the information about notification show request
1149 * @param[in] user_data user data
1151 typedef Eina_Bool (*Ewk_View_Notification_Show_Callback)(Evas_Object *o, Ewk_Notification *notification, void *user_data);
1155 * @brief Sets the notification show callback.
1159 * @param[in] o view object to request the notification show
1160 * @param[in] show_callback Ewk_View_Notification_Show_Callback function to notification show
1161 * @param[in] user_data user data
1163 EXPORT_API void ewk_view_notification_show_callback_set(Evas_Object *o, Ewk_View_Notification_Show_Callback show_callback, void *user_data);
1167 * @brief Callback for ewk_view_notification_cancel_callback_set
1171 * @param[in] o view object to request the notification cancel
1172 * @param[in] notification_id Ewk_Notification object to get the information about notification cancel request
1173 * @param[in] user_data user data
1175 typedef Eina_Bool (*Ewk_View_Notification_Cancel_Callback)(Evas_Object *o, uint64_t notification_id, void *user_data);
1179 * @brief Sets the notification cancel callback.
1183 * @param[in] o view object to request the notification show
1184 * @param[in] cancel_callback Ewk_View_Notification_Cancel_Callback function to notification cancel
1185 * @param[in] user_data user data
1187 EXPORT_API void ewk_view_notification_cancel_callback_set(Evas_Object *o, Ewk_View_Notification_Cancel_Callback cancel_callback, void *user_data);
1190 * @brief Gets the current custom character encoding name.
1194 * @param[in] o view object to get the current encoding
1196 * @return @c eina_strinshare containing the current encoding, or\n
1197 * @c NULL if it's not set
1199 EXPORT_API const char* ewk_view_custom_encoding_get(const Evas_Object* o);
1202 * @brief Sets the custom character encoding and reloads the page.
1206 * @param[in] o view to set the encoding
1207 * @param[in] encoding the new encoding to set or @c NULL to restore the default one
1209 * @return @c EINA_TRUE on success @c EINA_FALSE otherwise
1211 EXPORT_API Eina_Bool ewk_view_custom_encoding_set(Evas_Object* o, const char* encoding);
1214 * @brief Forces web page to relayout
1218 * @param [in] o view
1220 EXPORT_API void ewk_view_force_layout(const Evas_Object* o);
1223 * Gets the video's timestamp.
1225 * @param o view object to get the video's timestamp
1227 * @return timestamp value
1229 EXPORT_API double ewk_view_media_current_time_get(const Evas_Object *o);
1232 * @brief Enforces web page to close
1238 * @return @c EINA_TRUE on success @c EINA_FALSE otherwise
1240 EXPORT_API Eina_Bool ewk_view_page_close(Evas_Object* o);
1243 * Clear all tile resources.
1245 * @param ewkView view object
1247 EXPORT_API void ewk_view_clear_all_tiles_resources(Evas_Object* ewkView);
1250 * Request canvas to be shown in full-screen.
1252 * @param ewkView view object
1254 EXPORT_API void ewk_view_request_canvas_fullscreen(Evas_Object* ewkView);
1257 * play 360 video in the view
1259 * @param ewkView view object
1261 EXPORT_API void ewk_view_360video_play(Evas_Object* ewkView);
1264 * pause 360 video in the view
1266 * @param ewkView view object
1268 EXPORT_API void ewk_view_360video_pause(Evas_Object* ewkView);
1271 * Callback for ewk_view_360video_duration
1273 * @param o view object
1274 * @param duration 360 video's duration
1275 * @param user_data user_data will be passsed when ewk_view_360video_duration is called
1277 typedef void (*Ewk_360_Video_Duration_Callback)(Evas_Object* o, double duration, void* user_data);
1280 * get duration of the 360 video in the view
1282 * @param ewkView view object
1284 * @return duration of the video
1286 EXPORT_API void ewk_view_360video_duration(Evas_Object* ewkView, Ewk_360_Video_Duration_Callback callback, void* user_data);
1289 * Callback for ewk_view_360video_current_time
1291 * @param o view object
1292 * @param current_time 360 video's current time
1293 * @param user_data user_data will be passsed when ewk_view_360video_current_time is called
1295 typedef void (*Ewk_360_Video_CurrentTime_Callback)(Evas_Object* o, double current_time, void* user_data);
1298 * get current time of the 360 video in the view
1300 * @param ewkView view object
1302 * @return current time of the video
1304 EXPORT_API void ewk_view_360video_current_time(Evas_Object* ewkView, Ewk_360_Video_CurrentTime_Callback callback, void* user_data);
1307 * set current time of the 360 video in the view
1309 * @param ewkView view object
1311 * @param current_time set current time
1313 EXPORT_API void ewk_view_360video_set_current_time(Evas_Object* ewkView, double current_time);
1316 * @brief Request to set the atk usage set by web app(config.xml).
1318 * Some TV apps use WebSpeech instead of use ATK for regulation U.S.FCC
1320 * @since_tizen 3.0 @if TV @endif
1322 * @param[in] o View object to set the atk use.
1323 * @param[in] enable EINA_TRUE to set on the atk use.
1324 * EINA_FALSE makes atk not to use, but app use WebSpeech instead of
1327 EXPORT_API void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable);
1330 * Requests execution of the given script in the main frame and subframes of the page.
1332 * The result value for the execution can be retrieved from the asynchronous callback.
1334 * @param o The view to execute script
1335 * @param script JavaScript to execute
1336 * @param callback The function to call when the execution is completed, may be @c NULL
1337 * @param user_data User data, may be @c NULL
1339 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
1341 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);
1344 * Floating video's window ON/OFF
1346 * @param o view object
1347 * @param bool status (true/false)
1350 EXPORT_API void ewk_view_floating_window_state_changed(const Evas_Object *o, Eina_Bool status);
1353 * Auto login by samsung pass
1355 * @param view view object
1356 * @param user_name user name to login
1357 * @param password user password to login
1360 EXPORT_API void ewk_view_auto_login(Evas_Object *view, const char* user_name, const char* password);
1369 #endif // ewk_view_product_h