-
ap authored
http://bugs.webkit.org/show_bug.cgi?id=11610 XMLHttpRequest.onreadystatechange doesn't provide access to the request object Created a separate EventTarget class, now that EventTargetNode isn't the only kind. WebCore: * WebCore.xcodeproj/project.pbxproj: Added EventTarget.{h,cpp} * bindings/js/kjs_dom.cpp: (KJS::toJS): Added an EventTarget variant. * bindings/js/kjs_dom.h: Added toJS() for EventTarget; some minor style fixes. * bindings/objc/DOM.mm: (+[DOMNode _eventTargetWith:WebCore::]): * bindings/scripts/CodeGeneratorObjC.pm: Added an EventTarget->DOMEventTarget converter in DOMNode (WebCoreInternal). It only works for nodes, since we don't have an ObjC binding for XMLHttpRequest. Corrected spelling of internalHeaderContent. * dom/Event.cpp: (WebCore::Event::setTarget): * dom/Event.h: (WebCore::Event::target): (WebCore::Event::currentTarget): (WebCore::Event::setCurrentTarget): These methods now work with EventTargets instead of Nodes. * dom/EventTarget.cpp: Added. (WebCore::EventTarget::~EventTarget): (WebCore::EventTarget::toNode): (WebCore::EventTarget::toXMLHttpRequest): * dom/EventTarget.h: Added. (WebCore::EventTarget::ref): (WebCore::EventTarget::deref): Originally, my intention was to share much of the implementation between EventTargetNode and XHR, but now I don't see anything substantial worth sharing. * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::dispatchGenericEvent): Cast Node to EventTargetNode. * dom/EventTargetNode.h: Made EventTarget methods virtual. (WebCore::EventTargetNode::toNode): Added poor man's RTTI to upcast from EventTarget. (WebCore::EventTargetNode::refEventTarget): (WebCore::EventTargetNode::derefEventTarget): * dom/MouseEvent.cpp: (WebCore::MouseEvent::toElement): (WebCore::MouseEvent::fromElement): * dom/MouseRelatedEvent.cpp: (WebCore::MouseRelatedEvent::receivedTarget): * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler): * html/HTMLLabelElement.cpp: (WebCore::HTMLLabelElement::defaultEventHandler): * page/ContextMenuController.cpp: (WebCore::ContextMenuController::handleContextMenuEvent): * rendering/RenderSlider.cpp: (WebCore::RenderSlider::mouseEventIsInThumb): Cast from EventTarget to Node as appropriate. * xml/xmlhttprequest.cpp: (WebCore::XMLHttpRequest::dispatchEvent): (WebCore::XMLHttpRequest::callReadyStateChangeListener): Set target and currentTarget before dispatching. * xml/xmlhttprequest.h: Made EventTarget methods virtual, added a bool tempEvent parameter to match EventTargetNode. (WebCore::XMLHttpRequest::toXMLHttpRequest): Added poor man's RTTI to upcast from EventTarget. (WebCore::XMLHttpRequest::refEventTarget): (WebCore::XMLHttpRequest::derefEventTarget): LayoutTests: * fast/dom/xmlhttprequest-get-expected.txt: * http/tests/xmlhttprequest/event-target-expected.txt: * http/tests/xmlhttprequest/event-target.html: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18238 268f45cc-cd09-0410-ab3c-d52691b4dbfc
5f8a6dad