[M108 Aura Migration] Add media playback ewk api
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / efl_integration / public / ewk_view_product.h
1 /*
2  * Copyright (C) 2011-2016 Samsung Electronics. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
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.
12  *
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.
24  */
25
26 /**
27  * @file    ewk_view_product.h
28  * @brief   Chromium main smart object.
29  *
30  * This object provides view related APIs of Chromium to EFL object.
31  */
32
33 #ifndef ewk_view_product_h
34 #define ewk_view_product_h
35
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"
40
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44
45 /**
46  * A callback to check whether allowed to run mixed content or not
47  *
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
51  */
52 typedef Eina_Bool (*Ewk_View_Run_Mixed_Content_Confirm_Callback)(Evas_Object* ewkView, void* user_data);
53
54 /**
55  * @brief Creates a new EFL Chromium view object.
56  *
57  * @since_tizen 2.3
58  *
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
62  *
63  * @return view object on success or @c NULL on failure
64  */
65 EXPORT_API Evas_Object* ewk_view_add_with_session_data(Evas* e, const char* data, unsigned length);
66
67 /**
68  * @brief Gets the reference object for frame that represents the main frame.
69  *
70  * @since_tizen 2.3
71  *
72  * @param[in] o view object to get main frame
73  *
74  * @return frame reference of frame object on success, or NULL on failure
75  */
76 EXPORT_API Ewk_Frame_Ref ewk_view_main_frame_get(Evas_Object* o);
77
78 /**
79  * @brief Reply of javascript alert popup
80  *
81  * @since_tizen 2.3
82  *
83  * @param[in] o view object
84  */
85 EXPORT_API void ewk_view_javascript_alert_reply(Evas_Object* o);
86
87 /**
88  * @brief Reply of javascript confirm popup
89  *
90  * @since_tizen 2.3
91  *
92  * @param[in] o view object
93  * @param[in] result result of javascript confirm popup
94  */
95 EXPORT_API void ewk_view_javascript_confirm_reply(Evas_Object* o, Eina_Bool result);
96
97 /**
98  * @brief Reply of javascript prompt popup
99  *
100  * @since_tizen 2.3
101  *
102  * @param[in] o view object
103  * @param[in] result entered characters of javascript prompt popup
104  */
105 EXPORT_API void ewk_view_javascript_prompt_reply(Evas_Object* o, const char* result);
106
107 /**
108  * @brief Callback for before unload popup
109  *
110  * @since_tizen 2.3
111  *
112  * @param[in] o view object
113  * @param[in] message the contents of before unload popup
114  * @param[in] user_data user data
115  */
116 typedef Eina_Bool (*Ewk_View_Before_Unload_Confirm_Panel_Callback)(Evas_Object* o, const char* message, void* user_data);
117
118 /**
119  * @brief Sets callback of before unload popup
120  *
121  * @since_tizen 2.3
122  *
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
126  */
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);
128
129 /**
130  * @brief Reply of before unload popup
131  *
132  * @since_tizen 2.3
133  *
134  * @param[in] o view object
135  * @param[in] result result of before unload popup
136  */
137 EXPORT_API void ewk_view_before_unload_confirm_panel_reply(Evas_Object* o, Eina_Bool result);
138
139 /**
140  * @brief Sets callback of getting application cache permission.
141  *
142  * @since_tizen 2.3
143  *
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
146  *            get permission
147  * @param[in] user_data user data
148  */
149 EXPORT_API void ewk_view_application_cache_permission_callback_set(Evas_Object* o, Ewk_View_Applicacion_Cache_Permission_Callback callback, void* user_data);
150
151 /**
152  * @brief Application cache permission confirm popup reply
153  *
154  * @since_tizen 2.3
155  *
156  * @param[in] o view object to reply permission confirm popup
157  * @param[in] allow of response
158  */
159 EXPORT_API void ewk_view_application_cache_permission_reply(Evas_Object* o, Eina_Bool allow);
160
161 /**
162  * @brief Set to callback to controll unfocus operation from the arrow of
163  *        h/w keyboard.
164  *
165  * @since_tizen 2.3
166  *
167  * @param[in] o view object
168  * @param[in] callback callback to controll unfocus operation from the arrow of
169  *            h/w keyboard
170  * @param[in] user_data user data
171  */
172 EXPORT_API void ewk_view_unfocus_allow_callback_set(Evas_Object* o, Ewk_View_Unfocus_Allow_Callback callback, void* user_data);
173
174 /**
175  * @brief Set to callback to show or hide the notification of bluetooth mic to user.
176  *
177  * @since_tizen 5.0
178  *
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
183  */
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);
185
186 /**
187  * @brief Requests loading the given contents.
188  *
189  * @since_tizen 2.3
190  *
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
195  *
196  * @return @c EINA_TRUE on successful request, @c EINA_FALSE on errors
197  */
198 EXPORT_API Eina_Bool ewk_view_html_contents_set(Evas_Object* o, const char* html, const char* base_uri);
199
200 /**
201  * @brief Callback for ewk_view_cache_image_get
202  *
203  * @since_tizen 3.0
204  *
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
209  */
210 typedef void (*Ewk_View_Cache_Image_Get_Callback)(Evas_Object* o, const char* image_url, Evas_Object* image, void* user_data);
211
212 /**
213  * @brief Asynchronous request for get the cache image specified in url.
214  *
215  * @since_tizen 3.0
216  *
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
222  *
223  * @return @c EINA_TRUE on successful request, @c EINA_FALSE on failure
224  */
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);
227
228 /**
229  * @brief Requests for getting web application capable.
230  *
231  * @since_tizen 2.3
232  *
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
237  *
238  * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
239  */
240 EXPORT_API Eina_Bool ewk_view_web_application_capable_get(Evas_Object* o, Ewk_Web_App_Capable_Get_Callback callback, void* user_data);
241
242 /**
243  * @brief Requests for getting web application icon string.
244  *
245  * @since_tizen 2.3
246  *
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
251  *
252  * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
253  */
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);
255
256 /**
257  * @brief Requests for getting web application icon list of
258  *        Ewk_Web_App_Icon_Data.
259  *
260  * @since_tizen 2.3
261  *
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
266  *
267  * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
268  */
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);
270
271 /**
272  * @brief Get the whole history(whole back & forward list) associated with this
273  *        view.
274  *
275  * @since_tizen 2.3
276  *
277  * @param[in] o view object to get the history(whole back & forward list)
278  *
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
282  *
283  * @see ewk_history_free()
284  */
285 EXPORT_API Ewk_History* ewk_view_history_get(Evas_Object* o);
286
287 /**
288  * @brief Gets the selection ranges
289  *
290  * @since_tizen 2.3
291  *
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
295  *
296  * @return @c EINA_TRUE on success, @c EINA_FALSE on failure
297  */
298 EXPORT_API Eina_Bool ewk_view_text_selection_range_get(Evas_Object* o, Eina_Rectangle* left_rect, Eina_Rectangle* right_rect);
299
300 /**
301  * @brief Sets the focused input element value
302  *
303  * @since_tizen 2.3
304  *
305  * @param[in] o view object to send the value
306  * @param[in] value the string value to be set
307  */
308 EXPORT_API void ewk_view_focused_input_element_value_set(Evas_Object* o, const char* value);
309
310 /**
311  * @brief Gets the focused input element's value
312  *
313  * @since_tizen 2.3
314  *
315  * @param[in] o view object to get the value
316  *
317  * @return focused input element's value on success or NULL on failure
318  */
319 EXPORT_API const char* ewk_view_focused_input_element_value_get(Evas_Object* o);
320
321 /**
322  * @brief Selects index of current popup menu.
323  *
324  * @since_tizen 2.3
325  *
326  * @param[in] o view object contains popup menu
327  * @param[in] index index of item to select
328  *
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)
331  */
332 EXPORT_API Eina_Bool ewk_view_popup_menu_select(Evas_Object* o, unsigned int index);
333
334 /**
335  * @brief Selects Multiple indexes  of current popup menu.
336  *
337  * @since_tizen 2.3
338  *
339  * @param[in] o view object contains popup menu.
340  * @param[in] changed_list  list of item selected and deselected
341  *
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)
344  */
345 EXPORT_API Eina_Bool ewk_view_popup_menu_multiple_select(Evas_Object* o, Eina_Inarray* changed_list);
346
347 /*
348  * @brief Sets the user chosen color. To be used when implementing a color
349  *        picker.
350  *
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
354  *          return EINA_FALSE.
355  *
356  * @since_tizen 2.3
357  *
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
363  *
364  * @return @c EINA_TRUE on success @c EINA_FALSE otherwise
365  */
366 EXPORT_API Eina_Bool ewk_view_color_picker_color_set(Evas_Object* o, int r, int g, int b, int a);
367
368 /**
369  * @brief Feeds the touch event to the view.
370  *
371  * @since_tizen 2.3
372  *
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()
380  *
381  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
382  */
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);
384
385 /**
386  * Creates a type name for the callback function used to get the background color.
387  *
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
394  */
395 typedef void (*Ewk_View_Background_Color_Get_Callback)(Evas_Object *o, int r, int g, int b, int a, void* user_data);
396
397 /**
398  * Gets the background color and transparency of the view.
399  *
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
403  *
404  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
405  *
406  *  On success the background color of the view object o is retrieved
407  *  in the callback function
408  */
409 EXPORT_API Eina_Bool ewk_view_bg_color_get(Evas_Object *o, Ewk_View_Background_Color_Get_Callback callback, void *user_data);
410
411 /**
412  * Callback for ewk_view_main_frame_scrollbar_visible_get
413  *
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
417  */
418 typedef void (*Ewk_View_Main_Frame_Scrollbar_Visible_Get_Callback)(Evas_Object* o, Eina_Bool visible, void* user_data);
419
420 /**
421  * @brief Gets the visibility of main frame scrollbar.
422  *
423  * @since_tizen 3.0
424  *
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
428  *
429  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
430  *
431  *  On success the visibility of the scrollbar of the view object o is retrieved
432  *  in the callback function
433  */
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);
435
436 /**
437  * @brief Gets the session data to be saved in a persistent store on
438  *        browser exit
439  *
440  * @since_tizen 2.3
441  *
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
445  */
446 EXPORT_API void ewk_view_session_data_get(Evas_Object* o, const char** data, unsigned* length);
447
448 /**
449  * @brief Reloads the current page's document without cache.
450  *
451  * @since_tizen 2.3
452  *
453  * @param[in] o view object to reload current document
454  *
455  * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise
456  */
457 EXPORT_API Eina_Bool ewk_view_reload_bypass_cache(Evas_Object* o);
458
459 /**
460  * @brief Creates a new hit test for the given veiw object and point.
461  *
462  * @since_tizen 2.3
463  *
464  * @remarks The returned object should be freed by ewk_hit_test_free().
465  *
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
470  *
471  * @return a newly allocated hit test on success, @c 0 otherwise
472  */
473 EXPORT_API Ewk_Hit_Test* ewk_view_hit_test_new(Evas_Object* o, int x, int y, int hit_test_mode);
474
475 /**
476  * Create PDF file of page contents
477  *
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.
482  *
483  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
484  */
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.
487  */
488 EXPORT_API Eina_Bool ewk_view_contents_pdf_get(Evas_Object* o, int width, int height, const char* fileName);
489
490 /**
491  * Requests for setting callback function
492  *
493  * @param ewkView view object
494  * @param user_data user_data will be passed when callback is called
495  * @param callback callback function
496  */
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);
498
499 /**
500  * Returns the current favicon of view object.
501  *
502  * @param item view object to get current icon URL
503  *
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.
506  */
507 EXPORT_API Evas_Object* ewk_view_favicon_get(const Evas_Object* ewkView);
508
509 /**
510  * To resume new url network loading
511  *
512  * @param item view object to resume new url loading
513  *
514  */
515 EXPORT_API void ewk_view_resume_network_loading(Evas_Object* ewkView);
516
517 EXPORT_API void ewk_view_poweroff_suspend(Evas_Object *item);
518
519 /**
520  * To suspend all url loading
521  *
522  * @param item view object to suspend url loading
523  *
524  */
525 EXPORT_API void ewk_view_suspend_network_loading(Evas_Object* ewkView);
526
527 /**
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.
531  *
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.
536  */
537 EXPORT_API Eina_Bool ewk_view_edge_scroll_by(Evas_Object *item, int dx, int dy);
538
539 /**
540  * Allow a browser to set its own cursor by setting a flag
541  * which prevents setting a default web page cursor.
542  *
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
546  */
547 EXPORT_API void ewk_view_set_cursor_by_client(Evas_Object* ewkView, Eina_Bool enable);
548
549 /**
550  * Reply of running mixed content or not
551  *
552  * @param ewkView view object
553  * @param result reply
554  */
555 EXPORT_API void ewk_view_run_mixed_content_confirm_reply(Evas_Object* ewkView, Eina_Bool result);
556
557 /**
558  * Sets the cover-area (soon rect) multiplier.
559  *
560  * @param ewkView view object
561  * @param cover_area_multiplier the multiplier of cover-area.
562  */
563 EXPORT_API void ewk_view_tile_cover_area_multiplier_set(
564     Evas_Object* ewkView,
565     float cover_area_multiplier);
566
567 /**
568  * Set to enabled/disabled clear tiles on hide.
569  *
570  * @param ewkView view object
571  * @param enabled/disabled a state to set
572  *
573  */
574 EXPORT_API void ewk_view_clear_tiles_on_hide_enabled_set(Evas_Object* ewkView,
575                                                          Eina_Bool enable);
576
577 /**
578  * @brief Callback for ewk_view_is_video_playing
579  *
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
583  *                      called
584  */
585 typedef void (*Ewk_Is_Video_Playing_Callback)(Evas_Object* o, Eina_Bool is_playing, void* user_data);
586
587 /**
588  * @brief Asynchronous request for check if there is a video playing in the given view
589  *
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
593  *
594  * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
595  */
596 EXPORT_API Eina_Bool ewk_view_is_video_playing(Evas_Object* o, Ewk_Is_Video_Playing_Callback callback, void* user_data);
597
598 /**
599  * Callback for ewk_view_stop_video
600  *
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
604  */
605 typedef void (*Ewk_Stop_Video_Callback)(Evas_Object* o, Eina_Bool is_stopped, void* user_data);
606
607 /**
608  * Asynchronous request for stopping any playing video in the given view
609  *
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
613  *
614  * @return @c EINA_TRUE if any video was stopped or @c EINA_FALSE is there was no active video
615  */
616 EXPORT_API Eina_Bool ewk_view_stop_video(Evas_Object* o, Ewk_Stop_Video_Callback callback, void* user_data);
617
618 /**
619  * @brief Sets the support of video hole and video window, Use H/W overlay for performance of video output
620  *
621  * @since_tizen 3.0
622  *
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
629  *
630  * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
631  */
632 EXPORT_API Eina_Bool ewk_view_set_support_video_hole(Evas_Object* ewkView,
633                                                      void* window,
634                                                      Eina_Bool enable,
635                                                      Eina_Bool isVideoWindow);
636
637 /**
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.
640  *
641  * @since_tizen 3.0
642  *
643  * @note Should be used after ewk_view_url_set().
644  *
645  * @param[in] o the view object
646  * @param[in] url string (ex. "youtube.com")
647  *
648  * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
649  */
650 EXPORT_API Eina_Bool ewk_view_set_support_canvas_hole(Evas_Object* ewkView, const char* url);
651
652
653 /**
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.
657  *
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
661  *
662  * @return return value from the call, format is defind by operation itself
663  */
664 typedef Ewk_Value (*Generic_Sync_Call_Callback)(const char* name, Ewk_Value arguments, void* user_data);
665
666 /**
667  * Sets the function pointer for the generic sync call
668  *
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
672  *        it's being called
673  */
674 EXPORT_API void ewk_view_widget_pepper_extension_callback_set(Evas_Object* ewk_view, Generic_Sync_Call_Callback cb, void* user_data);
675
676 /**
677  * Sets the pepper widget extension info
678  *
679  * @param ewk_view view object to set the info in
680  * @param widget_pepper_ext_info the Ewk_Value containing the information
681  */
682 EXPORT_API void ewk_view_widget_pepper_extension_info_set(Evas_Object* ewk_view, Ewk_Value widget_pepper_ext_info);
683
684 /**
685  * @brief Sets the support of 4K video, Customize the device pixel ratio for
686  * video plane.
687  *
688  * @since_tizen 3.0
689  *
690  * @note Should be used after ewk_view_url_set().
691  *
692  * @param[in] o the view object
693  * @param[in] o enabled a state to set
694  *
695  * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
696  */
697 EXPORT_API Eina_Bool ewk_view_set_custom_device_pixel_ratio(Evas_Object* ewkView, Eina_Bool enabled);
698
699 /**
700  * @brief Gets whether horizontal panning is holding.
701  *
702  * @since_tizen 2.3
703  *
704  * @param[in] o view object to get whether horizontal panning is holding
705  *
706  * @return @c EINA_TRUE if horizontal panning is holding
707  *         @c EINA_FALSE if not or on failure
708  */
709 EXPORT_API Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* o);
710
711 /**
712  * @brief Sets to hold horizontal panning.
713  *
714  * @since_tizen 2.3
715  *
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
719  */
720 EXPORT_API void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold);
721
722 /**
723  * @brief Gets whether vertical panning is holding.
724  *
725  * @since_tizen 2.3
726  *
727  * @param[in] o view object to get whether vertical panning is holding
728  *
729  * @return @c EINA_TRUE if vertical panning is holding
730  *         @c EINA_FALSE if not or on failure
731  */
732 EXPORT_API Eina_Bool ewk_view_vertical_panning_hold_get(Evas_Object* o);
733
734 /**
735   * Block/Release the vertical pan
736   *
737   * @param o view object on which pan is to be blocked/release
738   * @param hold status of pan
739   */
740 EXPORT_API void ewk_view_vertical_panning_hold_set(Evas_Object* o, Eina_Bool hold);
741
742 /**
743  * Set the translated url to media player.
744  *
745  * @param ewkView view object
746  * @param url string
747  *
748  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
749  */
750 EXPORT_API Eina_Bool ewk_media_translated_url_set(Evas_Object* ewkView, const char* url);
751
752 /**
753  * Set app is preload type or not.
754  *
755  * @param ewkView view object
756  * @param is_preload if app is preload type
757  *
758  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
759  */
760 EXPORT_API Eina_Bool ewk_view_app_preload_set(Evas_Object* ewkView, Eina_Bool is_preload);
761
762 /**
763 * Set app enable marlin or not.
764 *
765 * @param ewkView view object
766 * @param is_enable   if app enable marlin drm
767 *
768 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
769 */
770 EXPORT_API Eina_Bool ewk_view_marlin_enable_set(Evas_Object* ewkView, Eina_Bool is_enable);
771
772 /**
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
776  *
777  * @param ewkView View object
778  * @param list Key system names
779  * @param list_size Key system count
780  */
781 EXPORT_API Eina_Bool ewk_view_key_system_whitelist_set(Evas_Object* ewkView,
782                                                        const char** list,
783                                                        unsigned list_size);
784
785 /**
786  * Sets the active DRM system identifier as provided by the HbbTV application.
787  *
788  * @param ewkView View object
789  * @param drm_system_id Identifier of requested DRM system
790  *
791  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
792  */
793 EXPORT_API Eina_Bool ewk_view_active_drm_set(Evas_Object* view, const char* drm_system_id);
794
795 /**
796  * Inform webengine about decoder used by broadcast for dual decoding.
797  *
798  * @param view View object
799  * @param decoder Identifier of used decoder
800  */
801 EXPORT_API void ewk_view_broadcast_decoder_set(Evas_Object* view,
802   Ewk_Hardware_Decoders decoder);
803
804 /**
805 * Set the selected text track language to media player.
806 *
807 * @param ewkView view object
808 * @param lang_list comma separated three_digit_language code. (For example "eng,deu")
809 *
810 */
811 EXPORT_API void ewk_media_set_subtitle_lang(Evas_Object* ewkView, const char* lang_list);
812
813
814 /**
815 * Set parental rating result to media player.
816 *
817 * @param ewkView view object
818 * @param url   media url
819 * @param is_pass  authentication result true/false
820 *
821 */
822 EXPORT_API void ewk_media_set_parental_rating_result(Evas_Object* ewkView, const char* url, Eina_Bool is_pass);
823
824 /**
825 * Set the if use high bit rate to media player.
826 *
827 * @param ewkView view object
828 * @param is_high  if app use high bit rate
829 *
830 */
831 EXPORT_API void ewk_media_start_with_high_bit_rate(Evas_Object* ewkView, Eina_Bool is_high_bitrate);
832
833
834 /**
835  * @brief Sends key event.
836  *
837  * @since_tizen 2.4
838  *
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
844  */
845 EXPORT_API Eina_Bool ewk_view_send_key_event(Evas_Object* o, void* key_event, Eina_Bool is_press);
846
847 /**
848  * @brief Sets whether the ewk_view supports the key events or not.
849  *
850  * @since_tizen 2.4
851  *
852  * @note Should be used after ewk_view_url_set().
853  *
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.
856  *
857  * @param[in] o The view object
858  * @param[in] enabled a state to set
859  *
860  * @return @c EINA_TRUE on success,\n
861  *         otherwise @c EINA_FALSE
862  */
863 EXPORT_API Eina_Bool ewk_view_key_events_enabled_set(Evas_Object *o, Eina_Bool enabled);
864
865 enum Ewk_Scrollbar_Orientation {
866   EWK_HORIZONTAL_SCROLLBAR = 0,
867   EWK_VERTICAL_SCROLLBAR
868 };
869
870 typedef enum Ewk_Scrollbar_Orientation Ewk_Scrollbar_Orientation;
871
872 struct Ewk_Scrollbar_Data {
873   Ewk_Scrollbar_Orientation orientation; /**< scrollbar orientation */
874   Eina_Bool focused;                     /**< isFocused */
875 };
876
877 typedef struct Ewk_Scrollbar_Data Ewk_Scrollbar_Data;
878
879 /**
880  * @brief Adds an item to back forward list
881  *
882  * @since_tizen 2.4
883  *
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
888  */
889 EXPORT_API Eina_Bool
890 ewk_view_add_item_to_back_forward_list(Evas_Object* o,
891                                        const Ewk_Back_Forward_List_Item* item);
892
893 /**
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.
897  *
898  * @since_tizen 3.0
899  *
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
903  *            (optional)
904  * @param[in] unreachable_url URL that could not be reached (optional)
905  *
906  * @return @c EINA_TRUE if it the HTML was successfully loaded,
907  *         @c EINA_FALSE otherwise
908  */
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);
910
911 /**
912  * Sets whether to draw transparent background or not.
913  *
914  * @param o view object to enable/disable transparent background
915  * @param enabled a state to set
916  *
917  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
918  */
919 EXPORT_API Eina_Bool ewk_view_draws_transparent_background_set(Evas_Object *o, Eina_Bool enabled);
920
921 /**
922  * Creates a type name for the callback function used to get the page contents.
923  *
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
927  */
928 typedef void (*Ewk_View_MHTML_Data_Get_Callback)(Evas_Object *o, const char *data, void *user_data);
929
930 /**
931  * Get page contents as MHTML data
932  *
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
936  *
937  * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise
938  */
939 EXPORT_API Eina_Bool ewk_view_mhtml_data_get(Evas_Object *o, Ewk_View_MHTML_Data_Get_Callback callback, void *user_data);
940
941 /**
942  * Gets the minimum and maximum value of the scale range or -1 on failure
943  *
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.
947  *
948  * @note Use @c NULL pointers on the scale components you're not
949  * interested in: they'll be ignored by the function.
950  */
951 EXPORT_API void ewk_view_scale_range_get(Evas_Object* o, double* min_scale, double* max_scale);
952
953 /**
954  * Returns the evas image object of the specified viewArea of page
955  *
956  * The returned evas image object @b should be freed after use.
957  *
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.
962  *
963  * @return newly allocated evas image object on sucess or @c 0 on failure.
964  */
965 EXPORT_API Evas_Object* ewk_view_screenshot_contents_get(const Evas_Object* o, Eina_Rectangle viewArea, float scaleFactor, Evas* canvas);
966
967 /**
968  * Gets the possible scroll size of the given view.
969  *
970  * Possible scroll size is contents size minus the viewport size.
971  *
972  * @param o view object to get scroll size
973  * @param w the pointer to store the horizontal size that is possible to scroll,
974  *        may be @c 0
975  * @param h the pointer to store the vertical size that is possible to scroll,
976  *        may be @c 0
977  *
978  * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise and
979  *         values are zeroed
980  */
981 EXPORT_API Eina_Bool ewk_view_scroll_size_get(const Evas_Object* o, int* w, int* h);
982
983 /**
984  * Clears the highlight of searched text.
985  *
986  * @param o view object to find text
987  *
988  * @return @c EINA_TRUE on success, @c EINA_FALSE on errors
989  */
990 EXPORT_API Eina_Bool ewk_view_text_find_highlight_clear(Evas_Object *o);
991
992 /**
993  * Counts the given string in the document.
994  *
995  * This does not highlight the matched string and just count the matched string.\n
996  *
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
1003  *
1004  * The "text,found" callback will be called with the number of matched string.
1005  *
1006  * @since_tizen 2.3
1007  *
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
1012  *
1013  * @return @c EINA_TRUE on success, @c EINA_FALSE on errors
1014  */
1015 EXPORT_API Eina_Bool ewk_view_text_matches_count(Evas_Object* o, const char* text, Ewk_Find_Options options, unsigned max_match_count);
1016
1017 /**
1018  * Gets the current text zoom level.
1019  *
1020  * @param o view object to get the zoom level
1021  *
1022  * @return current zoom level in use on success or @c -1.0 on failure
1023  */
1024 EXPORT_API double ewk_view_text_zoom_get(const Evas_Object* o);
1025
1026 /**
1027  * Sets the current text zoom level.
1028  *
1029  * @param o view object to set the zoom level
1030  * @param textZoomFactor a new level to set
1031  *
1032  * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise
1033  */
1034 EXPORT_API Eina_Bool ewk_view_text_zoom_set(Evas_Object* o, double text_zoom_factor);
1035
1036 /**
1037  * @brief Draw the evas image object for the VoiceManager
1038  *
1039  * @since_tizen 3.0
1040  *
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
1044  */
1045 EXPORT_API void ewk_view_voicemanager_label_draw(Evas_Object* view, Evas_Object* image, Eina_Rectangle rect);
1046
1047 /**
1048  * @brief Hide and remove all labels for the VoiceManager
1049  *
1050  * @details All labels are cleared on mouse down.
1051  *
1052  * @since_tizen 3.0
1053  *
1054  * @param[in] view the view object
1055  */
1056 EXPORT_API void ewk_view_voicemanager_labels_clear(Evas_Object* view);
1057
1058 /**
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.
1064  *
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
1068  *
1069  */
1070 EXPORT_API void ewk_view_add_dynamic_certificate_path(const Evas_Object *ewkView, const char* host, const char* cert_path);
1071
1072 /**
1073  * @brief Request to set the atk usage set by web app(config.xml).
1074  *
1075  * Some TV apps use WebSpeech instead of use ATK for regulation U.S.FCC
1076  *
1077  * @since_tizen 3.0 @if TV   @endif
1078  *
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.
1082  */
1083 EXPORT_API void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable);
1084
1085 typedef enum {
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) */
1089 } ewk_tts_mode;
1090
1091 /**
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
1098  * speech_syntesis
1099  *
1100  * @since_tizen 4.0 @if TV   @endif
1101  *
1102  * @param[in] o View object to set.
1103  * @param[in] ewk_tts_mode.
1104  *
1105  */
1106 EXPORT_API Eina_Bool ewk_view_tts_mode_set(Evas_Object* view, ewk_tts_mode tts_mode);
1107
1108 /**
1109  * remove custom header
1110  *
1111  * @param o view object to remove custom header
1112  *
1113  * @param name custom header name to remove the custom header
1114  *
1115  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
1116  */
1117 EXPORT_API Eina_Bool ewk_view_custom_header_remove(const Evas_Object* o, const char* name);
1118
1119 /**
1120  * Returns application name string.
1121  *
1122  * @param o view object to get the application name
1123  *
1124  * @return @c application name. The returned string @b should be freed by
1125  *         eina_stringshare_del() after use.
1126  */
1127 EXPORT_API const char* ewk_view_application_name_for_user_agent_get(const Evas_Object* o);
1128
1129 /*
1130  * Get cookies associated with an URL.
1131  *
1132  * @param o view object in which URL is opened.
1133  * @param url the url for which cookies needs to be obtained.
1134  *
1135  * @return @c character array containing cookies, @c NULL if no cookies are found.
1136  *
1137  * The return character array has to be owned by the application and freed when not required.
1138  */
1139 EXPORT_API char* ewk_view_cookies_get(Evas_Object* o, const char* url);
1140
1141 /**
1142  * @internal
1143  * @brief Callback for ewk_view_notification_show_callback_set
1144  *
1145  * @since_tizen 2.3
1146  *
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
1150  */
1151 typedef Eina_Bool (*Ewk_View_Notification_Show_Callback)(Evas_Object *o, Ewk_Notification *notification, void *user_data);
1152
1153 /**
1154  * @internal
1155  * @brief Sets the notification show callback.
1156  *
1157  * @since_tizen 2.3
1158  *
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
1162  */
1163 EXPORT_API void ewk_view_notification_show_callback_set(Evas_Object *o, Ewk_View_Notification_Show_Callback show_callback, void *user_data);
1164
1165 /**
1166  * @internal
1167  * @brief Callback for ewk_view_notification_cancel_callback_set
1168  *
1169  * @since_tizen 2.3
1170  *
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
1174  */
1175 typedef Eina_Bool (*Ewk_View_Notification_Cancel_Callback)(Evas_Object *o, uint64_t notification_id, void *user_data);
1176
1177 /**
1178  * @internal
1179  * @brief Sets the notification cancel callback.
1180  *
1181  * @since_tizen 2.3
1182  *
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
1186  */
1187 EXPORT_API void ewk_view_notification_cancel_callback_set(Evas_Object *o, Ewk_View_Notification_Cancel_Callback cancel_callback, void *user_data);
1188
1189 /**
1190 * @brief Gets the current custom character encoding name.
1191 *
1192 * @since_tizen 2.3
1193 *
1194 * @param[in] o view object to get the current encoding
1195 *
1196 * @return @c eina_strinshare containing the current encoding, or\n
1197 *         @c NULL if it's not set
1198 */
1199 EXPORT_API const char* ewk_view_custom_encoding_get(const Evas_Object* o);
1200
1201 /**
1202 * @brief Sets the custom character encoding and reloads the page.
1203 *
1204 * @since_tizen 2.3
1205 *
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
1208 *
1209 * @return @c EINA_TRUE on success @c EINA_FALSE otherwise
1210 */
1211 EXPORT_API Eina_Bool ewk_view_custom_encoding_set(Evas_Object* o, const char* encoding);
1212
1213 /**
1214 * @brief Forces web page to relayout
1215 *
1216 * @since_tizen 2.3
1217 *
1218 * @param [in] o view
1219 */
1220 EXPORT_API void ewk_view_force_layout(const Evas_Object* o);
1221
1222 /**
1223 * Gets the video's timestamp.
1224 *
1225 * @param o view object to get the video's timestamp
1226 *
1227 * @return timestamp value
1228 */
1229 EXPORT_API double ewk_view_media_current_time_get(const Evas_Object *o);
1230
1231 /**
1232 * @brief Enforces web page to close
1233 *
1234 * @since_tizen 3.0
1235 *
1236 * @param[in] o view
1237 *
1238 * @return @c EINA_TRUE on success @c EINA_FALSE otherwise
1239 */
1240 EXPORT_API Eina_Bool ewk_view_page_close(Evas_Object* o);
1241
1242 /**
1243 * Clear all tile resources.
1244 *
1245 * @param ewkView view object
1246 */
1247 EXPORT_API void ewk_view_clear_all_tiles_resources(Evas_Object* ewkView);
1248
1249 /**
1250 * Request canvas to be shown in full-screen.
1251 *
1252 * @param ewkView view object
1253 */
1254 EXPORT_API void ewk_view_request_canvas_fullscreen(Evas_Object* ewkView);
1255
1256 /**
1257 * play 360 video in the view
1258 *
1259 * @param ewkView view object
1260 */
1261 EXPORT_API void ewk_view_360video_play(Evas_Object* ewkView);
1262
1263 /**
1264 * pause 360 video in the view
1265 *
1266 * @param ewkView view object
1267 */
1268 EXPORT_API void ewk_view_360video_pause(Evas_Object* ewkView);
1269
1270 /**
1271  * Callback for ewk_view_360video_duration
1272  *
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
1276  */
1277 typedef void (*Ewk_360_Video_Duration_Callback)(Evas_Object* o, double duration, void* user_data);
1278
1279 /**
1280 * get duration of the 360 video in the view
1281 *
1282 * @param ewkView view object
1283 *
1284 * @return duration of the video
1285 */
1286 EXPORT_API void ewk_view_360video_duration(Evas_Object* ewkView, Ewk_360_Video_Duration_Callback callback, void* user_data);
1287
1288 /**
1289  * Callback for ewk_view_360video_current_time
1290  *
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
1294  */
1295 typedef void (*Ewk_360_Video_CurrentTime_Callback)(Evas_Object* o, double current_time, void* user_data);
1296
1297 /**
1298 * get current time of the 360 video in the view
1299 *
1300 * @param ewkView view object
1301 *
1302 * @return current time of the video
1303 */
1304 EXPORT_API void ewk_view_360video_current_time(Evas_Object* ewkView, Ewk_360_Video_CurrentTime_Callback callback, void* user_data);
1305
1306 /**
1307 * set current time of the 360 video in the view
1308 *
1309 * @param ewkView view object
1310 *
1311 * @param current_time set current time
1312 */
1313 EXPORT_API void ewk_view_360video_set_current_time(Evas_Object* ewkView, double current_time);
1314
1315 /**
1316  * @brief Request to set the atk usage set by web app(config.xml).
1317  *
1318  * Some TV apps use WebSpeech instead of use ATK for regulation U.S.FCC
1319  *
1320  * @since_tizen 3.0 @if TV   @endif
1321  *
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
1325  * ATK.
1326  */
1327 EXPORT_API void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable);
1328
1329 /**
1330  * Requests execution of the given script in the main frame and subframes of the page.
1331  *
1332  * The result value for the execution can be retrieved from the asynchronous callback.
1333  *
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
1338  *
1339  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
1340  */
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);
1342
1343 /**
1344  * Floating video's window ON/OFF
1345  *
1346  * @param o view object
1347  * @param bool status (true/false)
1348  *
1349  */
1350 EXPORT_API void ewk_view_floating_window_state_changed(const Evas_Object *o, Eina_Bool status);
1351
1352 /**
1353  * Auto login by samsung pass
1354  *
1355  * @param view  view object
1356  * @param user_name user name to login
1357  * @param password  user password to login
1358  *
1359  */
1360 EXPORT_API void ewk_view_auto_login(Evas_Object *view, const char* user_name, const char* password);
1361
1362 /**
1363  * @}
1364  */
1365
1366 #ifdef __cplusplus
1367 }
1368 #endif
1369 #endif // ewk_view_product_h