void TestRunner::deliverWebIntent(const CppArgumentList& arguments, CppVariant* result) { if (arguments.size() < 3) return; v8::HandleScope scope; v8::Local<v8::Context> ctx = m_webView->mainFrame()->mainWorldScriptContext(); result->set(m_webView->mainFrame()->selectionAsMarkup().utf8()); v8::Context::Scope cscope(ctx); WebString action = cppVariantToWebString(arguments[0]); WebString type = cppVariantToWebString(arguments[1]); WebCString data = cppVariantToWebString(arguments[2]).utf8(); WebSerializedScriptValue serializedData = WebSerializedScriptValue::serialize(v8::String::New(data.data(), data.length())); WebIntent intent = WebIntent::create(action, type, serializedData.toString(), WebVector<WebString>(), WebVector<WebString>()); m_webView->mainFrame()->deliverIntent(intent, 0, m_intentClient.get()); }