Jacek Caban : mshtml: Use channel_bsc from URI for child documents as well.

Alexandre Julliard julliard at winehq.org
Fri Mar 8 19:41:09 CST 2019


Module: wine
Branch: master
Commit: 73cca44bf4fdbe2ed00303b414462052c117118a
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=73cca44bf4fdbe2ed00303b414462052c117118a

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Mar  8 13:48:25 2019 +0100

mshtml: Use channel_bsc from URI for child documents as well.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/nsio.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 22e9086..0384717 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -1045,22 +1045,24 @@ static nsresult NSAPI nsChannel_AsyncOpen(nsIHttpChannel *iface, nsIStreamListen
 
     is_document_channel = !!(This->load_flags & LOAD_DOCUMENT_URI);
 
-    if(is_document_channel && window == window->doc_obj->basedoc.window) {
+    if(is_document_channel) {
         if(This->uri->channel_bsc) {
             channelbsc_set_channel(This->uri->channel_bsc, This, aListener, aContext);
+            cancel = TRUE;
+        }
 
-            if(window->doc_obj->mime) {
+        if(window == window->doc_obj->basedoc.window) {
+            if(!This->uri->channel_bsc) {
+                /* top window navigation initiated by Gecko */
+                nsres = before_async_open(This, window->doc_obj->nscontainer, &cancel);
+                if(NS_SUCCEEDED(nsres)  && cancel) {
+                    TRACE("canceled\n");
+                    nsres = NS_BINDING_ABORTED;
+                }
+            }else if(window->doc_obj->mime) {
                 heap_free(This->content_type);
                 This->content_type = heap_strdupWtoA(window->doc_obj->mime);
             }
-
-            cancel = TRUE;
-        }else {
-            nsres = before_async_open(This, window->doc_obj->nscontainer, &cancel);
-            if(NS_SUCCEEDED(nsres)  && cancel) {
-                TRACE("canceled\n");
-                nsres = NS_BINDING_ABORTED;
-            }
         }
     }
 




More information about the wine-cvs mailing list