| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2010 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2013 Google Inc. All rights reserved. | 3 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 static String generateBreakpointId(const String& scriptId, int lineNumber, int c
olumnNumber, InspectorDebuggerAgent::BreakpointSource source) | 114 static String generateBreakpointId(const String& scriptId, int lineNumber, int c
olumnNumber, InspectorDebuggerAgent::BreakpointSource source) |
| 115 { | 115 { |
| 116 return scriptId + ':' + String::number(lineNumber) + ':' + String::number(co
lumnNumber) + breakpointIdSuffix(source); | 116 return scriptId + ':' + String::number(lineNumber) + ':' + String::number(co
lumnNumber) + breakpointIdSuffix(source); |
| 117 } | 117 } |
| 118 | 118 |
| 119 InspectorDebuggerAgent::InspectorDebuggerAgent(InjectedScriptManager* injectedSc
riptManager) | 119 InspectorDebuggerAgent::InspectorDebuggerAgent(InjectedScriptManager* injectedSc
riptManager) |
| 120 : InspectorBaseAgent<InspectorDebuggerAgent>("Debugger") | 120 : InspectorBaseAgent<InspectorDebuggerAgent>("Debugger") |
| 121 , m_injectedScriptManager(injectedScriptManager) | 121 , m_injectedScriptManager(injectedScriptManager) |
| 122 , m_frontend(0) | 122 , m_frontend(0) |
| 123 , m_pausedScriptState(nullptr) | 123 , m_pausedScriptState(nullptr) |
| 124 , m_scheduledDebuggerStep(NoStep) |
| 124 , m_javaScriptPauseScheduled(false) | 125 , m_javaScriptPauseScheduled(false) |
| 125 , m_debuggerStepScheduled(false) | |
| 126 , m_steppingFromFramework(false) | 126 , m_steppingFromFramework(false) |
| 127 , m_pausingOnNativeEvent(false) | 127 , m_pausingOnNativeEvent(false) |
| 128 , m_listener(nullptr) | 128 , m_listener(nullptr) |
| 129 , m_skippedStepInCount(0) | 129 , m_skippedStepInCount(0) |
| 130 , m_skipAllPauses(false) | 130 , m_skipAllPauses(false) |
| 131 , m_skipContentScripts(false) | 131 , m_skipContentScripts(false) |
| 132 , m_asyncCallStackTracker(adoptPtrWillBeNoop(new AsyncCallStackTracker())) | 132 , m_asyncCallStackTracker(adoptPtrWillBeNoop(new AsyncCallStackTracker())) |
| 133 , m_promiseTracker(PromiseTracker::create()) | 133 , m_promiseTracker(PromiseTracker::create()) |
| 134 { | 134 { |
| 135 } | 135 } |
| (...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 712 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForOb
jectId(objectId); | 712 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForOb
jectId(objectId); |
| 713 if (injectedScript.isEmpty()) { | 713 if (injectedScript.isEmpty()) { |
| 714 *errorString = "Inspected frame has gone"; | 714 *errorString = "Inspected frame has gone"; |
| 715 return; | 715 return; |
| 716 } | 716 } |
| 717 injectedScript.getCollectionEntries(errorString, objectId, &entries); | 717 injectedScript.getCollectionEntries(errorString, objectId, &entries); |
| 718 } | 718 } |
| 719 | 719 |
| 720 void InspectorDebuggerAgent::schedulePauseOnNextStatement(InspectorFrontend::Deb
ugger::Reason::Enum breakReason, PassRefPtr<JSONObject> data) | 720 void InspectorDebuggerAgent::schedulePauseOnNextStatement(InspectorFrontend::Deb
ugger::Reason::Enum breakReason, PassRefPtr<JSONObject> data) |
| 721 { | 721 { |
| 722 if (m_javaScriptPauseScheduled || isPaused()) | 722 if (m_scheduledDebuggerStep == StepInto || m_javaScriptPauseScheduled || isP
aused()) |
| 723 return; | 723 return; |
| 724 m_breakReason = breakReason; | 724 m_breakReason = breakReason; |
| 725 m_breakAuxData = data; | 725 m_breakAuxData = data; |
| 726 m_pausingOnNativeEvent = true; | 726 m_pausingOnNativeEvent = true; |
| 727 scriptDebugServer().setPauseOnNextStatement(true); | 727 scriptDebugServer().setPauseOnNextStatement(true); |
| 728 } | 728 } |
| 729 | 729 |
| 730 void InspectorDebuggerAgent::schedulePauseOnNextStatementIfSteppingInto() |
| 731 { |
| 732 if (m_scheduledDebuggerStep != StepInto || m_javaScriptPauseScheduled || isP
aused()) |
| 733 return; |
| 734 clearBreakDetails(); |
| 735 m_pausingOnNativeEvent = false; |
| 736 m_skippedStepInCount = 0; |
| 737 scriptDebugServer().setPauseOnNextStatement(true); |
| 738 } |
| 739 |
| 730 void InspectorDebuggerAgent::cancelPauseOnNextStatement() | 740 void InspectorDebuggerAgent::cancelPauseOnNextStatement() |
| 731 { | 741 { |
| 732 if (m_javaScriptPauseScheduled || isPaused()) | 742 if (m_javaScriptPauseScheduled || isPaused()) |
| 733 return; | 743 return; |
| 734 clearBreakDetails(); | 744 clearBreakDetails(); |
| 735 m_pausingOnNativeEvent = false; | 745 m_pausingOnNativeEvent = false; |
| 736 scriptDebugServer().setPauseOnNextStatement(false); | 746 scriptDebugServer().setPauseOnNextStatement(false); |
| 737 } | 747 } |
| 738 | 748 |
| 739 void InspectorDebuggerAgent::didInstallTimer(ExecutionContext* context, int time
rId, int timeout, bool singleShot) | 749 void InspectorDebuggerAgent::didInstallTimer(ExecutionContext* context, int time
rId, int timeout, bool singleShot) |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 952 return; | 962 return; |
| 953 clearBreakDetails(); | 963 clearBreakDetails(); |
| 954 m_javaScriptPauseScheduled = true; | 964 m_javaScriptPauseScheduled = true; |
| 955 scriptDebugServer().setPauseOnNextStatement(true); | 965 scriptDebugServer().setPauseOnNextStatement(true); |
| 956 } | 966 } |
| 957 | 967 |
| 958 void InspectorDebuggerAgent::resume(ErrorString* errorString) | 968 void InspectorDebuggerAgent::resume(ErrorString* errorString) |
| 959 { | 969 { |
| 960 if (!assertPaused(errorString)) | 970 if (!assertPaused(errorString)) |
| 961 return; | 971 return; |
| 962 m_debuggerStepScheduled = false; | 972 m_scheduledDebuggerStep = NoStep; |
| 963 m_steppingFromFramework = false; | 973 m_steppingFromFramework = false; |
| 964 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); | 974 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); |
| 965 scriptDebugServer().continueProgram(); | 975 scriptDebugServer().continueProgram(); |
| 966 } | 976 } |
| 967 | 977 |
| 968 void InspectorDebuggerAgent::stepOver(ErrorString* errorString) | 978 void InspectorDebuggerAgent::stepOver(ErrorString* errorString) |
| 969 { | 979 { |
| 970 if (!assertPaused(errorString)) | 980 if (!assertPaused(errorString)) |
| 971 return; | 981 return; |
| 972 m_debuggerStepScheduled = true; | 982 m_scheduledDebuggerStep = StepOver; |
| 973 m_steppingFromFramework = isTopCallFrameInFramework(); | 983 m_steppingFromFramework = isTopCallFrameInFramework(); |
| 974 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); | 984 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); |
| 975 scriptDebugServer().stepOverStatement(); | 985 scriptDebugServer().stepOverStatement(); |
| 976 } | 986 } |
| 977 | 987 |
| 978 void InspectorDebuggerAgent::stepInto(ErrorString* errorString) | 988 void InspectorDebuggerAgent::stepInto(ErrorString* errorString) |
| 979 { | 989 { |
| 980 if (!assertPaused(errorString)) | 990 if (!assertPaused(errorString)) |
| 981 return; | 991 return; |
| 982 m_debuggerStepScheduled = true; | 992 m_scheduledDebuggerStep = StepInto; |
| 983 m_steppingFromFramework = isTopCallFrameInFramework(); | 993 m_steppingFromFramework = isTopCallFrameInFramework(); |
| 984 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); | 994 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); |
| 985 scriptDebugServer().stepIntoStatement(); | 995 scriptDebugServer().stepIntoStatement(); |
| 986 if (m_listener) | |
| 987 m_listener->stepInto(); | |
| 988 } | 996 } |
| 989 | 997 |
| 990 void InspectorDebuggerAgent::stepOut(ErrorString* errorString) | 998 void InspectorDebuggerAgent::stepOut(ErrorString* errorString) |
| 991 { | 999 { |
| 992 if (!assertPaused(errorString)) | 1000 if (!assertPaused(errorString)) |
| 993 return; | 1001 return; |
| 994 m_debuggerStepScheduled = true; | 1002 m_scheduledDebuggerStep = StepOut; |
| 995 m_steppingFromFramework = isTopCallFrameInFramework(); | 1003 m_steppingFromFramework = isTopCallFrameInFramework(); |
| 996 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); | 1004 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac
eObjectGroup); |
| 997 scriptDebugServer().stepOutOfFunction(); | 1005 scriptDebugServer().stepOutOfFunction(); |
| 998 } | 1006 } |
| 999 | 1007 |
| 1000 void InspectorDebuggerAgent::setPauseOnExceptions(ErrorString* errorString, cons
t String& stringPauseState) | 1008 void InspectorDebuggerAgent::setPauseOnExceptions(ErrorString* errorString, cons
t String& stringPauseState) |
| 1001 { | 1009 { |
| 1002 ScriptDebugServer::PauseOnExceptionsState pauseState; | 1010 ScriptDebugServer::PauseOnExceptionsState pauseState; |
| 1003 if (stringPauseState == "none") | 1011 if (stringPauseState == "none") |
| 1004 pauseState = ScriptDebugServer::DontPauseOnExceptions; | 1012 pauseState = ScriptDebugServer::DontPauseOnExceptions; |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1227 | 1235 |
| 1228 void InspectorDebuggerAgent::scriptExecutionBlockedByCSP(const String& directive
Text) | 1236 void InspectorDebuggerAgent::scriptExecutionBlockedByCSP(const String& directive
Text) |
| 1229 { | 1237 { |
| 1230 if (scriptDebugServer().pauseOnExceptionsState() != ScriptDebugServer::DontP
auseOnExceptions) { | 1238 if (scriptDebugServer().pauseOnExceptionsState() != ScriptDebugServer::DontP
auseOnExceptions) { |
| 1231 RefPtr<JSONObject> directive = JSONObject::create(); | 1239 RefPtr<JSONObject> directive = JSONObject::create(); |
| 1232 directive->setString("directiveText", directiveText); | 1240 directive->setString("directiveText", directiveText); |
| 1233 breakProgram(InspectorFrontend::Debugger::Reason::CSPViolation, directiv
e.release()); | 1241 breakProgram(InspectorFrontend::Debugger::Reason::CSPViolation, directiv
e.release()); |
| 1234 } | 1242 } |
| 1235 } | 1243 } |
| 1236 | 1244 |
| 1245 void InspectorDebuggerAgent::willCallFunction(ExecutionContext*, int scriptId, c
onst String&, int) |
| 1246 { |
| 1247 // Skip unknown scripts (i.e. InjectedScript). |
| 1248 if (!m_scripts.contains(String::number(scriptId))) |
| 1249 return; |
| 1250 schedulePauseOnNextStatementIfSteppingInto(); |
| 1251 } |
| 1252 |
| 1253 void InspectorDebuggerAgent::willEvaluateScript(LocalFrame*, const String&, int) |
| 1254 { |
| 1255 schedulePauseOnNextStatementIfSteppingInto(); |
| 1256 } |
| 1257 |
| 1237 PassRefPtr<Array<CallFrame> > InspectorDebuggerAgent::currentCallFrames() | 1258 PassRefPtr<Array<CallFrame> > InspectorDebuggerAgent::currentCallFrames() |
| 1238 { | 1259 { |
| 1239 if (!m_pausedScriptState || m_currentCallStack.isEmpty()) | 1260 if (!m_pausedScriptState || m_currentCallStack.isEmpty()) |
| 1240 return Array<CallFrame>::create(); | 1261 return Array<CallFrame>::create(); |
| 1241 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(m
_pausedScriptState.get()); | 1262 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(m
_pausedScriptState.get()); |
| 1242 if (injectedScript.isEmpty()) { | 1263 if (injectedScript.isEmpty()) { |
| 1243 ASSERT_NOT_REACHED(); | 1264 ASSERT_NOT_REACHED(); |
| 1244 return Array<CallFrame>::create(); | 1265 return Array<CallFrame>::create(); |
| 1245 } | 1266 } |
| 1246 return injectedScript.wrapCallFrames(m_currentCallStack, 0); | 1267 return injectedScript.wrapCallFrames(m_currentCallStack, 0); |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1393 if (callFrames.isEmpty()) | 1414 if (callFrames.isEmpty()) |
| 1394 result = ScriptDebugListener::Continue; // Skip pauses inside V8 interna
l scripts and on syntax errors. | 1415 result = ScriptDebugListener::Continue; // Skip pauses inside V8 interna
l scripts and on syntax errors. |
| 1395 else if (m_javaScriptPauseScheduled) | 1416 else if (m_javaScriptPauseScheduled) |
| 1396 result = ScriptDebugListener::NoSkip; // Don't skip explicit pause reque
sts from front-end. | 1417 result = ScriptDebugListener::NoSkip; // Don't skip explicit pause reque
sts from front-end. |
| 1397 else if (m_skipAllPauses) | 1418 else if (m_skipAllPauses) |
| 1398 result = ScriptDebugListener::Continue; | 1419 result = ScriptDebugListener::Continue; |
| 1399 else if (!hitBreakpoints.isEmpty()) | 1420 else if (!hitBreakpoints.isEmpty()) |
| 1400 result = ScriptDebugListener::NoSkip; // Don't skip explicit breakpoints
even if set in frameworks. | 1421 result = ScriptDebugListener::NoSkip; // Don't skip explicit breakpoints
even if set in frameworks. |
| 1401 else if (!exception.isEmpty()) | 1422 else if (!exception.isEmpty()) |
| 1402 result = shouldSkipExceptionPause(); | 1423 result = shouldSkipExceptionPause(); |
| 1403 else if (m_debuggerStepScheduled || m_pausingOnNativeEvent) | 1424 else if (m_scheduledDebuggerStep != NoStep || m_pausingOnNativeEvent) |
| 1404 result = shouldSkipStepPause(); | 1425 result = shouldSkipStepPause(); |
| 1405 else | 1426 else |
| 1406 result = ScriptDebugListener::NoSkip; | 1427 result = ScriptDebugListener::NoSkip; |
| 1407 | 1428 |
| 1408 if (result != ScriptDebugListener::NoSkip) | 1429 if (result != ScriptDebugListener::NoSkip) |
| 1409 return result; | 1430 return result; |
| 1410 | 1431 |
| 1411 ASSERT(scriptState && !m_pausedScriptState); | 1432 ASSERT(scriptState && !m_pausedScriptState); |
| 1412 m_pausedScriptState = scriptState; | 1433 m_pausedScriptState = scriptState; |
| 1413 m_currentCallStack = callFrames; | 1434 m_currentCallStack = callFrames; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1429 const String& localId = breakpointIterator->value.first; | 1450 const String& localId = breakpointIterator->value.first; |
| 1430 hitBreakpointIds->addItem(localId); | 1451 hitBreakpointIds->addItem(localId); |
| 1431 | 1452 |
| 1432 BreakpointSource source = breakpointIterator->value.second; | 1453 BreakpointSource source = breakpointIterator->value.second; |
| 1433 if (m_breakReason == InspectorFrontend::Debugger::Reason::Other && s
ource == DebugCommandBreakpointSource) | 1454 if (m_breakReason == InspectorFrontend::Debugger::Reason::Other && s
ource == DebugCommandBreakpointSource) |
| 1434 m_breakReason = InspectorFrontend::Debugger::Reason::DebugComman
d; | 1455 m_breakReason = InspectorFrontend::Debugger::Reason::DebugComman
d; |
| 1435 } | 1456 } |
| 1436 } | 1457 } |
| 1437 | 1458 |
| 1438 m_frontend->paused(currentCallFrames(), m_breakReason, m_breakAuxData, hitBr
eakpointIds, currentAsyncStackTrace()); | 1459 m_frontend->paused(currentCallFrames(), m_breakReason, m_breakAuxData, hitBr
eakpointIds, currentAsyncStackTrace()); |
| 1460 m_scheduledDebuggerStep = NoStep; |
| 1439 m_javaScriptPauseScheduled = false; | 1461 m_javaScriptPauseScheduled = false; |
| 1440 m_debuggerStepScheduled = false; | |
| 1441 m_steppingFromFramework = false; | 1462 m_steppingFromFramework = false; |
| 1442 m_pausingOnNativeEvent = false; | 1463 m_pausingOnNativeEvent = false; |
| 1443 m_skippedStepInCount = 0; | 1464 m_skippedStepInCount = 0; |
| 1444 | 1465 |
| 1445 if (!m_continueToLocationBreakpointId.isEmpty()) { | 1466 if (!m_continueToLocationBreakpointId.isEmpty()) { |
| 1446 scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointId); | 1467 scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointId); |
| 1447 m_continueToLocationBreakpointId = ""; | 1468 m_continueToLocationBreakpointId = ""; |
| 1448 } | 1469 } |
| 1449 if (m_listener) | |
| 1450 m_listener->didPause(); | |
| 1451 return result; | 1470 return result; |
| 1452 } | 1471 } |
| 1453 | 1472 |
| 1454 void InspectorDebuggerAgent::didContinue() | 1473 void InspectorDebuggerAgent::didContinue() |
| 1455 { | 1474 { |
| 1456 m_pausedScriptState = nullptr; | 1475 m_pausedScriptState = nullptr; |
| 1457 m_currentCallStack = ScriptValue(); | 1476 m_currentCallStack = ScriptValue(); |
| 1458 clearBreakDetails(); | 1477 clearBreakDetails(); |
| 1459 m_frontend->resumed(); | 1478 m_frontend->resumed(); |
| 1460 } | 1479 } |
| 1461 | 1480 |
| 1462 bool InspectorDebuggerAgent::canBreakProgram() | 1481 bool InspectorDebuggerAgent::canBreakProgram() |
| 1463 { | 1482 { |
| 1464 return scriptDebugServer().canBreakProgram(); | 1483 return scriptDebugServer().canBreakProgram(); |
| 1465 } | 1484 } |
| 1466 | 1485 |
| 1467 void InspectorDebuggerAgent::breakProgram(InspectorFrontend::Debugger::Reason::E
num breakReason, PassRefPtr<JSONObject> data) | 1486 void InspectorDebuggerAgent::breakProgram(InspectorFrontend::Debugger::Reason::E
num breakReason, PassRefPtr<JSONObject> data) |
| 1468 { | 1487 { |
| 1469 if (m_skipAllPauses) | 1488 if (m_skipAllPauses) |
| 1470 return; | 1489 return; |
| 1471 m_breakReason = breakReason; | 1490 m_breakReason = breakReason; |
| 1472 m_breakAuxData = data; | 1491 m_breakAuxData = data; |
| 1473 m_debuggerStepScheduled = false; | 1492 m_scheduledDebuggerStep = NoStep; |
| 1474 m_steppingFromFramework = false; | 1493 m_steppingFromFramework = false; |
| 1475 m_pausingOnNativeEvent = false; | 1494 m_pausingOnNativeEvent = false; |
| 1476 scriptDebugServer().breakProgram(); | 1495 scriptDebugServer().breakProgram(); |
| 1477 } | 1496 } |
| 1478 | 1497 |
| 1479 void InspectorDebuggerAgent::clear() | 1498 void InspectorDebuggerAgent::clear() |
| 1480 { | 1499 { |
| 1481 m_pausedScriptState = nullptr; | 1500 m_pausedScriptState = nullptr; |
| 1482 m_currentCallStack = ScriptValue(); | 1501 m_currentCallStack = ScriptValue(); |
| 1483 m_scripts.clear(); | 1502 m_scripts.clear(); |
| 1484 m_breakpointIdToDebugServerBreakpointIds.clear(); | 1503 m_breakpointIdToDebugServerBreakpointIds.clear(); |
| 1485 asyncCallStackTracker().clear(); | 1504 asyncCallStackTracker().clear(); |
| 1486 promiseTracker().clear(); | 1505 promiseTracker().clear(); |
| 1487 m_continueToLocationBreakpointId = String(); | 1506 m_continueToLocationBreakpointId = String(); |
| 1488 clearBreakDetails(); | 1507 clearBreakDetails(); |
| 1508 m_scheduledDebuggerStep = NoStep; |
| 1489 m_javaScriptPauseScheduled = false; | 1509 m_javaScriptPauseScheduled = false; |
| 1490 m_debuggerStepScheduled = false; | |
| 1491 m_steppingFromFramework = false; | 1510 m_steppingFromFramework = false; |
| 1492 m_pausingOnNativeEvent = false; | 1511 m_pausingOnNativeEvent = false; |
| 1493 ErrorString error; | 1512 ErrorString error; |
| 1494 setOverlayMessage(&error, 0); | 1513 setOverlayMessage(&error, 0); |
| 1495 } | 1514 } |
| 1496 | 1515 |
| 1497 bool InspectorDebuggerAgent::assertPaused(ErrorString* errorString) | 1516 bool InspectorDebuggerAgent::assertPaused(ErrorString* errorString) |
| 1498 { | 1517 { |
| 1499 if (!m_pausedScriptState) { | 1518 if (!m_pausedScriptState) { |
| 1500 *errorString = "Can only perform operation while paused."; | 1519 *errorString = "Can only perform operation while paused."; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1516 resolveBreakpoint(breakpointId, scriptId, breakpoint, source); | 1535 resolveBreakpoint(breakpointId, scriptId, breakpoint, source); |
| 1517 } | 1536 } |
| 1518 | 1537 |
| 1519 void InspectorDebuggerAgent::removeBreakpoint(const String& scriptId, int lineNu
mber, int columnNumber, BreakpointSource source) | 1538 void InspectorDebuggerAgent::removeBreakpoint(const String& scriptId, int lineNu
mber, int columnNumber, BreakpointSource source) |
| 1520 { | 1539 { |
| 1521 removeBreakpoint(generateBreakpointId(scriptId, lineNumber, columnNumber, so
urce)); | 1540 removeBreakpoint(generateBreakpointId(scriptId, lineNumber, columnNumber, so
urce)); |
| 1522 } | 1541 } |
| 1523 | 1542 |
| 1524 void InspectorDebuggerAgent::reset() | 1543 void InspectorDebuggerAgent::reset() |
| 1525 { | 1544 { |
| 1545 m_scheduledDebuggerStep = NoStep; |
| 1526 m_scripts.clear(); | 1546 m_scripts.clear(); |
| 1527 m_breakpointIdToDebugServerBreakpointIds.clear(); | 1547 m_breakpointIdToDebugServerBreakpointIds.clear(); |
| 1528 asyncCallStackTracker().clear(); | 1548 asyncCallStackTracker().clear(); |
| 1529 promiseTracker().clear(); | 1549 promiseTracker().clear(); |
| 1530 if (m_frontend) | 1550 if (m_frontend) |
| 1531 m_frontend->globalObjectCleared(); | 1551 m_frontend->globalObjectCleared(); |
| 1532 } | 1552 } |
| 1533 | 1553 |
| 1534 void InspectorDebuggerAgent::trace(Visitor* visitor) | 1554 void InspectorDebuggerAgent::trace(Visitor* visitor) |
| 1535 { | 1555 { |
| 1536 visitor->trace(m_injectedScriptManager); | 1556 visitor->trace(m_injectedScriptManager); |
| 1537 visitor->trace(m_listener); | 1557 visitor->trace(m_listener); |
| 1538 visitor->trace(m_asyncCallStackTracker); | 1558 visitor->trace(m_asyncCallStackTracker); |
| 1539 #if ENABLE(OILPAN) | 1559 #if ENABLE(OILPAN) |
| 1540 visitor->trace(m_promiseTracker); | 1560 visitor->trace(m_promiseTracker); |
| 1541 #endif | 1561 #endif |
| 1542 InspectorBaseAgent::trace(visitor); | 1562 InspectorBaseAgent::trace(visitor); |
| 1543 } | 1563 } |
| 1544 | 1564 |
| 1545 } // namespace blink | 1565 } // namespace blink |
| OLD | NEW |