| Index: src/inspector/v8-debugger-agent-impl.cc
|
| diff --git a/src/inspector/v8-debugger-agent-impl.cc b/src/inspector/v8-debugger-agent-impl.cc
|
| index 04008bed5d17bf33fd9c3299e8da0d808f294561..e2757ee0a9f36c72c70793602ed9772e656e90b1 100644
|
| --- a/src/inspector/v8-debugger-agent-impl.cc
|
| +++ b/src/inspector/v8-debugger-agent-impl.cc
|
| @@ -197,8 +197,7 @@ V8DebuggerAgentImpl::V8DebuggerAgentImpl(
|
| m_enabled(false),
|
| m_state(state),
|
| m_frontend(frontendChannel),
|
| - m_isolate(m_inspector->isolate()),
|
| - m_javaScriptPauseScheduled(false) {}
|
| + m_isolate(m_inspector->isolate()) {}
|
|
|
| V8DebuggerAgentImpl::~V8DebuggerAgentImpl() {}
|
|
|
| @@ -250,7 +249,6 @@ Response V8DebuggerAgentImpl::disable() {
|
| m_debugger->setAsyncCallStackDepth(this, 0);
|
| m_continueToLocationBreakpointId = String16();
|
| clearBreakDetails();
|
| - m_javaScriptPauseScheduled = false;
|
| m_skipAllPauses = false;
|
| m_state->setBoolean(DebuggerAgentState::skipAllPauses, false);
|
| m_state->remove(DebuggerAgentState::blackboxPattern);
|
| @@ -684,9 +682,7 @@ void V8DebuggerAgentImpl::clearBreakDetails() {
|
| void V8DebuggerAgentImpl::schedulePauseOnNextStatement(
|
| const String16& breakReason,
|
| std::unique_ptr<protocol::DictionaryValue> data) {
|
| - if (!enabled() || m_javaScriptPauseScheduled || isPaused() ||
|
| - !m_debugger->breakpointsActivated())
|
| - return;
|
| + if (!enabled() || isPaused() || !m_debugger->breakpointsActivated()) return;
|
| if (m_breakReason.empty()) {
|
| m_debugger->setPauseOnNextStatement(true, m_session->contextGroupId());
|
| }
|
| @@ -694,17 +690,18 @@ void V8DebuggerAgentImpl::schedulePauseOnNextStatement(
|
| }
|
|
|
| void V8DebuggerAgentImpl::cancelPauseOnNextStatement() {
|
| - if (m_javaScriptPauseScheduled || isPaused()) return;
|
| + if (!enabled() || isPaused() || !m_debugger->breakpointsActivated()) return;
|
| + if (m_breakReason.size() == 1) m_debugger->setPauseOnNextStatement(false, 0);
|
| popBreakDetails();
|
| - if (m_breakReason.empty()) m_debugger->setPauseOnNextStatement(false, 0);
|
| }
|
|
|
| Response V8DebuggerAgentImpl::pause() {
|
| if (!enabled()) return Response::Error(kDebuggerNotEnabled);
|
| - if (m_javaScriptPauseScheduled || isPaused()) return Response::OK();
|
| - clearBreakDetails();
|
| - m_javaScriptPauseScheduled = true;
|
| - m_debugger->setPauseOnNextStatement(true, m_session->contextGroupId());
|
| + if (isPaused()) return Response::OK();
|
| + if (m_breakReason.empty()) {
|
| + m_debugger->setPauseOnNextStatement(true, m_session->contextGroupId());
|
| + }
|
| + pushBreakDetails(protocol::Debugger::Paused::ReasonEnum::Other, nullptr);
|
| return Response::OK();
|
| }
|
|
|
| @@ -1236,7 +1233,6 @@ void V8DebuggerAgentImpl::didPause(int contextId,
|
| m_frontend.paused(std::move(protocolCallFrames), breakReason,
|
| std::move(breakAuxData), std::move(hitBreakpointIds),
|
| currentAsyncStackTrace());
|
| - m_javaScriptPauseScheduled = false;
|
|
|
| if (!m_continueToLocationBreakpointId.isEmpty()) {
|
| m_debugger->removeBreakpoint(m_continueToLocationBreakpointId);
|
|
|