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