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

Side by Side Diff: Source/core/inspector/InspectorDebuggerAgent.cpp

Issue 304563002: DevTools: Make frameworks work with "custom" breakpoints (DOM, XHR, Events). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/inspector/InspectorDebuggerAgent.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 /* 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 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 { 97 {
98 return scriptId + ':' + String::number(lineNumber) + ':' + String::number(co lumnNumber) + breakpointIdSuffix(source); 98 return scriptId + ':' + String::number(lineNumber) + ':' + String::number(co lumnNumber) + breakpointIdSuffix(source);
99 } 99 }
100 100
101 InspectorDebuggerAgent::InspectorDebuggerAgent(InjectedScriptManager* injectedSc riptManager) 101 InspectorDebuggerAgent::InspectorDebuggerAgent(InjectedScriptManager* injectedSc riptManager)
102 : InspectorBaseAgent<InspectorDebuggerAgent>("Debugger") 102 : InspectorBaseAgent<InspectorDebuggerAgent>("Debugger")
103 , m_injectedScriptManager(injectedScriptManager) 103 , m_injectedScriptManager(injectedScriptManager)
104 , m_frontend(0) 104 , m_frontend(0)
105 , m_pausedScriptState(nullptr) 105 , m_pausedScriptState(nullptr)
106 , m_javaScriptPauseScheduled(false) 106 , m_javaScriptPauseScheduled(false)
107 , m_debuggerStepScheduled(false)
107 , m_listener(0) 108 , m_listener(0)
108 , m_skipStepInCount(numberOfStepsBeforeStepOut) 109 , m_skipStepInCount(numberOfStepsBeforeStepOut)
109 , m_skipAllPauses(false) 110 , m_skipAllPauses(false)
110 { 111 {
111 } 112 }
112 113
113 InspectorDebuggerAgent::~InspectorDebuggerAgent() 114 InspectorDebuggerAgent::~InspectorDebuggerAgent()
114 { 115 {
115 ASSERT(!m_instrumentingAgents->inspectorDebuggerAgent()); 116 ASSERT(!m_instrumentingAgents->inspectorDebuggerAgent());
116 } 117 }
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 { 465 {
465 String scriptIdString = String::number(frame->sourceID()); 466 String scriptIdString = String::number(frame->sourceID());
466 ScriptsMap::iterator it = m_scripts.find(scriptIdString); 467 ScriptsMap::iterator it = m_scripts.find(scriptIdString);
467 if (it == m_scripts.end()) 468 if (it == m_scripts.end())
468 return String(); 469 return String();
469 return it->value.url; 470 return it->value.url;
470 } 471 }
471 472
472 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipExceptio nPause() 473 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipExceptio nPause()
473 { 474 {
474 if (m_skipAllPauses) 475 // FIXME: Fast return: if (!m_cachedSkipStackRegExp && !has_any_anti_breakpo int) return ScriptDebugListener::NoSkip;
475 return ScriptDebugListener::Continue;
476 476
477 RefPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoSco pes(); 477 RefPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoSco pes();
478 if (!topFrame) 478 if (!topFrame)
479 return ScriptDebugListener::NoSkip; 479 return ScriptDebugListener::NoSkip;
480 480
481 String topFrameScriptUrl = scriptURL(topFrame.get()); 481 String topFrameScriptUrl = scriptURL(topFrame.get());
482 if (m_cachedSkipStackRegExp && !topFrameScriptUrl.isEmpty() && m_cachedSkipS tackRegExp->match(topFrameScriptUrl) != -1) 482 if (m_cachedSkipStackRegExp && !topFrameScriptUrl.isEmpty() && m_cachedSkipS tackRegExp->match(topFrameScriptUrl) != -1)
483 return ScriptDebugListener::Continue; 483 return ScriptDebugListener::Continue;
484 484
485 // Match against breakpoints. 485 // Match against breakpoints.
(...skipping 29 matching lines...) Expand all
515 breakpointObject->getString(DebuggerAgentState::url, &url); 515 breakpointObject->getString(DebuggerAgentState::url, &url);
516 if (!matches(topFrameScriptUrl, url, isRegex)) 516 if (!matches(topFrameScriptUrl, url, isRegex))
517 continue; 517 continue;
518 518
519 return ScriptDebugListener::Continue; 519 return ScriptDebugListener::Continue;
520 } 520 }
521 521
522 return ScriptDebugListener::NoSkip; 522 return ScriptDebugListener::NoSkip;
523 } 523 }
524 524
525 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipBreakpoi ntPause()
526 {
527 if (m_skipAllPauses)
528 return ScriptDebugListener::Continue;
529 return ScriptDebugListener::NoSkip;
530 }
531
532 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipStepPaus e() 525 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::shouldSkipStepPaus e()
533 { 526 {
534 if (m_skipAllPauses)
535 return ScriptDebugListener::Continue;
536 if (!m_cachedSkipStackRegExp) 527 if (!m_cachedSkipStackRegExp)
537 return ScriptDebugListener::NoSkip; 528 return ScriptDebugListener::NoSkip;
538 529
539 RefPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoSco pes(); 530 RefPtr<JavaScriptCallFrame> topFrame = scriptDebugServer().topCallFrameNoSco pes();
540 String scriptUrl = scriptURL(topFrame.get()); 531 String scriptUrl = scriptURL(topFrame.get());
541 if (!scriptUrl.isEmpty() && m_cachedSkipStackRegExp->match(scriptUrl) != -1) { 532 if (!scriptUrl.isEmpty() && m_cachedSkipStackRegExp->match(scriptUrl) != -1) {
542 if (m_skipStepInCount > 0) { 533 if (m_skipStepInCount > 0) {
543 --m_skipStepInCount; 534 --m_skipStepInCount;
544 return ScriptDebugListener::StepInto; 535 return ScriptDebugListener::StepInto;
545 } 536 }
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
635 } 626 }
636 injectedScript.getFunctionDetails(errorString, functionId, &details); 627 injectedScript.getFunctionDetails(errorString, functionId, &details);
637 } 628 }
638 629
639 void InspectorDebuggerAgent::schedulePauseOnNextStatement(InspectorFrontend::Deb ugger::Reason::Enum breakReason, PassRefPtr<JSONObject> data) 630 void InspectorDebuggerAgent::schedulePauseOnNextStatement(InspectorFrontend::Deb ugger::Reason::Enum breakReason, PassRefPtr<JSONObject> data)
640 { 631 {
641 if (m_javaScriptPauseScheduled) 632 if (m_javaScriptPauseScheduled)
642 return; 633 return;
643 m_breakReason = breakReason; 634 m_breakReason = breakReason;
644 m_breakAuxData = data; 635 m_breakAuxData = data;
636 m_debuggerStepScheduled = true;
645 scriptDebugServer().setPauseOnNextStatement(true); 637 scriptDebugServer().setPauseOnNextStatement(true);
646 } 638 }
647 639
648 void InspectorDebuggerAgent::cancelPauseOnNextStatement() 640 void InspectorDebuggerAgent::cancelPauseOnNextStatement()
649 { 641 {
650 if (m_javaScriptPauseScheduled) 642 if (m_javaScriptPauseScheduled)
651 return; 643 return;
652 clearBreakDetails(); 644 clearBreakDetails();
645 m_debuggerStepScheduled = false;
653 scriptDebugServer().setPauseOnNextStatement(false); 646 scriptDebugServer().setPauseOnNextStatement(false);
654 } 647 }
655 648
656 void InspectorDebuggerAgent::didInstallTimer(ExecutionContext* context, int time rId, int timeout, bool singleShot) 649 void InspectorDebuggerAgent::didInstallTimer(ExecutionContext* context, int time rId, int timeout, bool singleShot)
657 { 650 {
658 if (m_asyncCallStackTracker.isEnabled()) 651 if (m_asyncCallStackTracker.isEnabled())
659 m_asyncCallStackTracker.didInstallTimer(context, timerId, singleShot, sc riptDebugServer().currentCallFramesForAsyncStack()); 652 m_asyncCallStackTracker.didInstallTimer(context, timerId, singleShot, sc riptDebugServer().currentCallFramesForAsyncStack());
660 } 653 }
661 654
662 void InspectorDebuggerAgent::didRemoveTimer(ExecutionContext* context, int timer Id) 655 void InspectorDebuggerAgent::didRemoveTimer(ExecutionContext* context, int timer Id)
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 { 738 {
746 if (m_asyncCallStackTracker.isEnabled()) 739 if (m_asyncCallStackTracker.isEnabled())
747 m_asyncCallStackTracker.didFireAsyncCall(); 740 m_asyncCallStackTracker.didFireAsyncCall();
748 } 741 }
749 742
750 void InspectorDebuggerAgent::pause(ErrorString*) 743 void InspectorDebuggerAgent::pause(ErrorString*)
751 { 744 {
752 if (m_javaScriptPauseScheduled) 745 if (m_javaScriptPauseScheduled)
753 return; 746 return;
754 clearBreakDetails(); 747 clearBreakDetails();
748 m_javaScriptPauseScheduled = true;
749 m_debuggerStepScheduled = false;
755 scriptDebugServer().setPauseOnNextStatement(true); 750 scriptDebugServer().setPauseOnNextStatement(true);
756 m_javaScriptPauseScheduled = true;
757 } 751 }
758 752
759 void InspectorDebuggerAgent::resume(ErrorString* errorString) 753 void InspectorDebuggerAgent::resume(ErrorString* errorString)
760 { 754 {
761 if (!assertPaused(errorString)) 755 if (!assertPaused(errorString))
762 return; 756 return;
757 m_debuggerStepScheduled = false;
763 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac eObjectGroup); 758 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac eObjectGroup);
764 scriptDebugServer().continueProgram(); 759 scriptDebugServer().continueProgram();
765 } 760 }
766 761
767 ScriptValue InspectorDebuggerAgent::resolveCallFrame(ErrorString* errorString, c onst String* callFrameId) 762 ScriptValue InspectorDebuggerAgent::resolveCallFrame(ErrorString* errorString, c onst String* callFrameId)
768 { 763 {
769 if (!callFrameId) 764 if (!callFrameId)
770 return ScriptValue(); 765 return ScriptValue();
771 if (!isPaused() || m_currentCallStack.isEmpty()) { 766 if (!isPaused() || m_currentCallStack.isEmpty()) {
772 *errorString = "Attempt to access callframe when debugger is not on paus e"; 767 *errorString = "Attempt to access callframe when debugger is not on paus e";
773 return ScriptValue(); 768 return ScriptValue();
774 } 769 }
775 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForOb jectId(*callFrameId); 770 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForOb jectId(*callFrameId);
776 if (injectedScript.isEmpty()) { 771 if (injectedScript.isEmpty()) {
777 *errorString = "Inspected frame has gone"; 772 *errorString = "Inspected frame has gone";
778 return ScriptValue(); 773 return ScriptValue();
779 } 774 }
780 return injectedScript.findCallFrameById(errorString, m_currentCallStack, *ca llFrameId); 775 return injectedScript.findCallFrameById(errorString, m_currentCallStack, *ca llFrameId);
781 } 776 }
782 777
783 void InspectorDebuggerAgent::stepOver(ErrorString* errorString, const String* ca llFrameId) 778 void InspectorDebuggerAgent::stepOver(ErrorString* errorString, const String* ca llFrameId)
784 { 779 {
785 if (!assertPaused(errorString)) 780 if (!assertPaused(errorString))
786 return; 781 return;
787 ScriptValue frame = resolveCallFrame(errorString, callFrameId); 782 ScriptValue frame = resolveCallFrame(errorString, callFrameId);
788 if (!errorString->isEmpty()) 783 if (!errorString->isEmpty())
789 return; 784 return;
785 m_debuggerStepScheduled = true;
790 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac eObjectGroup); 786 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac eObjectGroup);
791 scriptDebugServer().stepOverStatement(frame); 787 scriptDebugServer().stepOverStatement(frame);
792 } 788 }
793 789
794 void InspectorDebuggerAgent::stepInto(ErrorString* errorString) 790 void InspectorDebuggerAgent::stepInto(ErrorString* errorString)
795 { 791 {
796 if (!assertPaused(errorString)) 792 if (!assertPaused(errorString))
797 return; 793 return;
794 m_debuggerStepScheduled = true;
798 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac eObjectGroup); 795 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac eObjectGroup);
799 scriptDebugServer().stepIntoStatement(); 796 scriptDebugServer().stepIntoStatement();
800 if (m_listener) 797 if (m_listener)
801 m_listener->stepInto(); 798 m_listener->stepInto();
802 } 799 }
803 800
804 void InspectorDebuggerAgent::stepOut(ErrorString* errorString, const String* cal lFrameId) 801 void InspectorDebuggerAgent::stepOut(ErrorString* errorString, const String* cal lFrameId)
805 { 802 {
806 if (!assertPaused(errorString)) 803 if (!assertPaused(errorString))
807 return; 804 return;
808 ScriptValue frame = resolveCallFrame(errorString, callFrameId); 805 ScriptValue frame = resolveCallFrame(errorString, callFrameId);
809 if (!errorString->isEmpty()) 806 if (!errorString->isEmpty())
810 return; 807 return;
808 m_debuggerStepScheduled = true;
811 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac eObjectGroup); 809 m_injectedScriptManager->releaseObjectGroup(InspectorDebuggerAgent::backtrac eObjectGroup);
812 scriptDebugServer().stepOutOfFunction(frame); 810 scriptDebugServer().stepOutOfFunction(frame);
813 } 811 }
814 812
815 void InspectorDebuggerAgent::setPauseOnExceptions(ErrorString* errorString, cons t String& stringPauseState) 813 void InspectorDebuggerAgent::setPauseOnExceptions(ErrorString* errorString, cons t String& stringPauseState)
816 { 814 {
817 ScriptDebugServer::PauseOnExceptionsState pauseState; 815 ScriptDebugServer::PauseOnExceptionsState pauseState;
818 if (stringPauseState == "none") 816 if (stringPauseState == "none")
819 pauseState = ScriptDebugServer::DontPauseOnExceptions; 817 pauseState = ScriptDebugServer::DontPauseOnExceptions;
820 else if (stringPauseState == "all") 818 else if (stringPauseState == "all")
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
1097 } 1095 }
1098 } 1096 }
1099 1097
1100 void InspectorDebuggerAgent::failedToParseSource(const String& url, const String & data, int firstLine, int errorLine, const String& errorMessage) 1098 void InspectorDebuggerAgent::failedToParseSource(const String& url, const String & data, int firstLine, int errorLine, const String& errorMessage)
1101 { 1099 {
1102 m_frontend->scriptFailedToParse(url, data, firstLine, errorLine, errorMessag e); 1100 m_frontend->scriptFailedToParse(url, data, firstLine, errorLine, errorMessag e);
1103 } 1101 }
1104 1102
1105 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::didPause(ScriptSta te* scriptState, const ScriptValue& callFrames, const ScriptValue& exception, co nst Vector<String>& hitBreakpoints) 1103 ScriptDebugListener::SkipPauseRequest InspectorDebuggerAgent::didPause(ScriptSta te* scriptState, const ScriptValue& callFrames, const ScriptValue& exception, co nst Vector<String>& hitBreakpoints)
1106 { 1104 {
1107 ScriptDebugListener::SkipPauseRequest result = ScriptDebugListener::NoSkip; 1105 ScriptDebugListener::SkipPauseRequest result;
1108 if (!exception.isEmpty()) 1106 if (m_javaScriptPauseScheduled)
1107 result = ScriptDebugListener::NoSkip; // Don't skip explicit pause reque sts from front-end.
1108 else if (m_skipAllPauses)
1109 result = ScriptDebugListener::Continue;
1110 else if (!hitBreakpoints.isEmpty())
1111 result = ScriptDebugListener::NoSkip; // Don't skip explicit breakpoints even if set in frameworks.
1112 else if (!exception.isEmpty())
1109 result = shouldSkipExceptionPause(); 1113 result = shouldSkipExceptionPause();
1110 else if (!hitBreakpoints.isEmpty()) 1114 else if (m_debuggerStepScheduled)
1111 result = shouldSkipBreakpointPause(); 1115 result = shouldSkipStepPause();
1112 else 1116 else
1113 result = shouldSkipStepPause(); 1117 result = ScriptDebugListener::NoSkip;
1114 1118
1115 if (result != ScriptDebugListener::NoSkip) 1119 if (result != ScriptDebugListener::NoSkip)
1116 return result; 1120 return result;
1117 1121
1118 ASSERT(scriptState && !m_pausedScriptState); 1122 ASSERT(scriptState && !m_pausedScriptState);
1119 m_pausedScriptState = scriptState; 1123 m_pausedScriptState = scriptState;
1120 m_currentCallStack = callFrames; 1124 m_currentCallStack = callFrames;
1121 1125
1122 m_skipStepInCount = numberOfStepsBeforeStepOut; 1126 m_skipStepInCount = numberOfStepsBeforeStepOut;
1123 1127
(...skipping 15 matching lines...) Expand all
1139 hitBreakpointIds->addItem(localId); 1143 hitBreakpointIds->addItem(localId);
1140 1144
1141 BreakpointSource source = breakpointIterator->value.second; 1145 BreakpointSource source = breakpointIterator->value.second;
1142 if (m_breakReason == InspectorFrontend::Debugger::Reason::Other && s ource == DebugCommandBreakpointSource) 1146 if (m_breakReason == InspectorFrontend::Debugger::Reason::Other && s ource == DebugCommandBreakpointSource)
1143 m_breakReason = InspectorFrontend::Debugger::Reason::DebugComman d; 1147 m_breakReason = InspectorFrontend::Debugger::Reason::DebugComman d;
1144 } 1148 }
1145 } 1149 }
1146 1150
1147 m_frontend->paused(currentCallFrames(), m_breakReason, m_breakAuxData, hitBr eakpointIds, currentAsyncStackTrace()); 1151 m_frontend->paused(currentCallFrames(), m_breakReason, m_breakAuxData, hitBr eakpointIds, currentAsyncStackTrace());
1148 m_javaScriptPauseScheduled = false; 1152 m_javaScriptPauseScheduled = false;
1153 m_debuggerStepScheduled = false;
1149 1154
1150 if (!m_continueToLocationBreakpointId.isEmpty()) { 1155 if (!m_continueToLocationBreakpointId.isEmpty()) {
1151 scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointId); 1156 scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointId);
1152 m_continueToLocationBreakpointId = ""; 1157 m_continueToLocationBreakpointId = "";
1153 } 1158 }
1154 if (m_listener) 1159 if (m_listener)
1155 m_listener->didPause(); 1160 m_listener->didPause();
1156 return result; 1161 return result;
1157 } 1162 }
1158 1163
1159 void InspectorDebuggerAgent::didContinue() 1164 void InspectorDebuggerAgent::didContinue()
1160 { 1165 {
1161 m_pausedScriptState = nullptr; 1166 m_pausedScriptState = nullptr;
1162 m_currentCallStack = ScriptValue(); 1167 m_currentCallStack = ScriptValue();
1163 clearBreakDetails(); 1168 clearBreakDetails();
1164 m_frontend->resumed(); 1169 m_frontend->resumed();
1165 } 1170 }
1166 1171
1167 bool InspectorDebuggerAgent::canBreakProgram() 1172 bool InspectorDebuggerAgent::canBreakProgram()
1168 { 1173 {
1169 return scriptDebugServer().canBreakProgram(); 1174 return scriptDebugServer().canBreakProgram();
1170 } 1175 }
1171 1176
1172 void InspectorDebuggerAgent::breakProgram(InspectorFrontend::Debugger::Reason::E num breakReason, PassRefPtr<JSONObject> data) 1177 void InspectorDebuggerAgent::breakProgram(InspectorFrontend::Debugger::Reason::E num breakReason, PassRefPtr<JSONObject> data)
1173 { 1178 {
1174 if (m_skipAllPauses) 1179 if (m_skipAllPauses)
1175 return; 1180 return;
1176 m_breakReason = breakReason; 1181 m_breakReason = breakReason;
1177 m_breakAuxData = data; 1182 m_breakAuxData = data;
1183 m_debuggerStepScheduled = false;
1178 scriptDebugServer().breakProgram(); 1184 scriptDebugServer().breakProgram();
1179 } 1185 }
1180 1186
1181 void InspectorDebuggerAgent::clear() 1187 void InspectorDebuggerAgent::clear()
1182 { 1188 {
1183 m_pausedScriptState = nullptr; 1189 m_pausedScriptState = nullptr;
1184 m_currentCallStack = ScriptValue(); 1190 m_currentCallStack = ScriptValue();
1185 m_scripts.clear(); 1191 m_scripts.clear();
1186 m_breakpointIdToDebugServerBreakpointIds.clear(); 1192 m_breakpointIdToDebugServerBreakpointIds.clear();
1187 m_asyncCallStackTracker.clear(); 1193 m_asyncCallStackTracker.clear();
1188 m_continueToLocationBreakpointId = String(); 1194 m_continueToLocationBreakpointId = String();
1189 clearBreakDetails(); 1195 clearBreakDetails();
1190 m_javaScriptPauseScheduled = false; 1196 m_javaScriptPauseScheduled = false;
1197 m_debuggerStepScheduled = false;
1191 ErrorString error; 1198 ErrorString error;
1192 setOverlayMessage(&error, 0); 1199 setOverlayMessage(&error, 0);
1193 } 1200 }
1194 1201
1195 bool InspectorDebuggerAgent::assertPaused(ErrorString* errorString) 1202 bool InspectorDebuggerAgent::assertPaused(ErrorString* errorString)
1196 { 1203 {
1197 if (!m_pausedScriptState) { 1204 if (!m_pausedScriptState) {
1198 *errorString = "Can only perform operation while paused."; 1205 *errorString = "Can only perform operation while paused.";
1199 return false; 1206 return false;
1200 } 1207 }
(...skipping 22 matching lines...) Expand all
1223 { 1230 {
1224 m_scripts.clear(); 1231 m_scripts.clear();
1225 m_breakpointIdToDebugServerBreakpointIds.clear(); 1232 m_breakpointIdToDebugServerBreakpointIds.clear();
1226 m_asyncCallStackTracker.clear(); 1233 m_asyncCallStackTracker.clear();
1227 if (m_frontend) 1234 if (m_frontend)
1228 m_frontend->globalObjectCleared(); 1235 m_frontend->globalObjectCleared();
1229 } 1236 }
1230 1237
1231 } // namespace WebCore 1238 } // namespace WebCore
1232 1239
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorDebuggerAgent.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698