Jacek Caban : mshtml: Move some code from before_async_open to AsyncOpen.

Alexandre Julliard julliard at wine.codeweavers.com
Sat Jun 3 05:24:39 CDT 2006


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sat Jun  3 00:35:17 2006 +0200

mshtml: Move some code from before_async_open to AsyncOpen.

---

 dlls/mshtml/nsio.c |   45 +++++++++++++++++++++++----------------------
 1 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 756e1f7..f0344e8 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -143,40 +143,24 @@ static BOOL handle_uri(NSContainer *cont
     return TRUE;
 }
 
-static BOOL before_async_open(nsChannel *This)
+static BOOL before_async_open(nsChannel *channel, NSContainer *container)
 {
     nsACString uri_str;
-    NSContainer *container;
     const char *uria;
     LPWSTR uri;
     DWORD len;
     BOOL ret;
 
-    if(!(This->load_flags & LOAD_INITIAL_DOCUMENT_URI))
-        return TRUE;
-
-    nsIWineURI_GetNSContainer(This->uri, &container);
-    if(!container) {
-        WARN("container = NULL\n");
-        return TRUE;
-    }
-
-    if(container->load_call) {
-        nsIWebBrowserChrome_Release(NSWBCHROME(container));
-        return TRUE;
-    }
-
     nsACString_Init(&uri_str, NULL);
-    nsIWineURI_GetSpec(This->uri, &uri_str);
+    nsIWineURI_GetSpec(channel->uri, &uri_str);
     nsACString_GetData(&uri_str, &uria, NULL);
     len = MultiByteToWideChar(CP_ACP, 0, uria, -1, NULL, 0);
     uri = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR));
     MultiByteToWideChar(CP_ACP, 0, uria, -1, uri, len);
     nsACString_Finish(&uri_str);
 
-    ret = handle_uri(container, This, uri);
+    ret = handle_uri(container, channel, uri);
 
-    nsIWebBrowserChrome_Release(NSWBCHROME(container));
     HeapFree(GetProcessHeap(), 0, uri);
 
     return ret;
@@ -596,9 +580,26 @@ static nsresult NSAPI nsChannel_AsyncOpe
 
     TRACE("(%p)->(%p %p)\n", This, aListener, aContext);
 
-    if(!before_async_open(This)) {
-        TRACE("canceled\n");
-        return NS_ERROR_UNEXPECTED;
+    if(This->load_flags & LOAD_INITIAL_DOCUMENT_URI) {
+        NSContainer *container;
+
+        nsIWineURI_GetNSContainer(This->uri, &container);
+        if(!container) {
+            ERR("container = NULL\n");
+            return NS_ERROR_UNEXPECTED;
+        }
+
+        if(container->load_call) {
+            nsIWebBrowserChrome_Release(NSWBCHROME(container));
+        }else {
+            BOOL cont = before_async_open(This, container);
+            nsIWebBrowserChrome_Release(NSWBCHROME(container));
+
+            if(!cont) {
+                TRACE("canceled\n");
+                return NS_ERROR_UNEXPECTED;
+            }
+        }
     }
 
     if(!This->channel) {




More information about the wine-cvs mailing list