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) 2010-2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2010-2011 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
56 namespace WebCore { | 56 namespace WebCore { |
57 | 57 |
58 namespace DebuggerAgentState { | 58 namespace DebuggerAgentState { |
59 static const char debuggerEnabled[] = "debuggerEnabled"; | 59 static const char debuggerEnabled[] = "debuggerEnabled"; |
60 static const char javaScriptBreakpoints[] = "javaScriptBreakopints"; | 60 static const char javaScriptBreakpoints[] = "javaScriptBreakopints"; |
61 static const char pauseOnExceptionsState[] = "pauseOnExceptionsState"; | 61 static const char pauseOnExceptionsState[] = "pauseOnExceptionsState"; |
62 }; | 62 }; |
63 | 63 |
64 const char* InspectorDebuggerAgent::backtraceObjectGroup = "backtrace"; | 64 const char* InspectorDebuggerAgent::backtraceObjectGroup = "backtrace"; |
65 | 65 |
66 static String generateBreakpointId(const String& scriptId, int lineNumber, int c olumnNumber, InspectorDebuggerAgent::BreakpointSource source) | |
67 { | |
68 return scriptId + ':' + String::number(lineNumber) + ':' + String::number(co lumnNumber) + | |
69 (source == InspectorDebuggerAgent::Interactive ? String() : String(":deb ug")); | |
70 } | |
71 | |
66 InspectorDebuggerAgent::InspectorDebuggerAgent(InstrumentingAgents* instrumentin gAgents, InspectorCompositeState* inspectorState, InjectedScriptManager* injecte dScriptManager) | 72 InspectorDebuggerAgent::InspectorDebuggerAgent(InstrumentingAgents* instrumentin gAgents, InspectorCompositeState* inspectorState, InjectedScriptManager* injecte dScriptManager) |
67 : InspectorBaseAgent<InspectorDebuggerAgent>("Debugger", instrumentingAgents , inspectorState) | 73 : InspectorBaseAgent<InspectorDebuggerAgent>("Debugger", instrumentingAgents , inspectorState) |
68 , m_injectedScriptManager(injectedScriptManager) | 74 , m_injectedScriptManager(injectedScriptManager) |
69 , m_frontend(0) | 75 , m_frontend(0) |
70 , m_pausedScriptState(0) | 76 , m_pausedScriptState(0) |
71 , m_javaScriptPauseScheduled(false) | 77 , m_javaScriptPauseScheduled(false) |
72 , m_listener(0) | 78 , m_listener(0) |
73 { | 79 { |
74 // FIXME: make breakReason optional so that there was no need to init it wit h "other". | 80 // FIXME: make breakReason optional so that there was no need to init it wit h "other". |
75 clearBreakDetails(); | 81 clearBreakDetails(); |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
236 return; | 242 return; |
237 } | 243 } |
238 | 244 |
239 breakpointsCookie->setObject(breakpointId, buildObjectForBreakpointCookie(ur l, lineNumber, columnNumber, condition, isRegex)); | 245 breakpointsCookie->setObject(breakpointId, buildObjectForBreakpointCookie(ur l, lineNumber, columnNumber, condition, isRegex)); |
240 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, breakpointsCoo kie); | 246 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, breakpointsCoo kie); |
241 | 247 |
242 ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition); | 248 ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition); |
243 for (ScriptsMap::iterator it = m_scripts.begin(); it != m_scripts.end(); ++i t) { | 249 for (ScriptsMap::iterator it = m_scripts.begin(); it != m_scripts.end(); ++i t) { |
244 if (!matches(it->value.url, url, isRegex)) | 250 if (!matches(it->value.url, url, isRegex)) |
245 continue; | 251 continue; |
246 RefPtr<TypeBuilder::Debugger::Location> location = resolveBreakpoint(bre akpointId, it->key, breakpoint); | 252 RefPtr<TypeBuilder::Debugger::Location> location = resolveBreakpoint(bre akpointId, it->key, breakpoint, Interactive); |
247 if (location) | 253 if (location) |
248 locations->addItem(location); | 254 locations->addItem(location); |
249 } | 255 } |
250 *outBreakpointId = breakpointId; | 256 *outBreakpointId = breakpointId; |
251 } | 257 } |
252 | 258 |
253 static bool parseLocation(ErrorString* errorString, RefPtr<InspectorObject> loca tion, String* scriptId, int* lineNumber, int* columnNumber) | 259 static bool parseLocation(ErrorString* errorString, RefPtr<InspectorObject> loca tion, String* scriptId, int* lineNumber, int* columnNumber) |
254 { | 260 { |
255 if (!location->getString("scriptId", scriptId) || !location->getNumber("line Number", lineNumber)) { | 261 if (!location->getString("scriptId", scriptId) || !location->getNumber("line Number", lineNumber)) { |
256 // FIXME: replace with input validation. | 262 // FIXME: replace with input validation. |
257 *errorString = "scriptId and lineNumber are required."; | 263 *errorString = "scriptId and lineNumber are required."; |
258 return false; | 264 return false; |
259 } | 265 } |
260 *columnNumber = 0; | 266 *columnNumber = 0; |
261 location->getNumber("columnNumber", columnNumber); | 267 location->getNumber("columnNumber", columnNumber); |
262 return true; | 268 return true; |
263 } | 269 } |
264 | 270 |
265 void InspectorDebuggerAgent::setBreakpoint(ErrorString* errorString, const RefPt r<InspectorObject>& location, const String* const optionalCondition, TypeBuilder ::Debugger::BreakpointId* outBreakpointId, RefPtr<TypeBuilder::Debugger::Locatio n>& actualLocation) | 271 void InspectorDebuggerAgent::setBreakpoint(ErrorString* errorString, const RefPt r<InspectorObject>& location, const String* const optionalCondition, TypeBuilder ::Debugger::BreakpointId* outBreakpointId, RefPtr<TypeBuilder::Debugger::Locatio n>& actualLocation) |
266 { | 272 { |
267 String scriptId; | 273 String scriptId; |
268 int lineNumber; | 274 int lineNumber; |
269 int columnNumber; | 275 int columnNumber; |
270 | 276 |
271 if (!parseLocation(errorString, location, &scriptId, &lineNumber, &columnNum ber)) | 277 if (!parseLocation(errorString, location, &scriptId, &lineNumber, &columnNum ber)) |
272 return; | 278 return; |
273 | 279 |
274 String condition = optionalCondition ? *optionalCondition : emptyString(); | 280 String condition = optionalCondition ? *optionalCondition : emptyString(); |
275 | 281 |
276 String breakpointId = scriptId + ':' + String::number(lineNumber) + ':' + St ring::number(columnNumber); | 282 String breakpointId = generateBreakpointId(scriptId, lineNumber, columnNumbe r, Interactive); |
277 if (m_breakpointIdToDebugServerBreakpointIds.find(breakpointId) != m_breakpo intIdToDebugServerBreakpointIds.end()) { | 283 if (m_breakpointIdToDebugServerBreakpointIds.find(breakpointId) != m_breakpo intIdToDebugServerBreakpointIds.end()) { |
278 *errorString = "Breakpoint at specified location already exists."; | 284 *errorString = "Breakpoint at specified location already exists."; |
279 return; | 285 return; |
280 } | 286 } |
281 ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition); | 287 ScriptBreakpoint breakpoint(lineNumber, columnNumber, condition); |
282 actualLocation = resolveBreakpoint(breakpointId, scriptId, breakpoint); | 288 actualLocation = resolveBreakpoint(breakpointId, scriptId, breakpoint, Inter active); |
283 if (actualLocation) | 289 if (actualLocation) |
284 *outBreakpointId = breakpointId; | 290 *outBreakpointId = breakpointId; |
285 else | 291 else |
286 *errorString = "Could not resolve breakpoint"; | 292 *errorString = "Could not resolve breakpoint"; |
287 } | 293 } |
288 | 294 |
289 void InspectorDebuggerAgent::removeBreakpoint(ErrorString*, const String& breakp ointId) | 295 void InspectorDebuggerAgent::removeBreakpoint(ErrorString*, const String& breakp ointId) |
290 { | 296 { |
291 RefPtr<InspectorObject> breakpointsCookie = m_state->getObject(DebuggerAgent State::javaScriptBreakpoints); | 297 RefPtr<InspectorObject> breakpointsCookie = m_state->getObject(DebuggerAgent State::javaScriptBreakpoints); |
292 breakpointsCookie->remove(breakpointId); | 298 breakpointsCookie->remove(breakpointId); |
293 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, breakpointsCoo kie); | 299 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, breakpointsCoo kie); |
294 | 300 |
295 BreakpointIdToDebugServerBreakpointIdsMap::iterator debugServerBreakpointIds Iterator = m_breakpointIdToDebugServerBreakpointIds.find(breakpointId); | 301 BreakpointIdToDebugServerBreakpointIdsMap::iterator debugServerBreakpointIds Iterator = m_breakpointIdToDebugServerBreakpointIds.find(breakpointId); |
296 if (debugServerBreakpointIdsIterator == m_breakpointIdToDebugServerBreakpoin tIds.end()) | 302 if (debugServerBreakpointIdsIterator == m_breakpointIdToDebugServerBreakpoin tIds.end()) |
297 return; | 303 return; |
298 for (size_t i = 0; i < debugServerBreakpointIdsIterator->value.size(); ++i) { | 304 for (size_t i = 0; i < debugServerBreakpointIdsIterator->value.size(); ++i) { |
299 scriptDebugServer().removeBreakpoint(debugServerBreakpointIdsIterator->v alue[i]); | 305 const String& debugServerBreakpointId = debugServerBreakpointIdsIterator ->value[i]; |
300 m_serverBreakpointIdToBreakpointId.remove(debugServerBreakpointIdsIterat or->value[i]); | 306 scriptDebugServer().removeBreakpoint(debugServerBreakpointId); |
307 m_serverBreakpoints.remove(debugServerBreakpointId); | |
301 } | 308 } |
302 m_breakpointIdToDebugServerBreakpointIds.remove(debugServerBreakpointIdsIter ator); | 309 m_breakpointIdToDebugServerBreakpointIds.remove(debugServerBreakpointIdsIter ator); |
303 } | 310 } |
304 | 311 |
305 void InspectorDebuggerAgent::continueToLocation(ErrorString* errorString, const RefPtr<InspectorObject>& location) | 312 void InspectorDebuggerAgent::continueToLocation(ErrorString* errorString, const RefPtr<InspectorObject>& location) |
306 { | 313 { |
307 if (!m_continueToLocationBreakpointId.isEmpty()) { | 314 if (!m_continueToLocationBreakpointId.isEmpty()) { |
308 scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointId); | 315 scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointId); |
309 m_continueToLocationBreakpointId = ""; | 316 m_continueToLocationBreakpointId = ""; |
310 } | 317 } |
311 | 318 |
312 String scriptId; | 319 String scriptId; |
313 int lineNumber; | 320 int lineNumber; |
314 int columnNumber; | 321 int columnNumber; |
315 | 322 |
316 if (!parseLocation(errorString, location, &scriptId, &lineNumber, &columnNum ber)) | 323 if (!parseLocation(errorString, location, &scriptId, &lineNumber, &columnNum ber)) |
317 return; | 324 return; |
318 | 325 |
319 ScriptBreakpoint breakpoint(lineNumber, columnNumber, ""); | 326 ScriptBreakpoint breakpoint(lineNumber, columnNumber, ""); |
320 m_continueToLocationBreakpointId = scriptDebugServer().setBreakpoint(scriptI d, breakpoint, &lineNumber, &columnNumber); | 327 m_continueToLocationBreakpointId = scriptDebugServer().setBreakpoint(scriptI d, breakpoint, &lineNumber, &columnNumber); |
321 resume(errorString); | 328 resume(errorString); |
322 } | 329 } |
323 | 330 |
324 PassRefPtr<TypeBuilder::Debugger::Location> InspectorDebuggerAgent::resolveBreak point(const String& breakpointId, const String& scriptId, const ScriptBreakpoint & breakpoint) | 331 PassRefPtr<TypeBuilder::Debugger::Location> InspectorDebuggerAgent::resolveBreak point(const String& breakpointId, const String& scriptId, const ScriptBreakpoint & breakpoint, BreakpointSource source) |
325 { | 332 { |
326 ScriptsMap::iterator scriptIterator = m_scripts.find(scriptId); | 333 ScriptsMap::iterator scriptIterator = m_scripts.find(scriptId); |
327 if (scriptIterator == m_scripts.end()) | 334 if (scriptIterator == m_scripts.end()) |
328 return 0; | 335 return 0; |
329 Script& script = scriptIterator->value; | 336 Script& script = scriptIterator->value; |
330 if (breakpoint.lineNumber < script.startLine || script.endLine < breakpoint. lineNumber) | 337 if (breakpoint.lineNumber < script.startLine || script.endLine < breakpoint. lineNumber) |
331 return 0; | 338 return 0; |
332 | 339 |
333 int actualLineNumber; | 340 int actualLineNumber; |
334 int actualColumnNumber; | 341 int actualColumnNumber; |
335 String debugServerBreakpointId = scriptDebugServer().setBreakpoint(scriptId, breakpoint, &actualLineNumber, &actualColumnNumber); | 342 String debugServerBreakpointId = scriptDebugServer().setBreakpoint(scriptId, breakpoint, &actualLineNumber, &actualColumnNumber); |
336 if (debugServerBreakpointId.isEmpty()) | 343 if (debugServerBreakpointId.isEmpty()) |
337 return 0; | 344 return 0; |
338 | 345 |
339 m_serverBreakpointIdToBreakpointId.set(debugServerBreakpointId, breakpointId ); | 346 m_serverBreakpoints.set(debugServerBreakpointId, std::make_pair(breakpointId , source)); |
340 | 347 |
341 BreakpointIdToDebugServerBreakpointIdsMap::iterator debugServerBreakpointIds Iterator = m_breakpointIdToDebugServerBreakpointIds.find(breakpointId); | 348 BreakpointIdToDebugServerBreakpointIdsMap::iterator debugServerBreakpointIds Iterator = m_breakpointIdToDebugServerBreakpointIds.find(breakpointId); |
342 if (debugServerBreakpointIdsIterator == m_breakpointIdToDebugServerBreakpoin tIds.end()) | 349 if (debugServerBreakpointIdsIterator == m_breakpointIdToDebugServerBreakpoin tIds.end()) |
343 debugServerBreakpointIdsIterator = m_breakpointIdToDebugServerBreakpoint Ids.set(breakpointId, Vector<String>()).iterator; | 350 debugServerBreakpointIdsIterator = m_breakpointIdToDebugServerBreakpoint Ids.set(breakpointId, Vector<String>()).iterator; |
344 debugServerBreakpointIdsIterator->value.append(debugServerBreakpointId); | 351 debugServerBreakpointIdsIterator->value.append(debugServerBreakpointId); |
345 | 352 |
346 RefPtr<TypeBuilder::Debugger::Location> location = TypeBuilder::Debugger::Lo cation::create() | 353 RefPtr<TypeBuilder::Debugger::Location> location = TypeBuilder::Debugger::Lo cation::create() |
347 .setScriptId(scriptId) | 354 .setScriptId(scriptId) |
348 .setLineNumber(actualLineNumber); | 355 .setLineNumber(actualLineNumber); |
349 location->setColumnNumber(actualColumnNumber); | 356 location->setColumnNumber(actualColumnNumber); |
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
687 bool isRegex; | 694 bool isRegex; |
688 breakpointObject->getBoolean("isRegex", &isRegex); | 695 breakpointObject->getBoolean("isRegex", &isRegex); |
689 String url; | 696 String url; |
690 breakpointObject->getString("url", &url); | 697 breakpointObject->getString("url", &url); |
691 if (!matches(scriptURL, url, isRegex)) | 698 if (!matches(scriptURL, url, isRegex)) |
692 continue; | 699 continue; |
693 ScriptBreakpoint breakpoint; | 700 ScriptBreakpoint breakpoint; |
694 breakpointObject->getNumber("lineNumber", &breakpoint.lineNumber); | 701 breakpointObject->getNumber("lineNumber", &breakpoint.lineNumber); |
695 breakpointObject->getNumber("columnNumber", &breakpoint.columnNumber); | 702 breakpointObject->getNumber("columnNumber", &breakpoint.columnNumber); |
696 breakpointObject->getString("condition", &breakpoint.condition); | 703 breakpointObject->getString("condition", &breakpoint.condition); |
697 RefPtr<TypeBuilder::Debugger::Location> location = resolveBreakpoint(it- >key, scriptId, breakpoint); | 704 RefPtr<TypeBuilder::Debugger::Location> location = resolveBreakpoint(it- >key, scriptId, breakpoint, Interactive); |
698 if (location) | 705 if (location) |
699 m_frontend->breakpointResolved(it->key, location); | 706 m_frontend->breakpointResolved(it->key, location); |
700 } | 707 } |
701 } | 708 } |
702 | 709 |
703 void InspectorDebuggerAgent::failedToParseSource(const String& url, const String & data, int firstLine, int errorLine, const String& errorMessage) | 710 void InspectorDebuggerAgent::failedToParseSource(const String& url, const String & data, int firstLine, int errorLine, const String& errorMessage) |
704 { | 711 { |
705 m_frontend->scriptFailedToParse(url, data, firstLine, errorLine, errorMessag e); | 712 m_frontend->scriptFailedToParse(url, data, firstLine, errorLine, errorMessag e); |
706 } | 713 } |
707 | 714 |
708 void InspectorDebuggerAgent::didPause(ScriptState* scriptState, const ScriptValu e& callFrames, const ScriptValue& exception, const Vector<String>& hitBreakpoint s) | 715 void InspectorDebuggerAgent::didPause(ScriptState* scriptState, const ScriptValu e& callFrames, const ScriptValue& exception, const Vector<String>& hitBreakpoint s) |
709 { | 716 { |
710 ASSERT(scriptState && !m_pausedScriptState); | 717 ASSERT(scriptState && !m_pausedScriptState); |
711 m_pausedScriptState = scriptState; | 718 m_pausedScriptState = scriptState; |
712 m_currentCallStack = callFrames; | 719 m_currentCallStack = callFrames; |
713 | 720 |
714 if (!exception.hasNoValue()) { | 721 if (!exception.hasNoValue()) { |
715 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptF or(scriptState); | 722 InjectedScript injectedScript = m_injectedScriptManager->injectedScriptF or(scriptState); |
716 if (!injectedScript.hasNoValue()) { | 723 if (!injectedScript.hasNoValue()) { |
717 m_breakReason = InspectorFrontend::Debugger::Reason::Exception; | 724 m_breakReason = InspectorFrontend::Debugger::Reason::Exception; |
718 m_breakAuxData = injectedScript.wrapObject(exception, "backtrace")-> openAccessors(); | 725 m_breakAuxData = injectedScript.wrapObject(exception, "backtrace")-> openAccessors(); |
719 // m_breakAuxData might be null after this. | 726 // m_breakAuxData might be null after this. |
720 } | 727 } |
721 } | 728 } |
722 | 729 |
723 RefPtr<Array<String> > hitBreakpointIds = Array<String>::create(); | 730 RefPtr<Array<String> > hitBreakpointIds = Array<String>::create(); |
724 | 731 |
725 for (Vector<String>::const_iterator i = hitBreakpoints.begin(); i != hitBrea kpoints.end(); ++i) { | 732 for (Vector<String>::const_iterator i = hitBreakpoints.begin(); i != hitBrea kpoints.end(); ++i) { |
726 DebugServerBreakpointIdToBreakpointIdMap::iterator breakpointIterator = m_serverBreakpointIdToBreakpointId.find(*i); | 733 DebugServerBreakpointToBreakpointIdAndSourceMap::iterator breakpointIter ator = m_serverBreakpoints.find(*i); |
727 if (breakpointIterator != m_serverBreakpointIdToBreakpointId.end()) | 734 if (breakpointIterator != m_serverBreakpoints.end()) { |
728 hitBreakpointIds->addItem(breakpointIterator->value); | 735 const String& localId = breakpointIterator->value.first; |
736 hitBreakpointIds->addItem(localId); | |
737 | |
738 BreakpointSource source = breakpointIterator->value.second; | |
739 if (m_breakReason == InspectorFrontend::Debugger::Reason::Other && s ource == DebugCommand) | |
740 m_breakReason = InspectorFrontend::Debugger::Reason::Debug; | |
vsevik
2013/06/07 12:42:57
InspectorFrontend::Debugger::Reason::DebugCommand
SeRya
2013/06/07 13:11:34
Done.
| |
741 } | |
729 } | 742 } |
730 | 743 |
731 m_frontend->paused(currentCallFrames(), m_breakReason, m_breakAuxData, hitBr eakpointIds); | 744 m_frontend->paused(currentCallFrames(), m_breakReason, m_breakAuxData, hitBr eakpointIds); |
732 m_javaScriptPauseScheduled = false; | 745 m_javaScriptPauseScheduled = false; |
733 | 746 |
734 if (!m_continueToLocationBreakpointId.isEmpty()) { | 747 if (!m_continueToLocationBreakpointId.isEmpty()) { |
735 scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointId); | 748 scriptDebugServer().removeBreakpoint(m_continueToLocationBreakpointId); |
736 m_continueToLocationBreakpointId = ""; | 749 m_continueToLocationBreakpointId = ""; |
737 } | 750 } |
738 if (m_listener) | 751 if (m_listener) |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
798 } | 811 } |
799 | 812 |
800 void ScriptDebugListener::Script::reportMemoryUsage(MemoryObjectInfo* memoryObje ctInfo) const | 813 void ScriptDebugListener::Script::reportMemoryUsage(MemoryObjectInfo* memoryObje ctInfo) const |
801 { | 814 { |
802 MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::InspectorDe buggerAgent); | 815 MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::InspectorDe buggerAgent); |
803 info.addMember(url, "url"); | 816 info.addMember(url, "url"); |
804 info.addMember(source, "source"); | 817 info.addMember(source, "source"); |
805 info.addMember(sourceMappingURL, "sourceMappingURL"); | 818 info.addMember(sourceMappingURL, "sourceMappingURL"); |
806 } | 819 } |
807 | 820 |
821 void InspectorDebuggerAgent::setBreakpoint(const String& scriptId, int lineNumbe r, int columnNumber, BreakpointSource source) | |
822 { | |
823 String breakpointId = generateBreakpointId(scriptId, lineNumber, columnNumbe r, source); | |
824 ScriptBreakpoint breakpoint(lineNumber, columnNumber, emptyString()); | |
825 resolveBreakpoint(breakpointId, scriptId, breakpoint, source); | |
826 } | |
827 | |
828 void InspectorDebuggerAgent::removeBreakpoint(const String& scriptId, int lineNu mber, int columnNumber, BreakpointSource source) | |
829 { | |
830 String breakpointId = generateBreakpointId(scriptId, lineNumber, columnNumbe r, source); | |
831 ErrorString errorString; | |
832 removeBreakpoint(&errorString, breakpointId); | |
vsevik
2013/06/07 12:42:57
You should not call protocol method internally. Pl
SeRya
2013/06/07 13:11:34
Done.
| |
833 } | |
834 | |
808 void InspectorDebuggerAgent::reset() | 835 void InspectorDebuggerAgent::reset() |
809 { | 836 { |
810 m_scripts.clear(); | 837 m_scripts.clear(); |
811 m_breakpointIdToDebugServerBreakpointIds.clear(); | 838 m_breakpointIdToDebugServerBreakpointIds.clear(); |
812 if (m_frontend) | 839 if (m_frontend) |
813 m_frontend->globalObjectCleared(); | 840 m_frontend->globalObjectCleared(); |
814 } | 841 } |
815 | 842 |
816 } // namespace WebCore | 843 } // namespace WebCore |
817 | 844 |
OLD | NEW |