mshtml: Use host object script bindings for XMLHttpRequest class.

This commit is contained in:
Jacek Caban 2024-07-15 14:13:15 +02:00 committed by Alexandre Julliard
parent f08a2be026
commit 1a58d624bb
4 changed files with 10 additions and 2 deletions

View file

@ -5139,6 +5139,13 @@ void EventTarget_Init(EventTarget *event_target, dispex_static_data_t *dispex_da
wine_rb_init(&event_target->handler_map, event_id_cmp);
}
void init_event_target(EventTarget *event_target, dispex_static_data_t *dispex_data, HTMLInnerWindow *script_global)
{
init_dispatch(&event_target->dispex, dispex_data, script_global, dispex_compat_mode(&script_global->event_target.dispex));
event_target->IEventTarget_iface.lpVtbl = &EventTargetVtbl;
wine_rb_init(&event_target->handler_map, event_id_cmp);
}
void traverse_event_target(EventTarget *event_target, nsCycleCollectionTraversalCallback *cb)
{
listener_container_t *iter;

View file

@ -1247,6 +1247,7 @@ void HTMLDOMNode_Init(HTMLDocumentNode*,HTMLDOMNode*,nsIDOMNode*,dispex_static_d
void HTMLElement_Init(HTMLElement*,HTMLDocumentNode*,nsIDOMElement*,dispex_static_data_t*);
void EventTarget_Init(EventTarget*,dispex_static_data_t*,compat_mode_t);
void init_event_target(EventTarget*,dispex_static_data_t*,HTMLInnerWindow*);
void *EventTarget_query_interface(EventTarget*,REFIID);
void EventTarget_init_dispex_info(dispex_data_t*,compat_mode_t);

View file

@ -318,7 +318,7 @@ sync_test("builtin_toString", function() {
test("textNode", document.createTextNode("testNode"), "Text", v < 9 ? "testNode" : null, true);
test("textRange", txtRange, "TextRange");
test("window", window, "Window", "[object Window]", true);
test("xmlHttpRequest", new XMLHttpRequest(), "XMLHttpRequest", null, true);
test("xmlHttpRequest", new XMLHttpRequest(), "XMLHttpRequest");
if(v < 10) {
test("namespaces", document.namespaces, "MSNamespaceInfoCollection");
}

View file

@ -1530,7 +1530,7 @@ static HRESULT WINAPI HTMLXMLHttpRequestFactory_create(IHTMLXMLHttpRequestFactor
ret->IHTMLXMLHttpRequest2_iface.lpVtbl = &HTMLXMLHttpRequest2Vtbl;
ret->IWineXMLHttpRequestPrivate_iface.lpVtbl = &WineXMLHttpRequestPrivateVtbl;
ret->IProvideClassInfo2_iface.lpVtbl = &ProvideClassInfo2Vtbl;
EventTarget_Init(&ret->event_target, &HTMLXMLHttpRequest_dispex, This->window->doc->document_mode);
init_event_target(&ret->event_target, &HTMLXMLHttpRequest_dispex, This->window);
/* Always register the handlers because we need them to track state */
event_listener->nsIDOMEventListener_iface.lpVtbl = &XMLHttpReqEventListenerVtbl;