void XMLHttpRequest::callReadyStateChangeListener() { if (m_doc && m_doc->frame() && m_onReadyStateChangeListener) { RefPtr<Event> evt = new Event(readystatechangeEvent, true, true); evt->setTarget(this); evt->setCurrentTarget(this); m_onReadyStateChangeListener->handleEvent(evt.get(), false); } if (m_doc && m_doc->frame() && m_state == Loaded) { if (m_onLoadListener) { RefPtr<Event> evt = new Event(loadEvent, true, true); evt->setTarget(this); evt->setCurrentTarget(this); m_onLoadListener->handleEvent(evt.get(), false); } ListenerVector listenersCopy = m_eventListeners.get(loadEvent.impl()); for (ListenerVector::const_iterator listenerIter = listenersCopy.begin(); listenerIter != listenersCopy.end(); ++listenerIter) { RefPtr<Event> evt = new Event(loadEvent, true, true); evt->setTarget(this); evt->setCurrentTarget(this); listenerIter->get()->handleEvent(evt.get(), false); } } }
bool MessagePort::dispatchEvent(PassRefPtr<Event> event, ExceptionCode& ec) { if (!event || event->type().isEmpty()) { ec = EventException::UNSPECIFIED_EVENT_TYPE_ERR; return true; } ListenerVector listenersCopy = m_eventListeners.get(event->type()); for (ListenerVector::const_iterator listenerIter = listenersCopy.begin(); listenerIter != listenersCopy.end(); ++listenerIter) { event->setTarget(this); event->setCurrentTarget(this); listenerIter->get()->handleEvent(event.get(), false); } return !event->defaultPrevented(); }
bool XMLHttpRequest::dispatchEvent(PassRefPtr<Event> evt, ExceptionCode& ec, bool /*tempEvent*/) { // FIXME: check for other error conditions enumerated in the spec. if (evt->type().isEmpty()) { ec = EventException::UNSPECIFIED_EVENT_TYPE_ERR; return true; } ListenerVector listenersCopy = m_eventListeners.get(evt->type().impl()); for (ListenerVector::const_iterator listenerIter = listenersCopy.begin(); listenerIter != listenersCopy.end(); ++listenerIter) { evt->setTarget(this); evt->setCurrentTarget(this); listenerIter->get()->handleEvent(evt.get(), false); } return !evt->defaultPrevented(); }