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

Side by Side Diff: third_party/WebKit/Source/platform/v8_inspector/V8DebuggerAgentImpl.cpp

Issue 1738073002: DevTools: introduce protocol::Value, baseline for hierarchical data in remote debugging protocol. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "platform/v8_inspector/V8DebuggerAgentImpl.h" 5 #include "platform/v8_inspector/V8DebuggerAgentImpl.h"
6 6
7 #include "platform/JSONValues.h" 7 #include "platform/inspector_protocol/Values.h"
8 #include "platform/v8_inspector/AsyncCallChain.h" 8 #include "platform/v8_inspector/AsyncCallChain.h"
9 #include "platform/v8_inspector/IgnoreExceptionsScope.h" 9 #include "platform/v8_inspector/IgnoreExceptionsScope.h"
10 #include "platform/v8_inspector/InjectedScript.h" 10 #include "platform/v8_inspector/InjectedScript.h"
11 #include "platform/v8_inspector/InjectedScriptHost.h" 11 #include "platform/v8_inspector/InjectedScriptHost.h"
12 #include "platform/v8_inspector/InjectedScriptManager.h" 12 #include "platform/v8_inspector/InjectedScriptManager.h"
13 #include "platform/v8_inspector/JavaScriptCallFrame.h" 13 #include "platform/v8_inspector/JavaScriptCallFrame.h"
14 #include "platform/v8_inspector/PromiseTracker.h" 14 #include "platform/v8_inspector/PromiseTracker.h"
15 #include "platform/v8_inspector/RemoteObjectId.h" 15 #include "platform/v8_inspector/RemoteObjectId.h"
16 #include "platform/v8_inspector/V8AsyncCallTracker.h" 16 #include "platform/v8_inspector/V8AsyncCallTracker.h"
17 #include "platform/v8_inspector/V8JavaScriptCallFrame.h" 17 #include "platform/v8_inspector/V8JavaScriptCallFrame.h"
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 enable(); 189 enable();
190 190
191 ASSERT(m_frontend); 191 ASSERT(m_frontend);
192 } 192 }
193 193
194 void V8DebuggerAgentImpl::disable(ErrorString*) 194 void V8DebuggerAgentImpl::disable(ErrorString*)
195 { 195 {
196 if (!enabled()) 196 if (!enabled())
197 return; 197 return;
198 198
199 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, JSONObject::cr eate()); 199 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, protocol::Dict ionaryValue::create());
200 m_state->setNumber(DebuggerAgentState::pauseOnExceptionsState, V8DebuggerImp l::DontPauseOnExceptions); 200 m_state->setNumber(DebuggerAgentState::pauseOnExceptionsState, V8DebuggerImp l::DontPauseOnExceptions);
201 m_state->setNumber(DebuggerAgentState::asyncCallStackDepth, 0); 201 m_state->setNumber(DebuggerAgentState::asyncCallStackDepth, 0);
202 m_state->setBoolean(DebuggerAgentState::promiseTrackerEnabled, false); 202 m_state->setBoolean(DebuggerAgentState::promiseTrackerEnabled, false);
203 m_state->setBoolean(DebuggerAgentState::promiseTrackerCaptureStacks, false); 203 m_state->setBoolean(DebuggerAgentState::promiseTrackerCaptureStacks, false);
204 204
205 debugger().removeAgent(m_contextGroupId); 205 debugger().removeAgent(m_contextGroupId);
206 m_pausedContext.Reset(); 206 m_pausedContext.Reset();
207 m_currentCallStack.Reset(); 207 m_currentCallStack.Reset();
208 m_scripts.clear(); 208 m_scripts.clear();
209 m_blackboxedPositions.clear(); 209 m_blackboxedPositions.clear();
(...skipping 19 matching lines...) Expand all
229 { 229 {
230 if (depth <= 0) { 230 if (depth <= 0) {
231 m_maxAsyncCallStackDepth = 0; 231 m_maxAsyncCallStackDepth = 0;
232 resetAsyncCallTracker(); 232 resetAsyncCallTracker();
233 } else { 233 } else {
234 m_maxAsyncCallStackDepth = depth; 234 m_maxAsyncCallStackDepth = depth;
235 } 235 }
236 m_v8AsyncCallTracker->asyncCallTrackingStateChanged(m_maxAsyncCallStackDepth ); 236 m_v8AsyncCallTracker->asyncCallTrackingStateChanged(m_maxAsyncCallStackDepth );
237 } 237 }
238 238
239 void V8DebuggerAgentImpl::setInspectorState(PassRefPtr<JSONObject> state) 239 void V8DebuggerAgentImpl::setInspectorState(PassRefPtr<protocol::DictionaryValue > state)
240 { 240 {
241 m_state = state; 241 m_state = state;
242 } 242 }
243 243
244 void V8DebuggerAgentImpl::clearFrontend() 244 void V8DebuggerAgentImpl::clearFrontend()
245 { 245 {
246 ErrorString error; 246 ErrorString error;
247 disable(&error); 247 disable(&error);
248 ASSERT(m_frontend); 248 ASSERT(m_frontend);
249 m_frontend = nullptr; 249 m_frontend = nullptr;
250 } 250 }
251 251
252 void V8DebuggerAgentImpl::restore() 252 void V8DebuggerAgentImpl::restore()
253 { 253 {
254 ASSERT(!m_enabled); 254 ASSERT(!m_enabled);
255 m_frontend->globalObjectCleared(); 255 m_frontend->globalObjectCleared();
256 enable(); 256 enable();
257 String error; 257 String error;
258 258
259 long pauseState = V8DebuggerImpl::DontPauseOnExceptions; 259 int pauseState = V8DebuggerImpl::DontPauseOnExceptions;
260 m_state->getNumber(DebuggerAgentState::pauseOnExceptionsState, &pauseState); 260 m_state->getNumber(DebuggerAgentState::pauseOnExceptionsState, &pauseState);
261 setPauseOnExceptionsImpl(&error, pauseState); 261 setPauseOnExceptionsImpl(&error, pauseState);
262 262
263 m_skipAllPauses = m_state->booleanProperty(DebuggerAgentState::skipAllPauses , false); 263 m_skipAllPauses = m_state->booleanProperty(DebuggerAgentState::skipAllPauses , false);
264 264
265 int asyncCallStackDepth = 0; 265 int asyncCallStackDepth = 0;
266 m_state->getNumber(DebuggerAgentState::asyncCallStackDepth, &asyncCallStackD epth); 266 m_state->getNumber(DebuggerAgentState::asyncCallStackDepth, &asyncCallStackD epth);
267 internalSetAsyncCallStackDepth(asyncCallStackDepth); 267 internalSetAsyncCallStackDepth(asyncCallStackDepth);
268 268
269 m_promiseTracker->setEnabled(m_state->booleanProperty(DebuggerAgentState::pr omiseTrackerEnabled, false), m_state->booleanProperty(DebuggerAgentState::promis eTrackerCaptureStacks, false)); 269 m_promiseTracker->setEnabled(m_state->booleanProperty(DebuggerAgentState::pr omiseTrackerEnabled, false), m_state->booleanProperty(DebuggerAgentState::promis eTrackerCaptureStacks, false));
(...skipping 10 matching lines...) Expand all
280 { 280 {
281 m_skipAllPauses = skipped; 281 m_skipAllPauses = skipped;
282 m_state->setBoolean(DebuggerAgentState::skipAllPauses, m_skipAllPauses); 282 m_state->setBoolean(DebuggerAgentState::skipAllPauses, m_skipAllPauses);
283 } 283 }
284 284
285 bool V8DebuggerAgentImpl::isPaused() 285 bool V8DebuggerAgentImpl::isPaused()
286 { 286 {
287 return debugger().isPaused(); 287 return debugger().isPaused();
288 } 288 }
289 289
290 static PassRefPtr<JSONObject> buildObjectForBreakpointCookie(const String& url, int lineNumber, int columnNumber, const String& condition, bool isRegex) 290 static PassRefPtr<protocol::DictionaryValue> buildObjectForBreakpointCookie(cons t String& url, int lineNumber, int columnNumber, const String& condition, bool i sRegex)
291 { 291 {
292 RefPtr<JSONObject> breakpointObject = JSONObject::create(); 292 RefPtr<protocol::DictionaryValue> breakpointObject = protocol::DictionaryVal ue::create();
293 breakpointObject->setString(DebuggerAgentState::url, url); 293 breakpointObject->setString(DebuggerAgentState::url, url);
294 breakpointObject->setNumber(DebuggerAgentState::lineNumber, lineNumber); 294 breakpointObject->setNumber(DebuggerAgentState::lineNumber, lineNumber);
295 breakpointObject->setNumber(DebuggerAgentState::columnNumber, columnNumber); 295 breakpointObject->setNumber(DebuggerAgentState::columnNumber, columnNumber);
296 breakpointObject->setString(DebuggerAgentState::condition, condition); 296 breakpointObject->setString(DebuggerAgentState::condition, condition);
297 breakpointObject->setBoolean(DebuggerAgentState::isRegex, isRegex); 297 breakpointObject->setBoolean(DebuggerAgentState::isRegex, isRegex);
298 return breakpointObject.release(); 298 return breakpointObject.release();
299 } 299 }
300 300
301 static bool matches(V8DebuggerImpl* debugger, const String& url, const String& p attern, bool isRegex) 301 static bool matches(V8DebuggerImpl* debugger, const String& url, const String& p attern, bool isRegex)
302 { 302 {
(...skipping 25 matching lines...) Expand all
328 columnNumber = optionalColumnNumber.fromJust(); 328 columnNumber = optionalColumnNumber.fromJust();
329 if (columnNumber < 0) { 329 if (columnNumber < 0) {
330 *errorString = "Incorrect column number"; 330 *errorString = "Incorrect column number";
331 return; 331 return;
332 } 332 }
333 } 333 }
334 String condition = optionalCondition.fromMaybe(""); 334 String condition = optionalCondition.fromMaybe("");
335 bool isRegex = optionalURLRegex.isJust(); 335 bool isRegex = optionalURLRegex.isJust();
336 336
337 String breakpointId = (isRegex ? "/" + url + "/" : url) + ':' + String::numb er(lineNumber) + ':' + String::number(columnNumber); 337 String breakpointId = (isRegex ? "/" + url + "/" : url) + ':' + String::numb er(lineNumber) + ':' + String::number(columnNumber);
338 RefPtr<JSONObject> breakpointsCookie = m_state->getObject(DebuggerAgentState ::javaScriptBreakpoints); 338 RefPtr<protocol::DictionaryValue> breakpointsCookie = m_state->getObject(Deb uggerAgentState::javaScriptBreakpoints);
339 if (!breakpointsCookie) { 339 if (!breakpointsCookie) {
340 breakpointsCookie = JSONObject::create(); 340 breakpointsCookie = protocol::DictionaryValue::create();
341 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, breakpoint sCookie); 341 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, breakpoint sCookie);
342 } 342 }
343 if (breakpointsCookie->find(breakpointId) != breakpointsCookie->end()) { 343 if (breakpointsCookie->find(breakpointId) != breakpointsCookie->end()) {
344 *errorString = "Breakpoint at specified location already exists."; 344 *errorString = "Breakpoint at specified location already exists.";
345 return; 345 return;
346 } 346 }
347 347
348 breakpointsCookie->setObject(breakpointId, buildObjectForBreakpointCookie(ur l, lineNumber, columnNumber, condition, isRegex)); 348 breakpointsCookie->setObject(breakpointId, buildObjectForBreakpointCookie(ur l, lineNumber, columnNumber, condition, isRegex));
349 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, breakpointsCoo kie); 349 m_state->setObject(DebuggerAgentState::javaScriptBreakpoints, breakpointsCoo kie);
350 350
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 if (*actualLocation) 393 if (*actualLocation)
394 *outBreakpointId = breakpointId; 394 *outBreakpointId = breakpointId;
395 else 395 else
396 *errorString = "Could not resolve breakpoint"; 396 *errorString = "Could not resolve breakpoint";
397 } 397 }
398 398
399 void V8DebuggerAgentImpl::removeBreakpoint(ErrorString* errorString, const Strin g& breakpointId) 399 void V8DebuggerAgentImpl::removeBreakpoint(ErrorString* errorString, const Strin g& breakpointId)
400 { 400 {
401 if (!checkEnabled(errorString)) 401 if (!checkEnabled(errorString))
402 return; 402 return;
403 RefPtr<JSONObject> breakpointsCookie = m_state->getObject(DebuggerAgentState ::javaScriptBreakpoints); 403 RefPtr<protocol::DictionaryValue> breakpointsCookie = m_state->getObject(Deb uggerAgentState::javaScriptBreakpoints);
404 if (breakpointsCookie) 404 if (breakpointsCookie)
405 breakpointsCookie->remove(breakpointId); 405 breakpointsCookie->remove(breakpointId);
406 removeBreakpoint(breakpointId); 406 removeBreakpoint(breakpointId);
407 } 407 }
408 408
409 void V8DebuggerAgentImpl::removeBreakpoint(const String& breakpointId) 409 void V8DebuggerAgentImpl::removeBreakpoint(const String& breakpointId)
410 { 410 {
411 ASSERT(enabled()); 411 ASSERT(enabled());
412 BreakpointIdToDebuggerBreakpointIdsMap::iterator debuggerBreakpointIdsIterat or = m_breakpointIdToDebuggerBreakpointIds.find(breakpointId); 412 BreakpointIdToDebuggerBreakpointIdsMap::iterator debuggerBreakpointIdsIterat or = m_breakpointIdToDebuggerBreakpointIds.find(breakpointId);
413 if (debuggerBreakpointIdsIterator == m_breakpointIdToDebuggerBreakpointIds.e nd()) 413 if (debuggerBreakpointIdsIterator == m_breakpointIdToDebuggerBreakpointIds.e nd())
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 return; 720 return;
721 } 721 }
722 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript (remoteId.get()); 722 InjectedScript* injectedScript = m_injectedScriptManager->findInjectedScript (remoteId.get());
723 if (!injectedScript) { 723 if (!injectedScript) {
724 *errorString = "Inspected frame has gone"; 724 *errorString = "Inspected frame has gone";
725 return; 725 return;
726 } 726 }
727 injectedScript->getCollectionEntries(errorString, objectId, entries); 727 injectedScript->getCollectionEntries(errorString, objectId, entries);
728 } 728 }
729 729
730 void V8DebuggerAgentImpl::schedulePauseOnNextStatement(const String& breakReason , PassRefPtr<JSONObject> data) 730 void V8DebuggerAgentImpl::schedulePauseOnNextStatement(const String& breakReason , PassRefPtr<protocol::DictionaryValue> data)
731 { 731 {
732 ASSERT(enabled()); 732 ASSERT(enabled());
733 if (m_scheduledDebuggerStep == StepInto || m_javaScriptPauseScheduled || isP aused()) 733 if (m_scheduledDebuggerStep == StepInto || m_javaScriptPauseScheduled || isP aused())
734 return; 734 return;
735 m_breakReason = breakReason; 735 m_breakReason = breakReason;
736 m_breakAuxData = data; 736 m_breakAuxData = data;
737 m_pausingOnNativeEvent = true; 737 m_pausingOnNativeEvent = true;
738 m_skipNextDebuggerStepOut = false; 738 m_skipNextDebuggerStepOut = false;
739 debugger().setPauseOnNextStatement(true); 739 debugger().setPauseOnNextStatement(true);
740 } 740 }
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after
1438 if (parsedScript.success) 1438 if (parsedScript.success)
1439 m_frontend->scriptParsed(parsedScript.scriptId, scriptURL, script.startL ine(), script.startColumn(), script.endLine(), script.endColumn(), executionCont extId, isContentScriptParam, isInternalScriptParam, isLiveEditParam, sourceMapUR LParam, hasSourceURLParam, deprecatedCommentWasUsedParam); 1439 m_frontend->scriptParsed(parsedScript.scriptId, scriptURL, script.startL ine(), script.startColumn(), script.endLine(), script.endColumn(), executionCont extId, isContentScriptParam, isInternalScriptParam, isLiveEditParam, sourceMapUR LParam, hasSourceURLParam, deprecatedCommentWasUsedParam);
1440 else 1440 else
1441 m_frontend->scriptFailedToParse(parsedScript.scriptId, scriptURL, script .startLine(), script.startColumn(), script.endLine(), script.endColumn(), execut ionContextId, isContentScriptParam, isInternalScriptParam, sourceMapURLParam, ha sSourceURLParam, deprecatedCommentWasUsedParam); 1441 m_frontend->scriptFailedToParse(parsedScript.scriptId, scriptURL, script .startLine(), script.startColumn(), script.endLine(), script.endColumn(), execut ionContextId, isContentScriptParam, isInternalScriptParam, sourceMapURLParam, ha sSourceURLParam, deprecatedCommentWasUsedParam);
1442 1442
1443 m_scripts.set(parsedScript.scriptId, script); 1443 m_scripts.set(parsedScript.scriptId, script);
1444 1444
1445 if (scriptURL.isEmpty() || !parsedScript.success) 1445 if (scriptURL.isEmpty() || !parsedScript.success)
1446 return; 1446 return;
1447 1447
1448 RefPtr<JSONObject> breakpointsCookie = m_state->getObject(DebuggerAgentState ::javaScriptBreakpoints); 1448 RefPtr<protocol::DictionaryValue> breakpointsCookie = m_state->getObject(Deb uggerAgentState::javaScriptBreakpoints);
1449 if (!breakpointsCookie) 1449 if (!breakpointsCookie)
1450 return; 1450 return;
1451 1451
1452 for (auto& cookie : *breakpointsCookie) { 1452 for (auto& cookie : *breakpointsCookie) {
1453 RefPtr<JSONObject> breakpointObject = JSONObject::cast(cookie.value); 1453 RefPtr<protocol::DictionaryValue> breakpointObject = protocol::Dictionar yValue::cast(cookie.value);
1454 bool isRegex; 1454 bool isRegex;
1455 breakpointObject->getBoolean(DebuggerAgentState::isRegex, &isRegex); 1455 breakpointObject->getBoolean(DebuggerAgentState::isRegex, &isRegex);
1456 String url; 1456 String url;
1457 breakpointObject->getString(DebuggerAgentState::url, &url); 1457 breakpointObject->getString(DebuggerAgentState::url, &url);
1458 if (!matches(m_debugger, scriptURL, url, isRegex)) 1458 if (!matches(m_debugger, scriptURL, url, isRegex))
1459 continue; 1459 continue;
1460 ScriptBreakpoint breakpoint; 1460 ScriptBreakpoint breakpoint;
1461 breakpointObject->getNumber(DebuggerAgentState::lineNumber, &breakpoint. lineNumber); 1461 breakpointObject->getNumber(DebuggerAgentState::lineNumber, &breakpoint. lineNumber);
1462 breakpointObject->getNumber(DebuggerAgentState::columnNumber, &breakpoin t.columnNumber); 1462 breakpointObject->getNumber(DebuggerAgentState::columnNumber, &breakpoin t.columnNumber);
1463 breakpointObject->getString(DebuggerAgentState::condition, &breakpoint.c ondition); 1463 breakpointObject->getString(DebuggerAgentState::condition, &breakpoint.c ondition);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1500 if (!exception.IsEmpty()) { 1500 if (!exception.IsEmpty()) {
1501 InjectedScript* injectedScript = m_injectedScriptManager->injectedScript For(context); 1501 InjectedScript* injectedScript = m_injectedScriptManager->injectedScript For(context);
1502 if (injectedScript) { 1502 if (injectedScript) {
1503 m_breakReason = isPromiseRejection ? protocol::Debugger::Paused::Rea sonEnum::PromiseRejection : protocol::Debugger::Paused::ReasonEnum::Exception; 1503 m_breakReason = isPromiseRejection ? protocol::Debugger::Paused::Rea sonEnum::PromiseRejection : protocol::Debugger::Paused::ReasonEnum::Exception;
1504 auto obj = injectedScript->wrapObject(exception, V8DebuggerAgentImpl ::backtraceObjectGroup); 1504 auto obj = injectedScript->wrapObject(exception, V8DebuggerAgentImpl ::backtraceObjectGroup);
1505 m_breakAuxData = obj ? obj->serialize() : nullptr; 1505 m_breakAuxData = obj ? obj->serialize() : nullptr;
1506 // m_breakAuxData might be null after this. 1506 // m_breakAuxData might be null after this.
1507 } 1507 }
1508 } else if (m_pausingOnAsyncOperation) { 1508 } else if (m_pausingOnAsyncOperation) {
1509 m_breakReason = protocol::Debugger::Paused::ReasonEnum::AsyncOperation; 1509 m_breakReason = protocol::Debugger::Paused::ReasonEnum::AsyncOperation;
1510 m_breakAuxData = JSONObject::create(); 1510 m_breakAuxData = protocol::DictionaryValue::create();
1511 m_breakAuxData->setNumber("operationId", m_currentAsyncOperationId); 1511 m_breakAuxData->setNumber("operationId", m_currentAsyncOperationId);
1512 } 1512 }
1513 1513
1514 OwnPtr<Array<String>> hitBreakpointIds = Array<String>::create(); 1514 OwnPtr<Array<String>> hitBreakpointIds = Array<String>::create();
1515 1515
1516 for (const auto& point : hitBreakpoints) { 1516 for (const auto& point : hitBreakpoints) {
1517 DebugServerBreakpointToBreakpointIdAndSourceMap::iterator breakpointIter ator = m_serverBreakpoints.find(point); 1517 DebugServerBreakpointToBreakpointIdAndSourceMap::iterator breakpointIter ator = m_serverBreakpoints.find(point);
1518 if (breakpointIterator != m_serverBreakpoints.end()) { 1518 if (breakpointIterator != m_serverBreakpoints.end()) {
1519 const String& localId = breakpointIterator->value.first; 1519 const String& localId = breakpointIterator->value.first;
1520 hitBreakpointIds->addItem(localId); 1520 hitBreakpointIds->addItem(localId);
(...skipping 29 matching lines...) Expand all
1550 m_currentCallStack.Reset(); 1550 m_currentCallStack.Reset();
1551 clearBreakDetails(); 1551 clearBreakDetails();
1552 m_frontend->resumed(); 1552 m_frontend->resumed();
1553 } 1553 }
1554 1554
1555 bool V8DebuggerAgentImpl::canBreakProgram() 1555 bool V8DebuggerAgentImpl::canBreakProgram()
1556 { 1556 {
1557 return debugger().canBreakProgram(); 1557 return debugger().canBreakProgram();
1558 } 1558 }
1559 1559
1560 void V8DebuggerAgentImpl::breakProgram(const String& breakReason, PassRefPtr<JSO NObject> data) 1560 void V8DebuggerAgentImpl::breakProgram(const String& breakReason, PassRefPtr<pro tocol::DictionaryValue> data)
1561 { 1561 {
1562 ASSERT(enabled()); 1562 ASSERT(enabled());
1563 if (m_skipAllPauses || !m_pausedContext.IsEmpty() || isCallStackEmptyOrBlack boxed()) 1563 if (m_skipAllPauses || !m_pausedContext.IsEmpty() || isCallStackEmptyOrBlack boxed())
1564 return; 1564 return;
1565 m_breakReason = breakReason; 1565 m_breakReason = breakReason;
1566 m_breakAuxData = data; 1566 m_breakAuxData = data;
1567 m_scheduledDebuggerStep = NoStep; 1567 m_scheduledDebuggerStep = NoStep;
1568 m_steppingFromFramework = false; 1568 m_steppingFromFramework = false;
1569 m_pausingOnNativeEvent = false; 1569 m_pausingOnNativeEvent = false;
1570 clearStepIntoAsync(); 1570 clearStepIntoAsync();
1571 debugger().breakProgram(); 1571 debugger().breakProgram();
1572 } 1572 }
1573 1573
1574 void V8DebuggerAgentImpl::breakProgramOnException(const String& breakReason, Pas sRefPtr<JSONObject> data) 1574 void V8DebuggerAgentImpl::breakProgramOnException(const String& breakReason, Pas sRefPtr<protocol::DictionaryValue> data)
1575 { 1575 {
1576 if (m_debugger->pauseOnExceptionsState() == V8DebuggerImpl::DontPauseOnExcep tions) 1576 if (m_debugger->pauseOnExceptionsState() == V8DebuggerImpl::DontPauseOnExcep tions)
1577 return; 1577 return;
1578 breakProgram(breakReason, data); 1578 breakProgram(breakReason, data);
1579 } 1579 }
1580 1580
1581 void V8DebuggerAgentImpl::clearStepIntoAsync() 1581 void V8DebuggerAgentImpl::clearStepIntoAsync()
1582 { 1582 {
1583 m_startingStepIntoAsync = false; 1583 m_startingStepIntoAsync = false;
1584 m_pausingOnAsyncOperation = false; 1584 m_pausingOnAsyncOperation = false;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1618 m_scripts.clear(); 1618 m_scripts.clear();
1619 m_blackboxedPositions.clear(); 1619 m_blackboxedPositions.clear();
1620 m_breakpointIdToDebuggerBreakpointIds.clear(); 1620 m_breakpointIdToDebuggerBreakpointIds.clear();
1621 resetAsyncCallTracker(); 1621 resetAsyncCallTracker();
1622 m_promiseTracker->clear(); 1622 m_promiseTracker->clear();
1623 if (m_frontend) 1623 if (m_frontend)
1624 m_frontend->globalObjectCleared(); 1624 m_frontend->globalObjectCleared();
1625 } 1625 }
1626 1626
1627 } // namespace blink 1627 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698