Commit fdf21a53 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Don't use fire_event to dispatch script readystatechange event.

parent 9a11dcf3
...@@ -724,6 +724,19 @@ static ScriptHost *create_script_host(HTMLInnerWindow *window, const GUID *guid) ...@@ -724,6 +724,19 @@ static ScriptHost *create_script_host(HTMLInnerWindow *window, const GUID *guid)
return ret; return ret;
} }
static void dispatch_script_readystatechange_event(HTMLScriptElement *script)
{
DOMEvent *event;
HRESULT hres;
hres = create_document_event(script->element.node.doc, EVENTID_READYSTATECHANGE, &event);
if(FAILED(hres))
return;
fire_event_obj(&script->element.node.event_target, event);
IDOMEvent_Release(&event->IDOMEvent_iface);
}
typedef struct { typedef struct {
task_t header; task_t header;
HTMLScriptElement *elem; HTMLScriptElement *elem;
...@@ -737,7 +750,7 @@ static void fire_readystatechange_proc(task_t *_task) ...@@ -737,7 +750,7 @@ static void fire_readystatechange_proc(task_t *_task)
return; return;
task->elem->pending_readystatechange_event = FALSE; task->elem->pending_readystatechange_event = FALSE;
fire_event(task->elem->element.node.doc, EVENTID_READYSTATECHANGE, FALSE, &task->elem->element.node.event_target, NULL); dispatch_script_readystatechange_event(task->elem);
} }
static void fire_readystatechange_task_destr(task_t *_task) static void fire_readystatechange_task_destr(task_t *_task)
...@@ -772,8 +785,7 @@ static void set_script_elem_readystate(HTMLScriptElement *script_elem, READYSTAT ...@@ -772,8 +785,7 @@ static void set_script_elem_readystate(HTMLScriptElement *script_elem, READYSTAT
script_elem->pending_readystatechange_event = TRUE; script_elem->pending_readystatechange_event = TRUE;
}else { }else {
script_elem->pending_readystatechange_event = FALSE; script_elem->pending_readystatechange_event = FALSE;
fire_event(script_elem->element.node.doc, EVENTID_READYSTATECHANGE, FALSE, dispatch_script_readystatechange_event(script_elem);
&script_elem->element.node.event_target, NULL);
} }
} }
} }
......
...@@ -123,6 +123,7 @@ function test_insert_script() { ...@@ -123,6 +123,7 @@ function test_insert_script() {
var readystatechange_log = ""; var readystatechange_log = "";
e.onreadystatechange = function() { e.onreadystatechange = function() {
ok(window.event.srcElement === e, "srcElement != e");
readystatechange_log += "," + e.readyState; readystatechange_log += "," + e.readyState;
ok(extern_cnt === 1, "extern_cnt = " + extern_cnt); ok(extern_cnt === 1, "extern_cnt = " + extern_cnt);
if(e.readyState === "complete") { if(e.readyState === "complete") {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment