Jacek Caban : mshtml: Don' t dispatch load event if document is already detached from its window.
Module: wine Branch: master Commit: c36b424ec23a2644baed99344663695cbc4fe445 URL: https://source.winehq.org/git/wine.git/?a=commit;h=c36b424ec23a2644baed99344... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Tue Jan 2 15:07:07 2018 +0100 mshtml: Don't dispatch load event if document is already detached from its window. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mshtml/nsevents.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/dlls/mshtml/nsevents.c b/dlls/mshtml/nsevents.c index f0819d6..afe09fb 100644 --- a/dlls/mshtml/nsevents.c +++ b/dlls/mshtml/nsevents.c @@ -234,7 +234,8 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event nsEventListener *This = impl_from_nsIDOMEventListener(iface); HTMLDocumentNode *doc = This->This->doc; HTMLDocumentObj *doc_obj = NULL; - nsresult nsres = NS_OK; + DOMEvent *load_event; + HRESULT hres; TRACE("(%p)\n", doc); @@ -267,27 +268,27 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event &doc->basedoc.window->base.IHTMLWindow2_iface, 0); if(doc->nsdoc) { - DOMEvent *load_event; - HRESULT hres; - hres = create_document_event(doc, EVENTID_LOAD, &load_event); if(SUCCEEDED(hres)) { dispatch_event(&doc->node.event_target, load_event); IDOMEvent_Release(&load_event->IDOMEvent_iface); } + }else { + WARN("no nsdoc\n"); + } + if(doc->window) { hres = create_event_from_nsevent(event, &load_event); if(SUCCEEDED(hres)) { dispatch_event(&doc->window->event_target, load_event); IDOMEvent_Release(&load_event->IDOMEvent_iface); } }else { - ERR("NULL nsdoc\n"); - nsres = NS_ERROR_FAILURE; + WARN("no window\n"); } htmldoc_release(&doc->basedoc); - return nsres; + return NS_OK; } static nsresult NSAPI handle_htmlevent(nsIDOMEventListener *iface, nsIDOMEvent *nsevent)
participants (1)
-
Alexandre Julliard