18b8752e7cd630d63590c471ff24e4e00c729a29
[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_value_product.h"
38 #include "ewk_view_internal.h"
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44 /**
45  * A callback to check whether allowed to run mixed content or not
46  *
47  * @param ewkView view object
48  * @param user_data user_data will be passed when callback is called
49  * @return true: allow to run mixed content. false: not allow to run mixed content
50  */
51 typedef Eina_Bool (*Ewk_View_Run_Mixed_Content_Confirm_Callback)(Evas_Object* ewkView, void* user_data);
52
53 /**
54  * @brief Creates a new EFL Chromium view object.
55  *
56  * @since_tizen 2.3
57  *
58  * @param[in] e canvas object where to create the view object
59  * @param[in] data a pointer to data to restore session data
60  * @param[in] length length of session data to restore session data
61  *
62  * @return view object on success or @c NULL on failure
63  */
64 EXPORT_API Evas_Object* ewk_view_add_with_session_data(Evas* e, const char* data, unsigned length);
65
66 /**
67  * @brief Gets the reference object for frame that represents the main frame.
68  *
69  * @since_tizen 2.3
70  *
71  * @param[in] o view object to get main frame
72  *
73  * @return frame reference of frame object on success, or NULL on failure
74  */
75 EXPORT_API Ewk_Frame_Ref ewk_view_main_frame_get(Evas_Object* o);
76
77 /**
78  * @brief Reply of javascript alert popup
79  *
80  * @since_tizen 2.3
81  *
82  * @param[in] o view object
83  */
84 EXPORT_API void ewk_view_javascript_alert_reply(Evas_Object* o);
85
86 /**
87  * @brief Reply of javascript confirm popup
88  *
89  * @since_tizen 2.3
90  *
91  * @param[in] o view object
92  * @param[in] result result of javascript confirm popup
93  */
94 EXPORT_API void ewk_view_javascript_confirm_reply(Evas_Object* o, Eina_Bool result);
95
96 /**
97  * @brief Reply of javascript prompt popup
98  *
99  * @since_tizen 2.3
100  *
101  * @param[in] o view object
102  * @param[in] result entered characters of javascript prompt popup
103  */
104 EXPORT_API void ewk_view_javascript_prompt_reply(Evas_Object* o, const char* result);
105
106 /**
107  * @brief Callback for before unload popup
108  *
109  * @since_tizen 2.3
110  *
111  * @param[in] o view object
112  * @param[in] message the contents of before unload popup
113  * @param[in] user_data user data
114  */
115 typedef Eina_Bool (*Ewk_View_Before_Unload_Confirm_Panel_Callback)(Evas_Object* o, const char* message, void* user_data);
116
117 /**
118  * @brief Sets callback of before unload popup
119  *
120  * @since_tizen 2.3
121  *
122  * @param[in] o view object to set the callback
123  * @param[in] callback callback function for before unload popoup
124  * @param[in] user_data user data
125  */
126 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);
127
128 /**
129  * @brief Reply of before unload popup
130  *
131  * @since_tizen 2.3
132  *
133  * @param[in] o view object
134  * @param[in] result result of before unload popup
135  */
136 EXPORT_API void ewk_view_before_unload_confirm_panel_reply(Evas_Object* o, Eina_Bool result);
137
138 /**
139  * @brief Sets callback of getting application cache permission.
140  *
141  * @since_tizen 2.3
142  *
143  * @param[in] o view object to set the callback of application cache permission
144  * @param[in] callback function to be called when application cache need to
145  *            get permission
146  * @param[in] user_data user data
147  */
148 EXPORT_API void ewk_view_application_cache_permission_callback_set(Evas_Object* o, Ewk_View_Applicacion_Cache_Permission_Callback callback, void* user_data);
149
150 /**
151  * @brief Application cache permission confirm popup reply
152  *
153  * @since_tizen 2.3
154  *
155  * @param[in] o view object to reply permission confirm popup
156  * @param[in] allow of response
157  */
158 EXPORT_API void ewk_view_application_cache_permission_reply(Evas_Object* o, Eina_Bool allow);
159
160 /**
161  * @brief Set to callback to controll unfocus operation from the arrow of
162  *        h/w keyboard.
163  *
164  * @since_tizen 2.3
165  *
166  * @param[in] o view object
167  * @param[in] callback callback to controll unfocus operation from the arrow of
168  *            h/w keyboard
169  * @param[in] user_data user data
170  */
171 EXPORT_API void ewk_view_unfocus_allow_callback_set(Evas_Object* o, Ewk_View_Unfocus_Allow_Callback callback, void* user_data);
172
173 /**
174  * @brief Set to callback to show or hide the notification of bluetooth mic to user.
175  *
176  * @since_tizen 5.0
177  *
178  * @param[in] o view object
179  * @param[in] callback to show or hide the notification
180  * @param[in] user_data user_data will be passed when result_callback is
181  *            called\n -I.e., user data will be kept until callback is called
182  */
183 EXPORT_API void ewk_view_smartrc_show_mic_notification_callback_set(Evas_Object* o, Ewk_View_SmartRC_Mic_Notification_Callback callback, void* user_data);
184
185 /**
186  * @brief Requests loading the given contents.
187  *
188  * @since_tizen 2.3
189  *
190  * @param[in] o view object to load document
191  * @param[in] html what to load
192  * @param[in] base_uri base uri to use for relative resources, may be @c 0,\n
193  *        if provided @b must be an absolute uri
194  *
195  * @return @c EINA_TRUE on successful request, @c EINA_FALSE on errors
196  */
197 EXPORT_API Eina_Bool ewk_view_html_contents_set(Evas_Object* o, const char* html, const char* base_uri);
198
199 /**
200  * @brief Callback for ewk_view_cache_image_get
201  *
202  * @since_tizen 3.0
203  *
204  * @param[in] o view object
205  * @param[in] image_url url of the image in the cache
206  * @param[in] image cache image @b should be freed after use
207  * @param[in] user_data user data
208  */
209 typedef void (*Ewk_View_Cache_Image_Get_Callback)(Evas_Object* o, const char* image_url, Evas_Object* image, void* user_data);
210
211 /**
212  * @brief Asynchronous request for get the cache image specified in url.
213  *
214  * @since_tizen 3.0
215  *
216  * @param[in] o view object
217  * @param[in] image_url url of the image in the cache
218  * @param[in] canvas canvas for creating evas image
219  * @param[in] callback result callback to get cache image
220  * @param[in] user_data user_data will be passed when @a callback is called
221  *
222  * @return @c EINA_TRUE on successful request, @c EINA_FALSE on failure
223  */
224 EXPORT_API Eina_Bool ewk_view_cache_image_get(const Evas_Object* o, const char* image_url, Evas* canvas,
225                                               Ewk_View_Cache_Image_Get_Callback callback, void* user_data);
226
227 /**
228  * @brief Requests for getting web application capable.
229  *
230  * @since_tizen 2.3
231  *
232  * @param[in] o view object
233  * @param[in] callback result callback to get web database quota
234  * @param[in] user_data user_data will be passed when result_callback is
235  *            called\n -I.e., user data will be kept until callback is called
236  *
237  * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
238  */
239 EXPORT_API Eina_Bool ewk_view_web_application_capable_get(Evas_Object* o, Ewk_Web_App_Capable_Get_Callback callback, void* user_data);
240
241 /**
242  * @brief Requests for getting web application icon string.
243  *
244  * @since_tizen 2.3
245  *
246  * @param[in] o view object
247  * @param[in] callback result callback to get web database quota
248  * @param[in] user_data user_data will be passed when result_callback is
249  *            called\n -I.e., user data will be kept until callback is called
250  *
251  * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
252  */
253 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);
254
255 /**
256  * @brief Requests for getting web application icon list of
257  *        Ewk_Web_App_Icon_Data.
258  *
259  * @since_tizen 2.3
260  *
261  * @param[in] o view object
262  * @param[in] callback result callback to get web application icon urls
263  * @param[in] user_data user_data will be passed when result_callback is
264  *            called\n -I.e., user data will be kept until callback is called
265  *
266  * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
267  */
268 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);
269
270 /**
271  * @brief Get the whole history(whole back & forward list) associated with this
272  *        view.
273  *
274  * @since_tizen 2.3
275  *
276  * @param[in] o view object to get the history(whole back & forward list)
277  *
278  * @return a newly allocated history of @b newly allocated item\n
279  *         instance. This memory of each item must be released with\n
280  *         ewk_history_free() after use
281  *
282  * @see ewk_history_free()
283  */
284 EXPORT_API Ewk_History* ewk_view_history_get(Evas_Object* o);
285
286 /**
287  * @brief Gets the selection ranges
288  *
289  * @since_tizen 2.3
290  *
291  * @param[in] o view object to get theselection ranges
292  * @param[out] left_rect the start lect(left rect) of the selection ranges
293  * @param[out] right_rect the end lect(right rect) of the selection ranges
294  *
295  * @return @c EINA_TRUE on success, @c EINA_FALSE on failure
296  */
297 EXPORT_API Eina_Bool ewk_view_text_selection_range_get(Evas_Object* o, Eina_Rectangle* left_rect, Eina_Rectangle* right_rect);
298
299 /**
300  * @brief Sets the focused input element value
301  *
302  * @since_tizen 2.3
303  *
304  * @param[in] o view object to send the value
305  * @param[in] value the string value to be set
306  */
307 EXPORT_API void ewk_view_focused_input_element_value_set(Evas_Object* o, const char* value);
308
309 /**
310  * @brief Gets the focused input element's value
311  *
312  * @since_tizen 2.3
313  *
314  * @param[in] o view object to get the value
315  *
316  * @return focused input element's value on success or NULL on failure
317  */
318 EXPORT_API const char* ewk_view_focused_input_element_value_get(Evas_Object* o);
319
320 /**
321  * @brief Selects index of current popup menu.
322  *
323  * @since_tizen 2.3
324  *
325  * @param[in] o view object contains popup menu
326  * @param[in] index index of item to select
327  *
328  * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (probably\n
329  *         popup menu is not selected or index is out of range)
330  */
331 EXPORT_API Eina_Bool ewk_view_popup_menu_select(Evas_Object* o, unsigned int index);
332
333 /**
334  * @brief Selects Multiple indexes  of current popup menu.
335  *
336  * @since_tizen 2.3
337  *
338  * @param[in] o view object contains popup menu.
339  * @param[in] changed_list  list of item selected and deselected
340  *
341  * @return @c EINA_TRUE on success, @c EINA_FALSE on failure (probably\n
342  *         popup menu is not selected or index is out of range)
343  */
344 EXPORT_API Eina_Bool ewk_view_popup_menu_multiple_select(Evas_Object* o, Eina_Inarray* changed_list);
345
346 /*
347  * @brief Sets the user chosen color. To be used when implementing a color
348  *        picker.
349  *
350  * @details The function should only be called when a color has been requested
351  *          by the document.\n If called when this is not the case or when the
352  *          input picker has been dismissed, this\n function will fail and
353  *          return EINA_FALSE.
354  *
355  * @since_tizen 2.3
356  *
357  * @param[in] o view object contains color picker
358  * @param[in] r red channel value to be set
359  * @param[in] g green channel value to be set
360  * @param[in] b blue channel value to be set
361  * @param[in] a alpha channel value to be set
362  *
363  * @return @c EINA_TRUE on success @c EINA_FALSE otherwise
364  */
365 EXPORT_API Eina_Bool ewk_view_color_picker_color_set(Evas_Object* o, int r, int g, int b, int a);
366
367 /**
368  * @brief Feeds the touch event to the view.
369  *
370  * @since_tizen 2.3
371  *
372  * @param[in] o view object to feed touch event
373  * @param[in] type the type of touch event
374  * @param[in] points a list of points (Ewk_Touch_Point) to process
375  * @param[in] modifiers an Evas_Modifier handle to the list of modifier keys\n
376  *        registered in the Evas. Users can get the Evas_Modifier from the
377  *        Evas\n using evas_key_modifier_get() and can set each modifier key
378  *        using\n evas_key_modifier_on() and evas_key_modifier_off()
379  *
380  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
381  */
382 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);
383
384 /**
385  * Creates a type name for the callback function used to get the background color.
386  *
387  * @param o view object
388  * @param r red color component
389  * @param g green color component
390  * @param b blue color component
391  * @param a transparency
392  * @param user_data user data will be passed when ewk_view_bg_color_get is called
393  */
394 typedef void (*Ewk_View_Background_Color_Get_Callback)(Evas_Object *o, int r, int g, int b, int a, void* user_data);
395
396 /**
397  * Gets the background color and transparency of the view.
398  *
399  * @param o view object to get the background color from
400  * @param callback callback function
401  * @param user_data user data will be passed when the callback is called
402  *
403  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
404  *
405  *  On success the background color of the view object o is retrieved
406  *  in the callback function
407  */
408 EXPORT_API Eina_Bool ewk_view_bg_color_get(Evas_Object *o, Ewk_View_Background_Color_Get_Callback callback, void *user_data);
409
410 /**
411  * Callback for ewk_view_main_frame_scrollbar_visible_get
412  *
413  * @param o view object
414  * @param visibility visibility of main frame scrollbar
415  * @param user_data user data passed to ewk_view_main_frame_scrollbar_visible_get
416  */
417 typedef void (*Ewk_View_Main_Frame_Scrollbar_Visible_Get_Callback)(Evas_Object* o, Eina_Bool visible, void* user_data);
418
419 /**
420  * @brief Gets the visibility of main frame scrollbar.
421  *
422  * @since_tizen 3.0
423  *
424  * @param[in] o view object
425  * @param callback callback function
426  * @param user_data user data will be passed when the callback is caller
427  *
428  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
429  *
430  *  On success the visibility of the scrollbar of the view object o is retrieved
431  *  in the callback function
432  */
433 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);
434
435 /**
436  * @brief Gets the session data to be saved in a persistent store on
437  *        browser exit
438  *
439  * @since_tizen 2.3
440  *
441  * @param[in] o view object whose session needs to be stored.
442  * @param[in] data out parameter session data
443  * @param[in] length out parameter length of session data
444  */
445 EXPORT_API void ewk_view_session_data_get(Evas_Object* o, const char** data, unsigned* length);
446
447 /**
448  * @brief Reloads the current page's document without cache.
449  *
450  * @since_tizen 2.3
451  *
452  * @param[in] o view object to reload current document
453  *
454  * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise
455  */
456 EXPORT_API Eina_Bool ewk_view_reload_bypass_cache(Evas_Object* o);
457
458 /**
459  * @brief Creates a new hit test for the given veiw object and point.
460  *
461  * @since_tizen 2.3
462  *
463  * @remarks The returned object should be freed by ewk_hit_test_free().
464  *
465  * @param[in] o view object to do hit test on
466  * @param[in] x the horizontal position to query
467  * @param[in] y the vertical position to query
468  * @param[in] hit_test_mode the #Ewk_Hit_Test_Mode enum value to query
469  *
470  * @return a newly allocated hit test on success, @c 0 otherwise
471  */
472 EXPORT_API Ewk_Hit_Test* ewk_view_hit_test_new(Evas_Object* o, int x, int y, int hit_test_mode);
473
474 /**
475  * Create PDF file of page contents
476  *
477  * @param o view object to get page contents.
478  * @param width the suface width of PDF file.
479  * @param height the suface height of PDF file.
480  * @param fileName the file name for creating PDF file.
481  *
482  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
483  */
484 /* This return value is status of the request not the status of actual operation.
485  * There should be some callback to get the actual status or reason of failure.
486  */
487 EXPORT_API Eina_Bool ewk_view_contents_pdf_get(Evas_Object* o, int width, int height, const char* fileName);
488
489 /**
490  * Requests for setting callback function
491  *
492  * @param ewkView view object
493  * @param user_data user_data will be passed when callback is called
494  * @param callback callback function
495  */
496 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);
497
498 /**
499  * Returns the current favicon of view object.
500  *
501  * @param item view object to get current icon URL
502  *
503  * @return current favicon on success or @c NULL if unavailable or on failure.
504  * The returned Evas_Object needs to be freed after use.
505  */
506 EXPORT_API Evas_Object* ewk_view_favicon_get(const Evas_Object* ewkView);
507
508 /**
509  * To resume new url network loading
510  *
511  * @param item view object to resume new url loading
512  *
513  */
514 EXPORT_API void ewk_view_resume_network_loading(Evas_Object* ewkView);
515
516 EXPORT_API void ewk_view_poweroff_suspend(Evas_Object *item);
517
518 /**
519  * To suspend all url loading
520  *
521  * @param item view object to suspend url loading
522  *
523  */
524 EXPORT_API void ewk_view_suspend_network_loading(Evas_Object* ewkView);
525
526 /**
527  * This function should be use for browser edge scroll.
528  * It can also be used when the mouse pointer is out of webview.
529  * Scrolls webpage of view by dx and dy.
530  *
531  * @param item view object to scroll
532  * @param dx horizontal offset to scroll
533  * @param dy vertical offset to scroll
534  * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
535  */
536 EXPORT_API Eina_Bool ewk_view_edge_scroll_by(Evas_Object *item, int dx, int dy);
537
538 /**
539  * Allow a browser to set its own cursor by setting a flag
540  * which prevents setting a default web page cursor.
541  *
542  * @param ewkView view object
543  * @param enable EINA_TRUE - prevent update of cursor by engine
544  *               EINA_FALSE - allow for update of cursor by engine
545  */
546 EXPORT_API void ewk_view_set_cursor_by_client(Evas_Object* ewkView, Eina_Bool enable);
547
548 /**
549  * Reply of running mixed content or not
550  *
551  * @param ewkView view object
552  * @param result reply
553  */
554 EXPORT_API void ewk_view_run_mixed_content_confirm_reply(Evas_Object* ewkView, Eina_Bool result);
555
556 /**
557  * Sets the cover-area (soon rect) multiplier.
558  *
559  * @param ewkView view object
560  * @param cover_area_multiplier the multiplier of cover-area.
561  */
562 EXPORT_API void ewk_view_tile_cover_area_multiplier_set(
563     Evas_Object* ewkView,
564     float cover_area_multiplier);
565
566 /**
567  * Set to enabled/disabled clear tiles on hide.
568  *
569  * @param ewkView view object
570  * @param enabled/disabled a state to set
571  *
572  */
573 EXPORT_API void ewk_view_clear_tiles_on_hide_enabled_set(Evas_Object* ewkView,
574                                                          Eina_Bool enable);
575
576 /**
577  * @brief Callback for ewk_view_is_video_playing
578  *
579  * @param[in] o the view object
580  * @param[in] is_playing video is playing or not
581  * @param[in] user_data user_data will be passsed when ewk_view_is_video_playing is
582  *                      called
583  */
584 typedef void (*Ewk_Is_Video_Playing_Callback)(Evas_Object* o, Eina_Bool is_playing, void* user_data);
585
586 /**
587  * @brief Asynchronous request for check if there is a video playing in the given view
588  *
589  * @param[in] o The view object
590  * @param[in] callback result callback to get web application capable
591  * @param[in] user_data user_data will be passed when result_callback is called
592  *
593  * @return @c EINA_TRUE on successful request or @c EINA_FALSE on failure
594  */
595 EXPORT_API Eina_Bool ewk_view_is_video_playing(Evas_Object* o, Ewk_Is_Video_Playing_Callback callback, void* user_data);
596
597 /**
598  * Callback for ewk_view_stop_video
599  *
600  * @param o view object
601  * @param is_stopped video is stopped or not
602  * @param user_data user_data will be passsed when ewk_view_stop_video is called
603  */
604 typedef void (*Ewk_Stop_Video_Callback)(Evas_Object* o, Eina_Bool is_stopped, void* user_data);
605
606 /**
607  * Asynchronous request for stopping any playing video in the given view
608  *
609  * @param[in] o The view object
610  * @param[in] callback result callback to get web application capable
611  * @param[in] user_data user_data will be passed when result_callback is called
612  *
613  * @return @c EINA_TRUE if any video was stopped or @c EINA_FALSE is there was no active video
614  */
615 EXPORT_API Eina_Bool ewk_view_stop_video(Evas_Object* o, Ewk_Stop_Video_Callback callback, void* user_data);
616
617 /**
618  * @brief Sets the support of video hole and video window, Use H/W overlay for performance of video output
619  *
620  * @since_tizen 3.0
621  *
622  * @param[in] o the view object
623  * @param[in] o the top-level window object
624  * @param[in] enable EINA_TRUE to set on support the video hole,
625  *            EINA_FALSE otherwise
626  * @param[in] enable EINA_TRUE to set on the video window of video hole,
627  *            EINA_FALSE to set on the video windowless of video hole
628  *
629  * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
630  */
631 EXPORT_API Eina_Bool ewk_view_set_support_video_hole(Evas_Object* ewkView,
632                                                      void* window,
633                                                      Eina_Bool enable,
634                                                      Eina_Bool isVideoWindow);
635
636 /**
637  * @brief Sets the support of canvas hole, Use H/W overlay for video quality of WebGL 360 degree.
638  * Also, The WebBrowser provisionally want to show plane 360 video through canvas hole.
639  *
640  * @since_tizen 3.0
641  *
642  * @note Should be used after ewk_view_url_set().
643  *
644  * @param[in] o the view object
645  * @param[in] url string (ex. "youtube.com")
646  *
647  * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
648  */
649 EXPORT_API Eina_Bool ewk_view_set_support_canvas_hole(Evas_Object* ewkView, const char* url);
650
651
652 /**
653  * Callback for the generic sync call.
654  * It requests for performing operation/call giving its name. Arguments
655  * and return value is operation/call specific.
656  *
657  * @param[in] name requested call name
658  * @param[in] arguments call argumets, format is defined by opertion itself
659  * @param[in] user_data user_data will be passed when result_callback is called
660  *
661  * @return return value from the call, format is defind by operation itself
662  */
663 typedef Ewk_Value (*Generic_Sync_Call_Callback)(const char* name, Ewk_Value arguments, void* user_data);
664
665 /**
666  * Sets the function pointer for the generic sync call
667  *
668  * @param ewk_view view object to set the function pointer in
669  * @param cb pointer to the function
670  * @param user_data pointer to user data to be passed to the function when
671  *        it's being called
672  */
673 EXPORT_API void ewk_view_widget_pepper_extension_callback_set(Evas_Object* ewk_view, Generic_Sync_Call_Callback cb, void* user_data);
674
675 /**
676  * Sets the pepper widget extension info
677  *
678  * @param ewk_view view object to set the info in
679  * @param widget_pepper_ext_info the Ewk_Value containing the information
680  */
681 EXPORT_API void ewk_view_widget_pepper_extension_info_set(Evas_Object* ewk_view, Ewk_Value widget_pepper_ext_info);
682
683 /**
684  * @brief Sets the support of 4K video, Customize the device pixel ratio for
685  * video plane.
686  *
687  * @since_tizen 3.0
688  *
689  * @note Should be used after ewk_view_url_set().
690  *
691  * @param[in] o the view object
692  * @param[in] o enabled a state to set
693  *
694  * @return return @c EINA_TRUE on success or @c EINA_FALSE on failure
695  */
696 EXPORT_API Eina_Bool ewk_view_set_custom_device_pixel_ratio(Evas_Object* ewkView, Eina_Bool enabled);
697
698 /**
699  * @brief Gets whether horizontal panning is holding.
700  *
701  * @since_tizen 2.3
702  *
703  * @param[in] o view object to get whether horizontal panning is holding
704  *
705  * @return @c EINA_TRUE if horizontal panning is holding
706  *         @c EINA_FALSE if not or on failure
707  */
708 EXPORT_API Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* o);
709
710 /**
711  * @brief Sets to hold horizontal panning.
712  *
713  * @since_tizen 2.3
714  *
715  * @param[in] o view object to set to hold horizontal panning
716  * @param[in] hold @c EINA_TRUE to hold horizontal panning
717  *        @c EINA_FALSE not to hold
718  */
719 EXPORT_API void ewk_view_horizontal_panning_hold_set(Evas_Object* o, Eina_Bool hold);
720
721 /**
722  * @brief Gets whether vertical panning is holding.
723  *
724  * @since_tizen 2.3
725  *
726  * @param[in] o view object to get whether vertical panning is holding
727  *
728  * @return @c EINA_TRUE if vertical panning is holding
729  *         @c EINA_FALSE if not or on failure
730  */
731 EXPORT_API Eina_Bool ewk_view_vertical_panning_hold_get(Evas_Object* o);
732
733 /**
734   * Block/Release the vertical pan
735   *
736   * @param o view object on which pan is to be blocked/release
737   * @param hold status of pan
738   */
739 EXPORT_API void ewk_view_vertical_panning_hold_set(Evas_Object* o, Eina_Bool hold);
740
741 /**
742  * Set the translated url to media player.
743  *
744  * @param ewkView view object
745  * @param url string
746  *
747  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
748  */
749 EXPORT_API Eina_Bool ewk_media_translated_url_set(Evas_Object* ewkView, const char* url);
750
751 /**
752  * Set app is preload type or not.
753  *
754  * @param ewkView view object
755  * @param is_preload if app is preload type
756  *
757  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
758  */
759 EXPORT_API Eina_Bool ewk_view_app_preload_set(Evas_Object* ewkView, Eina_Bool is_preload);
760
761 /**
762 * Set app enable marlin or not.
763 *
764 * @param ewkView view object
765 * @param is_enable   if app enable marlin drm
766 *
767 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
768 */
769 EXPORT_API Eina_Bool ewk_view_marlin_enable_set(Evas_Object* ewkView, Eina_Bool is_enable);
770
771 /**
772  * Sets whitelisted DRM key systems. Passed key systems will be available
773  * through EME. Other systems even if available in the platform will be
774  * unavailable through EME
775  *
776  * @param ewkView View object
777  * @param list Key system names
778  * @param list_size Key system count
779  */
780 EXPORT_API Eina_Bool ewk_view_key_system_whitelist_set(Evas_Object* ewkView,
781                                                        const char** list,
782                                                        unsigned list_size);
783
784 /**
785  * Sets the active DRM system identifier as provided by the HbbTV application.
786  *
787  * @param ewkView View object
788  * @param drm_system_id Identifier of requested DRM system
789  *
790  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
791  */
792 EXPORT_API Eina_Bool ewk_view_active_drm_set(Evas_Object* view, const char* drm_system_id);
793
794 /**
795 * Set the selected text track language to media player.
796 *
797 * @param ewkView view object
798 * @param lang_list comma separated three_digit_language code. (For example "eng,deu")
799 *
800 */
801 EXPORT_API void ewk_media_set_subtitle_lang(Evas_Object* ewkView, const char* lang_list);
802
803
804 /**
805 * Set parental rating result to media player.
806 *
807 * @param ewkView view object
808 * @param url   media url
809 * @param is_pass  authentication result true/false
810 *
811 */
812 EXPORT_API void ewk_media_set_parental_rating_result(Evas_Object* ewkView, const char* url, Eina_Bool is_pass);
813
814 /**
815 * Set the if use high bit rate to media player.
816 *
817 * @param ewkView view object
818 * @param is_high  if app use high bit rate
819 *
820 */
821 EXPORT_API void ewk_media_start_with_high_bit_rate(Evas_Object* ewkView, Eina_Bool is_high_bitrate);
822
823
824 /**
825  * @brief Sends key event.
826  *
827  * @since_tizen 2.4
828  *
829  * @param[in] o The view object
830  * @param[in] key_event Evas_Event_Key_Down struct or Evas_Event_Key_Up struct
831  * @param[in] isPress EINA_TRUE: keydown, EINA_FALSE: keyup
832  * @return @c EINA_TRUE on success,\n
833  *         otherwise @c EINA_FALSE
834  */
835 EXPORT_API Eina_Bool ewk_view_send_key_event(Evas_Object* o, void* key_event, Eina_Bool is_press);
836
837 /**
838  * @brief Sets whether the ewk_view supports the key events or not.
839  *
840  * @since_tizen 2.4
841  *
842  * @note Should be used after ewk_view_url_set().
843  *
844  * @remarks The ewk_view will support the key events if EINA_TRUE or not support the
845  *          key events otherwise. The default value is EINA_TRUE.
846  *
847  * @param[in] o The view object
848  * @param[in] enabled a state to set
849  *
850  * @return @c EINA_TRUE on success,\n
851  *         otherwise @c EINA_FALSE
852  */
853 EXPORT_API Eina_Bool ewk_view_key_events_enabled_set(Evas_Object *o, Eina_Bool enabled);
854
855 enum Ewk_Scrollbar_Orientation {
856   EWK_HORIZONTAL_SCROLLBAR = 0,
857   EWK_VERTICAL_SCROLLBAR
858 };
859
860 typedef enum Ewk_Scrollbar_Orientation Ewk_Scrollbar_Orientation;
861
862 struct Ewk_Scrollbar_Data {
863   Ewk_Scrollbar_Orientation orientation; /**< scrollbar orientation */
864   Eina_Bool focused;                     /**< isFocused */
865 };
866
867 typedef struct Ewk_Scrollbar_Data Ewk_Scrollbar_Data;
868
869 /**
870  * @brief Adds an item to back forward list
871  *
872  * @since_tizen 2.4
873  *
874  * @param[in] o The view object
875  * @param[in] item The back-forward list item instance
876  * @return @c EINA_TRUE on success,\n
877  *         otherwise @c EINA_FALSE
878  */
879 EXPORT_API Eina_Bool
880 ewk_view_add_item_to_back_forward_list(Evas_Object* o,
881                                        const Ewk_Back_Forward_List_Item* item);
882
883 /**
884  * @brief Load the specified @a html string as the content of the view overriding
885  *        current history entry. Can be used to ignore the malicious page while
886  *        navigation backward/forward.
887  *
888  * @since_tizen 3.0
889  *
890  * @param[in] view object to load the HTML into
891  * @param[in] html HTML data to load
892  * @param[in] base_url Base URL used for relative paths to external objects
893  *            (optional)
894  * @param[in] unreachable_url URL that could not be reached (optional)
895  *
896  * @return @c EINA_TRUE if it the HTML was successfully loaded,
897  *         @c EINA_FALSE otherwise
898  */
899 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);
900
901 /**
902  * Sets whether to draw transparent background or not.
903  *
904  * @param o view object to enable/disable transparent background
905  * @param enabled a state to set
906  *
907  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
908  */
909 EXPORT_API Eina_Bool ewk_view_draws_transparent_background_set(Evas_Object *o, Eina_Bool enabled);
910
911 /**
912  * Creates a type name for the callback function used to get the page contents.
913  *
914  * @param o view object
915  * @param data mhtml data of the page contents
916  * @param user_data user data will be passed when ewk_view_mhtml_data_get is called
917  */
918 typedef void (*Ewk_View_MHTML_Data_Get_Callback)(Evas_Object *o, const char *data, void *user_data);
919
920 /**
921  * Get page contents as MHTML data
922  *
923  * @param o view object to get the page contents
924  * @param callback callback function to be called when the operation is finished
925  * @param user_data user data to be passed to the callback function
926  *
927  * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise
928  */
929 EXPORT_API Eina_Bool ewk_view_mhtml_data_get(Evas_Object *o, Ewk_View_MHTML_Data_Get_Callback callback, void *user_data);
930
931 /**
932  * Gets the minimum and maximum value of the scale range or -1 on failure
933  *
934  * @param o view object to get the minimum and maximum value of the scale range
935  * @param min_scale Pointer to an double in which to store the minimum scale factor of the object.
936  * @param max_scale Pointer to an double in which to store the maximum scale factor of the object.
937  *
938  * @note Use @c NULL pointers on the scale components you're not
939  * interested in: they'll be ignored by the function.
940  */
941 EXPORT_API void ewk_view_scale_range_get(Evas_Object* o, double* min_scale, double* max_scale);
942
943 /**
944  * Returns the evas image object of the specified viewArea of page
945  *
946  * The returned evas image object @b should be freed after use.
947  *
948  * @param o view object to get specified rectangle of cairo surface.
949  * @param viewArea rectangle of cairo surface.
950  * @param scaleFactor scale factor of cairo surface.
951  * @param canvas canvas for creating evas image.
952  *
953  * @return newly allocated evas image object on sucess or @c 0 on failure.
954  */
955 EXPORT_API Evas_Object* ewk_view_screenshot_contents_get(const Evas_Object* o, Eina_Rectangle viewArea, float scaleFactor, Evas* canvas);
956
957 /**
958  * Gets the possible scroll size of the given view.
959  *
960  * Possible scroll size is contents size minus the viewport size.
961  *
962  * @param o view object to get scroll size
963  * @param w the pointer to store the horizontal size that is possible to scroll,
964  *        may be @c 0
965  * @param h the pointer to store the vertical size that is possible to scroll,
966  *        may be @c 0
967  *
968  * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise and
969  *         values are zeroed
970  */
971 EXPORT_API Eina_Bool ewk_view_scroll_size_get(const Evas_Object* o, int* w, int* h);
972
973 /**
974  * Clears the highlight of searched text.
975  *
976  * @param o view object to find text
977  *
978  * @return @c EINA_TRUE on success, @c EINA_FALSE on errors
979  */
980 EXPORT_API Eina_Bool ewk_view_text_find_highlight_clear(Evas_Object *o);
981
982 /**
983  * Counts the given string in the document.
984  *
985  * This does not highlight the matched string and just count the matched string.\n
986  *
987  * As the search is carried out through the whole document,\n
988  * only the following #Ewk_Find_Options are valid.\n
989  *  - EWK_FIND_OPTIONS_NONE\n
990  *  - EWK_FIND_OPTIONS_CASE_INSENSITIVE\n
991  *  - EWK_FIND_OPTIONS_AT_WORD_START\n
992  *  - EWK_FIND_OPTIONS_TREAT_MEDIAL_CAPITAL_AS_WORD_START\n
993  *
994  * The "text,found" callback will be called with the number of matched string.
995  *
996  * @since_tizen 2.3
997  *
998  * @param o view object to find text
999  * @param text text to find
1000  * @param options options to find
1001  * @param max_match_count maximum match count to find, unlimited if 0
1002  *
1003  * @return @c EINA_TRUE on success, @c EINA_FALSE on errors
1004  */
1005 EXPORT_API Eina_Bool ewk_view_text_matches_count(Evas_Object* o, const char* text, Ewk_Find_Options options, unsigned max_match_count);
1006
1007 /**
1008  * Gets the current text zoom level.
1009  *
1010  * @param o view object to get the zoom level
1011  *
1012  * @return current zoom level in use on success or @c -1.0 on failure
1013  */
1014 EXPORT_API double ewk_view_text_zoom_get(const Evas_Object* o);
1015
1016 /**
1017  * Sets the current text zoom level.
1018  *
1019  * @param o view object to set the zoom level
1020  * @param textZoomFactor a new level to set
1021  *
1022  * @return @c EINA_TRUE on success or @c EINA_FALSE otherwise
1023  */
1024 EXPORT_API Eina_Bool ewk_view_text_zoom_set(Evas_Object* o, double text_zoom_factor);
1025
1026 /**
1027  * @brief Draw the evas image object for the VoiceManager
1028  *
1029  * @since_tizen 3.0
1030  *
1031  * @param[in] view the view object
1032  * @param[in] image evas image obejct for drawing
1033  * @param[in] rect rectangle of image object for drawing
1034  */
1035 EXPORT_API void ewk_view_voicemanager_label_draw(Evas_Object* view, Evas_Object* image, Eina_Rectangle rect);
1036
1037 /**
1038  * @brief Hide and remove all labels for the VoiceManager
1039  *
1040  * @details All labels are cleared on mouse down.
1041  *
1042  * @since_tizen 3.0
1043  *
1044  * @param[in] view the view object
1045  */
1046 EXPORT_API void ewk_view_voicemanager_labels_clear(Evas_Object* view);
1047
1048 /**
1049  * This api is used for Canal+ App and HBB TV Application.
1050  * They need to access various url required a client authentication while the apps is running.
1051  * So when XWalk call this API with host and related cert path, We store these information to map.
1052  * After that, When we get the "Certificate Request" packet from server,
1053  * We find matched cert path to host in the map.
1054  *
1055  * @param ewkView view object to add host and cert path to the map
1056  * @param host host that required client authentication
1057  * @param cert_path the file path stored certificate
1058  *
1059  */
1060 EXPORT_API void ewk_view_add_dynamic_certificate_path(const Evas_Object *ewkView, const char* host, const char* cert_path);
1061
1062 /**
1063  * @brief Request to set the atk usage set by web app(config.xml).
1064  *
1065  * Some TV apps use WebSpeech instead of use ATK for regulation U.S.FCC
1066  *
1067  * @since_tizen 3.0 @if TV   @endif
1068  *
1069  * @param[in] o View object to set the atk use.
1070  * @param[in] enable EINA_TRUE to set on the atk use.
1071  *            EINA_FALSE makes atk not to use, but app use WebSpeech instead of ATK.
1072  */
1073 EXPORT_API void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable);
1074
1075 typedef enum {
1076   EWK_TTS_MODE_DEFAULT = 0, /**< Default mode for normal application */
1077   EWK_TTS_MODE_NOTIFICATION = 1, /**< Notification mode(it has same behavior with EWK_TTS_MODE_DEFAULT. not supported in vd) */
1078   EWK_TTS_MODE_SCREEN_READER = 2 /**< Accessibiliity mode(TTS works only for accessibility mode) */
1079 } ewk_tts_mode;
1080
1081 /**
1082  * @brief Sets tts mode
1083  * up to tizen 4.0(in VD), default tts mode is EWK_TTS_MODE_SCREEN_READER.
1084  * so TTS api disabled when accessibility mode turn off.
1085  * this api provided to use tts api in none accessibility mode
1086  * (tts mode decided in chromium's init time. so it should be called in init time)
1087  * tts mode affect to below web apis
1088  * speech_syntesis
1089  *
1090  * @since_tizen 4.0 @if TV   @endif
1091  *
1092  * @param[in] o View object to set.
1093  * @param[in] ewk_tts_mode.
1094  *
1095  */
1096 EXPORT_API Eina_Bool ewk_view_tts_mode_set(Evas_Object* view, ewk_tts_mode tts_mode);
1097
1098 /**
1099  * remove custom header
1100  *
1101  * @param o view object to remove custom header
1102  *
1103  * @param name custom header name to remove the custom header
1104  *
1105  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
1106  */
1107 EXPORT_API Eina_Bool ewk_view_custom_header_remove(const Evas_Object* o, const char* name);
1108
1109 /**
1110  * Returns application name string.
1111  *
1112  * @param o view object to get the application name
1113  *
1114  * @return @c application name. The returned string @b should be freed by
1115  *         eina_stringshare_del() after use.
1116  */
1117 EXPORT_API const char* ewk_view_application_name_for_user_agent_get(const Evas_Object* o);
1118
1119 /*
1120  * Get cookies associated with an URL.
1121  *
1122  * @param o view object in which URL is opened.
1123  * @param url the url for which cookies needs to be obtained.
1124  *
1125  * @return @c character array containing cookies, @c NULL if no cookies are found.
1126  *
1127  * The return character array has to be owned by the application and freed when not required.
1128  */
1129 EXPORT_API char* ewk_view_cookies_get(Evas_Object* o, const char* url);
1130
1131 /**
1132  * @internal
1133  * @brief Callback for ewk_view_notification_show_callback_set
1134  *
1135  * @since_tizen 2.3
1136  *
1137  * @param[in] o view object to request the notification show
1138  * @param[in] notification Ewk_Notification object to get the information about notification show request
1139  * @param[in] user_data user data
1140  */
1141 typedef Eina_Bool (*Ewk_View_Notification_Show_Callback)(Evas_Object *o, Ewk_Notification *notification, void *user_data);
1142
1143 /**
1144  * @internal
1145  * @brief Sets the notification show callback.
1146  *
1147  * @since_tizen 2.3
1148  *
1149  * @param[in] o view object to request the notification show
1150  * @param[in] show_callback Ewk_View_Notification_Show_Callback function to notification show
1151  * @param[in] user_data user data
1152  */
1153 EXPORT_API void ewk_view_notification_show_callback_set(Evas_Object *o, Ewk_View_Notification_Show_Callback show_callback, void *user_data);
1154
1155 /**
1156  * @internal
1157  * @brief Callback for ewk_view_notification_cancel_callback_set
1158  *
1159  * @since_tizen 2.3
1160  *
1161  * @param[in] o view object to request the notification cancel
1162  * @param[in] notification_id Ewk_Notification object to get the information about notification cancel request
1163  * @param[in] user_data user data
1164  */
1165 typedef Eina_Bool (*Ewk_View_Notification_Cancel_Callback)(Evas_Object *o, uint64_t notification_id, void *user_data);
1166
1167 /**
1168  * @internal
1169  * @brief Sets the notification cancel callback.
1170  *
1171  * @since_tizen 2.3
1172  *
1173  * @param[in] o view object to request the notification show
1174  * @param[in] cancel_callback Ewk_View_Notification_Cancel_Callback function to notification cancel
1175  * @param[in] user_data user data
1176  */
1177 EXPORT_API void ewk_view_notification_cancel_callback_set(Evas_Object *o, Ewk_View_Notification_Cancel_Callback cancel_callback, void *user_data);
1178
1179 /**
1180 * @brief Gets the current custom character encoding name.
1181 *
1182 * @since_tizen 2.3
1183 *
1184 * @param[in] o view object to get the current encoding
1185 *
1186 * @return @c eina_strinshare containing the current encoding, or\n
1187 *         @c NULL if it's not set
1188 */
1189 EXPORT_API const char* ewk_view_custom_encoding_get(const Evas_Object* o);
1190
1191 /**
1192 * @brief Sets the custom character encoding and reloads the page.
1193 *
1194 * @since_tizen 2.3
1195 *
1196 * @param[in] o view to set the encoding
1197 * @param[in] encoding the new encoding to set or @c NULL to restore the default one
1198 *
1199 * @return @c EINA_TRUE on success @c EINA_FALSE otherwise
1200 */
1201 EXPORT_API Eina_Bool ewk_view_custom_encoding_set(Evas_Object* o, const char* encoding);
1202
1203 /**
1204 * @brief Forces web page to relayout
1205 *
1206 * @since_tizen 2.3
1207 *
1208 * @param [in] o view
1209 */
1210 EXPORT_API void ewk_view_force_layout(const Evas_Object* o);
1211
1212 /**
1213 * Gets the video's timestamp.
1214 *
1215 * @param o view object to get the video's timestamp
1216 *
1217 * @return timestamp value
1218 */
1219 EXPORT_API double ewk_view_media_current_time_get(const Evas_Object *o);
1220
1221 /**
1222 * @brief Enforces web page to close
1223 *
1224 * @since_tizen 3.0
1225 *
1226 * @param[in] o view
1227 *
1228 * @return @c EINA_TRUE on success @c EINA_FALSE otherwise
1229 */
1230 EXPORT_API Eina_Bool ewk_view_page_close(Evas_Object* o);
1231
1232 /**
1233 * Clear all tile resources.
1234 *
1235 * @param ewkView view object
1236 */
1237 EXPORT_API void ewk_view_clear_all_tiles_resources(Evas_Object* ewkView);
1238
1239 /**
1240 * Request canvas to be shown in full-screen.
1241 *
1242 * @param ewkView view object
1243 */
1244 EXPORT_API void ewk_view_request_canvas_fullscreen(Evas_Object* ewkView);
1245
1246 /**
1247 * play 360 video in the view
1248 *
1249 * @param ewkView view object
1250 */
1251 EXPORT_API void ewk_view_360video_play(Evas_Object* ewkView);
1252
1253 /**
1254 * pause 360 video in the view
1255 *
1256 * @param ewkView view object
1257 */
1258 EXPORT_API void ewk_view_360video_pause(Evas_Object* ewkView);
1259
1260 /**
1261  * Callback for ewk_view_360video_duration
1262  *
1263  * @param o view object
1264  * @param duration 360 video's duration
1265  * @param user_data user_data will be passsed when ewk_view_360video_duration is called
1266  */
1267 typedef void (*Ewk_360_Video_Duration_Callback)(Evas_Object* o, double duration, void* user_data);
1268
1269 /**
1270 * get duration of the 360 video in the view
1271 *
1272 * @param ewkView view object
1273 *
1274 * @return duration of the video
1275 */
1276 EXPORT_API void ewk_view_360video_duration(Evas_Object* ewkView, Ewk_360_Video_Duration_Callback callback, void* user_data);
1277
1278 /**
1279  * Callback for ewk_view_360video_current_time
1280  *
1281  * @param o view object
1282  * @param current_time 360 video's current time
1283  * @param user_data user_data will be passsed when ewk_view_360video_current_time is called
1284  */
1285 typedef void (*Ewk_360_Video_CurrentTime_Callback)(Evas_Object* o, double current_time, void* user_data);
1286
1287 /**
1288 * get current time of the 360 video in the view
1289 *
1290 * @param ewkView view object
1291 *
1292 * @return current time of the video
1293 */
1294 EXPORT_API void ewk_view_360video_current_time(Evas_Object* ewkView, Ewk_360_Video_CurrentTime_Callback callback, void* user_data);
1295
1296 /**
1297 * set current time of the 360 video in the view
1298 *
1299 * @param ewkView view object
1300 *
1301 * @param current_time set current time
1302 */
1303 EXPORT_API void ewk_view_360video_set_current_time(Evas_Object* ewkView, double current_time);
1304
1305 /**
1306  * @brief Request to set the atk usage set by web app(config.xml).
1307  *
1308  * Some TV apps use WebSpeech instead of use ATK for regulation U.S.FCC
1309  *
1310  * @since_tizen 3.0 @if TV   @endif
1311  *
1312  * @param[in] o View object to set the atk use.
1313  * @param[in] enable EINA_TRUE to set on the atk use.
1314  *            EINA_FALSE makes atk not to use, but app use WebSpeech instead of
1315  * ATK.
1316  */
1317 EXPORT_API void ewk_view_atk_deactivation_by_app(Evas_Object* view, Eina_Bool enable);
1318
1319 /**
1320  * Requests execution of the given script in the main frame and subframes of the page.
1321  *
1322  * The result value for the execution can be retrieved from the asynchronous callback.
1323  *
1324  * @param o The view to execute script
1325  * @param script JavaScript to execute
1326  * @param callback The function to call when the execution is completed, may be @c NULL
1327  * @param user_data User data, may be @c NULL
1328  *
1329  * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
1330  */
1331 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);
1332
1333 /**
1334  * Floating video's window ON/OFF
1335  *
1336  * @param o view object
1337  * @param bool status (true/false)
1338  *
1339  */
1340 EXPORT_API void ewk_view_floating_window_state_changed(const Evas_Object *o, Eina_Bool status);
1341
1342 /**
1343  * Auto login by samsung pass
1344  *
1345  * @param view  view object
1346  * @param user_name user name to login
1347  * @param password  user password to login
1348  *
1349  */
1350 EXPORT_API void ewk_view_auto_login(Evas_Object *view, const char* user_name, const char* password);
1351
1352 /**
1353  * @}
1354  */
1355
1356 #ifdef __cplusplus
1357 }
1358 #endif
1359 #endif // ewk_view_product_h