Jacek Caban : mshtml: Moved update_window_doc to on_start_nsrequest and update callback' s document if needed.

Alexandre Julliard julliard at winehq.org
Wed Aug 18 12:10:00 CDT 2010


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Aug 18 13:38:48 2010 +0200

mshtml: Moved update_window_doc to on_start_nsrequest and update callback's document if needed.

---

 dlls/mshtml/navigate.c |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index 64830c3..086154f 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -964,7 +964,7 @@ struct nsChannelBSC {
     nsProtocolStream *nsstream;
 };
 
-static void on_start_nsrequest(nsChannelBSC *This)
+static HRESULT on_start_nsrequest(nsChannelBSC *This)
 {
     nsresult nsres;
 
@@ -974,8 +974,20 @@ static void on_start_nsrequest(nsChannelBSC *This)
 
     nsres = nsIStreamListener_OnStartRequest(This->nslistener,
             (nsIRequest*)NSCHANNEL(This->nschannel), This->nscontext);
-    if(NS_FAILED(nsres))
+    if(NS_FAILED(nsres)) {
         FIXME("OnStartRequest failed: %08x\n", nsres);
+        return E_FAIL;
+    }
+
+    if(This->window) {
+        update_window_doc(This->window);
+        if(This->window->doc != This->bsc.doc)
+            This->bsc.doc = This->window->doc;
+        if(This->window->readystate != READYSTATE_LOADING)
+            set_ready_state(This->window, READYSTATE_LOADING);
+    }
+
+    return S_OK;
 }
 
 static void on_stop_nsrequest(nsChannelBSC *This, HRESULT result)
@@ -1054,12 +1066,6 @@ static HRESULT read_stream_data(nsChannelBSC *This, IStream *stream)
             }
 
             on_start_nsrequest(This);
-
-            if(This->window) {
-                update_window_doc(This->window);
-                if(This->window->readystate != READYSTATE_LOADING)
-                    set_ready_state(This->window, READYSTATE_LOADING);
-            }
         }
 
         This->bsc.readed += This->nsstream->buf_size;




More information about the wine-cvs mailing list