void InspectorDebuggerAgent::removeBreakpoint(ErrorString*, const String& breakpointIdentifier) { m_javaScriptBreakpoints.remove(breakpointIdentifier); for (JSC::BreakpointID breakpointID : m_breakpointIdentifierToDebugServerBreakpointIDs.take(breakpointIdentifier)) { const BreakpointActions& breakpointActions = scriptDebugServer().getActionsForBreakpoint(breakpointID); for (auto& action : breakpointActions) m_injectedScriptManager->releaseObjectGroup(objectGroupForBreakpointAction(action)); scriptDebugServer().removeBreakpoint(breakpointID); } }
void InspectorDebuggerAgent::breakpointActionProbe(JSC::ExecState* scriptState, const ScriptBreakpointAction& action, unsigned batchId, unsigned sampleId, const Deprecated::ScriptValue& sample) { InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(scriptState); RefPtr<Protocol::Runtime::RemoteObject> payload = injectedScript.wrapObject(sample, objectGroupForBreakpointAction(action), true); auto result = Protocol::Debugger::ProbeSample::create() .setProbeId(action.identifier) .setBatchId(batchId) .setSampleId(sampleId) .setTimestamp(m_injectedScriptManager->inspectorEnvironment().executionStopwatch()->elapsedTime()) .setPayload(payload.release()) .release(); m_frontendDispatcher->didSampleProbe(WTF::move(result)); }
void InspectorDebuggerAgent::breakpointActionProbe(JSC::ExecState* scriptState, const ScriptBreakpointAction& action, int hitCount, const Deprecated::ScriptValue& sample) { int sampleId = m_nextProbeSampleId++; InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(scriptState); RefPtr<Protocol::Runtime::RemoteObject> payload = injectedScript.wrapObject(sample, objectGroupForBreakpointAction(action)); RefPtr<Protocol::Debugger::ProbeSample> result = Protocol::Debugger::ProbeSample::create() .setProbeId(action.identifier) .setSampleId(sampleId) .setBatchId(hitCount) .setTimestamp(monotonicallyIncreasingTime()) .setPayload(payload.release()); m_frontendDispatcher->didSampleProbe(result.release()); }