Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(294)

Side by Side Diff: src/inspector/v8-debugger-agent-impl.cc

Issue 2882213004: [inspector] move continueToLocation implementation to debugger (Closed)
Patch Set: ac Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/inspector/v8-debugger-agent-impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/inspector/v8-debugger-agent-impl.h" 5 #include "src/inspector/v8-debugger-agent-impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "src/debug/debug-interface.h" 9 #include "src/debug/debug-interface.h"
10 #include "src/inspector/injected-script.h" 10 #include "src/inspector/injected-script.h"
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 if (isPaused()) m_debugger->continueProgram(m_session->contextGroupId()); 240 if (isPaused()) m_debugger->continueProgram(m_session->contextGroupId());
241 m_debugger->disable(); 241 m_debugger->disable();
242 JavaScriptCallFrames emptyCallFrames; 242 JavaScriptCallFrames emptyCallFrames;
243 m_pausedCallFrames.swap(emptyCallFrames); 243 m_pausedCallFrames.swap(emptyCallFrames);
244 m_blackboxedPositions.clear(); 244 m_blackboxedPositions.clear();
245 m_blackboxPattern.reset(); 245 m_blackboxPattern.reset();
246 resetBlackboxedStateCache(); 246 resetBlackboxedStateCache();
247 m_scripts.clear(); 247 m_scripts.clear();
248 m_breakpointIdToDebuggerBreakpointIds.clear(); 248 m_breakpointIdToDebuggerBreakpointIds.clear();
249 m_debugger->setAsyncCallStackDepth(this, 0); 249 m_debugger->setAsyncCallStackDepth(this, 0);
250 m_continueToLocationBreakpointId = String16();
251 clearBreakDetails(); 250 clearBreakDetails();
252 m_skipAllPauses = false; 251 m_skipAllPauses = false;
253 m_state->setBoolean(DebuggerAgentState::skipAllPauses, false); 252 m_state->setBoolean(DebuggerAgentState::skipAllPauses, false);
254 m_state->remove(DebuggerAgentState::blackboxPattern); 253 m_state->remove(DebuggerAgentState::blackboxPattern);
255 m_enabled = false; 254 m_enabled = false;
256 m_state->setBoolean(DebuggerAgentState::debuggerEnabled, false); 255 m_state->setBoolean(DebuggerAgentState::debuggerEnabled, false);
257 return Response::OK(); 256 return Response::OK();
258 } 257 }
259 258
260 void V8DebuggerAgentImpl::restore() { 259 void V8DebuggerAgentImpl::restore() {
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 breakLocation->setType(breakLocationType(v8Locations[i].type())); 478 breakLocation->setType(breakLocationType(v8Locations[i].type()));
480 } 479 }
481 (*locations)->addItem(std::move(breakLocation)); 480 (*locations)->addItem(std::move(breakLocation));
482 } 481 }
483 return Response::OK(); 482 return Response::OK();
484 } 483 }
485 484
486 Response V8DebuggerAgentImpl::continueToLocation( 485 Response V8DebuggerAgentImpl::continueToLocation(
487 std::unique_ptr<protocol::Debugger::Location> location) { 486 std::unique_ptr<protocol::Debugger::Location> location) {
488 if (!enabled()) return Response::Error(kDebuggerNotEnabled); 487 if (!enabled()) return Response::Error(kDebuggerNotEnabled);
489 if (!m_continueToLocationBreakpointId.isEmpty()) { 488 if (!isPaused()) return Response::Error(kDebuggerNotPaused);
490 m_debugger->removeBreakpoint(m_continueToLocationBreakpointId); 489 return m_debugger->continueToLocation(m_session->contextGroupId(),
491 m_continueToLocationBreakpointId = ""; 490 std::move(location));
492 }
493
494 ScriptBreakpoint breakpoint(location->getScriptId(),
495 location->getLineNumber(),
496 location->getColumnNumber(0), String16());
497
498 m_continueToLocationBreakpointId = m_debugger->setBreakpoint(
499 breakpoint, &breakpoint.line_number, &breakpoint.column_number);
500 // TODO(kozyatinskiy): Return actual line and column number.
501 return resume();
502 } 491 }
503 492
504 bool V8DebuggerAgentImpl::isFunctionBlackboxed(const String16& scriptId, 493 bool V8DebuggerAgentImpl::isFunctionBlackboxed(const String16& scriptId,
505 const v8::debug::Location& start, 494 const v8::debug::Location& start,
506 const v8::debug::Location& end) { 495 const v8::debug::Location& end) {
507 ScriptsMap::iterator it = m_scripts.find(scriptId); 496 ScriptsMap::iterator it = m_scripts.find(scriptId);
508 if (it == m_scripts.end()) { 497 if (it == m_scripts.end()) {
509 // Unknown scripts are blackboxed. 498 // Unknown scripts are blackboxed.
510 return true; 499 return true;
511 } 500 }
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after
1226 breakAuxData = protocol::DictionaryValue::create(); 1215 breakAuxData = protocol::DictionaryValue::create();
1227 breakAuxData->setArray("reasons", std::move(reasons)); 1216 breakAuxData->setArray("reasons", std::move(reasons));
1228 } 1217 }
1229 1218
1230 std::unique_ptr<Array<CallFrame>> protocolCallFrames; 1219 std::unique_ptr<Array<CallFrame>> protocolCallFrames;
1231 Response response = currentCallFrames(&protocolCallFrames); 1220 Response response = currentCallFrames(&protocolCallFrames);
1232 if (!response.isSuccess()) protocolCallFrames = Array<CallFrame>::create(); 1221 if (!response.isSuccess()) protocolCallFrames = Array<CallFrame>::create();
1233 m_frontend.paused(std::move(protocolCallFrames), breakReason, 1222 m_frontend.paused(std::move(protocolCallFrames), breakReason,
1234 std::move(breakAuxData), std::move(hitBreakpointIds), 1223 std::move(breakAuxData), std::move(hitBreakpointIds),
1235 currentAsyncStackTrace()); 1224 currentAsyncStackTrace());
1236
1237 if (!m_continueToLocationBreakpointId.isEmpty()) {
1238 m_debugger->removeBreakpoint(m_continueToLocationBreakpointId);
1239 m_continueToLocationBreakpointId = "";
1240 }
1241 } 1225 }
1242 1226
1243 void V8DebuggerAgentImpl::didContinue() { 1227 void V8DebuggerAgentImpl::didContinue() {
1244 JavaScriptCallFrames emptyCallFrames; 1228 JavaScriptCallFrames emptyCallFrames;
1245 m_pausedCallFrames.swap(emptyCallFrames); 1229 m_pausedCallFrames.swap(emptyCallFrames);
1246 clearBreakDetails(); 1230 clearBreakDetails();
1247 m_frontend.resumed(); 1231 m_frontend.resumed();
1248 } 1232 }
1249 1233
1250 void V8DebuggerAgentImpl::breakProgram( 1234 void V8DebuggerAgentImpl::breakProgram(
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1290 1274
1291 void V8DebuggerAgentImpl::reset() { 1275 void V8DebuggerAgentImpl::reset() {
1292 if (!enabled()) return; 1276 if (!enabled()) return;
1293 m_blackboxedPositions.clear(); 1277 m_blackboxedPositions.clear();
1294 resetBlackboxedStateCache(); 1278 resetBlackboxedStateCache();
1295 m_scripts.clear(); 1279 m_scripts.clear();
1296 m_breakpointIdToDebuggerBreakpointIds.clear(); 1280 m_breakpointIdToDebuggerBreakpointIds.clear();
1297 } 1281 }
1298 1282
1299 } // namespace v8_inspector 1283 } // namespace v8_inspector
OLDNEW
« no previous file with comments | « src/inspector/v8-debugger-agent-impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698