2 Copyright (C) 2009-2010 ProFUSION embedded systems
3 Copyright (C) 2009-2010 Samsung Electronics
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.
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.
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.
23 * @brief Private methods of WebKit-EFL.
30 #include "BackForwardListImpl.h"
33 #include "NP_jsobject.h"
34 #if ENABLE(TIZEN_EFL_EXT_API)
35 #include "FrameLoaderClient.h"
41 #include "ewk_logging.h"
45 #include <wtf/PassRefPtr.h>
46 #include <wtf/Vector.h>
48 #if ENABLE(TIZEN_EFL_EXT_API)
49 #include "ewk_policy_decision.h"
52 #if ENABLE(TIZEN_ISF_PORT)
53 #include <Ecore_IMF.h>
56 #if ENABLE(TIZEN_ACCELERATED_COMPOSITING)
57 #if USE(ACCELERATED_COMPOSITING)
58 #include "ChromeClient.h"
59 #include "GraphicsLayer.h"
63 #if ENABLE(TIZEN_EVAS_OBJECT_PLUGIN)
64 #include "PluginView.h"
67 #if ENABLE(TIZEN_NOTIFICATION)
68 #if ENABLE(NOTIFICATIONS)
69 #include <NotificationPresenter.h>
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
81 #if ENABLE(NETSCAPE_PLUGIN_API)
82 #define EWK_JS_OBJECT_MAGIC 0x696969
84 typedef struct _Ewk_JS_Class Ewk_JS_Class;
85 struct _Ewk_JS_Object {
86 JavaScriptObject base;
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;
94 #endif // ENABLE(NETSCAPE_PLUGIN_API)
96 // forward declarations
98 struct PopupMenuClient;
100 struct ContextMenuItem;
101 #if ENABLE(TIZEN_ACCELERATED_COMPOSITING)
102 #if USE(ACCELERATED_COMPOSITING)
103 class GraphicsContext3D;
108 struct Ewk_Window_Object_Cleared_Event {
109 JSContextRef context;
110 JSObjectRef windowObject;
114 namespace EWKPrivate {
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);
120 Evas_Object* kitFrame(const WebCore::Frame* coreFrame);
122 } // namespace EWKPrivate
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);
143 Evas_Object* ewk_view_window_create(Evas_Object* o, bool javascript, const WebCore::WindowFeatures* coreFeatures);
145 void ewk_view_window_close(Evas_Object* o);
147 void ewk_view_mouse_link_hover_in(Evas_Object* o, void* data);
148 void ewk_view_mouse_link_hover_out(Evas_Object* o);
150 void ewk_view_toolbars_visible_set(Evas_Object* o, bool visible);
151 void ewk_view_toolbars_visible_get(Evas_Object* o, bool* visible);
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);
157 void ewk_view_scrollbars_visible_set(Evas_Object* o, bool visible);
158 void ewk_view_scrollbars_visible_get(Evas_Object* o, bool* visible);
160 void ewk_view_menubar_visible_set(Evas_Object* o, bool visible);
161 void ewk_view_menubar_visible_get(Evas_Object* o, bool* visible);
163 void ewk_view_tooltip_text_set(Evas_Object* o, const char* text);
165 void ewk_view_add_console_message(Evas_Object* o, const char* message, unsigned int lineNumber, const char* sourceID);
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);
173 bool ewk_view_run_open_panel(Evas_Object* ewkView, Evas_Object* frame, bool allowsMultipleFiles, const Vector<String>& acceptMIMETypes, Eina_List** selectedFilenames);
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);
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);
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);
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);
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);
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);
194 void ewk_view_did_first_visually_nonempty_layout(Evas_Object* o);
196 /*#if ENABLE(TIZEN_OFFSET_UPDATE)*/
197 //void ewk_view_tiled_offset_update(Evas_Object* o);
200 #if ENABLE(TIZEN_NONEMPTY_LAYOUT)
202 Missed code during upversioning:
203 commit 69ff5d612b2913e6dbaa4caac11cb5753c29ba74
205 void ewk_view_transition_to_commited_for_newpage(Evas_Object* o);
208 Missed code during upversioning:
209 commit f5bca62e02ebccb5f7d4e37b2bac0e81ddb3f673
211 void ewk_view_dispatch_did_finish_loading(Evas_Object* o);
213 void ewk_view_editor_client_contents_changed(Evas_Object* o);
214 void ewk_view_editor_client_selection_changed(Evas_Object* o);
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);
219 #if ENABLE(NETSCAPE_PLUGIN_API)
220 void ewk_view_js_window_object_clear(Evas_Object* o, Evas_Object* frame);
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);
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*);
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);
239 #if ENABLE(TIZEN_EVAS_OBJECT_PLUGIN)
240 void ewk_view_get_plugin_storage(Evas_Object* o , PluginStorage* pluginStorage);
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);
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);
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);
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);
261 void ewk_view_repaint_add(Ewk_View_Private_Data* priv, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
264 void ewk_view_layout_if_needed_recursive(Ewk_View_Private_Data* priv);
266 Ewk_Window_Features* ewk_window_features_new_from_core(const WebCore::WindowFeatures* core);
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);
273 WebCore::Frame* ewk_frame_core_get(const Evas_Object* o);
274 void ewk_frame_core_gone(Evas_Object* o);
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);
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);
289 void ewk_frame_did_perform_first_navigation(Evas_Object* o);
291 #if ENABLE(TIZEN_SUPPORT_VIEWPORT)
292 Eina_Bool ewk_view_contents_size_change_possible(Evas_Object* o, Evas_Coord w, Evas_Coord h);
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);
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);
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);
303 bool ewk_view_navigation_policy_decision(Evas_Object* o, Ewk_Frame_Resource_Request* request);
305 void ewk_view_contents_size_changed(Evas_Object* o, Evas_Coord w, Evas_Coord h);
307 WebCore::FloatRect ewk_view_page_rect_get(const Evas_Object* o);
309 const char* ewk_settings_default_user_agent_get();
311 void ewk_frame_editor_client_contents_changed(Evas_Object* o);
312 void ewk_frame_editor_client_selection_changed(Evas_Object* o);
314 /** TIZEN Internal APIs */
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);
320 #if ENABLE(TIZEN_ISF_PORT)
321 Ecore_IMF_Context* getImContextFromeView(Evas_Object *webview);
324 #if ENABLE(TIZEN_SHOULD_ALLOW_OPEN_URL)
325 Eina_Bool ewk_should_allow_open_uri(Evas_Object* o, const char* uri);
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);
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);
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);
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);
351 #if ENABLE(TIZEN_POLICY_DECISION)
353 ewk_policy_decision_new(Evas_Object* frame, WebCore::FramePolicyFunction);
355 // Ewk_Network_Request* ewk_network_request_new_with_core_request(const WebCore::ResourceRequest& resourceRequest);
357 #if ENABLE(TIZEN_PASSWORD_MANAGER)
358 void ewk_frame_submit_clicked(Evas_Object *o, const char *username, const char *password, const char *url);
361 #if ENABLE(TIZEN_DYNAMIC_LOADED_PLUGINS)
362 Eina_Bool _ewk_dynamic_loaded_plugins_set(Evas_Object *o, Eina_Bool enable);
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);
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);
372 WebCore::GraphicsContext3D* ewk_view_accelerated_compositing_context_get(Evas_Object* o);
374 Evas_Object* ewk_view_evas_object_for_compositing_create(Evas_Object* o);
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);
380 #if ENABLE(CANVAS_CAIRO_GLES_RENDERING)
381 cairo_device_t* ewk_view_get_shared_cairo_device(Evas_Object* o);
384 #endif // USE(ACCELERATED_COMPOSITING) && ENABLE(TIZEN_ACCELERATED_COMPOSITING)
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
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
394 Eina_Bool ewk_view_input_element_value_check(const char* value, Ewk_Dom_Input_Picker_Type type);
396 #if ENABLE(TIZEN_WEAK_SCROLL)
397 Eina_Bool ewk_frame_weak_scroll_moving_viewport_get(Evas_Object *o);
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);
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();
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);
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);
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);
473 #endif // ewk_private_h