| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 static const char setTimerEventName[] = "setTimer"; | 62 static const char setTimerEventName[] = "setTimer"; |
| 63 static const char clearTimerEventName[] = "clearTimer"; | 63 static const char clearTimerEventName[] = "clearTimer"; |
| 64 static const char timerFiredEventName[] = "timerFired"; | 64 static const char timerFiredEventName[] = "timerFired"; |
| 65 static const char customElementCallbackName[] = "customElementCallback"; | 65 static const char customElementCallbackName[] = "customElementCallback"; |
| 66 static const char webglErrorFiredEventName[] = "webglErrorFired"; | 66 static const char webglErrorFiredEventName[] = "webglErrorFired"; |
| 67 static const char webglWarningFiredEventName[] = "webglWarningFired"; | 67 static const char webglWarningFiredEventName[] = "webglWarningFired"; |
| 68 static const char webglErrorNameProperty[] = "webglErrorName"; | 68 static const char webglErrorNameProperty[] = "webglErrorName"; |
| 69 | 69 |
| 70 namespace DOMDebuggerAgentState { | 70 namespace DOMDebuggerAgentState { |
| 71 static const char eventListenerBreakpoints[] = "eventListenerBreakpoints"; | 71 static const char eventListenerBreakpoints[] = "eventListenerBreakpoints"; |
| 72 static const char eventTargetAny[] = "*"; | |
| 73 static const char pauseOnAllXHRs[] = "pauseOnAllXHRs"; | 72 static const char pauseOnAllXHRs[] = "pauseOnAllXHRs"; |
| 74 static const char xhrBreakpoints[] = "xhrBreakpoints"; | 73 static const char xhrBreakpoints[] = "xhrBreakpoints"; |
| 75 } | 74 } |
| 76 | 75 |
| 77 PassOwnPtr<InspectorDOMDebuggerAgent> InspectorDOMDebuggerAgent::create(Inspecto
rDOMAgent* domAgent, InspectorDebuggerAgent* debuggerAgent) | 76 PassOwnPtr<InspectorDOMDebuggerAgent> InspectorDOMDebuggerAgent::create(Inspecto
rDOMAgent* domAgent, InspectorDebuggerAgent* debuggerAgent) |
| 78 { | 77 { |
| 79 return adoptPtr(new InspectorDOMDebuggerAgent(domAgent, debuggerAgent)); | 78 return adoptPtr(new InspectorDOMDebuggerAgent(domAgent, debuggerAgent)); |
| 80 } | 79 } |
| 81 | 80 |
| 82 InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent(InspectorDOMAgent* domAgent
, InspectorDebuggerAgent* debuggerAgent) | 81 InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent(InspectorDOMAgent* domAgent
, InspectorDebuggerAgent* debuggerAgent) |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 { | 146 { |
| 148 disable(); | 147 disable(); |
| 149 } | 148 } |
| 150 | 149 |
| 151 void InspectorDOMDebuggerAgent::discardAgent() | 150 void InspectorDOMDebuggerAgent::discardAgent() |
| 152 { | 151 { |
| 153 m_debuggerAgent->setListener(0); | 152 m_debuggerAgent->setListener(0); |
| 154 m_debuggerAgent = 0; | 153 m_debuggerAgent = 0; |
| 155 } | 154 } |
| 156 | 155 |
| 157 void InspectorDOMDebuggerAgent::setEventListenerBreakpoint(ErrorString* error, c
onst String& eventName, const String* targetName) | 156 void InspectorDOMDebuggerAgent::setEventListenerBreakpoint(ErrorString* error, c
onst String& eventName) |
| 158 { | 157 { |
| 159 setBreakpoint(error, String(listenerEventCategoryType) + eventName, targetNa
me); | 158 setBreakpoint(error, String(listenerEventCategoryType) + eventName); |
| 160 } | 159 } |
| 161 | 160 |
| 162 void InspectorDOMDebuggerAgent::setInstrumentationBreakpoint(ErrorString* error,
const String& eventName) | 161 void InspectorDOMDebuggerAgent::setInstrumentationBreakpoint(ErrorString* error,
const String& eventName) |
| 163 { | 162 { |
| 164 setBreakpoint(error, String(instrumentationEventCategoryType) + eventName, 0
); | 163 setBreakpoint(error, String(instrumentationEventCategoryType) + eventName); |
| 165 } | 164 } |
| 166 | 165 |
| 167 static PassRefPtr<JSONObject> ensurePropertyObject(JSONObject* object, const Str
ing& propertyName) | 166 void InspectorDOMDebuggerAgent::setBreakpoint(ErrorString* error, const String&
eventName) |
| 168 { | |
| 169 JSONObject::iterator it = object->find(propertyName); | |
| 170 if (it != object->end()) | |
| 171 return it->value->asObject(); | |
| 172 | |
| 173 RefPtr<JSONObject> result = JSONObject::create(); | |
| 174 object->setObject(propertyName, result); | |
| 175 return result.release(); | |
| 176 } | |
| 177 | |
| 178 void InspectorDOMDebuggerAgent::setBreakpoint(ErrorString* error, const String&
eventName, const String* targetName) | |
| 179 { | 167 { |
| 180 if (eventName.isEmpty()) { | 168 if (eventName.isEmpty()) { |
| 181 *error = "Event name is empty"; | 169 *error = "Event name is empty"; |
| 182 return; | 170 return; |
| 183 } | 171 } |
| 184 | 172 |
| 185 RefPtr<JSONObject> eventListenerBreakpoints = m_state->getObject(DOMDebugger
AgentState::eventListenerBreakpoints); | 173 RefPtr<JSONObject> eventListenerBreakpoints = m_state->getObject(DOMDebugger
AgentState::eventListenerBreakpoints); |
| 186 RefPtr<JSONObject> breakpointsByTarget = ensurePropertyObject(eventListenerB
reakpoints.get(), eventName); | 174 eventListenerBreakpoints->setBoolean(eventName, true); |
| 187 if (!targetName || targetName->isEmpty()) | 175 m_state->setObject(DOMDebuggerAgentState::eventListenerBreakpoints, eventLis
tenerBreakpoints); |
| 188 breakpointsByTarget->setBoolean(DOMDebuggerAgentState::eventTargetAny, t
rue); | |
| 189 else | |
| 190 breakpointsByTarget->setBoolean(targetName->lower(), true); | |
| 191 m_state->setObject(DOMDebuggerAgentState::eventListenerBreakpoints, eventLis
tenerBreakpoints.release()); | |
| 192 } | 176 } |
| 193 | 177 |
| 194 void InspectorDOMDebuggerAgent::removeEventListenerBreakpoint(ErrorString* error
, const String& eventName, const String* targetName) | 178 void InspectorDOMDebuggerAgent::removeEventListenerBreakpoint(ErrorString* error
, const String& eventName) |
| 195 { | 179 { |
| 196 removeBreakpoint(error, String(listenerEventCategoryType) + eventName, targe
tName); | 180 removeBreakpoint(error, String(listenerEventCategoryType) + eventName); |
| 197 } | 181 } |
| 198 | 182 |
| 199 void InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint(ErrorString* err
or, const String& eventName) | 183 void InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint(ErrorString* err
or, const String& eventName) |
| 200 { | 184 { |
| 201 removeBreakpoint(error, String(instrumentationEventCategoryType) + eventName
, 0); | 185 removeBreakpoint(error, String(instrumentationEventCategoryType) + eventName
); |
| 202 } | 186 } |
| 203 | 187 |
| 204 void InspectorDOMDebuggerAgent::removeBreakpoint(ErrorString* error, const Strin
g& eventName, const String* targetName) | 188 void InspectorDOMDebuggerAgent::removeBreakpoint(ErrorString* error, const Strin
g& eventName) |
| 205 { | 189 { |
| 206 if (eventName.isEmpty()) { | 190 if (eventName.isEmpty()) { |
| 207 *error = "Event name is empty"; | 191 *error = "Event name is empty"; |
| 208 return; | 192 return; |
| 209 } | 193 } |
| 210 | 194 |
| 211 RefPtr<JSONObject> eventListenerBreakpoints = m_state->getObject(DOMDebugger
AgentState::eventListenerBreakpoints); | 195 RefPtr<JSONObject> eventListenerBreakpoints = m_state->getObject(DOMDebugger
AgentState::eventListenerBreakpoints); |
| 212 RefPtr<JSONObject> breakpointsByTarget = ensurePropertyObject(eventListenerB
reakpoints.get(), eventName); | 196 eventListenerBreakpoints->remove(eventName); |
| 213 if (!targetName || targetName->isEmpty()) | 197 m_state->setObject(DOMDebuggerAgentState::eventListenerBreakpoints, eventLis
tenerBreakpoints); |
| 214 breakpointsByTarget->remove(DOMDebuggerAgentState::eventTargetAny); | |
| 215 else | |
| 216 breakpointsByTarget->remove(targetName->lower()); | |
| 217 m_state->setObject(DOMDebuggerAgentState::eventListenerBreakpoints, eventLis
tenerBreakpoints.release()); | |
| 218 } | 198 } |
| 219 | 199 |
| 220 void InspectorDOMDebuggerAgent::didInvalidateStyleAttr(Node* node) | 200 void InspectorDOMDebuggerAgent::didInvalidateStyleAttr(Node* node) |
| 221 { | 201 { |
| 222 if (hasBreakpoint(node, AttributeModified)) { | 202 if (hasBreakpoint(node, AttributeModified)) { |
| 223 RefPtr<JSONObject> eventData = JSONObject::create(); | 203 RefPtr<JSONObject> eventData = JSONObject::create(); |
| 224 descriptionForDOMEvent(node, AttributeModified, false, eventData.get()); | 204 descriptionForDOMEvent(node, AttributeModified, false, eventData.get()); |
| 225 m_debuggerAgent->breakProgram(InspectorFrontend::Debugger::Reason::DOM,
eventData.release()); | 205 m_debuggerAgent->breakProgram(InspectorFrontend::Debugger::Reason::DOM,
eventData.release()); |
| 226 } | 206 } |
| 227 } | 207 } |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 void InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded(PassRefPtr<JSONObject
> eventData, bool synchronous) | 390 void InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded(PassRefPtr<JSONObject
> eventData, bool synchronous) |
| 411 { | 391 { |
| 412 if (!eventData) | 392 if (!eventData) |
| 413 return; | 393 return; |
| 414 if (synchronous) | 394 if (synchronous) |
| 415 m_debuggerAgent->breakProgram(InspectorFrontend::Debugger::Reason::Event
Listener, eventData); | 395 m_debuggerAgent->breakProgram(InspectorFrontend::Debugger::Reason::Event
Listener, eventData); |
| 416 else | 396 else |
| 417 m_debuggerAgent->schedulePauseOnNextStatement(InspectorFrontend::Debugge
r::Reason::EventListener, eventData); | 397 m_debuggerAgent->schedulePauseOnNextStatement(InspectorFrontend::Debugge
r::Reason::EventListener, eventData); |
| 418 } | 398 } |
| 419 | 399 |
| 420 PassRefPtr<JSONObject> InspectorDOMDebuggerAgent::preparePauseOnNativeEventData(
const String& eventName, const AtomicString* targetName) | 400 PassRefPtr<JSONObject> InspectorDOMDebuggerAgent::preparePauseOnNativeEventData(
bool isDOMEvent, const String& eventName) |
| 421 { | 401 { |
| 422 String fullEventName = (targetName ? listenerEventCategoryType : instrumenta
tionEventCategoryType) + eventName; | 402 String fullEventName = (isDOMEvent ? listenerEventCategoryType : instrumenta
tionEventCategoryType) + eventName; |
| 423 if (m_pauseInNextEventListener) { | 403 if (m_pauseInNextEventListener) |
| 424 m_pauseInNextEventListener = false; | 404 m_pauseInNextEventListener = false; |
| 425 } else { | 405 else { |
| 426 RefPtr<JSONObject> eventListenerBreakpoints = m_state->getObject(DOMDebu
ggerAgentState::eventListenerBreakpoints); | 406 RefPtr<JSONObject> eventListenerBreakpoints = m_state->getObject(DOMDebu
ggerAgentState::eventListenerBreakpoints); |
| 427 JSONObject::iterator it = eventListenerBreakpoints->find(fullEventName); | 407 if (eventListenerBreakpoints->find(fullEventName) == eventListenerBreakp
oints->end()) |
| 428 if (it == eventListenerBreakpoints->end()) | |
| 429 return nullptr; | |
| 430 bool match = false; | |
| 431 RefPtr<JSONObject> breakpointsByTarget = it->value->asObject(); | |
| 432 breakpointsByTarget->getBoolean(DOMDebuggerAgentState::eventTargetAny, &
match); | |
| 433 if (!match && targetName) | |
| 434 breakpointsByTarget->getBoolean(targetName->lower(), &match); | |
| 435 if (!match) | |
| 436 return nullptr; | 408 return nullptr; |
| 437 } | 409 } |
| 438 | 410 |
| 439 RefPtr<JSONObject> eventData = JSONObject::create(); | 411 RefPtr<JSONObject> eventData = JSONObject::create(); |
| 440 eventData->setString("eventName", fullEventName); | 412 eventData->setString("eventName", fullEventName); |
| 441 if (targetName) | |
| 442 eventData->setString("targetName", *targetName); | |
| 443 return eventData.release(); | 413 return eventData.release(); |
| 444 } | 414 } |
| 445 | 415 |
| 446 void InspectorDOMDebuggerAgent::didInstallTimer(ExecutionContext*, int, int, boo
l) | 416 void InspectorDOMDebuggerAgent::didInstallTimer(ExecutionContext*, int, int, boo
l) |
| 447 { | 417 { |
| 448 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(setTimerEventName,
0), true); | 418 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(false, setTimerEven
tName), true); |
| 449 } | 419 } |
| 450 | 420 |
| 451 void InspectorDOMDebuggerAgent::didRemoveTimer(ExecutionContext*, int) | 421 void InspectorDOMDebuggerAgent::didRemoveTimer(ExecutionContext*, int) |
| 452 { | 422 { |
| 453 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(clearTimerEventName
, 0), true); | 423 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(false, clearTimerEv
entName), true); |
| 454 } | 424 } |
| 455 | 425 |
| 456 void InspectorDOMDebuggerAgent::willFireTimer(ExecutionContext*, int) | 426 void InspectorDOMDebuggerAgent::willFireTimer(ExecutionContext*, int) |
| 457 { | 427 { |
| 458 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(timerFiredEventName
, 0), false); | 428 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(false, timerFiredEv
entName), false); |
| 459 } | 429 } |
| 460 | 430 |
| 461 void InspectorDOMDebuggerAgent::didRequestAnimationFrame(Document*, int) | 431 void InspectorDOMDebuggerAgent::didRequestAnimationFrame(Document*, int) |
| 462 { | 432 { |
| 463 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(requestAnimationFra
meEventName, 0), true); | 433 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(false, requestAnima
tionFrameEventName), true); |
| 464 } | 434 } |
| 465 | 435 |
| 466 void InspectorDOMDebuggerAgent::didCancelAnimationFrame(Document*, int) | 436 void InspectorDOMDebuggerAgent::didCancelAnimationFrame(Document*, int) |
| 467 { | 437 { |
| 468 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(cancelAnimationFram
eEventName, 0), true); | 438 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(false, cancelAnimat
ionFrameEventName), true); |
| 469 } | 439 } |
| 470 | 440 |
| 471 void InspectorDOMDebuggerAgent::willFireAnimationFrame(Document*, int) | 441 void InspectorDOMDebuggerAgent::willFireAnimationFrame(Document*, int) |
| 472 { | 442 { |
| 473 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(animationFrameFired
EventName, 0), false); | 443 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(false, animationFra
meFiredEventName), false); |
| 474 } | 444 } |
| 475 | 445 |
| 476 void InspectorDOMDebuggerAgent::willHandleEvent(EventTarget* target, const Atomi
cString& eventType, EventListener*, bool) | 446 void InspectorDOMDebuggerAgent::willHandleEvent(EventTarget*, const AtomicString
& eventType, EventListener*, bool) |
| 477 { | 447 { |
| 478 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(eventType, &target-
>interfaceName()), false); | 448 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(true, eventType), f
alse); |
| 479 } | 449 } |
| 480 | 450 |
| 481 void InspectorDOMDebuggerAgent::willExecuteCustomElementCallback(Element*) | 451 void InspectorDOMDebuggerAgent::willExecuteCustomElementCallback(Element*) |
| 482 { | 452 { |
| 483 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(customElementCallba
ckName, 0), false); | 453 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(false, customElemen
tCallbackName), false); |
| 484 } | 454 } |
| 485 | 455 |
| 486 void InspectorDOMDebuggerAgent::didFireWebGLError(const String& errorName) | 456 void InspectorDOMDebuggerAgent::didFireWebGLError(const String& errorName) |
| 487 { | 457 { |
| 488 RefPtr<JSONObject> eventData = preparePauseOnNativeEventData(webglErrorFired
EventName, 0); | 458 RefPtr<JSONObject> eventData = preparePauseOnNativeEventData(false, webglErr
orFiredEventName); |
| 489 if (!eventData) | 459 if (!eventData) |
| 490 return; | 460 return; |
| 491 if (!errorName.isEmpty()) | 461 if (!errorName.isEmpty()) |
| 492 eventData->setString(webglErrorNameProperty, errorName); | 462 eventData->setString(webglErrorNameProperty, errorName); |
| 493 pauseOnNativeEventIfNeeded(eventData.release(), m_debuggerAgent->canBreakPro
gram()); | 463 pauseOnNativeEventIfNeeded(eventData.release(), m_debuggerAgent->canBreakPro
gram()); |
| 494 } | 464 } |
| 495 | 465 |
| 496 void InspectorDOMDebuggerAgent::didFireWebGLWarning() | 466 void InspectorDOMDebuggerAgent::didFireWebGLWarning() |
| 497 { | 467 { |
| 498 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(webglWarningFiredEv
entName, 0), m_debuggerAgent->canBreakProgram()); | 468 pauseOnNativeEventIfNeeded(preparePauseOnNativeEventData(false, webglWarning
FiredEventName), m_debuggerAgent->canBreakProgram()); |
| 499 } | 469 } |
| 500 | 470 |
| 501 void InspectorDOMDebuggerAgent::didFireWebGLErrorOrWarning(const String& message
) | 471 void InspectorDOMDebuggerAgent::didFireWebGLErrorOrWarning(const String& message
) |
| 502 { | 472 { |
| 503 if (message.findIgnoringCase("error") != WTF::kNotFound) | 473 if (message.findIgnoringCase("error") != WTF::kNotFound) |
| 504 didFireWebGLError(String()); | 474 didFireWebGLError(String()); |
| 505 else | 475 else |
| 506 didFireWebGLWarning(); | 476 didFireWebGLWarning(); |
| 507 } | 477 } |
| 508 | 478 |
| 509 void InspectorDOMDebuggerAgent::setXHRBreakpoint(ErrorString*, const String& url
) | 479 void InspectorDOMDebuggerAgent::setXHRBreakpoint(ErrorString*, const String& url
) |
| 510 { | 480 { |
| 511 if (url.isEmpty()) { | 481 if (url.isEmpty()) { |
| 512 m_state->setBoolean(DOMDebuggerAgentState::pauseOnAllXHRs, true); | 482 m_state->setBoolean(DOMDebuggerAgentState::pauseOnAllXHRs, true); |
| 513 return; | 483 return; |
| 514 } | 484 } |
| 515 | 485 |
| 516 RefPtr<JSONObject> xhrBreakpoints = m_state->getObject(DOMDebuggerAgentState
::xhrBreakpoints); | 486 RefPtr<JSONObject> xhrBreakpoints = m_state->getObject(DOMDebuggerAgentState
::xhrBreakpoints); |
| 517 xhrBreakpoints->setBoolean(url, true); | 487 xhrBreakpoints->setBoolean(url, true); |
| 518 m_state->setObject(DOMDebuggerAgentState::xhrBreakpoints, xhrBreakpoints.rel
ease()); | 488 m_state->setObject(DOMDebuggerAgentState::xhrBreakpoints, xhrBreakpoints); |
| 519 } | 489 } |
| 520 | 490 |
| 521 void InspectorDOMDebuggerAgent::removeXHRBreakpoint(ErrorString*, const String&
url) | 491 void InspectorDOMDebuggerAgent::removeXHRBreakpoint(ErrorString*, const String&
url) |
| 522 { | 492 { |
| 523 if (url.isEmpty()) { | 493 if (url.isEmpty()) { |
| 524 m_state->setBoolean(DOMDebuggerAgentState::pauseOnAllXHRs, false); | 494 m_state->setBoolean(DOMDebuggerAgentState::pauseOnAllXHRs, false); |
| 525 return; | 495 return; |
| 526 } | 496 } |
| 527 | 497 |
| 528 RefPtr<JSONObject> xhrBreakpoints = m_state->getObject(DOMDebuggerAgentState
::xhrBreakpoints); | 498 RefPtr<JSONObject> xhrBreakpoints = m_state->getObject(DOMDebuggerAgentState
::xhrBreakpoints); |
| 529 xhrBreakpoints->remove(url); | 499 xhrBreakpoints->remove(url); |
| 530 m_state->setObject(DOMDebuggerAgentState::xhrBreakpoints, xhrBreakpoints.rel
ease()); | 500 m_state->setObject(DOMDebuggerAgentState::xhrBreakpoints, xhrBreakpoints); |
| 531 } | 501 } |
| 532 | 502 |
| 533 void InspectorDOMDebuggerAgent::willSendXMLHttpRequest(const String& url) | 503 void InspectorDOMDebuggerAgent::willSendXMLHttpRequest(const String& url) |
| 534 { | 504 { |
| 535 String breakpointURL; | 505 String breakpointURL; |
| 536 if (m_state->getBoolean(DOMDebuggerAgentState::pauseOnAllXHRs)) | 506 if (m_state->getBoolean(DOMDebuggerAgentState::pauseOnAllXHRs)) |
| 537 breakpointURL = ""; | 507 breakpointURL = ""; |
| 538 else { | 508 else { |
| 539 RefPtr<JSONObject> xhrBreakpoints = m_state->getObject(DOMDebuggerAgentS
tate::xhrBreakpoints); | 509 RefPtr<JSONObject> xhrBreakpoints = m_state->getObject(DOMDebuggerAgentS
tate::xhrBreakpoints); |
| 540 for (JSONObject::iterator it = xhrBreakpoints->begin(); it != xhrBreakpo
ints->end(); ++it) { | 510 for (JSONObject::iterator it = xhrBreakpoints->begin(); it != xhrBreakpo
ints->end(); ++it) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 555 } | 525 } |
| 556 | 526 |
| 557 void InspectorDOMDebuggerAgent::clear() | 527 void InspectorDOMDebuggerAgent::clear() |
| 558 { | 528 { |
| 559 m_domBreakpoints.clear(); | 529 m_domBreakpoints.clear(); |
| 560 m_pauseInNextEventListener = false; | 530 m_pauseInNextEventListener = false; |
| 561 } | 531 } |
| 562 | 532 |
| 563 } // namespace WebCore | 533 } // namespace WebCore |
| 564 | 534 |
| OLD | NEW |