Changeset 131756 in webkit
- Timestamp:
- Oct 18, 2012 8:49:19 AM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r131750 r131756 1 2012-10-18 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] Don't use the C API internally in WebKitFormSubmissionRequest 4 https://bugs.webkit.org/show_bug.cgi?id=96777 5 6 Reviewed by Xan Lopez. 7 8 Using the C++ classes directly instead of the C API wrappers we 9 avoid a lot of toImpl/toAPI casts, string conversions and 10 allocations. The code is also a lot simpler and easier to read. 11 12 * UIProcess/API/gtk/WebKitFormClient.cpp: 13 (willSubmitForm): 14 * UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp: 15 (_WebKitFormSubmissionRequestPrivate): 16 (webkitFormSubmissionRequestCreate): 17 (webkit_form_submission_request_get_text_fields): 18 (webkit_form_submission_request_submit): 19 * UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h: 20 1 21 2012-10-18 Carlos Garcia Campos <cgarcia@igalia.com> 2 22 -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormClient.cpp
r122961 r131756 31 31 static void willSubmitForm(WKPageRef page, WKFrameRef frame, WKFrameRef sourceFrame, WKDictionaryRef values, WKTypeRef userData, WKFormSubmissionListenerRef listener, const void* clientInfo) 32 32 { 33 GRefPtr<WebKitFormSubmissionRequest> request = adoptGRef(webkitFormSubmissionRequestCreate( values, listener));33 GRefPtr<WebKitFormSubmissionRequest> request = adoptGRef(webkitFormSubmissionRequestCreate(toImpl(values), toImpl(listener))); 34 34 webkitWebViewSubmitFormRequest(WEBKIT_WEB_VIEW(clientInfo), request.get()); 35 35 } -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp
r122961 r131756 21 21 #include "WebKitFormSubmissionRequest.h" 22 22 23 #include "ImmutableDictionary.h" 24 #include "WebFormSubmissionListenerProxy.h" 23 25 #include "WebKitFormSubmissionRequestPrivate.h" 24 26 #include <wtf/gobject/GRefPtr.h> 25 27 #include <wtf/text/CString.h> 26 28 27 using namespace WebKit;28 29 29 G_DEFINE_TYPE(WebKitFormSubmissionRequest, webkit_form_submission_request, G_TYPE_OBJECT) 30 30 31 31 struct _WebKitFormSubmissionRequestPrivate { 32 WKRetainPtr<WKDictionaryRef> wkValues;33 WKRetainPtr<WKFormSubmissionListenerRef> wkListener;32 RefPtr<ImmutableDictionary> webValues; 33 RefPtr<WebFormSubmissionListenerProxy> listener; 34 34 GRefPtr<GHashTable> values; 35 35 bool handledRequest; … … 62 62 } 63 63 64 WebKitFormSubmissionRequest* webkitFormSubmissionRequestCreate( WKDictionaryRef wkValues, WKFormSubmissionListenerRef wkListener)64 WebKitFormSubmissionRequest* webkitFormSubmissionRequestCreate(ImmutableDictionary* values, WebFormSubmissionListenerProxy* listener) 65 65 { 66 66 WebKitFormSubmissionRequest* request = WEBKIT_FORM_SUBMISSION_REQUEST(g_object_new(WEBKIT_TYPE_FORM_SUBMISSION_REQUEST, NULL)); 67 request->priv->w kValues = wkValues;68 request->priv-> wkListener = wkListener;67 request->priv->webValues = values; 68 request->priv->listener = listener; 69 69 return request; 70 70 } … … 87 87 return request->priv->values.get(); 88 88 89 if (! WKDictionaryGetSize(request->priv->wkValues.get()))89 if (!request->priv->webValues->size()) 90 90 return 0; 91 91 92 92 request->priv->values = adoptGRef(g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free)); 93 93 94 WKRetainPtr<WKArrayRef> wkKeys(AdoptWK, WKDictionaryCopyKeys(request->priv->wkValues.get()));95 for (size_t i = 0; i < WKArrayGetSize(wkKeys.get()); ++i) {96 WKStringRef wkKey = static_cast<WKStringRef>(WKArrayGetItemAtIndex(wkKeys.get(), i));97 W KStringRef wkValue = static_cast<WKStringRef>(WKDictionaryGetItemForKey(request->priv->wkValues.get(), wkKey));98 g_hash_table_insert(request->priv->values.get(), g_strdup( toImpl(wkKey)->string().utf8().data()), g_strdup(toImpl(wkValue)->string().utf8().data()));94 const ImmutableDictionary::MapType& map = request->priv->webValues->map(); 95 ImmutableDictionary::MapType::const_iterator end = map.end(); 96 for (ImmutableDictionary::MapType::const_iterator it = map.begin(); it != end; ++it) { 97 WebString* value = static_cast<WebString*>(it->value.get()); 98 g_hash_table_insert(request->priv->values.get(), g_strdup(it->key.utf8().data()), g_strdup(value->string().utf8().data())); 99 99 } 100 100 101 request->priv->w kValues = 0;101 request->priv->webValues = 0; 102 102 103 103 return request->priv->values.get(); … … 114 114 g_return_if_fail(WEBKIT_IS_FORM_SUBMISSION_REQUEST(request)); 115 115 116 WKFormSubmissionListenerContinue(request->priv->wkListener.get());116 request->priv->listener->continueSubmission(); 117 117 request->priv->handledRequest = true; 118 118 } -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h
r122961 r131756 24 24 #include "WebKitPrivate.h" 25 25 26 WebKitFormSubmissionRequest* webkitFormSubmissionRequestCreate(WKDictionaryRef, WKFormSubmissionListenerRef); 26 using namespace WebKit; 27 28 WebKitFormSubmissionRequest* webkitFormSubmissionRequestCreate(ImmutableDictionary* values, WebFormSubmissionListenerProxy*); 27 29 28 30 #endif // WebKitFormSubmissionRequestPrivate_h
Note: See TracChangeset
for help on using the changeset viewer.