Jacek Caban : mshtml: Move TranslateUrl call to before_async_open.

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


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

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

mshtml: Move TranslateUrl call to before_async_open.

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

---

 dlls/mshtml/nsio.c | 49 +++++++++++++++----------------------------------
 1 file changed, 15 insertions(+), 34 deletions(-)

diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 0384717..9bb1892 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -252,6 +252,20 @@ static nsresult before_async_open(nsChannel *channel, NSContainer *container, BO
     if(FAILED(hres))
         return NS_ERROR_FAILURE;
 
+    if(doc->hostui) {
+        OLECHAR *new_url;
+        hres = IDocHostUIHandler_TranslateUrl(doc->hostui, 0, display_uri, &new_url);
+        if(hres == S_OK && new_url) {
+            if(strcmpW(display_uri, new_url)) {
+                FIXME("TranslateUrl returned new URL %s -> %s\n", debugstr_w(display_uri), debugstr_w(new_url));
+                CoTaskMemFree(new_url);
+                *cancel = TRUE;
+                return NS_OK;
+            }
+            CoTaskMemFree(new_url);
+        }
+    }
+
     if(!exec_shldocvw_67(doc, display_uri)) {
         SysFreeString(display_uri);
         *cancel = FALSE;
@@ -3859,33 +3873,6 @@ static const nsIIOServiceHookVtbl nsIOServiceHookVtbl = {
 
 static nsIIOServiceHook nsIOServiceHook = { &nsIOServiceHookVtbl };
 
-static BOOL translate_url(HTMLDocumentObj *doc, nsWineURI *uri)
-{
-    OLECHAR *new_url = NULL;
-    WCHAR *url;
-    BOOL ret = FALSE;
-    HRESULT hres;
-
-    if(!doc->hostui || !ensure_uri(uri))
-        return FALSE;
-
-    hres = IUri_GetDisplayUri(uri->uri, &url);
-    if(FAILED(hres))
-        return FALSE;
-
-    hres = IDocHostUIHandler_TranslateUrl(doc->hostui, 0, url, &new_url);
-    if(hres == S_OK && new_url) {
-        if(strcmpW(url, new_url)) {
-            FIXME("TranslateUrl returned new URL %s -> %s\n", debugstr_w(url), debugstr_w(new_url));
-            ret = TRUE;
-        }
-        CoTaskMemFree(new_url);
-    }
-
-    SysFreeString(url);
-    return ret;
-}
-
 nsresult on_start_uri_open(NSContainer *nscontainer, nsIURI *uri, cpp_bool *_retval)
 {
     nsWineURI *wine_uri;
@@ -3899,13 +3886,7 @@ nsresult on_start_uri_open(NSContainer *nscontainer, nsIURI *uri, cpp_bool *_ret
         return NS_ERROR_NOT_IMPLEMENTED;
     }
 
-    if(!wine_uri->is_doc_uri) {
-        wine_uri->is_doc_uri = TRUE;
-
-        if(nscontainer->doc)
-            *_retval = translate_url(nscontainer->doc, wine_uri);
-    }
-
+    wine_uri->is_doc_uri = TRUE;
     nsIFileURL_Release(&wine_uri->nsIFileURL_iface);
     return NS_OK;
 }




More information about the wine-cvs mailing list