Create string tightly when retrive string from cbhm callback event
[framework/web/webkit-efl.git] / Source / WebKit2 / UIProcess / API / efl / ewk_view_private.h
1 /*
2  * Copyright (C) 2012 Samsung Electronics
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public License
15  * along with this library; see the file COPYING.LIB.  If not, write to
16  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  *
19  */
20
21 #ifndef ewk_view_private_h
22 #define ewk_view_private_h
23
24 #include <Evas.h>
25 #include <WebKit2/WKBase.h>
26
27 Evas_Object* ewk_view_base_add(Evas* canvas, WKContextRef, WKPageGroupRef);
28
29 #if OS(TIZEN)
30 #include "WKPage.h"
31 #include "WebEvent.h"
32 #include "ewk_auth_challenge.h"
33 #include "ewk_context_menu.h"
34 #include "ewk_form_data.h"
35 #include "ewk_policy_decision.h"
36 #include "ewk_view.h"
37 #include <JavaScriptCore/JSValueRef.h>
38 #include <WebCore/TextDirection.h>
39 #include <wtf/Vector.h>
40
41 #if ENABLE(TIZEN_REGISTER_PROTOCOL_HANDLER) || ENABLE(TIZEN_REGISTER_CONTENT_HANDLER)
42 #include "ewk_custom_handlers.h"
43 #endif
44
45 #if ENABLE(TIZEN_SEARCH_PROVIDER)
46 #include "ewk_search_provider.h"
47 #endif
48
49 #if ENABLE(TIZEN_GEOLOCATION)
50 #include "ewk_geolocation.h"
51 #endif
52
53 #if ENABLE(TIZEN_MEDIA_STREAM)
54 #include "ewk_user_media.h"
55 #endif
56
57 #if ENABLE(TIZEN_NOTIFICATIONS)
58 #include "ewk_notification.h"
59 #include "ewk_notification_private.h"
60 #endif
61
62 #if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
63 #include "ewk_text_style.h"
64 #endif
65
66 #if ENABLE(TIZEN_CERTIFICATE_HANDLING)
67 #include "ewk_certificate.h"
68 #endif
69
70 #if ENABLE(TOUCH_EVENTS)
71 #include "ewk_touch.h"
72 #endif
73
74 #if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
75 #include "FocusRing.h"
76 #endif
77
78 namespace WebCore {
79 class IntPoint;
80 }
81
82 namespace WebKit {
83 class WebPopupItem;
84 class WebPopupMenuProxyEfl;
85 #if ENABLE(TIZEN_INPUT_COLOR_PICKER)
86 class WebColorChooserProxyEfl;
87 #endif // ENABLE(TIZEN_INPUT_COLOR_PICKER)
88 class PageClientImpl;
89 }
90
91 typedef struct Ewk_Context Ewk_Context;
92
93 #if ENABLE(TIZEN_GEOLOCATION)
94 typedef struct _Ewk_Geolocation Ewk_Geolocation;
95 #endif
96
97 bool ewk_view_focused_node_adjust(Evas_Object* object, Eina_Bool adjustForExternalKeyboard = EINA_FALSE);
98 void ewk_view_touch_event_handler_result_set(Evas_Object* ewkView, WebKit::WebEvent::Type type, bool wasHandled);
99
100 #if ENABLE(TIZEN_WEBKIT2_TILED_AC)
101 bool ewk_view_image_native_surface_set(Evas_Object* ewkView, Evas_Native_Surface* nativeSurface);
102 void ewk_view_mark_for_sync(Evas_Object* ewkView);
103 #endif
104
105 #if (ENABLE_TIZEN_REGISTER_PROTOCOL_HANDLER) || (ENABLE_TIZEN_REGISTER_CONTENT_HANDLER) || (ENABLE_TIZEN_CUSTOM_SCHEME_HANDLER)
106 Ewk_Custom_Handlers_Data* ewkCustomHandlersCreateData(const char* target, const char* baseUrl, const char* url, const char* title);
107 Ewk_Custom_Handlers_Data* ewkCustomHandlersCreateData(const char* target, const char* baseUrl, const char* url);
108 Ewk_Custom_Handlers_State ewkGetCustomHandlersDataResult(Ewk_Custom_Handlers_Data* customHandlersData);
109 void ewkCustomHandlersDeleteData(Ewk_Custom_Handlers_Data* customHandlersData);
110 #endif
111 #if ENABLE(TIZEN_REGISTER_PROTOCOL_HANDLER)
112 void ewkViewRegisterProtocolHandlers(Evas_Object* ewkView, const char* scheme, const char* baseURL, const char* url, const char* title);
113 #endif
114 #if ENABLE(TIZEN_CUSTOM_SCHEME_HANDLER)
115 Ewk_Custom_Handlers_State ewkViewIsProtocolHandlerRegistered(Evas_Object* ewkView, const char* scheme, const char* baseURL, const char* url);
116 void ewkViewUnregisterProtocolHandlers(Evas_Object* ewkView, const char* scheme, const char* baseUrl, const char* url);
117 #endif
118 #if ENABLE(TIZEN_REGISTER_CONTENT_HANDLER)
119 void ewkViewRegisterContentHandlers(Evas_Object* ewkView, const char* mimeType, const char* baseURL, const char* url, const char* title);
120 Ewk_Custom_Handlers_State ewkViewIsContentHandlerRegistered(Evas_Object* ewkView, const char* mimeType, const char* baseURL, const char* url);
121 void ewkViewUnregisterContentHandlers(Evas_Object* ewkView, const char* mimeType, const char* baseUrl, const char* url);
122 #endif
123 #if ENABLE(TIZEN_SEARCH_PROVIDER)
124 Ewk_Search_Provider_Data* ewkSearchProviderCreateData(const char* baseURL, const char* engineURL);
125 void ewkSearchProviderDeleteData(Ewk_Search_Provider_Data* searchProviderData);
126 void ewkViewAddSearchProvider(Evas_Object* ewkView, const char* baseURL, const char* engineURL);
127 unsigned long ewkViewIsSearchProviderInstalled(Evas_Object* ewkView, const char* baseURL, const char* engineURL);
128 unsigned long ewkGetSearchProviderResult(Ewk_Search_Provider_Data* searchProviderData);
129 #endif
130 #if ENABLE(TIZEN_SUPPORT_WEBAPP_META_TAG)
131 bool ewkViewGetStandaloneStatus(Evas_Object* ewkView);
132 #endif
133
134 Evas_Object* ewk_view_touchscreen_add(Evas* canvas, WKContextRef, WKPageGroupRef);
135 WebKit::PageClientImpl* ewkViewGetPageClient(const Evas_Object* ewkView);
136
137 #if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
138 FocusRing* ewkViewGetFocusRing(Evas_Object*);
139 #endif // #if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
140
141 void ewkViewLoadCommitted(Evas_Object* ewkView);
142 #if ENABLE(TIZEN_WEBKIT2_LOCAL_IMPLEMENTATION_FOR_ERROR)
143 void ewkViewLoadError(Evas_Object* ewkView, WKErrorRef error);
144 #endif
145 void ewkViewDidFirstVisuallyNonEmptyLayout(Evas_Object* ewkView);
146 void ewkViewDidReceiveAuthenticationChallenge(Evas_Object* ewkView, Ewk_Auth_Challenge* authChallenge);
147 void ewk_view_process_crashed(Evas_Object* ewkView);
148 void ewkViewCustomizeContextMenu(Evas_Object* ewkView, Ewk_Context_Menu* menu);
149 void ewkViewCustomContextMenuItemSelected(Evas_Object* ewkView, Ewk_Context_Menu_Item* item);
150 uint64_t ewkContextGetDatabaseQuota(Ewk_Context* ewkContext);
151 #if ENABLE(TIZEN_WEBKIT2_NOTIFY_POPUP_REPLY_STATUS)
152 void ewkViewNotifyPopupReplyWaitingState(Evas_Object* ewkView, bool isWaiting);
153 #endif
154 bool ewkViewRunJavaScriptAlert(Evas_Object* ewkView, WKStringRef alertText);
155 bool ewkViewRunJavaScriptConfirm(Evas_Object* ewkView, WKStringRef message);
156 bool ewkViewRunJavaScriptPrompt(Evas_Object* ewkView, WKStringRef message, WKStringRef defaultValue);
157 #if ENABLE(TIZEN_SUPPORT_BEFORE_UNLOAD_CONFIRM_PANEL)
158 bool ewk_view_run_before_unload_confirm_panel(Evas_Object* ewkView, WKStringRef message);
159 #endif
160 bool ewkViewRunOpenPanel(Evas_Object* ewkView, WKOpenPanelParametersRef parameters, WKOpenPanelResultListenerRef listener);
161 void ewkViewClosePage(Evas_Object* ewkView);
162 WKPageRef ewkViewCreateNewPage(Evas_Object* ewkView);
163 JSGlobalContextRef ewkViewGetJavascriptGlobalContext(Evas_Object* ewkView);
164 void ewkViewFormSubmit(Evas_Object* ewkView, Ewk_Form_Data* formData);
165 Ewk_Form_Data* ewkFormDataCreate(WKFrameRef frame, WKDictionaryRef values);
166 void ewkFormDataDelete(Ewk_Form_Data* formData);
167 Ewk_Policy_Decision* ewkPolicyDecisionCreate(WKFramePolicyListenerRef listener, WKURLRequestRef request, WKFrameRef frame = 0, WKURLResponseRef response = 0, WKFrameNavigationType navigationType = kWKFrameNavigationTypeOther);
168 void ewkPolicyDecisionDelete(Ewk_Policy_Decision* policyDecision);
169 bool ewkPolicyDecisionDecided(Ewk_Policy_Decision* policyDecision);
170 bool ewkPolicyDecisionSuspended(Ewk_Policy_Decision* policyDecision);
171 void ewkViewPolicyNavigationDecide(Evas_Object* ewkView, Ewk_Policy_Decision* policyDecision);
172 void ewkViewPolicyNewWindowDecide(Evas_Object* ewkView, Ewk_Policy_Decision* policyDecision);
173 void ewkViewPolicyResponseDecide(Evas_Object* ewkView, Ewk_Policy_Decision* policyDecision);
174
175 void ewkViewSendScrollEvent(Evas_Object* ewkView, int deltaX, int deltaY);
176 void ewkViewSendEdgeEvent(Evas_Object* ewkView, const WebCore::IntPoint& scrollPosition, int deltaX, int deltaY);
177 void ewkViewClearEdges(Evas_Object* ewkView);
178
179 void ewkViewFrameRendered(Evas_Object* ewkView);
180
181 #if ENABLE(TIZEN_SQL_DATABASE)
182 bool ewkViewExceededDatabaseQuota(Evas_Object* ewkView, WKSecurityOriginRef origin, WKStringRef displayName, unsigned long long expectedUsage);
183 Ewk_Context_Exceeded_Quota* ewkContextCreateExceededQuota(WKSecurityOriginRef origin, WKStringRef databaseName, WKStringRef displayName, unsigned long long currentQuota, unsigned long long currentOriginUsage, unsigned long long currentDatabaseUsage, unsigned long long expectedUsage);
184 void ewkContextDeleteExceededQuota(Ewk_Context_Exceeded_Quota* exceededQuota);
185 unsigned long long ewkContextGetNewQuotaForExceededQuota(Ewk_Context* context, Ewk_Context_Exceeded_Quota* exceededQuota);
186 #endif
187
188 #if ENABLE(TIZEN_GEOLOCATION)
189 void ewkViewSetGeolocation(Evas_Object* ewkView, Ewk_Geolocation*);
190 Ewk_Geolocation* ewkViewGetGeolocation(Evas_Object* ewkView);
191 void ewkViewRequestGeolocationPermission(Evas_Object* ewkView, Ewk_Geolocation_Permission_Request*);
192 void ewkViewDeleteGeolocationPermission(Evas_Object* ewkView, Ewk_Geolocation_Permission_Request*);
193 bool ewkViewIsValidLocationService(Evas_Object* ewkView);
194 #endif
195
196 #if ENABLE(TIZEN_NOTIFICATIONS)
197 void ewkViewCancelNotification(Evas_Object* ewkView, uint64_t notificationID);
198 void ewkViewRequestNotificationPermission(Evas_Object* ewkView, Ewk_Notification_Permission_Request*);
199 void ewkViewShowNotification(Evas_Object* ewkView, Ewk_Notification*);
200 void ewkViewDeleteNotificationPermissionRequest(Evas_Object* ewkView, Ewk_Notification_Permission_Request*);
201 #endif
202
203 #if ENABLE(TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE_BACKUP_IMAGE)
204 void ewk_view_backup_image_set(Evas_Object* ewkView);
205 bool ewk_view_backup_image_show(Evas_Object* ewkView);
206 bool ewk_view_backup_image_hide(Evas_Object* ewkView);
207 #endif
208
209 #if ENABLE(TIZEN_MEDIA_STREAM)
210 void ewkViewRequestUserMediaPermission(Evas_Object* ewkView, Ewk_User_Media_Permission_Request*);
211 void ewkViewDeleteUserMediaPermissionRequest(Evas_Object* ewkView, Ewk_User_Media_Permission_Request*);
212 #endif
213
214 #if ENABLE(TIZEN_JSBRIDGE_PLUGIN)
215 void ewkViewProcessJSBridgePlugin(Evas_Object* ewkView, WKStringRef request, WKStringRef message);
216 #endif
217
218 #if ENABLE(TIZEN_INPUT_TAG_EXTENSION)
219 void ewkViewInputPickerRequest(Evas_Object* ewkView, Ewk_Input_Type inputType, const String& inputValue);
220 #endif
221
222 #if ENABLE(TIZEN_VIEWPORT_META_TAG)
223 void ewkViewGetWindowFrame(Evas_Object* ewkView, int *x, int *y, int *w, int *h);
224 #endif
225
226 #if ENABLE(TIZEN_DATALIST_ELEMENT)
227 void ewkViewDataListShowRequest(Evas_Object* ewkView, Ewk_Input_Type inputType, Vector<String> optionList);
228 void ewkViewDataListHideRequest(Evas_Object* ewkView, Ewk_Input_Type inputType);
229 #endif
230
231 #if ENABLE(TIZEN_WEBKIT2_GET_TEXT_STYLE_FOR_SELECTION)
232 void  ewkViewTextStyleState(Evas_Object* ewkView, const WebCore::IntPoint& startPoint, const WebCore::IntPoint& endPoint);
233 Ewk_Text_Style* ewkTextStyleCreate(const WebKit::EditorState editorState, const WebCore::IntPoint& startPoint, const WebCore::IntPoint& endPoint);
234 void ewkTextStyleDelete(Ewk_Text_Style* textStyle);
235 #endif
236
237 #if ENABLE(SCREEN_ORIENTATION_SUPPORT) && ENABLE(TIZEN_SCREEN_ORIENTATION_SUPPORT)
238 bool ewk_view_orientation_lock(Evas_Object* ewkView, int willLockOrientation);
239 void ewk_view_orientation_unlock(Evas_Object* ewkView);
240 #endif
241
242 void ewk_view_zoomable_area_set(Evas_Object*, const WebCore::IntPoint&, const WebCore::IntRect&);
243
244 #if ENABLE(TIZEN_ICON_DATABASE)
245 void ewkViewIconReceived(Evas_Object* ewkView);
246 #endif
247
248 #endif // #if OS(TIZEN)
249
250 #if ENABLE(TIZEN_CERTIFICATE_HANDLING)
251 void ewkViewRequestCertificateConfirm(Evas_Object* ewkView, Ewk_Certificate_Policy_Decision* certificatePolicyDecision);
252 Ewk_Certificate_Policy_Decision* ewkCertificatePolicyDecisionCreate(WKPageRef page, WKStringRef url, WKStringRef certificate, int error);
253 void ewkCertificatePolicyDecisionDelete(Ewk_Certificate_Policy_Decision* certificatePolicyDecision);
254 bool ewkCertificatePolicyDecisionSuspended(Ewk_Certificate_Policy_Decision* certificatePolicyDecision);
255 bool ewkCertificatePolicyDecisionDecided(Ewk_Certificate_Policy_Decision* certificatePolicyDecision);
256 #endif
257
258 void _ewk_view_suspend_painting(Evas_Object* ewkView);
259 void _ewk_view_resume_painting(Evas_Object* ewkView);
260
261 #if ENABLE(TIZEN_RUNTIME_BACKEND_SELECTION)
262 bool ewk_view_is_opengl_backend(Evas_Object* ewkView);
263 #endif
264
265 #if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
266 void ewkViewFocusRingHide(Evas_Object* ewkView);
267 #endif
268
269 #if ENABLE(TIZEN_SIGNAL_APP_BACK_FORWARD_LIST_CHANGED)
270 void ewkViewBackForwardListChanged(Evas_Object *ewkView);
271 #endif
272
273 #if ENABLE(TIZEN_APPLICATION_CACHE)
274 Eina_Bool ewkViewRequestApplicationCachePermission(Evas_Object* ewkView, WKSecurityOriginRef origin);
275 #endif
276
277 #if ENABLE(TIZEN_INDEXED_DATABASE)
278 bool ewkViewExceededIndexedDatabaseQuota(Evas_Object* ewkView, WKSecurityOriginRef origin, long long currentUsage);
279 #endif
280
281 #if ENABLE(TIZEN_WEBKIT2_POPUP_INTERNAL)
282 void ewk_view_popup_menu_update(Evas_Object* ewkView, WebCore::TextDirection textDirection, const Vector<WebKit::WebPopupItem>& items, int32_t selectedIndex);
283 #endif
284
285 #if ENABLE(TIZEN_WEBKIT2_FORM_DATABASE)
286 void ewk_view_form_password_data_fill(Evas_Object* ewkView);
287 void ewk_view_form_data_add(Evas_Object* ewkView, WKDictionaryRef& formData, bool isPasswordForm);
288 void ewk_view_form_candidate_data_get(Evas_Object* ewkView, const String& name, Vector<String>& candidates);
289 void ewk_view_text_change_in_textfield(Evas_Object* ewkView, const String& name, const String& value);
290 #endif
291
292 #if ENABLE(TIZEN_FILE_SYSTEM)
293 bool ewkViewExceededLocalFileSystemQuota(Evas_Object* ewkView, WKSecurityOriginRef origin, long long currentUsage);
294 #endif
295
296 #if ENABLE(TIZEN_PRERENDERING_FOR_ROTATION)
297 void ewkViewRotatePrepared(Evas_Object* ewkView);
298 #endif
299
300 #endif // ewk_view_private_h