void TestRunner::setUserStyleSheetLocation(JSStringRef location) { m_userStyleSheetLocation = adoptWK(WKStringCreateWithJSString(location)); if (m_userStyleSheetEnabled) setUserStyleSheetEnabled(true); }
static JSValueRef qt_postWebChannelMessageCallback(JSContextRef context, JSObjectRef, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef*) { // FIXME: should it work regardless of the thisObject? if (argumentCount < 1 || !JSValueIsString(context, arguments[0])) return JSValueMakeUndefined(context); QtBuiltinBundlePage* bundlePage = reinterpret_cast<QtBuiltinBundlePage*>(JSObjectGetPrivate(thisObject)); ASSERT(bundlePage); // TODO: can we transmit the data as JS object, instead of as a string? JSRetainPtr<JSStringRef> jsContents = JSValueToStringCopy(context, arguments[0], 0); WKRetainPtr<WKStringRef> contents(AdoptWK, WKStringCreateWithJSString(jsContents.get())); bundlePage->postMessageFromNavigatorQtWebChannelTransport(contents.get()); return JSValueMakeUndefined(context); }
TEST(WebKit2, WKStringJSString) { WKStringRef wkString = WKStringCreateWithUTF8CString("hello"); JSStringRef jsString = JSStringCreateWithUTF8CString("hello"); WKStringRef convertedJSString = WKStringCreateWithJSString(jsString); EXPECT_TRUE(WKStringIsEqual(wkString, convertedJSString)); JSStringRef convertedWKString = WKStringCopyJSString(wkString); EXPECT_TRUE(JSStringIsEqual(jsString, convertedWKString)); WKRelease(wkString); WKRelease(convertedJSString); JSStringRelease(jsString); JSStringRelease(convertedWKString); }
static JSValueRef qt_postMessageCallback(JSContextRef context, JSObjectRef, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef*) { // FIXME: should it work regardless of the thisObject? if (argumentCount < 1 || !JSValueIsString(context, arguments[0])) return JSValueMakeUndefined(context); QtBuiltinBundlePage* bundlePage = reinterpret_cast<QtBuiltinBundlePage*>(JSObjectGetPrivate(thisObject)); ASSERT(bundlePage); // FIXME: needed? if (!bundlePage->navigatorQtObjectEnabled()) return JSValueMakeUndefined(context); JSRetainPtr<JSStringRef> jsContents = JSValueToStringCopy(context, arguments[0], 0); WKRetainPtr<WKStringRef> contents(AdoptWK, WKStringCreateWithJSString(jsContents.get())); bundlePage->postMessageFromNavigatorQtObject(contents.get()); return JSValueMakeUndefined(context); }
void TestRunner::setAuthenticationPassword(JSStringRef password) { WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("SetAuthenticationPassword")); WKRetainPtr<WKStringRef> messageBody(AdoptWK, WKStringCreateWithJSString(password)); WKBundlePagePostMessage(InjectedBundle::singleton().page()->page(), messageName.get(), messageBody.get()); }
void TestRunner::setAuthenticationUsername(JSStringRef username) { WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("SetAuthenticationUsername")); WKRetainPtr<WKStringRef> messageBody(AdoptWK, WKStringCreateWithJSString(username)); WKBundlePostMessage(InjectedBundle::shared().bundle(), messageName.get(), messageBody.get()); }