Create string tightly when retrive string from cbhm callback event
[framework/web/webkit-efl.git] / Source / WebKit2 / UIProcess / API / efl / ewk_context.cpp
index 2c1196b..ab51c9f 100755 (executable)
 #include <EGL/egl.h>
 #endif
 
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+#include <dlfcn.h>
+void* EflAssistHandle = 0;
+#endif
+
 using namespace WebCore;
 using namespace WebKit;
 
@@ -147,6 +152,11 @@ Ewk_Context::Ewk_Context(WKContextRef context)
     m_formDatabase->open(FormDatabase::defaultDatabaseDirectoryPath(), FormDatabase::defaultDatabaseFilename());
 #endif
 #endif
+
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+    if (!EflAssistHandle)
+        EflAssistHandle = dlopen("/usr/lib/libefl-assist.so.0", RTLD_LAZY);
+#endif
 }
 
 Ewk_Context::~Ewk_Context()
@@ -390,18 +400,7 @@ void Ewk_Context::addFormData(const char* url, WKDictionaryRef& formData, bool i
         WKStringRef wkKey = static_cast<WKStringRef>(WKArrayGetItemAtIndex(wkKeys.get(), i));
         WKStringRef wkValue = static_cast<WKStringRef>(WKDictionaryGetItemForKey(formData, wkKey));
 
-        int length = WKStringGetMaximumUTF8CStringSize(wkKey);
-        if (length <= 0)
-            continue;
-        OwnArrayPtr<char> keyBuffer = adoptArrayPtr(new char[length]);
-        WKStringGetUTF8CString(wkKey, keyBuffer.get(), length);
-
-        length = WKStringGetMaximumUTF8CStringSize(wkValue);
-        if (length <= 0)
-            continue;
-        OwnArrayPtr<char> valueBuffer = adoptArrayPtr(new char[length]);
-        WKStringGetUTF8CString(wkValue, valueBuffer.get(), length);
-        formDataVector.append(pair<String, String>(keyBuffer.get(), valueBuffer.get()));
+        formDataVector.append(pair<String, String>(toImpl(wkKey)->string(), toImpl(wkValue)->string()));
     }
 
     m_formDatabase->addFormDataForURL(String::fromUTF8(url), formDataVector, isPasswordForm);