Title: [131756] trunk/Source/WebKit2
- Revision
- 131756
- Author
- [email protected]
- Date
- 2012-10-18 08:49:19 -0700 (Thu, 18 Oct 2012)
Log Message
[GTK] Don't use the C API internally in WebKitFormSubmissionRequest
https://bugs.webkit.org/show_bug.cgi?id=96777
Reviewed by Xan Lopez.
Using the C++ classes directly instead of the C API wrappers we
avoid a lot of toImpl/toAPI casts, string conversions and
allocations. The code is also a lot simpler and easier to read.
* UIProcess/API/gtk/WebKitFormClient.cpp:
(willSubmitForm):
* UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp:
(_WebKitFormSubmissionRequestPrivate):
(webkitFormSubmissionRequestCreate):
(webkit_form_submission_request_get_text_fields):
(webkit_form_submission_request_submit):
* UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h:
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (131755 => 131756)
--- trunk/Source/WebKit2/ChangeLog 2012-10-18 15:27:35 UTC (rev 131755)
+++ trunk/Source/WebKit2/ChangeLog 2012-10-18 15:49:19 UTC (rev 131756)
@@ -1,5 +1,25 @@
2012-10-18 Carlos Garcia Campos <[email protected]>
+ [GTK] Don't use the C API internally in WebKitFormSubmissionRequest
+ https://bugs.webkit.org/show_bug.cgi?id=96777
+
+ Reviewed by Xan Lopez.
+
+ Using the C++ classes directly instead of the C API wrappers we
+ avoid a lot of toImpl/toAPI casts, string conversions and
+ allocations. The code is also a lot simpler and easier to read.
+
+ * UIProcess/API/gtk/WebKitFormClient.cpp:
+ (willSubmitForm):
+ * UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp:
+ (_WebKitFormSubmissionRequestPrivate):
+ (webkitFormSubmissionRequestCreate):
+ (webkit_form_submission_request_get_text_fields):
+ (webkit_form_submission_request_submit):
+ * UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h:
+
+2012-10-18 Carlos Garcia Campos <[email protected]>
+
[GTK] Don't use the C API internally in WebKitSettings
https://bugs.webkit.org/show_bug.cgi?id=96784
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormClient.cpp (131755 => 131756)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormClient.cpp 2012-10-18 15:27:35 UTC (rev 131755)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormClient.cpp 2012-10-18 15:49:19 UTC (rev 131756)
@@ -30,7 +30,7 @@
static void willSubmitForm(WKPageRef page, WKFrameRef frame, WKFrameRef sourceFrame, WKDictionaryRef values, WKTypeRef userData, WKFormSubmissionListenerRef listener, const void* clientInfo)
{
- GRefPtr<WebKitFormSubmissionRequest> request = adoptGRef(webkitFormSubmissionRequestCreate(values, listener));
+ GRefPtr<WebKitFormSubmissionRequest> request = adoptGRef(webkitFormSubmissionRequestCreate(toImpl(values), toImpl(listener)));
webkitWebViewSubmitFormRequest(WEBKIT_WEB_VIEW(clientInfo), request.get());
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp (131755 => 131756)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp 2012-10-18 15:27:35 UTC (rev 131755)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp 2012-10-18 15:49:19 UTC (rev 131756)
@@ -20,17 +20,17 @@
#include "config.h"
#include "WebKitFormSubmissionRequest.h"
+#include "ImmutableDictionary.h"
+#include "WebFormSubmissionListenerProxy.h"
#include "WebKitFormSubmissionRequestPrivate.h"
#include <wtf/gobject/GRefPtr.h>
#include <wtf/text/CString.h>
-using namespace WebKit;
-
G_DEFINE_TYPE(WebKitFormSubmissionRequest, webkit_form_submission_request, G_TYPE_OBJECT)
struct _WebKitFormSubmissionRequestPrivate {
- WKRetainPtr<WKDictionaryRef> wkValues;
- WKRetainPtr<WKFormSubmissionListenerRef> wkListener;
+ RefPtr<ImmutableDictionary> webValues;
+ RefPtr<WebFormSubmissionListenerProxy> listener;
GRefPtr<GHashTable> values;
bool handledRequest;
};
@@ -61,11 +61,11 @@
g_type_class_add_private(requestClass, sizeof(WebKitFormSubmissionRequestPrivate));
}
-WebKitFormSubmissionRequest* webkitFormSubmissionRequestCreate(WKDictionaryRef wkValues, WKFormSubmissionListenerRef wkListener)
+WebKitFormSubmissionRequest* webkitFormSubmissionRequestCreate(ImmutableDictionary* values, WebFormSubmissionListenerProxy* listener)
{
WebKitFormSubmissionRequest* request = WEBKIT_FORM_SUBMISSION_REQUEST(g_object_new(WEBKIT_TYPE_FORM_SUBMISSION_REQUEST, NULL));
- request->priv->wkValues = wkValues;
- request->priv->wkListener = wkListener;
+ request->priv->webValues = values;
+ request->priv->listener = listener;
return request;
}
@@ -86,19 +86,19 @@
if (request->priv->values)
return request->priv->values.get();
- if (!WKDictionaryGetSize(request->priv->wkValues.get()))
+ if (!request->priv->webValues->size())
return 0;
request->priv->values = adoptGRef(g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free));
- WKRetainPtr<WKArrayRef> wkKeys(AdoptWK, WKDictionaryCopyKeys(request->priv->wkValues.get()));
- for (size_t i = 0; i < WKArrayGetSize(wkKeys.get()); ++i) {
- WKStringRef wkKey = static_cast<WKStringRef>(WKArrayGetItemAtIndex(wkKeys.get(), i));
- WKStringRef wkValue = static_cast<WKStringRef>(WKDictionaryGetItemForKey(request->priv->wkValues.get(), wkKey));
- g_hash_table_insert(request->priv->values.get(), g_strdup(toImpl(wkKey)->string().utf8().data()), g_strdup(toImpl(wkValue)->string().utf8().data()));
+ const ImmutableDictionary::MapType& map = request->priv->webValues->map();
+ ImmutableDictionary::MapType::const_iterator end = map.end();
+ for (ImmutableDictionary::MapType::const_iterator it = map.begin(); it != end; ++it) {
+ WebString* value = static_cast<WebString*>(it->value.get());
+ g_hash_table_insert(request->priv->values.get(), g_strdup(it->key.utf8().data()), g_strdup(value->string().utf8().data()));
}
- request->priv->wkValues = 0;
+ request->priv->webValues = 0;
return request->priv->values.get();
}
@@ -113,6 +113,6 @@
{
g_return_if_fail(WEBKIT_IS_FORM_SUBMISSION_REQUEST(request));
- WKFormSubmissionListenerContinue(request->priv->wkListener.get());
+ request->priv->listener->continueSubmission();
request->priv->handledRequest = true;
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h (131755 => 131756)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h 2012-10-18 15:27:35 UTC (rev 131755)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h 2012-10-18 15:49:19 UTC (rev 131756)
@@ -23,6 +23,8 @@
#include "WebKitFormSubmissionRequest.h"
#include "WebKitPrivate.h"
-WebKitFormSubmissionRequest* webkitFormSubmissionRequestCreate(WKDictionaryRef, WKFormSubmissionListenerRef);
+using namespace WebKit;
+WebKitFormSubmissionRequest* webkitFormSubmissionRequestCreate(ImmutableDictionary* values, WebFormSubmissionListenerProxy*);
+
#endif // WebKitFormSubmissionRequestPrivate_h
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes