本文整理汇总了C++中InjectedScript::isEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ InjectedScript::isEmpty方法的具体用法?C++ InjectedScript::isEmpty怎么用?C++ InjectedScript::isEmpty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类InjectedScript
的用法示例。
在下文中一共展示了InjectedScript::isEmpty方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: injectedScriptForEval
InjectedScript PageRuntimeAgent::injectedScriptForEval(ErrorString* errorString, const int* executionContextId)
{
if (!executionContextId) {
ScriptState* scriptState = ScriptState::forMainWorld(m_pageAgent->inspectedFrame());
InjectedScript result = injectedScriptManager()->injectedScriptFor(scriptState);
if (result.isEmpty())
*errorString = "Internal error: main world execution context not found.";
return result;
}
InjectedScript injectedScript = injectedScriptManager()->injectedScriptForId(*executionContextId);
if (injectedScript.isEmpty())
*errorString = "Execution context with given id not found.";
return injectedScript;
}
示例2: resolveAnimation
void InspectorAnimationAgent::resolveAnimation(ErrorString* errorString, const String& animationId, RefPtr<TypeBuilder::Runtime::RemoteObject>& result)
{
Animation* animation = assertAnimation(errorString, animationId);
if (!animation)
return;
if (m_idToAnimationClone.get(animationId))
animation = m_idToAnimationClone.get(animationId);
const Element* element = toKeyframeEffect(animation->effect())->target();
Document* document = element->ownerDocument();
LocalFrame* frame = document ? document->frame() : nullptr;
if (!frame) {
*errorString = "Element not associated with a document.";
return;
}
ScriptState* scriptState = ScriptState::forMainWorld(frame);
InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(scriptState);
if (injectedScript.isEmpty())
return;
ScriptState::Scope scope(scriptState);
v8::Isolate* isolate = scriptState->isolate();
ScriptValue scriptValue = ScriptValue(scriptState, toV8(animation, scriptState->context()->Global(), isolate));
injectedScript.releaseObjectGroup("animation");
result = injectedScript.wrapObject(scriptValue, "animation");
}
示例3: evaluate
void InspectorRuntimeAgent::evaluate(ErrorString* errorString, const String& expression, const String* const objectGroup, const bool* const includeCommandLineAPI, const bool* const doNotPauseOnExceptionsAndMuteConsole, const int* executionContextId, const bool* const returnByValue, const bool* generatePreview, RefPtr<TypeBuilder::Runtime::RemoteObject>& result, TypeBuilder::OptOutput<bool>* wasThrown, RefPtr<TypeBuilder::Debugger::ExceptionDetails>& exceptionDetails)
{
InjectedScript injectedScript = injectedScriptForEval(errorString, executionContextId);
if (injectedScript.isEmpty())
return;
InjectedScriptCallScope callScope(this, asBool(doNotPauseOnExceptionsAndMuteConsole));
injectedScript.evaluate(errorString, expression, objectGroup ? *objectGroup : "", asBool(includeCommandLineAPI), asBool(returnByValue), asBool(generatePreview), &result, wasThrown, &exceptionDetails);
}
示例4: injectedScriptForEval
InjectedScript WorkerDebuggerAgent::injectedScriptForEval(ErrorString* error, const int* executionContextId)
{
if (!executionContextId)
return injectedScriptManager()->injectedScriptFor(m_inspectedWorkerGlobalScope->script()->scriptState());
InjectedScript injectedScript = injectedScriptManager()->injectedScriptForId(*executionContextId);
if (injectedScript.isEmpty())
*error = "Execution context with given id not found.";
return injectedScript;
}
示例5: injectedScriptForEval
InjectedScript PageDebuggerAgent::injectedScriptForEval(ErrorString* errorString, const int* executionContextId)
{
if (!executionContextId) {
ScriptState* scriptState = ScriptState::forMainWorld(m_pageAgent->mainFrame());
return injectedScriptManager()->injectedScriptFor(scriptState);
}
InjectedScript injectedScript = injectedScriptManager()->injectedScriptForId(*executionContextId);
if (injectedScript.isEmpty())
*errorString = "Execution context with given id not found.";
return injectedScript;
}
示例6: injectedScriptCanvasModule
InjectedScriptCanvasModule InspectorCanvasAgent::injectedScriptCanvasModule(ErrorString* errorString, const String& objectId)
{
if (!checkIsEnabled(errorString))
return InjectedScriptCanvasModule();
InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForObjectId(objectId);
if (injectedScript.isEmpty()) {
*errorString = "Inspected frame has gone";
return InjectedScriptCanvasModule();
}
return injectedScriptCanvasModule(errorString, injectedScript.scriptState());
}
示例7: releaseObject
void InspectorRuntimeAgent::releaseObject(ErrorString*, const String& objectId)
{
InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForObjectId(objectId);
if (injectedScript.isEmpty())
return;
bool pausingOnNextStatement = m_scriptDebugServer->pausingOnNextStatement();
if (pausingOnNextStatement)
m_scriptDebugServer->setPauseOnNextStatement(false);
injectedScript.releaseObject(objectId);
if (pausingOnNextStatement)
m_scriptDebugServer->setPauseOnNextStatement(true);
}
示例8: addToFrontend
void ConsoleMessage::addToFrontend(InspectorFrontend::Console* frontend, InjectedScriptManager* injectedScriptManager, bool generatePreview)
{
RefPtr<TypeBuilder::Console::ConsoleMessage> jsonObj = TypeBuilder::Console::ConsoleMessage::create()
.setSource(messageSourceValue(m_source))
.setLevel(messageLevelValue(m_level))
.setText(m_message)
.setTimestamp(m_timestamp);
// FIXME: only send out type for ConsoleAPI source messages.
jsonObj->setType(messageTypeValue(m_type));
jsonObj->setLine(static_cast<int>(m_line));
jsonObj->setColumn(static_cast<int>(m_column));
jsonObj->setUrl(m_url);
ScriptState* scriptState = m_scriptState.get();
if (scriptState && scriptState->executionContext()->isDocument())
jsonObj->setExecutionContextId(injectedScriptManager->injectedScriptIdFor(scriptState));
if (m_source == NetworkMessageSource && !m_requestId.isEmpty())
jsonObj->setNetworkRequestId(m_requestId);
if (m_arguments && m_arguments->argumentCount()) {
InjectedScript injectedScript = injectedScriptManager->injectedScriptFor(m_arguments->scriptState());
if (!injectedScript.isEmpty()) {
RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject> > jsonArgs = TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject>::create();
if (m_type == TableMessageType && generatePreview && m_arguments->argumentCount()) {
ScriptValue table = m_arguments->argumentAt(0);
ScriptValue columns = m_arguments->argumentCount() > 1 ? m_arguments->argumentAt(1) : ScriptValue();
RefPtr<TypeBuilder::Runtime::RemoteObject> inspectorValue = injectedScript.wrapTable(table, columns);
if (!inspectorValue) {
ASSERT_NOT_REACHED();
return;
}
jsonArgs->addItem(inspectorValue);
} else {
for (unsigned i = 0; i < m_arguments->argumentCount(); ++i) {
RefPtr<TypeBuilder::Runtime::RemoteObject> inspectorValue = injectedScript.wrapObject(m_arguments->argumentAt(i), "console", generatePreview);
if (!inspectorValue) {
ASSERT_NOT_REACHED();
return;
}
jsonArgs->addItem(inspectorValue);
}
}
jsonObj->setParameters(jsonArgs);
}
}
if (m_callStack)
jsonObj->setStackTrace(m_callStack->buildInspectorArray());
frontend->messageAdded(jsonObj);
frontend->flush();
}
示例9: getHeapObjectId
void InspectorHeapProfilerAgent::getHeapObjectId(ErrorString* errorString, const String& objectId, String* heapSnapshotObjectId)
{
InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForObjectId(objectId);
if (injectedScript.isEmpty()) {
*errorString = "Inspected context has gone";
return;
}
ScriptValue value = injectedScript.findObjectById(objectId);
ScriptState::Scope scope(injectedScript.scriptState());
if (value.isEmpty() || value.isUndefined()) {
*errorString = "Object with given id not found";
return;
}
unsigned id = ScriptProfiler::getHeapObjectId(value);
*heapSnapshotObjectId = String::number(id);
}
示例10: releaseObject
void InspectorRuntimeAgent::releaseObject(ErrorString* errorString, const String& objectId)
{
OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId);
if (!remoteId) {
*errorString = "Invalid object id";
return;
}
InjectedScript injectedScript = m_injectedScriptManager->findInjectedScript(remoteId.get());
if (injectedScript.isEmpty())
return;
bool pausingOnNextStatement = m_debugger->pausingOnNextStatement();
if (pausingOnNextStatement)
m_debugger->setPauseOnNextStatement(false);
injectedScript.releaseObject(objectId);
if (pausingOnNextStatement)
m_debugger->setPauseOnNextStatement(true);
}
示例11: evaluate
void InspectorRuntimeAgent::evaluate(ErrorString* errorString, const String& expression, const String* const objectGroup, const bool* const includeCommandLineAPI, const bool* const doNotPauseOnExceptionsAndMuteConsole, const int* executionContextId, const bool* const returnByValue, const bool* generatePreview, RefPtr<TypeBuilder::Runtime::RemoteObject>& result, TypeBuilder::OptOutput<bool>* wasThrown)
{
InjectedScript injectedScript = injectedScriptForEval(errorString, executionContextId);
if (injectedScript.isEmpty())
return;
ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = ScriptDebugServer::DontPauseOnExceptions;
if (asBool(doNotPauseOnExceptionsAndMuteConsole))
previousPauseOnExceptionsState = setPauseOnExceptionsState(m_scriptDebugServer, ScriptDebugServer::DontPauseOnExceptions);
if (asBool(doNotPauseOnExceptionsAndMuteConsole))
muteConsole();
injectedScript.evaluate(errorString, expression, objectGroup ? *objectGroup : "", asBool(includeCommandLineAPI), asBool(returnByValue), asBool(generatePreview), &result, wasThrown);
if (asBool(doNotPauseOnExceptionsAndMuteConsole)) {
unmuteConsole();
setPauseOnExceptionsState(m_scriptDebugServer, previousPauseOnExceptionsState);
}
}
示例12: inspect
void InspectorController::inspect(Node* node)
{
if (!node)
return;
Document* document = node->ownerDocument();
if (!document)
return;
LocalFrame* frame = document->frame();
if (!frame)
return;
if (!node->isElementNode() && !node->isDocumentNode())
node = node->parentNode();
InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(ScriptState::forMainWorld(frame));
if (injectedScript.isEmpty())
return;
injectedScript.inspectNode(node);
}
示例13: getProperties
void InspectorRuntimeAgent::getProperties(ErrorString* errorString, const String& objectId, const bool* ownProperties, const bool* accessorPropertiesOnly, RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::PropertyDescriptor> >& result, RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::InternalPropertyDescriptor> >& internalProperties)
{
InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForObjectId(objectId);
if (injectedScript.isEmpty()) {
*errorString = "Inspected frame has gone";
return;
}
ScriptDebugServer::PauseOnExceptionsState previousPauseOnExceptionsState = setPauseOnExceptionsState(m_scriptDebugServer, ScriptDebugServer::DontPauseOnExceptions);
muteConsole();
injectedScript.getProperties(errorString, objectId, asBool(ownProperties), asBool(accessorPropertiesOnly), &result);
if (!asBool(accessorPropertiesOnly))
injectedScript.getInternalProperties(errorString, objectId, &internalProperties);
unmuteConsole();
setPauseOnExceptionsState(m_scriptDebugServer, previousPauseOnExceptionsState);
}
示例14: callFunctionOn
void InspectorRuntimeAgent::callFunctionOn(ErrorString* errorString, const String& objectId, const String& expression, const RefPtr<JSONArray>* const optionalArguments, const bool* const doNotPauseOnExceptionsAndMuteConsole, const bool* const returnByValue, const bool* generatePreview, RefPtr<TypeBuilder::Runtime::RemoteObject>& result, TypeBuilder::OptOutput<bool>* wasThrown)
{
OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId);
if (!remoteId) {
*errorString = "Invalid object id";
return;
}
InjectedScript injectedScript = m_injectedScriptManager->findInjectedScript(remoteId.get());
if (injectedScript.isEmpty()) {
*errorString = "Inspected frame has gone";
return;
}
String arguments;
if (optionalArguments)
arguments = (*optionalArguments)->toJSONString();
InjectedScriptCallScope callScope(this, asBool(doNotPauseOnExceptionsAndMuteConsole));
injectedScript.callFunctionOn(errorString, objectId, expression, arguments, asBool(returnByValue), asBool(generatePreview), &result, wasThrown);
}
示例15: getProperties
void InspectorRuntimeAgent::getProperties(ErrorString* errorString, const String& objectId, const bool* ownProperties, const bool* accessorPropertiesOnly, const bool* generatePreview, RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::PropertyDescriptor>>& result, RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::InternalPropertyDescriptor>>& internalProperties, RefPtr<TypeBuilder::Debugger::ExceptionDetails>& exceptionDetails)
{
OwnPtr<RemoteObjectId> remoteId = RemoteObjectId::parse(objectId);
if (!remoteId) {
*errorString = "Invalid object id";
return;
}
InjectedScript injectedScript = m_injectedScriptManager->findInjectedScript(remoteId.get());
if (injectedScript.isEmpty()) {
*errorString = "Inspected frame has gone";
return;
}
InjectedScriptCallScope callScope(this, true);
injectedScript.getProperties(errorString, objectId, asBool(ownProperties), asBool(accessorPropertiesOnly), asBool(generatePreview), &result, &exceptionDetails);
if (!exceptionDetails && !asBool(accessorPropertiesOnly))
injectedScript.getInternalProperties(errorString, objectId, &internalProperties, &exceptionDetails);
}