static unsigned int s_xWindowHandle = 0;
namespace {
+const char* const TIZEN_GET_WINDOW_HANDLE = "tizen://getWindowHandle";
+const char* const TIZEN_CLEAR_ALL_COOKIES = "tizen://clearAllCookies";
+
std::string toString(WKStringRef str)
{
if (WKStringIsEmpty(str)) {
WKStringGetUTF8CString(str, buffer, size + 1);
return buffer;
}
+
+std::string sendSyncMessage(const char* name, const char* body)
+{
+ WKStringRef nameWKString = WKStringCreateWithUTF8CString(name);
+ WKStringRef bodyWKString = NULL;
+ if (body) {
+ bodyWKString = WKStringCreateWithUTF8CString(body);
+ }
+ WKTypeRef retWKType = NULL;
+ WKBundlePostSynchronousMessage(s_injectedBundleRef,
+ nameWKString,
+ bodyWKString,
+ &retWKType);
+ WKRelease(nameWKString);
+ if (bodyWKString) {
+ WKRelease(bodyWKString);
+ }
+ if (retWKType) {
+ std::string retString = toString(static_cast<WKStringRef>(retWKType));
+ WKRelease(retWKType);
+ return retString;
+ } else {
+ return std::string();
+ }
+}
+
+void sendAsyncMessage(const char* name, const char* body)
+{
+ WKStringRef nameWKString = WKStringCreateWithUTF8CString(name);
+ WKStringRef bodyWKString = NULL;
+ if (body) {
+ bodyWKString = WKStringCreateWithUTF8CString(body);
+ }
+ WKTypeRef retWKType = NULL;
+ WKBundlePostMessage(s_injectedBundleRef,
+ nameWKString,
+ bodyWKString);
+ WKRelease(nameWKString);
+ if (bodyWKString) {
+ WKRelease(bodyWKString);
+ }
+}
}
void IPCMessageSupport::setWKBundleRef(WKBundleRef bundleRef)
return NULL;
}
- if (!strcmp(name, "tizen://getWindowHandle")) {
+ // tizen://getWindowHandle
+ if (!strcmp(name, TIZEN_GET_WINDOW_HANDLE)) {
if (s_xWindowHandle == 0) {
return NULL;
} else {
}
}
- WKStringRef bodyWKString = NULL;
- WKStringRef nameWKString = WKStringCreateWithUTF8CString(name);
- if (body) {
- bodyWKString = WKStringCreateWithUTF8CString(body);
- }
- WKTypeRef retWKType = NULL;
- WKBundlePostSynchronousMessage(s_injectedBundleRef,
- nameWKString,
- bodyWKString,
- &retWKType);
- WKRelease(nameWKString);
- if (bodyWKString) {
- WKRelease(bodyWKString);
- }
- if (retWKType) {
- std::string retString = toString(static_cast<WKStringRef>(retWKType));
- WKRelease(retWKType);
- return strdup(retString.c_str());
- } else {
+ // tizen://clearAllCookies
+ if (!strcmp(name, TIZEN_CLEAR_ALL_COOKIES)) {
+ sendAsyncMessage(name, body);
return NULL;
}
+
return NULL;
}
if (!!oldValue) { oldValueStr = *oldValue; }
if (!!newValue) { newValueStr = *newValue; }
-
+
DispatchEventSupport::dispatchStorageEvent(g_context, key, oldValueStr, newValueStr, "");
LogDebug("end");
if (!!oldValue) { oldValueStr = *oldValue; }
if (!!newValue) { newValueStr = *newValue; }
-
+
DispatchEventSupport::dispatchStorageEvent(g_context, key, oldValueStr, newValueStr, "");
LogDebug("end");
if (!!oldValue) { oldValueStr = *oldValue; }
if (!!newValue) { newValueStr = *newValue; }
-
+
DispatchEventSupport::dispatchStorageEvent(g_context, key, oldValueStr, newValueStr, "");
LogDebug("end");