Jacek Caban : mshtml: Moved add_script_runner call to push_mutation_queue.

Alexandre Julliard julliard at winehq.org
Tue Nov 3 15:37:18 CST 2009


Module: wine
Branch: master
Commit: ccaa3c463194e52de229a655437e1b1cf0ed6d07
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ccaa3c463194e52de229a655437e1b1cf0ed6d07

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun Nov  1 19:24:55 2009 +0100

mshtml: Moved add_script_runner call to push_mutation_queue.

---

 dlls/mshtml/mutation.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/dlls/mshtml/mutation.c b/dlls/mshtml/mutation.c
index 03f3e90..ba636dd 100644
--- a/dlls/mshtml/mutation.c
+++ b/dlls/mshtml/mutation.c
@@ -246,10 +246,12 @@ static void push_mutation_queue(HTMLDocumentNode *doc, DWORD type, nsISupports *
     if(nsiface)
         nsISupports_AddRef(nsiface);
 
-    if(doc->mutation_queue_tail)
+    if(doc->mutation_queue_tail) {
         doc->mutation_queue_tail = doc->mutation_queue_tail->next = elem;
-    else
+    }else {
         doc->mutation_queue = doc->mutation_queue_tail = elem;
+        add_script_runner(doc);
+    }
 }
 
 static void pop_mutation_queue(HTMLDocumentNode *doc)
@@ -363,8 +365,10 @@ static void handle_end_load(HTMLDocumentNode *This)
 
     TRACE("\n");
 
-    if(This != This->basedoc.doc_obj->basedoc.doc_node)
+    if(This != This->basedoc.doc_obj->basedoc.doc_node) {
+        set_ready_state(This, READYSTATE_INTERACTIVE);
         return;
+    }
 
     task = heap_alloc(sizeof(docobj_task_t));
     if(!task)
@@ -584,7 +588,6 @@ static void NSAPI nsDocumentObserver_EndLoad(nsIDocumentObserver *iface, nsIDocu
 
     This->content_ready = TRUE;
     push_mutation_queue(This, MUTATION_ENDLOAD, NULL);
-    add_script_runner(This);
 }
 
 static void NSAPI nsDocumentObserver_ContentStatesChanged(nsIDocumentObserver *iface, nsIDocument *aDocument,
@@ -646,7 +649,6 @@ static void NSAPI nsDocumentObserver_BindToDocument(nsIDocumentObserver *iface,
 
         push_mutation_queue(This, MUTATION_COMMENT, (nsISupports*)nscomment);
         nsIDOMComment_Release(nscomment);
-        add_script_runner(This);
     }
 
     nsres = nsISupports_QueryInterface(aContent, &IID_nsIDOMHTMLIFrameElement, (void**)&nsiframe);
@@ -655,7 +657,6 @@ static void NSAPI nsDocumentObserver_BindToDocument(nsIDocumentObserver *iface,
 
         push_mutation_queue(This, MUTATION_IFRAME, (nsISupports*)nsiframe);
         nsIDOMHTMLIFrameElement_Release(nsiframe);
-        add_script_runner(This);
     }
 
     nsres = nsISupports_QueryInterface(aContent, &IID_nsIDOMHTMLFrameElement, (void**)&nsframe);
@@ -664,7 +665,6 @@ static void NSAPI nsDocumentObserver_BindToDocument(nsIDocumentObserver *iface,
 
         push_mutation_queue(This, MUTATION_FRAME, (nsISupports*)nsframe);
         nsIDOMHTMLFrameElement_Release(nsframe);
-        add_script_runner(This);
     }
 }
 
@@ -683,7 +683,6 @@ static void NSAPI nsDocumentObserver_DoneAddingChildren(nsIDocumentObserver *ifa
 
         push_mutation_queue(This, MUTATION_SCRIPT, (nsISupports*)nsscript);
         nsIDOMHTMLScriptElement_Release(nsscript);
-        add_script_runner(This);
     }
 }
 




More information about the wine-cvs mailing list