void WebDevToolsAgentImpl::compileUtilityScripts() { v8::HandleScope handleScope; v8::Context::Scope contextScope(m_utilityContext); // Inject javascript into the context. WebCString injectedScriptJs = m_client->injectedScriptSource(); v8::Script::Compile(v8::String::New( injectedScriptJs.data(), injectedScriptJs.length()))->Run(); WebCString injectDispatchJs = m_client->injectedScriptDispatcherSource(); v8::Script::Compile(v8::String::New( injectDispatchJs.data(), injectDispatchJs.length()))->Run(); }
void WebDevToolsAgentImpl::attach() { if (m_attached) return; if (!m_client->exposeV8DebuggerProtocol()) ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client); m_debuggerAgentImpl.set( new DebuggerAgentImpl(m_webViewImpl, this, m_client)); WebCString debuggerScriptJs = m_client->debuggerScriptSource(); WebCore::ScriptDebugServer::shared().setDebuggerScriptSource( WTF::String(debuggerScriptJs.data(), debuggerScriptJs.length())); m_attached = true; }
void TestRunner::sendWebIntentResponse(const CppArgumentList& arguments, CppVariant* result) { v8::HandleScope scope; v8::Local<v8::Context> ctx = m_webView->mainFrame()->mainWorldScriptContext(); result->set(m_webView->mainFrame()->selectionAsMarkup().utf8()); v8::Context::Scope cscope(ctx); WebIntentRequest* request = m_delegate->currentWebIntentRequest(); if (request->isNull()) return; if (arguments.size() == 1) { WebCString reply = cppVariantToWebString(arguments[0]).utf8(); v8::Handle<v8::Value> v8value = v8::String::New(reply.data(), reply.length()); request->postResult(WebSerializedScriptValue::serialize(v8value)); } else { v8::Handle<v8::Value> v8value = v8::String::New("ERROR"); request->postFailure(WebSerializedScriptValue::serialize(v8value)); } result->setNull(); }
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()); }