tizen beta release
[profile/ivi/webkit-efl.git] / Source / WebKit / efl / ewk / ewk_private.h
1 /*
2     Copyright (C) 2009-2010 ProFUSION embedded systems
3     Copyright (C) 2009-2010 Samsung Electronics
4
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Library General Public
7     License as published by the Free Software Foundation; either
8     version 2 of the License, or (at your option) any later version.
9
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13     Library General Public License for more details.
14
15     You should have received a copy of the GNU Library General Public License
16     along with this library; see the file COPYING.LIB.  If not, write to
17     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18     Boston, MA 02110-1301, USA.
19 */
20
21 /**
22  * @file    ewk_private.h
23  * @brief   Private methods of WebKit-EFL.
24  */
25
26 #ifndef ewk_private_h
27 #define ewk_private_h
28
29 #include "APICast.h"
30 #include "BackForwardListImpl.h"
31 #include "EWebKit.h"
32 #include "Frame.h"
33 #include "NP_jsobject.h"
34 #if ENABLE(TIZEN_EFL_EXT_API)
35 #include "FrameLoaderClient.h"
36 #endif
37 #include "Page.h"
38 #include "Settings.h"
39 #include "Widget.h"
40 #include "ewk_js.h"
41 #include "ewk_logging.h"
42 #include "ewk_util.h"
43
44 #include <cairo.h>
45 #include <wtf/PassRefPtr.h>
46 #include <wtf/Vector.h>
47
48 #if ENABLE(TIZEN_EFL_EXT_API)
49 #include "ewk_policy_decision.h"
50 #endif
51
52 #if ENABLE(TIZEN_ISF_PORT)
53 #include <Ecore_IMF.h>
54 #endif
55
56 #if ENABLE(TIZEN_ACCELERATED_COMPOSITING)
57 #if USE(ACCELERATED_COMPOSITING)
58 #include "ChromeClient.h"
59 #include "GraphicsLayer.h"
60 #endif
61 #endif
62
63 #if ENABLE(TIZEN_EVAS_OBJECT_PLUGIN)
64 #include "PluginView.h"
65 #endif
66
67 #if ENABLE(TIZEN_NOTIFICATION)
68 #if ENABLE(NOTIFICATIONS)
69 #include <NotificationPresenter.h>
70 #endif
71 #endif
72
73 #ifdef __cplusplus
74 extern "C" {
75 #endif
76
77 // If defined, ewk will do type checking to ensure objects are of correct type
78 #define EWK_TYPE_CHECK 1
79 #define EWK_ARGB_BYTES_SIZE 4
80
81 #if ENABLE(NETSCAPE_PLUGIN_API)
82 #define EWK_JS_OBJECT_MAGIC 0x696969
83
84 typedef struct _Ewk_JS_Class Ewk_JS_Class;
85 struct _Ewk_JS_Object {
86     JavaScriptObject base;
87     const char* name;
88     const Ewk_JS_Class* cls;
89     Eina_Hash* properties;
90     Evas_Object* view; // ewk_view: check if this object has already been added to another ewk_view
91     Ewk_JS_Object_Type type;
92     EINA_MAGIC;
93 };
94 #endif // ENABLE(NETSCAPE_PLUGIN_API)
95
96 // forward declarations
97 namespace WebCore {
98 struct PopupMenuClient;
99 struct ContextMenu;
100 struct ContextMenuItem;
101 #if ENABLE(TIZEN_ACCELERATED_COMPOSITING)
102 #if USE(ACCELERATED_COMPOSITING)
103 class GraphicsContext3D;
104 #endif
105 #endif
106 }
107
108 struct Ewk_Window_Object_Cleared_Event {
109     JSContextRef context;
110     JSObjectRef windowObject;
111     Evas_Object* frame;
112 };
113
114 namespace EWKPrivate {
115
116 WebCore::Frame *coreFrame(const Evas_Object *ewkFrame);
117 WebCore::Page *corePage(const Evas_Object *ewkView);
118 WebCore::HistoryItem *coreHistoryItem(const Ewk_History_Item *ewkHistoryItem);
119
120 Evas_Object* kitFrame(const WebCore::Frame* coreFrame);
121
122 } // namespace EWKPrivate
123
124 void ewk_view_ready(Evas_Object* o);
125 void ewk_view_input_method_state_set(Evas_Object* o, bool active);
126 void ewk_view_title_set(Evas_Object* o, const char* title);
127 void ewk_view_uri_changed(Evas_Object* o);
128 void ewk_view_load_document_finished(Evas_Object* o, Evas_Object* frame);
129 void ewk_view_load_started(Evas_Object* o);
130 void ewk_view_load_provisional(Evas_Object* o);
131 void ewk_view_frame_main_load_started(Evas_Object* o);
132 void ewk_view_frame_main_cleared(Evas_Object* o);
133 void ewk_view_frame_main_icon_received(Evas_Object* o);
134 void ewk_view_load_finished(Evas_Object* o, const Ewk_Frame_Load_Error* error);
135 void ewk_view_load_error(Evas_Object* o, const Ewk_Frame_Load_Error* error);
136 void ewk_view_load_progress_changed(Evas_Object* o);
137 void ewk_view_load_show(Evas_Object* o);
138 void ewk_view_restore_state(Evas_Object* o, Evas_Object* frame);
139 #if ENABLE(TIZEN_FORM_SUBMIT_SUPPORT)
140 Evas_Object* ewk_view_window_create(Evas_Object* o, WebCore::Frame* frame, Eina_Bool javascript, Eina_Bool isMobile, const WebCore::WindowFeatures* coreFeatures, const WebCore::NavigationAction& action, const WTF::String& frameName);
141 Evas_Object* ewk_view_form_window_get(Evas_Object* o);
142 #else
143 Evas_Object* ewk_view_window_create(Evas_Object* o, bool javascript, const WebCore::WindowFeatures* coreFeatures);
144 #endif
145 void ewk_view_window_close(Evas_Object* o);
146
147 void ewk_view_mouse_link_hover_in(Evas_Object* o, void* data);
148 void ewk_view_mouse_link_hover_out(Evas_Object* o);
149
150 void ewk_view_toolbars_visible_set(Evas_Object* o, bool visible);
151 void ewk_view_toolbars_visible_get(Evas_Object* o, bool* visible);
152
153 void ewk_view_statusbar_visible_set(Evas_Object* o, bool visible);
154 void ewk_view_statusbar_visible_get(Evas_Object* o, bool* visible);
155 void ewk_view_statusbar_text_set(Evas_Object* o, const char* text);
156
157 void ewk_view_scrollbars_visible_set(Evas_Object* o, bool visible);
158 void ewk_view_scrollbars_visible_get(Evas_Object* o, bool* visible);
159
160 void ewk_view_menubar_visible_set(Evas_Object* o, bool visible);
161 void ewk_view_menubar_visible_get(Evas_Object* o, bool* visible);
162
163 void ewk_view_tooltip_text_set(Evas_Object* o, const char* text);
164
165 void ewk_view_add_console_message(Evas_Object* o, const char* message, unsigned int lineNumber, const char* sourceID);
166
167 void ewk_view_run_javascript_alert(Evas_Object* o, Evas_Object* frame, const char* message);
168 bool ewk_view_run_javascript_confirm(Evas_Object* o, Evas_Object* frame, const char* message);
169 bool ewk_view_run_javascript_prompt(Evas_Object* o, Evas_Object* frame, const char* message, const char* defaultValue, char** value);
170 bool ewk_view_should_interrupt_javascript(Evas_Object* o);
171 uint64_t ewk_view_exceeded_database_quota(Evas_Object* o, Evas_Object* frame, const char* databaseName, uint64_t current_size, uint64_t expected_size);
172
173 bool ewk_view_run_open_panel(Evas_Object* ewkView, Evas_Object* frame, bool allowsMultipleFiles, const Vector<String>& acceptMIMETypes, Eina_List** selectedFilenames);
174
175 void ewk_view_repaint(Evas_Object* o, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
176 void ewk_view_scroll(Evas_Object* o, Evas_Coord dx, Evas_Coord dy, Evas_Coord sx, Evas_Coord sy, Evas_Coord sw, Evas_Coord sh, Evas_Coord cx, Evas_Coord cy, Evas_Coord cw, Evas_Coord ch, bool main_frame);
177 WebCore::Page* ewk_view_core_page_get(const Evas_Object* o);
178
179 WTF::PassRefPtr<WebCore::Frame> ewk_view_frame_create(Evas_Object* o, Evas_Object* frame, const WTF::String& name, WebCore::HTMLFrameOwnerElement* ownerElement, const WebCore::KURL& url, const WTF::String& referrer);
180
181 WTF::PassRefPtr<WebCore::Widget> ewk_view_plugin_create(Evas_Object* o, Evas_Object* frame, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues, const WTF::String& mimeType, bool loadManually);
182
183 void ewk_view_popup_new(Evas_Object* o, WebCore::PopupMenuClient* client, int selected, const WebCore::IntRect& rect);
184 void ewk_view_viewport_attributes_set(Evas_Object* o, const WebCore::ViewportArguments& arguments);
185
186 #if ENABLE(TIZEN_PAGE_CACHE)
187 void ewk_view_cached_page_restore(Evas_Object* o);
188 void ewk_view_cached_page_data_save(Evas_Object* o, float zoom_level, WebCore::IntPoint pos);
189 #endif
190
191 void ewk_view_download_request(Evas_Object* o, Ewk_Download* download);
192 void* ewk_view_protocol_handler_resource_get(Evas_Object* o, size_t* bytesRead, char** mime, const char* file);
193
194 void ewk_view_did_first_visually_nonempty_layout(Evas_Object* o);
195
196 /*#if ENABLE(TIZEN_OFFSET_UPDATE)*/
197 //void ewk_view_tiled_offset_update(Evas_Object* o);
198 /*#endif*/
199
200 #if ENABLE(TIZEN_NONEMPTY_LAYOUT)
201 /*
202    Missed code during upversioning:
203    commit 69ff5d612b2913e6dbaa4caac11cb5753c29ba74
204 */
205 void ewk_view_transition_to_commited_for_newpage(Evas_Object* o);
206
207 /*
208    Missed code during upversioning:
209    commit f5bca62e02ebccb5f7d4e37b2bac0e81ddb3f673
210 */
211 void ewk_view_dispatch_did_finish_loading(Evas_Object* o);
212 #endif
213 void ewk_view_editor_client_contents_changed(Evas_Object* o);
214 void ewk_view_editor_client_selection_changed(Evas_Object* o);
215
216 bool ewk_view_focus_can_cycle(Evas_Object *o, Ewk_Focus_Direction direction);
217 void ewk_view_frame_view_creation_notify(Evas_Object* o);
218
219 #if ENABLE(NETSCAPE_PLUGIN_API)
220 void ewk_view_js_window_object_clear(Evas_Object* o, Evas_Object* frame);
221 #endif
222
223 #if ENABLE(TIZEN_SUPPORT_VIEWPORT)
224 void ewk_view_device_size_get(const Evas_Object* o, float *w, float *h);
225 WebCore::ViewportAttributes ewk_viewport_attributes_optimize(WebCore::ViewportAttributes attributes, int device_resolution_width, int device_resolution_height, float device_width, float device_height);
226 #endif
227
228 #if ENABLE(TOUCH_EVENTS)
229 void ewk_view_need_touch_events_set(Evas_Object*, bool needed);
230 bool ewk_view_need_touch_events_get(const Evas_Object*);
231 #endif
232
233 #if ENABLE(TIZEN_SUPPORT_PLUGINS) && ENABLE(TIZEN_DONT_PAN_OVER_SOME_PLUGINS) && ENABLE(TIZEN_EVAS_OBJECT_PLUGIN)
234 /* Enables/disables repeating events on events rect, if enabled native events will come to plugins directly */
235 EAPI void ewk_view_events_repeat_to_plugin(Evas_Object* o, Eina_Bool enabled);
236 void ewk_view_events_handled_by_plugin_changed(Evas_Object* o, Eina_Bool newState);
237 #endif
238
239 #if ENABLE(TIZEN_EVAS_OBJECT_PLUGIN)
240 void ewk_view_get_plugin_storage(Evas_Object* o , PluginStorage* pluginStorage);
241 #endif
242
243 Ewk_History_Item *ewk_history_item_new_from_core(WebCore::HistoryItem *core);
244 Ewk_History* ewk_history_new(WebCore::BackForwardListImpl* history);
245 void ewk_history_free(Ewk_History* history);
246
247 #if ENABLE(CONTEXT_MENUS)
248 Ewk_Context_Menu* ewk_context_menu_new(Evas_Object* view, WebCore::ContextMenuController* controller);
249 bool ewk_context_menu_free(Ewk_Context_Menu* o);
250 void ewk_context_menu_item_append(Ewk_Context_Menu* o, WebCore::ContextMenuItem& core);
251 Ewk_Context_Menu* ewk_context_menu_customize(Ewk_Context_Menu* o);
252 void ewk_context_menu_show(Ewk_Context_Menu* o);
253 #endif
254
255 const Eina_Rectangle* ewk_view_repaints_get(const Ewk_View_Private_Data* priv, size_t* count);
256 const Ewk_Scroll_Request* ewk_view_scroll_requests_get(const Ewk_View_Private_Data* priv, size_t* count);
257
258 #if ENABLE(TIZEN_CAIRO_SCALE_PATCH)
259 void ewk_view_repaint_add(Evas_Object* o, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
260 #else
261 void ewk_view_repaint_add(Ewk_View_Private_Data* priv, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
262 #endif
263
264 void ewk_view_layout_if_needed_recursive(Ewk_View_Private_Data* priv);
265
266 Ewk_Window_Features* ewk_window_features_new_from_core(const WebCore::WindowFeatures* core);
267
268 Evas_Object* ewk_frame_add(Evas* e);
269 bool ewk_frame_init(Evas_Object* o, Evas_Object* view, WebCore::Frame* frame);
270 bool ewk_frame_child_add(Evas_Object* o, WTF::PassRefPtr<WebCore::Frame> child, const WTF::String& name, const WebCore::KURL& url, const WTF::String& referrer);
271 void ewk_frame_view_set(Evas_Object* o, Evas_Object* newParent);
272
273 WebCore::Frame* ewk_frame_core_get(const Evas_Object* o);
274 void ewk_frame_core_gone(Evas_Object* o);
275
276 void ewk_frame_load_started(Evas_Object* o);
277 void ewk_frame_load_provisional(Evas_Object* o);
278 void ewk_frame_load_firstlayout_finished(Evas_Object* o);
279 void ewk_frame_load_firstlayout_nonempty_finished(Evas_Object* o);
280 void ewk_frame_load_document_finished(Evas_Object* o);
281 void ewk_frame_load_finished(Evas_Object* o, const char* error_domain, int error_code, bool is_cancellation, const char* error_description, const char* failing_url);
282 void ewk_frame_load_error(Evas_Object* o, const char* error_domain, int error_code, bool is_cancellation, const char* error_description, const char* failing_url);
283 void ewk_frame_load_progress_changed(Evas_Object* o);
284
285 void ewk_frame_request_will_send(Evas_Object* o, Ewk_Frame_Resource_Request* request);
286 void ewk_frame_request_assign_identifier(Evas_Object* o, const Ewk_Frame_Resource_Request* request);
287 void ewk_frame_view_state_save(Evas_Object* o, WebCore::HistoryItem* item);
288
289 void ewk_frame_did_perform_first_navigation(Evas_Object* o);
290
291 #if ENABLE(TIZEN_SUPPORT_VIEWPORT)
292 Eina_Bool ewk_view_contents_size_change_possible(Evas_Object* o, Evas_Coord w, Evas_Coord h);
293 #endif
294 void ewk_frame_contents_size_changed(Evas_Object* o, Evas_Coord w, Evas_Coord h);
295 void ewk_frame_title_set(Evas_Object* o, const char* title);
296
297 void ewk_frame_view_create_for_view(Evas_Object* o, Evas_Object* view);
298 bool ewk_frame_uri_changed(Evas_Object* o);
299 void ewk_frame_force_layout(Evas_Object* o);
300
301 WTF::PassRefPtr<WebCore::Widget> ewk_frame_plugin_create(Evas_Object* o, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues, const WTF::String& mimeType, bool loadManually);
302
303 bool ewk_view_navigation_policy_decision(Evas_Object* o, Ewk_Frame_Resource_Request* request);
304
305 void ewk_view_contents_size_changed(Evas_Object* o, Evas_Coord w, Evas_Coord h);
306
307 WebCore::FloatRect ewk_view_page_rect_get(const Evas_Object* o);
308
309 const char* ewk_settings_default_user_agent_get();
310
311 void ewk_frame_editor_client_contents_changed(Evas_Object* o);
312 void ewk_frame_editor_client_selection_changed(Evas_Object* o);
313
314 /** TIZEN Internal APIs */
315
316 #if ENABLE(TIZEN_EVAS_OBJECT_PLUGIN) && ENABLE(TIZEN_EVAS_OBJECT_PLUGIN_ORDER)
317 void ewk_frame_reorder_plugin(Evas_Object* o, WebCore::RenderEmbeddedObject* renderObject);
318 #endif
319
320 #if ENABLE(TIZEN_ISF_PORT)
321 Ecore_IMF_Context* getImContextFromeView(Evas_Object *webview);
322 #endif
323
324 #if ENABLE(TIZEN_SHOULD_ALLOW_OPEN_URL)
325 Eina_Bool ewk_should_allow_open_uri(Evas_Object* o, const char* uri);
326 #endif
327
328 #if ENABLE(TIZEN_EDITOR_CLIENT)
329 void ewk_view_editor_client_editing_started(Evas_Object* o);
330 void ewk_view_editor_client_editing_finished(Evas_Object* o);
331 #endif
332
333 #if ENABLE(TIZEN_ISF_PORT)
334 Ecore_IMF_Context* ewk_view_core_imContext_get(Evas_Object *webview);
335 void ewk_view_notify_imf_about_to_be_shown(Evas_Object *webview, Ecore_IMF_Context* context);
336 #endif
337
338 #if ENABLE(TIZEN_SAVE_IMAGE)
339 void ewk_context_menu_image_save_as_set(Ewk_Context_Menu *o, const char* file_name);
340 void ewk_context_menu_image_send_via_email_set(Ewk_Context_Menu *o, const char* file_path);
341 void ewk_context_menu_image_send_via_message_set(Ewk_Context_Menu *o, const char* file_path);
342 #endif
343
344 #if ENABLE(TIZEN_EDITOR_CLIENT)
345 void ewk_frame_editor_client_selection_changed(Evas_Object* o);
346 void ewk_frame_editor_client_contents_changed(Evas_Object* o);
347 void ewk_frame_editor_client_editing_started(Evas_Object* o);
348 void ewk_frame_editor_client_editing_finished(Evas_Object* o);
349 #endif
350
351 #if ENABLE(TIZEN_POLICY_DECISION)
352 Ewk_Policy_Decision* 
353 ewk_policy_decision_new(Evas_Object* frame, WebCore::FramePolicyFunction);
354 #endif
355 // Ewk_Network_Request* ewk_network_request_new_with_core_request(const WebCore::ResourceRequest& resourceRequest);
356
357 #if ENABLE(TIZEN_PASSWORD_MANAGER)
358 void ewk_frame_submit_clicked(Evas_Object *o, const char *username, const char *password, const char *url);
359 #endif
360
361 #if ENABLE(TIZEN_DYNAMIC_LOADED_PLUGINS)
362 Eina_Bool _ewk_dynamic_loaded_plugins_set(Evas_Object *o, Eina_Bool enable);
363 #endif
364
365 #if USE(ACCELERATED_COMPOSITING) && ENABLE(TIZEN_ACCELERATED_COMPOSITING)
366 void ewk_view_root_graphics_layer_set(Evas_Object* o, WebCore::GraphicsLayer* graphicsLayer);
367 void ewk_view_mark_for_sync(Evas_Object* o, bool b);
368
369 void ewk_view_compositor_create(Evas_Object* o);
370 Evas_Object* ewk_view_evas_gl_object_create(Evas_Object *o, Evas_Native_Surface *nativeSurface, int x, int y, int w, int h);
371
372 WebCore::GraphicsContext3D* ewk_view_accelerated_compositing_context_get(Evas_Object* o);
373
374 Evas_Object* ewk_view_evas_object_for_compositing_create(Evas_Object* o);
375
376 #if ENABLE(TIZEN_CSS_OVERFLOW_SCROLL_ACCELERATION)
377 void ewk_view_add_or_update_scrolling_layer(Evas_Object* ewkView, WebCore::PlatformLayer* scrollingLayer, WebCore::PlatformLayer* contentsLayer, const WebCore::IntSize& scrollSize);
378 void ewk_view_remove_scrolling_layer(Evas_Object* ewkView, WebCore::PlatformLayer* scrollingLayer, WebCore::PlatformLayer* contentsLayer);
379 #endif
380 #if ENABLE(CANVAS_CAIRO_GLES_RENDERING)
381 cairo_device_t* ewk_view_get_shared_cairo_device(Evas_Object* o);
382 #endif
383 // #endif
384 #endif // USE(ACCELERATED_COMPOSITING) && ENABLE(TIZEN_ACCELERATED_COMPOSITING)
385
386 /**
387  * @fn Eina_Bool ewk_view_input_element_value_check(const char* value, Ewk_Dom_Input_Picker_Type type)
388  * @brief Check DOM-element and attribute type for UI picker
389  * @internal
390  * @param [in] value A value for validation checking
391  * @param [in] type For validation checking type of input element
392  * @return true if value is valid; false if not
393  */
394 Eina_Bool ewk_view_input_element_value_check(const char* value, Ewk_Dom_Input_Picker_Type type);
395
396 #if ENABLE(TIZEN_WEAK_SCROLL)
397 Eina_Bool ewk_frame_weak_scroll_moving_viewport_get(Evas_Object *o);
398 #endif
399
400 #if ENABLE(TIZEN_RECORDING_SURFACE)
401 int ewk_view_recording_surface_set_status_get(Ewk_View_Private_Data* priv, int status);
402 void ewk_view_recording_surface_set_base_if_needed(Evas_Object *o);
403 Eina_Bool ewk_view_recording_surface_set_paint_contents(Ewk_View_Private_Data *priv, cairo_t *cr, const Eina_Rectangle *area);
404 #endif
405
406 #if ENABLE(TIZEN_SOUP_CACHE)
407 Eina_Bool ewk_cache_soup_disable(Eina_Bool disable);
408 unsigned ewk_cache_soup_min_dead_bytes_get();
409 void ewk_cache_soup_min_dead_bytes_set(unsigned val);
410 unsigned ewk_cache_soup_max_dead_bytes_get();
411 void ewk_cache_soup_max_dead_bytes_set(unsigned val);
412 void ewk_cache_soup_max_total_bytes_set(unsigned val);
413 unsigned ewk_cache_soup_max_total_bytes_get();
414 Eina_Bool ewk_cache_soup_init(const char* cachePath, Eina_Bool shared);
415 Eina_Bool ewk_cache_soup_load();
416 Eina_Bool ewk_cache_soup_dump();
417 Eina_Bool ewk_cache_soup_flush();
418 void ewk_cache_soup_finalize();
419 Eina_Bool ewk_cache_soup_clear();
420 Eina_Bool ewk_cache_soup_max_size_set(unsigned int size);
421 unsigned int ewk_cache_soup_max_size_get();
422 #endif
423
424 #if ENABLE(TIZEN_WEBKIT_EFL_DRT)
425 EAPI char*        ewk_frame_counter_value_by_element_id_get(const Evas_Object* o, const char* element_id);
426 EAPI WTF::String  ewk_frame_inner_text_get(const Evas_Object* o);
427 EAPI char*        ewk_frame_render_tree_dump_get(const Evas_Object* o);
428 EAPI char*        ewk_frame_response_mime_type_get(const Evas_Object* o);
429 EAPI Eina_Bool    ewk_frame_animation_pause(const Evas_Object* o, const char* name, const char* elementId, double time);
430 EAPI unsigned     ewk_frame_animation_active_number_get(const Evas_Object* o);
431 EAPI void         ewk_frame_animation_suspend(const Evas_Object *o);
432 EAPI void         ewk_frame_animation_resume(const Evas_Object *o);
433 EAPI Eina_Bool    ewk_frame_svg_animation_pause(const Evas_Object* o, const char* animationId, const char* elementId, double time);
434 EAPI Eina_Bool    ewk_frame_transition_pause(const Evas_Object* o, const char* name, const char* elementId, double time);
435 EAPI Eina_List*   ewk_frame_children_get(const Evas_Object* o);
436 EAPI int          ewk_frame_page_number_by_element_id_get(const Evas_Object* o, const char* element_id, float pageWidth, float pageHeight);
437 EAPI int          ewk_frame_page_number_get(const Evas_Object* o, float pageWidth, float pageHeight);
438 EAPI void         ewk_frame_opener_clear(const Evas_Object* o);
439 EAPI void         ewk_frame_name_clear(Evas_Object*);
440 EAPI void         ewk_util_javascript_gc_collect(void);
441 EAPI void         ewk_util_javascript_gc_alternate_thread_collect(const Eina_Bool waitUntilDone);
442 EAPI unsigned     ewk_util_javascript_gc_object_count_get(void);
443 EAPI unsigned     ewk_util_worker_thread_count(void);
444 EAPI Eina_Bool    ewk_frame_selection_rectangle_get(const Evas_Object* o, int* x, int* y, int* width, int* height);
445 EAPI void         ewk_view_page_scale(const Evas_Object* o, float scaleFactor, float x, float y);
446 EAPI Eina_Bool    ewk_view_text_search_with_options(const Evas_Object *o, const char *string, WebCore::FindOptions findOptions);
447 EAPI char        *ewk_history_item_target_get(const Ewk_History_Item *item);
448 EAPI Eina_Bool    ewk_history_item_target_is(const Ewk_History_Item *item);
449 EAPI Eina_List   *ewk_history_item_children_get(const Ewk_History_Item* item);
450 EAPI unsigned int ewk_frame_pending_unload_event_count_get(const Evas_Object* o);
451 EAPI WTF::String  ewk_frame_suitable_drt_name_get(const Evas_Object* o);
452 #endif
453
454 #if ENABLE(TIZEN_NOTIFICATION)
455 #if ENABLE(NOTIFICATIONS)
456 WebCore::NotificationPresenter* ewk_view_notification_presenter_get(const Evas_Object* ewkView);
457 void ewk_view_notification_show(Evas_Object* ewkView, WebCore::Notification* notification);
458 void ewk_view_notification_html_show(Evas_Object* ewkView, WebCore::Notification* notification);
459 void ewk_view_notification_cancel(Evas_Object* ewkView, WebCore::Notification* notification);
460 void ewk_view_notification_request_permission(Evas_Object* ewkView, const char* domain);
461 #endif
462 #endif
463
464 #if ENABLE(TIZEN_SUPPORT_WEBAPP_META_TAG)
465 void ewk_view_mobile_web_app_capable_state_set(Evas_Object* ewkView, const char *content);
466 void ewk_view_mobile_web_app_status_bar_style_set(Evas_Object* ewkView, const char *content);
467 #endif
468
469 #ifdef __cplusplus
470
471 }
472 #endif
473 #endif // ewk_private_h