| 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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 static const char asyncCallStackDepth[] = "asyncCallStackDepth"; | 79 static const char asyncCallStackDepth[] = "asyncCallStackDepth"; |
| 80 | 80 |
| 81 // Breakpoint properties. | 81 // Breakpoint properties. |
| 82 static const char url[] = "url"; | 82 static const char url[] = "url"; |
| 83 static const char isRegex[] = "isRegex"; | 83 static const char isRegex[] = "isRegex"; |
| 84 static const char lineNumber[] = "lineNumber"; | 84 static const char lineNumber[] = "lineNumber"; |
| 85 static const char columnNumber[] = "columnNumber"; | 85 static const char columnNumber[] = "columnNumber"; |
| 86 static const char condition[] = "condition"; | 86 static const char condition[] = "condition"; |
| 87 static const char isAnti[] = "isAnti"; | 87 static const char isAnti[] = "isAnti"; |
| 88 static const char skipStackPattern[] = "skipStackPattern"; | 88 static const char skipStackPattern[] = "skipStackPattern"; |
| 89 static const char skipContentScripts[] = "skipContentScripts"; |
| 89 static const char skipAllPauses[] = "skipAllPauses"; | 90 static const char skipAllPauses[] = "skipAllPauses"; |
| 90 static const char skipAllPausesExpiresOnReload[] = "skipAllPausesExpiresOnReload
"; | 91 static const char skipAllPausesExpiresOnReload[] = "skipAllPausesExpiresOnReload
"; |
| 91 | 92 |
| 92 }; | 93 }; |
| 93 | 94 |
| 94 static const int maxSkipStepInCount = 20; | 95 static const int maxSkipStepInCount = 20; |
| 95 | 96 |
| 96 const char InspectorDebuggerAgent::backtraceObjectGroup[] = "backtrace"; | 97 const char InspectorDebuggerAgent::backtraceObjectGroup[] = "backtrace"; |
| 97 | 98 |
| 98 static String breakpointIdSuffix(InspectorDebuggerAgent::BreakpointSource source
) | 99 static String breakpointIdSuffix(InspectorDebuggerAgent::BreakpointSource source
) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 118 , m_injectedScriptManager(injectedScriptManager) | 119 , m_injectedScriptManager(injectedScriptManager) |
| 119 , m_frontend(0) | 120 , m_frontend(0) |
| 120 , m_pausedScriptState(nullptr) | 121 , m_pausedScriptState(nullptr) |
| 121 , m_javaScriptPauseScheduled(false) | 122 , m_javaScriptPauseScheduled(false) |
| 122 , m_debuggerStepScheduled(false) | 123 , m_debuggerStepScheduled(false) |
| 123 , m_steppingFromFramework(false) | 124 , m_steppingFromFramework(false) |
| 124 , m_pausingOnNativeEvent(false) | 125 , m_pausingOnNativeEvent(false) |
| 125 , m_listener(nullptr) | 126 , m_listener(nullptr) |
| 126 , m_skippedStepInCount(0) | 127 , m_skippedStepInCount(0) |
| 127 , m_skipAllPauses(false) | 128 , m_skipAllPauses(false) |
| 129 , m_skipContentScripts(false) |
| 128 , m_asyncCallStackTracker(adoptPtrWillBeNoop(new AsyncCallStackTracker())) | 130 , m_asyncCallStackTracker(adoptPtrWillBeNoop(new AsyncCallStackTracker())) |
| 129 { | 131 { |
| 130 } | 132 } |
| 131 | 133 |
| 132 InspectorDebuggerAgent::~InspectorDebuggerAgent() | 134 InspectorDebuggerAgent::~InspectorDebuggerAgent() |
| 133 { | 135 { |
| 134 #if !ENABLE(OILPAN) | 136 #if !ENABLE(OILPAN) |
| 135 ASSERT(!m_instrumentingAgents->inspectorDebuggerAgent()); | 137 ASSERT(!m_instrumentingAgents->inspectorDebuggerAgent()); |
| 136 #endif | 138 #endif |
| 137 } | 139 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 153 | 155 |
| 154 if (m_listener) | 156 if (m_listener) |
| 155 m_listener->debuggerWasEnabled(); | 157 m_listener->debuggerWasEnabled(); |
| 156 } | 158 } |
| 157 | 159 |
| 158 void InspectorDebuggerAgent::disable() | 160 void InspectorDebuggerAgent::disable() |
| 159 { | 161 { |
| 160 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, JSONObject::cr
eate()); | 162 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, JSONObject::cr
eate()); |
| 161 m_state->setLong(DebuggerAgentState::pauseOnExceptionsState, ScriptDebugServ
er::DontPauseOnExceptions); | 163 m_state->setLong(DebuggerAgentState::pauseOnExceptionsState, ScriptDebugServ
er::DontPauseOnExceptions); |
| 162 m_state->setString(DebuggerAgentState::skipStackPattern, ""); | 164 m_state->setString(DebuggerAgentState::skipStackPattern, ""); |
| 165 m_state->setBoolean(DebuggerAgentState::skipContentScripts, false); |
| 163 m_state->setLong(DebuggerAgentState::asyncCallStackDepth, 0); | 166 m_state->setLong(DebuggerAgentState::asyncCallStackDepth, 0); |
| 164 m_instrumentingAgents->setInspectorDebuggerAgent(0); | 167 m_instrumentingAgents->setInspectorDebuggerAgent(0); |
| 165 | 168 |
| 166 scriptDebugServer().clearBreakpoints(); | 169 scriptDebugServer().clearBreakpoints(); |
| 167 scriptDebugServer().clearCompiledScripts(); | 170 scriptDebugServer().clearCompiledScripts(); |
| 168 scriptDebugServer().clearPreprocessor(); | 171 scriptDebugServer().clearPreprocessor(); |
| 169 stopListeningScriptDebugServer(); | 172 stopListeningScriptDebugServer(); |
| 170 clear(); | 173 clear(); |
| 171 | 174 |
| 172 if (m_listener) | 175 if (m_listener) |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 | 215 |
| 213 void InspectorDebuggerAgent::restore() | 216 void InspectorDebuggerAgent::restore() |
| 214 { | 217 { |
| 215 if (enabled()) { | 218 if (enabled()) { |
| 216 m_frontend->globalObjectCleared(); | 219 m_frontend->globalObjectCleared(); |
| 217 enable(); | 220 enable(); |
| 218 long pauseState = m_state->getLong(DebuggerAgentState::pauseOnExceptions
State); | 221 long pauseState = m_state->getLong(DebuggerAgentState::pauseOnExceptions
State); |
| 219 String error; | 222 String error; |
| 220 setPauseOnExceptionsImpl(&error, pauseState); | 223 setPauseOnExceptionsImpl(&error, pauseState); |
| 221 m_cachedSkipStackRegExp = compileSkipCallFramePattern(m_state->getString
(DebuggerAgentState::skipStackPattern)); | 224 m_cachedSkipStackRegExp = compileSkipCallFramePattern(m_state->getString
(DebuggerAgentState::skipStackPattern)); |
| 225 m_skipContentScripts = m_state->getBoolean(DebuggerAgentState::skipConte
ntScripts); |
| 222 m_skipAllPauses = m_state->getBoolean(DebuggerAgentState::skipAllPauses)
; | 226 m_skipAllPauses = m_state->getBoolean(DebuggerAgentState::skipAllPauses)
; |
| 223 if (m_skipAllPauses && m_state->getBoolean(DebuggerAgentState::skipAllPa
usesExpiresOnReload)) { | 227 if (m_skipAllPauses && m_state->getBoolean(DebuggerAgentState::skipAllPa
usesExpiresOnReload)) { |
| 224 m_skipAllPauses = false; | 228 m_skipAllPauses = false; |
| 225 m_state->setBoolean(DebuggerAgentState::skipAllPauses, false); | 229 m_state->setBoolean(DebuggerAgentState::skipAllPauses, false); |
| 226 } | 230 } |
| 227 asyncCallStackTracker().setAsyncCallStackDepth(m_state->getLong(Debugger
AgentState::asyncCallStackDepth)); | 231 asyncCallStackTracker().setAsyncCallStackDepth(m_state->getLong(Debugger
AgentState::asyncCallStackDepth)); |
| 228 } | 232 } |
| 229 } | 233 } |
| 230 | 234 |
| 231 void InspectorDebuggerAgent::setFrontend(InspectorFrontend* frontend) | 235 void InspectorDebuggerAgent::setFrontend(InspectorFrontend* frontend) |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 | 473 |
| 470 void InspectorDebuggerAgent::getBacktrace(ErrorString* errorString, RefPtr<Array
<CallFrame> >& callFrames, RefPtr<StackTrace>& asyncStackTrace) | 474 void InspectorDebuggerAgent::getBacktrace(ErrorString* errorString, RefPtr<Array
<CallFrame> >& callFrames, RefPtr<StackTrace>& asyncStackTrace) |
| 471 { | 475 { |
| 472 if (!assertPaused(errorString)) | 476 if (!assertPaused(errorString)) |
| 473 return; | 477 return; |
| 474 m_currentCallStack = scriptDebugServer().currentCallFrames(); | 478 m_currentCallStack = scriptDebugServer().currentCallFrames(); |
| 475 callFrames = currentCallFrames(); | 479 callFrames = currentCallFrames(); |
| 476 asyncStackTrace = currentAsyncStackTrace(); | 480 asyncStackTrace = currentAsyncStackTrace(); |
| 477 } | 481 } |
| 478 | 482 |
| 479 PassRefPtrWillBeRawPtr<JavaScriptCallFrame> InspectorDebuggerAgent::topCallFrame
SkipUnknownSources() | 483 PassRefPtrWillBeRawPtr<JavaScriptCallFrame> InspectorDebuggerAgent::topCallFrame
SkipUnknownSources(String* scriptURL, bool* isBlackboxed) |
| 480 { | 484 { |
| 481 for (int index = 0; ; ++index) { | 485 for (int index = 0; ; ++index) { |
| 482 RefPtrWillBeRawPtr<JavaScriptCallFrame> frame = scriptDebugServer().call
FrameNoScopes(index); | 486 RefPtrWillBeRawPtr<JavaScriptCallFrame> frame = scriptDebugServer().call
FrameNoScopes(index); |
| 483 if (!frame) | 487 if (!frame) |
| 484 return nullptr; | 488 return nullptr; |
| 485 String scriptIdString = String::number(frame->sourceID()); | 489 ScriptsMap::iterator it = m_scripts.find(String::number(frame->sourceID(
))); |
| 486 if (m_scripts.contains(scriptIdString)) | 490 if (it == m_scripts.end()) |
| 487 return frame.release(); | 491 continue; |
| 492 *scriptURL = scriptSourceURL(it->value); |
| 493 *isBlackboxed = (m_skipContentScripts && it->value.isContentScript) |
| 494 || (m_cachedSkipStackRegExp && !scriptURL->isEmpty() && m_cachedSkip
StackRegExp->match(*scriptURL) != -1); |
| 495 return frame.release(); |
| 488 } | 496 } |
| 489 } | 497 } |
| 490 | 498 |
| 491 String InspectorDebuggerAgent::scriptURL(JavaScriptCallFrame* frame) | |
| 492 { | |
| 493 String scriptIdString = String::number(frame->sourceID()); | |
| 494 ScriptsMap::iterator it = m_scripts.find(scriptIdString); | |
| 495 if (it == m_scripts.end()) | |
| 496 return String(); | |
| 497 return scriptSourceURL(it->value); | |
| 498 } | |
| 499 | |
| 500 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipExceptio
nPause() | 499 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipExceptio
nPause() |
| 501 { | 500 { |
| 502 if (m_steppingFromFramework) | 501 if (m_steppingFromFramework) |
| 503 return ScriptDebugListener::NoSkip; | 502 return ScriptDebugListener::NoSkip; |
| 504 | 503 |
| 505 // FIXME: Fast return: if (!m_cachedSkipStackRegExp && !has_any_anti_breakpo
int) return ScriptDebugListener::NoSkip; | 504 // FIXME: Fast return: if (!m_skipContentScripts && !m_cachedSkipStackRegExp
&& !has_any_anti_breakpoint) return ScriptDebugListener::NoSkip; |
| 506 | 505 |
| 507 RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSo
urces(); | 506 String topFrameScriptUrl; |
| 507 bool isBlackboxed = false; |
| 508 RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSo
urces(&topFrameScriptUrl, &isBlackboxed); |
| 508 if (!topFrame) | 509 if (!topFrame) |
| 509 return ScriptDebugListener::NoSkip; | 510 return ScriptDebugListener::NoSkip; |
| 510 | 511 if (isBlackboxed) |
| 511 String topFrameScriptUrl = scriptURL(topFrame.get()); | |
| 512 if (m_cachedSkipStackRegExp && !topFrameScriptUrl.isEmpty() && m_cachedSkipS
tackRegExp->match(topFrameScriptUrl) != -1) | |
| 513 return ScriptDebugListener::Continue; | 512 return ScriptDebugListener::Continue; |
| 514 | 513 |
| 515 // Match against breakpoints. | 514 // Match against breakpoints. |
| 516 if (topFrameScriptUrl.isEmpty()) | 515 if (topFrameScriptUrl.isEmpty()) |
| 517 return ScriptDebugListener::NoSkip; | 516 return ScriptDebugListener::NoSkip; |
| 518 | 517 |
| 519 // Prepare top frame parameters. | 518 // Prepare top frame parameters. |
| 520 int topFrameLineNumber = topFrame->line(); | 519 int topFrameLineNumber = topFrame->line(); |
| 521 int topFrameColumnNumber = topFrame->column(); | 520 int topFrameColumnNumber = topFrame->column(); |
| 522 | 521 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 547 continue; | 546 continue; |
| 548 | 547 |
| 549 return ScriptDebugListener::Continue; | 548 return ScriptDebugListener::Continue; |
| 550 } | 549 } |
| 551 | 550 |
| 552 return ScriptDebugListener::NoSkip; | 551 return ScriptDebugListener::NoSkip; |
| 553 } | 552 } |
| 554 | 553 |
| 555 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipStepPaus
e() | 554 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipStepPaus
e() |
| 556 { | 555 { |
| 557 if (!m_cachedSkipStackRegExp || m_steppingFromFramework) | 556 if (m_steppingFromFramework) |
| 557 return ScriptDebugListener::NoSkip; |
| 558 // Fast return. |
| 559 if (!m_skipContentScripts && !m_cachedSkipStackRegExp) |
| 558 return ScriptDebugListener::NoSkip; | 560 return ScriptDebugListener::NoSkip; |
| 559 | 561 |
| 560 RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSo
urces(); | 562 String scriptUrl; |
| 561 String scriptUrl = scriptURL(topFrame.get()); | 563 bool isBlackboxed = false; |
| 562 if (scriptUrl.isEmpty() || m_cachedSkipStackRegExp->match(scriptUrl) == -1) | 564 RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSo
urces(&scriptUrl, &isBlackboxed); |
| 565 if (!topFrame || !isBlackboxed) |
| 563 return ScriptDebugListener::NoSkip; | 566 return ScriptDebugListener::NoSkip; |
| 564 | 567 |
| 565 if (m_skippedStepInCount == 0) { | 568 if (m_skippedStepInCount == 0) { |
| 566 m_minFrameCountForSkip = scriptDebugServer().frameCount(); | 569 m_minFrameCountForSkip = scriptDebugServer().frameCount(); |
| 567 m_skippedStepInCount = 1; | 570 m_skippedStepInCount = 1; |
| 568 return ScriptDebugListener::StepInto; | 571 return ScriptDebugListener::StepInto; |
| 569 } | 572 } |
| 570 | 573 |
| 571 if (m_skippedStepInCount < maxSkipStepInCount && topFrame->isAtReturn() && s
criptDebugServer().frameCount() <= m_minFrameCountForSkip) | 574 if (m_skippedStepInCount < maxSkipStepInCount && topFrame->isAtReturn() && s
criptDebugServer().frameCount() <= m_minFrameCountForSkip) |
| 572 m_skippedStepInCount = maxSkipStepInCount; | 575 m_skippedStepInCount = maxSkipStepInCount; |
| 573 | 576 |
| 574 if (m_skippedStepInCount >= maxSkipStepInCount) { | 577 if (m_skippedStepInCount >= maxSkipStepInCount) { |
| 575 if (m_pausingOnNativeEvent) { | 578 if (m_pausingOnNativeEvent) { |
| 576 m_pausingOnNativeEvent = false; | 579 m_pausingOnNativeEvent = false; |
| 577 m_skippedStepInCount = 0; | 580 m_skippedStepInCount = 0; |
| 578 return ScriptDebugListener::Continue; | 581 return ScriptDebugListener::Continue; |
| 579 } | 582 } |
| 580 return ScriptDebugListener::StepOut; | 583 return ScriptDebugListener::StepOut; |
| 581 } | 584 } |
| 582 | 585 |
| 583 ++m_skippedStepInCount; | 586 ++m_skippedStepInCount; |
| 584 return ScriptDebugListener::StepInto; | 587 return ScriptDebugListener::StepInto; |
| 585 } | 588 } |
| 586 | 589 |
| 587 bool InspectorDebuggerAgent::isTopCallFrameInFramework() | 590 bool InspectorDebuggerAgent::isTopCallFrameInFramework() |
| 588 { | 591 { |
| 589 if (!m_cachedSkipStackRegExp) | 592 if (!m_skipContentScripts && !m_cachedSkipStackRegExp) |
| 590 return false; | 593 return false; |
| 591 | 594 |
| 592 RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSo
urces(); | 595 String scriptUrl; |
| 593 if (!topFrame) | 596 bool isBlackboxed = false; |
| 594 return false; | 597 RefPtrWillBeRawPtr<JavaScriptCallFrame> topFrame = topCallFrameSkipUnknownSo
urces(&scriptUrl, &isBlackboxed); |
| 595 | 598 return topFrame && isBlackboxed; |
| 596 String scriptUrl = scriptURL(topFrame.get()); | |
| 597 return !scriptUrl.isEmpty() && m_cachedSkipStackRegExp->match(scriptUrl) !=
-1; | |
| 598 } | 599 } |
| 599 | 600 |
| 600 PassRefPtr<TypeBuilder::Debugger::Location> InspectorDebuggerAgent::resolveBreak
point(const String& breakpointId, const String& scriptId, const ScriptBreakpoint
& breakpoint, BreakpointSource source) | 601 PassRefPtr<TypeBuilder::Debugger::Location> InspectorDebuggerAgent::resolveBreak
point(const String& breakpointId, const String& scriptId, const ScriptBreakpoint
& breakpoint, BreakpointSource source) |
| 601 { | 602 { |
| 602 ScriptsMap::iterator scriptIterator = m_scripts.find(scriptId); | 603 ScriptsMap::iterator scriptIterator = m_scripts.find(scriptId); |
| 603 if (scriptIterator == m_scripts.end()) | 604 if (scriptIterator == m_scripts.end()) |
| 604 return nullptr; | 605 return nullptr; |
| 605 Script& script = scriptIterator->value; | 606 Script& script = scriptIterator->value; |
| 606 if (breakpoint.lineNumber < script.startLine || script.endLine < breakpoint.
lineNumber) | 607 if (breakpoint.lineNumber < script.startLine || script.endLine < breakpoint.
lineNumber) |
| 607 return nullptr; | 608 return nullptr; |
| (...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1135 } | 1136 } |
| 1136 } else { | 1137 } else { |
| 1137 *errorString = "Either call frame or function object must be specified"; | 1138 *errorString = "Either call frame or function object must be specified"; |
| 1138 return; | 1139 return; |
| 1139 } | 1140 } |
| 1140 String newValueString = newValue->toJSONString(); | 1141 String newValueString = newValue->toJSONString(); |
| 1141 | 1142 |
| 1142 injectedScript.setVariableValue(errorString, m_currentCallStack, callFrameId
, functionObjectId, scopeNumber, variableName, newValueString); | 1143 injectedScript.setVariableValue(errorString, m_currentCallStack, callFrameId
, functionObjectId, scopeNumber, variableName, newValueString); |
| 1143 } | 1144 } |
| 1144 | 1145 |
| 1145 void InspectorDebuggerAgent::skipStackFrames(ErrorString* errorString, const Str
ing* pattern) | 1146 void InspectorDebuggerAgent::skipStackFrames(ErrorString* errorString, const Str
ing* pattern, const bool* skipContentScripts) |
| 1146 { | 1147 { |
| 1147 OwnPtr<ScriptRegexp> compiled; | 1148 OwnPtr<ScriptRegexp> compiled; |
| 1148 String patternValue = pattern ? *pattern : ""; | 1149 String patternValue = pattern ? *pattern : ""; |
| 1149 if (!patternValue.isEmpty()) { | 1150 if (!patternValue.isEmpty()) { |
| 1150 compiled = compileSkipCallFramePattern(patternValue); | 1151 compiled = compileSkipCallFramePattern(patternValue); |
| 1151 if (!compiled) { | 1152 if (!compiled) { |
| 1152 *errorString = "Invalid regular expression"; | 1153 *errorString = "Invalid regular expression"; |
| 1153 return; | 1154 return; |
| 1154 } | 1155 } |
| 1155 } | 1156 } |
| 1156 m_state->setString(DebuggerAgentState::skipStackPattern, patternValue); | 1157 m_state->setString(DebuggerAgentState::skipStackPattern, patternValue); |
| 1157 m_cachedSkipStackRegExp = compiled.release(); | 1158 m_cachedSkipStackRegExp = compiled.release(); |
| 1159 m_skipContentScripts = asBool(skipContentScripts); |
| 1160 m_state->setBoolean(DebuggerAgentState::skipContentScripts, m_skipContentScr
ipts); |
| 1158 } | 1161 } |
| 1159 | 1162 |
| 1160 void InspectorDebuggerAgent::setAsyncCallStackDepth(ErrorString*, int depth) | 1163 void InspectorDebuggerAgent::setAsyncCallStackDepth(ErrorString*, int depth) |
| 1161 { | 1164 { |
| 1162 m_state->setLong(DebuggerAgentState::asyncCallStackDepth, depth); | 1165 m_state->setLong(DebuggerAgentState::asyncCallStackDepth, depth); |
| 1163 asyncCallStackTracker().setAsyncCallStackDepth(depth); | 1166 asyncCallStackTracker().setAsyncCallStackDepth(depth); |
| 1164 } | 1167 } |
| 1165 | 1168 |
| 1166 void InspectorDebuggerAgent::scriptExecutionBlockedByCSP(const String& directive
Text) | 1169 void InspectorDebuggerAgent::scriptExecutionBlockedByCSP(const String& directive
Text) |
| 1167 { | 1170 { |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1476 void InspectorDebuggerAgent::trace(Visitor* visitor) | 1479 void InspectorDebuggerAgent::trace(Visitor* visitor) |
| 1477 { | 1480 { |
| 1478 visitor->trace(m_injectedScriptManager); | 1481 visitor->trace(m_injectedScriptManager); |
| 1479 visitor->trace(m_listener); | 1482 visitor->trace(m_listener); |
| 1480 visitor->trace(m_asyncCallStackTracker); | 1483 visitor->trace(m_asyncCallStackTracker); |
| 1481 InspectorBaseAgent::trace(visitor); | 1484 InspectorBaseAgent::trace(visitor); |
| 1482 } | 1485 } |
| 1483 | 1486 |
| 1484 } // namespace blink | 1487 } // namespace blink |
| 1485 | 1488 |
| OLD | NEW |