void InjectedScript::releaseObjectGroup(const String& objectGroup) { ASSERT(!isEmpty()); ScriptFunctionCall releaseFunction(injectedScriptObject(), "releaseObjectGroup"); releaseFunction.appendArgument(objectGroup); bool hadException = false; callFunctionWithEvalEnabled(releaseFunction, hadException); ASSERT(!hadException); }
void InjectedScriptCanvasModule::callVoidFunctionWithTraceLogIdArgument(const String& functionName, ErrorString* errorString, const TraceLogId& traceLogId) { Deprecated::ScriptFunctionCall function(injectedScriptObject(), functionName, WebCore::functionCallHandlerFromAnyThread); function.appendArgument(traceLogId); bool hadException = false; callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); if (hadException) *errorString = "Internal error: " + functionName; }
void InjectedScript::releaseObjectGroup(const String& objectGroup) { ASSERT(!hasNoValue()); Deprecated::ScriptFunctionCall releaseFunction(injectedScriptObject(), ASCIILiteral("releaseObjectGroup"), inspectorEnvironment()->functionCallHandler()); releaseFunction.appendArgument(objectGroup); bool hadException = false; callFunctionWithEvalEnabled(releaseFunction, hadException); ASSERT(!hadException); }
void InjectedScript::releaseObjectGroup(const String& objectGroup) { ASSERT(!isEmpty()); m_native->releaseObjectGroup(objectGroup); if (objectGroup == "console") { ScriptFunctionCall releaseFunction(injectedScriptObject(), "clearLastEvaluationResult"); bool hadException = false; callFunctionWithEvalEnabled(releaseFunction, hadException); ASSERT(!hadException); } }
ScriptValue InjectedScript::findObjectById(const String& objectId) const { ASSERT(!isEmpty()); ScriptFunctionCall function(injectedScriptObject(), "findObjectById"); function.appendArgument(objectId); bool hadException = false; ScriptValue resultValue = callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); return resultValue; }
Deprecated::ScriptObject InjectedScriptCanvasModule::callWrapContextFunction(const String& functionName, const Deprecated::ScriptObject& context) { Deprecated::ScriptFunctionCall function(injectedScriptObject(), functionName, WebCore::functionCallHandlerFromAnyThread); function.appendArgument(context); bool hadException = false; Deprecated::ScriptValue resultValue = callFunctionWithEvalEnabled(function, hadException); if (hadException || resultValue.hasNoValue() || !resultValue.isObject()) { ASSERT_NOT_REACHED(); return Deprecated::ScriptObject(); } return Deprecated::ScriptObject(context.scriptState(), resultValue); }
Deprecated::ScriptValue InjectedScript::findObjectById(const String& objectId) const { ASSERT(!hasNoValue()); Deprecated::ScriptFunctionCall function(injectedScriptObject(), ASCIILiteral("findObjectById"), inspectorEnvironment()->functionCallHandler()); function.appendArgument(objectId); bool hadException = false; Deprecated::ScriptValue resultValue = callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); return resultValue; }
PassRefPtr<Array<CallFrame> > InjectedScript::wrapCallFrames(const ScriptValue& callFrames) { ASSERT(!hasNoValue()); ScriptFunctionCall function(m_injectedScriptObject, "wrapCallFrames"); function.appendArgument(callFrames); bool hadException = false; ScriptValue callFramesValue = callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); RefPtr<InspectorValue> result = callFramesValue.toInspectorValue(m_injectedScriptObject.scriptState()); if (result->type() == InspectorValue::TypeArray) return Array<CallFrame>::runtimeCast(result); return Array<CallFrame>::create(); }
Node* InjectedScript::nodeForObjectId(const String& objectId) { if (isEmpty() || !canAccessInspectedWindow()) return 0; ScriptFunctionCall function(injectedScriptObject(), "nodeForObjectId"); function.appendArgument(objectId); bool hadException = false; ScriptValue resultValue = callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); return InjectedScriptHost::scriptValueAsNode(scriptState(), resultValue); }
ScriptValue InjectedScript::findCallFrameById(ErrorString* errorString, const ScriptValue& topCallFrame, const String& callFrameId) { ScriptFunctionCall function(injectedScriptObject(), "callFrameForId"); function.appendArgument(topCallFrame); function.appendArgument(callFrameId); bool hadException = false; ScriptValue resultValue = callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); if (hadException || resultValue.hasNoValue() || !resultValue.isObject()) { *errorString = "Internal error"; return ScriptValue(); } return resultValue; }
PassRefPtr<Array<CallFrame>> InjectedScript::wrapCallFrames(v8::Local<v8::Object> callFrames, int asyncOrdinal) { ASSERT(!isEmpty()); ScriptFunctionCall function(injectedScriptObject(), "wrapCallFrames"); function.appendArgument(callFrames); function.appendArgument(asyncOrdinal); bool hadException = false; ScriptValue callFramesValue = callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); RefPtr<JSONValue> result = toJSONValue(callFramesValue); if (result && result->type() == JSONValue::TypeArray) return Array<CallFrame>::runtimeCast(result); return Array<CallFrame>::create(); }
PassRefPtr<TypeBuilder::Runtime::RemoteObject> InjectedScript::wrapObject(ScriptValue value, const String& groupName) const { ASSERT(!hasNoValue()); ScriptFunctionCall wrapFunction(m_injectedScriptObject, "wrapObject"); wrapFunction.appendArgument(value); wrapFunction.appendArgument(groupName); wrapFunction.appendArgument(canAccessInspectedWindow()); bool hadException = false; ScriptValue r = callFunctionWithEvalEnabled(wrapFunction, hadException); if (hadException) { return 0; } RefPtr<InspectorObject> rawResult = r.toInspectorValue(m_injectedScriptObject.scriptState())->asObject(); return TypeBuilder::Runtime::RemoteObject::runtimeCast(rawResult); }
PassRefPtr<TypeBuilder::Runtime::RemoteObject> InjectedScript::wrapObject(const ScriptValue& value, const String& groupName, bool generatePreview) const { ASSERT(!isEmpty()); ScriptFunctionCall wrapFunction(injectedScriptObject(), "wrapObject"); wrapFunction.appendArgument(value); wrapFunction.appendArgument(groupName); wrapFunction.appendArgument(canAccessInspectedWindow()); wrapFunction.appendArgument(generatePreview); bool hadException = false; ScriptValue r = callFunctionWithEvalEnabled(wrapFunction, hadException); if (hadException) return nullptr; RefPtr<JSONObject> rawResult = toJSONValue(r)->asObject(); return TypeBuilder::Runtime::RemoteObject::runtimeCast(rawResult); }
PassRefPtr<Array<Inspector::TypeBuilder::Debugger::CallFrame>> InjectedScript::wrapCallFrames(const Deprecated::ScriptValue& callFrames) { ASSERT(!hasNoValue()); Deprecated::ScriptFunctionCall function(injectedScriptObject(), ASCIILiteral("wrapCallFrames"), inspectorEnvironment()->functionCallHandler()); function.appendArgument(callFrames); bool hadException = false; Deprecated::ScriptValue callFramesValue = callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); RefPtr<InspectorValue> result = callFramesValue.toInspectorValue(scriptState()); if (result->type() == InspectorValue::TypeArray) return Array<Inspector::TypeBuilder::Debugger::CallFrame>::runtimeCast(result); return Array<Inspector::TypeBuilder::Debugger::CallFrame>::create(); }
PassRefPtr<InspectorObject> InjectedScript::wrapObject(ScriptValue value, const String& groupName) const { ASSERT(!hasNoValue()); ScriptFunctionCall wrapFunction(m_injectedScriptObject, "wrapObject"); wrapFunction.appendArgument(value); wrapFunction.appendArgument(groupName); wrapFunction.appendArgument(canAccessInspectedWindow()); bool hadException = false; ScriptValue r = callFunctionWithEvalEnabled(wrapFunction, hadException); if (hadException) { RefPtr<InspectorObject> result = InspectorObject::create(); result->setString("description", "<exception>"); return result; } return r.toInspectorValue(m_injectedScriptObject.scriptState())->asObject(); }
PassRefPtr<TypeBuilder::Runtime::RemoteObject> InjectedScript::wrapTable(const ScriptValue& table, const ScriptValue& columns) const { ASSERT(!isEmpty()); ScriptFunctionCall wrapFunction(injectedScriptObject(), "wrapTable"); wrapFunction.appendArgument(canAccessInspectedWindow()); wrapFunction.appendArgument(table); if (columns.isEmpty()) wrapFunction.appendArgument(false); else wrapFunction.appendArgument(columns); bool hadException = false; ScriptValue r = callFunctionWithEvalEnabled(wrapFunction, hadException); if (hadException) return nullptr; RefPtr<JSONObject> rawResult = toJSONValue(r)->asObject(); return TypeBuilder::Runtime::RemoteObject::runtimeCast(rawResult); }
PassRefPtr<Inspector::TypeBuilder::Runtime::RemoteObject> InjectedScript::wrapObject(const Deprecated::ScriptValue& value, const String& groupName, bool generatePreview) const { ASSERT(!hasNoValue()); Deprecated::ScriptFunctionCall wrapFunction(injectedScriptObject(), ASCIILiteral("wrapObject"), inspectorEnvironment()->functionCallHandler()); wrapFunction.appendArgument(value); wrapFunction.appendArgument(groupName); wrapFunction.appendArgument(hasAccessToInspectedScriptState()); wrapFunction.appendArgument(generatePreview); bool hadException = false; Deprecated::ScriptValue r = callFunctionWithEvalEnabled(wrapFunction, hadException); if (hadException) return nullptr; RefPtr<InspectorObject> rawResult = r.toInspectorValue(scriptState())->asObject(); return Inspector::TypeBuilder::Runtime::RemoteObject::runtimeCast(rawResult); }
void InjectedScriptBase::makeCall(Deprecated::ScriptFunctionCall& function, RefPtr<JSON::Value>* result) { if (hasNoValue() || !hasAccessToInspectedScriptState()) { *result = JSON::Value::null(); return; } bool hadException = false; auto resultValue = callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); if (!hadException) { *result = toInspectorValue(*m_injectedScriptObject.scriptState(), resultValue); if (!*result) *result = JSON::Value::create(String::format("Object has too long reference chain (must not be longer than %d)", JSON::Value::maxDepth)); } else *result = JSON::Value::create("Exception while making a call."); }
void InjectedScript::makeCall(ScriptFunctionCall& function, RefPtr<InspectorValue>* result) { if (hasNoValue() || !canAccessInspectedWindow()) { *result = InspectorValue::null(); return; } bool hadException = false; ScriptValue resultValue = callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); if (!hadException) { *result = resultValue.toInspectorValue(m_injectedScriptObject.scriptState()); if (!*result) *result = InspectorString::create(String::format("Object has too long reference chain(must not be longer than %d)", InspectorValue::maxDepth)); } else *result = InspectorString::create("Exception while making a call."); }
void InjectedScript::makeCall(ScriptFunctionCall& function, RefPtr<JSONValue>* result) { if (isEmpty() || !canAccessInspectedWindow()) { *result = JSONValue::null(); return; } bool hadException = false; ScriptValue resultValue = callFunctionWithEvalEnabled(function, hadException); ASSERT(!hadException); if (!hadException) { *result = toJSONValue(resultValue); if (!*result) *result = JSONString::create(String::format("Object has too long reference chain(must not be longer than %d)", JSONValue::maxDepth)); } else { *result = JSONString::create("Exception while making a call."); } }
PassRefPtr<Inspector::TypeBuilder::Runtime::RemoteObject> InjectedScript::wrapTable(const Deprecated::ScriptValue& table, const Deprecated::ScriptValue& columns) const { ASSERT(!hasNoValue()); Deprecated::ScriptFunctionCall wrapFunction(injectedScriptObject(), ASCIILiteral("wrapTable"), inspectorEnvironment()->functionCallHandler()); wrapFunction.appendArgument(hasAccessToInspectedScriptState()); wrapFunction.appendArgument(table); if (columns.hasNoValue()) wrapFunction.appendArgument(false); else wrapFunction.appendArgument(columns); bool hadException = false; Deprecated::ScriptValue r = callFunctionWithEvalEnabled(wrapFunction, hadException); if (hadException) return nullptr; RefPtr<InspectorObject> rawResult = r.toInspectorValue(scriptState())->asObject(); return Inspector::TypeBuilder::Runtime::RemoteObject::runtimeCast(rawResult); }