| 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 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 *errorString = "Inspected frame has gone"; | 349 *errorString = "Inspected frame has gone"; |
| 350 return; | 350 return; |
| 351 } | 351 } |
| 352 EventTarget* target = injectedScript.eventTargetForObjectId(objectId); | 352 EventTarget* target = injectedScript.eventTargetForObjectId(objectId); |
| 353 if (!target) { | 353 if (!target) { |
| 354 *errorString = "No event target with passed objectId"; | 354 *errorString = "No event target with passed objectId"; |
| 355 return; | 355 return; |
| 356 } | 356 } |
| 357 | 357 |
| 358 listenersArray = TypeBuilder::Array<TypeBuilder::DOMDebugger::EventListener>
::create(); | 358 listenersArray = TypeBuilder::Array<TypeBuilder::DOMDebugger::EventListener>
::create(); |
| 359 Vector<EventListenerInfo> eventInformation; | 359 WillBeHeapVector<EventListenerInfo> eventInformation; |
| 360 EventListenerInfo::getEventListeners(target, eventInformation, false); | 360 EventListenerInfo::getEventListeners(target, eventInformation, false); |
| 361 if (eventInformation.isEmpty()) | 361 if (eventInformation.isEmpty()) |
| 362 return; | 362 return; |
| 363 | 363 |
| 364 String objectGroup = injectedScript.objectIdToObjectGroupName(objectId); | 364 String objectGroup = injectedScript.objectIdToObjectGroupName(objectId); |
| 365 RegisteredEventListenerIterator iterator(eventInformation); | 365 RegisteredEventListenerIterator iterator(eventInformation); |
| 366 while (const RegisteredEventListener* listener = iterator.nextRegisteredEven
tListener()) { | 366 while (const RegisteredEventListener* listener = iterator.nextRegisteredEven
tListener()) { |
| 367 const EventListenerInfo& info = iterator.currentEventListenerInfo(); | 367 const EventListenerInfo& info = iterator.currentEventListenerInfo(); |
| 368 RefPtr<TypeBuilder::DOMDebugger::EventListener> listenerObject = buildOb
jectForEventListener(*listener, info.eventType, info.eventTarget, objectGroup); | 368 RefPtr<TypeBuilder::DOMDebugger::EventListener> listenerObject = buildOb
jectForEventListener(*listener, info.eventType, info.eventTarget, objectGroup); |
| 369 if (listenerObject) | 369 if (listenerObject) |
| 370 listenersArray->addItem(listenerObject); | 370 listenersArray->addItem(listenerObject); |
| 371 } | 371 } |
| 372 } | 372 } |
| 373 | 373 |
| 374 PassRefPtr<TypeBuilder::DOMDebugger::EventListener> InspectorDOMDebuggerAgent::b
uildObjectForEventListener(const RegisteredEventListener& registeredEventListene
r, const AtomicString& eventType, EventTarget* target, const String& objectGroup
Id) | 374 PassRefPtr<TypeBuilder::DOMDebugger::EventListener> InspectorDOMDebuggerAgent::b
uildObjectForEventListener(const RegisteredEventListener& registeredEventListene
r, const AtomicString& eventType, EventTarget* target, const String& objectGroup
Id) |
| 375 { | 375 { |
| 376 RefPtr<EventListener> eventListener = registeredEventListener.listener; | 376 EventListener* eventListener = registeredEventListener.listener.get(); |
| 377 RefPtrWillBeRawPtr<EventListener> protect(eventListener); |
| 377 String scriptId; | 378 String scriptId; |
| 378 int lineNumber; | 379 int lineNumber; |
| 379 int columnNumber; | 380 int columnNumber; |
| 380 ExecutionContext* context = target->executionContext(); | 381 ExecutionContext* context = target->executionContext(); |
| 381 if (!context) | 382 if (!context) |
| 382 return nullptr; | 383 return nullptr; |
| 383 if (!eventListenerHandlerLocation(context, eventListener.get(), scriptId, li
neNumber, columnNumber)) | 384 if (!eventListenerHandlerLocation(context, eventListener, scriptId, lineNumb
er, columnNumber)) |
| 384 return nullptr; | 385 return nullptr; |
| 385 | 386 |
| 386 RefPtr<TypeBuilder::Debugger::Location> location = TypeBuilder::Debugger::Lo
cation::create() | 387 RefPtr<TypeBuilder::Debugger::Location> location = TypeBuilder::Debugger::Lo
cation::create() |
| 387 .setScriptId(scriptId) | 388 .setScriptId(scriptId) |
| 388 .setLineNumber(lineNumber); | 389 .setLineNumber(lineNumber); |
| 389 location->setColumnNumber(columnNumber); | 390 location->setColumnNumber(columnNumber); |
| 390 RefPtr<TypeBuilder::DOMDebugger::EventListener> value = TypeBuilder::DOMDebu
gger::EventListener::create() | 391 RefPtr<TypeBuilder::DOMDebugger::EventListener> value = TypeBuilder::DOMDebu
gger::EventListener::create() |
| 391 .setType(eventType) | 392 .setType(eventType) |
| 392 .setUseCapture(registeredEventListener.useCapture) | 393 .setUseCapture(registeredEventListener.useCapture) |
| 393 .setLocation(location); | 394 .setLocation(location); |
| 394 if (!objectGroupId.isEmpty()) | 395 if (!objectGroupId.isEmpty()) |
| 395 value->setHandler(eventHandlerObject(context, eventListener.get(), m_inj
ectedScriptManager, &objectGroupId)); | 396 value->setHandler(eventHandlerObject(context, eventListener, m_injectedS
criptManager, &objectGroupId)); |
| 396 return value.release(); | 397 return value.release(); |
| 397 } | 398 } |
| 398 | 399 |
| 399 void InspectorDOMDebuggerAgent::willInsertDOMNode(Node* parent) | 400 void InspectorDOMDebuggerAgent::willInsertDOMNode(Node* parent) |
| 400 { | 401 { |
| 401 if (hasBreakpoint(parent, SubtreeModified)) { | 402 if (hasBreakpoint(parent, SubtreeModified)) { |
| 402 RefPtr<JSONObject> eventData = JSONObject::create(); | 403 RefPtr<JSONObject> eventData = JSONObject::create(); |
| 403 descriptionForDOMEvent(parent, SubtreeModified, true, eventData.get()); | 404 descriptionForDOMEvent(parent, SubtreeModified, true, eventData.get()); |
| 404 m_debuggerAgent->breakProgram(InspectorFrontend::Debugger::Reason::DOM,
eventData.release()); | 405 m_debuggerAgent->breakProgram(InspectorFrontend::Debugger::Reason::DOM,
eventData.release()); |
| 405 } | 406 } |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 666 eventData->setString("url", url); | 667 eventData->setString("url", url); |
| 667 m_debuggerAgent->breakProgram(InspectorFrontend::Debugger::Reason::XHR, even
tData.release()); | 668 m_debuggerAgent->breakProgram(InspectorFrontend::Debugger::Reason::XHR, even
tData.release()); |
| 668 } | 669 } |
| 669 | 670 |
| 670 void InspectorDOMDebuggerAgent::clear() | 671 void InspectorDOMDebuggerAgent::clear() |
| 671 { | 672 { |
| 672 m_domBreakpoints.clear(); | 673 m_domBreakpoints.clear(); |
| 673 } | 674 } |
| 674 | 675 |
| 675 } // namespace blink | 676 } // namespace blink |
| OLD | NEW |