Module: wine Branch: master Commit: 82c03141d871d8bf651132817bfa6bc117ed0d8b URL: https://gitlab.winehq.org/wine/wine/-/commit/82c03141d871d8bf651132817bfa6bc...
Author: Gabriel Ivăncescu gabrielopcode@gmail.com Date: Thu Oct 5 18:57:46 2023 +0300
ieframe: Send the original URL for error pages in FireNavigationComplete2 notification.
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com
---
dlls/ieframe/shellbrowser.c | 8 ++++++++ dlls/ieframe/tests/ie.c | 1 - 2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/ieframe/shellbrowser.c b/dlls/ieframe/shellbrowser.c index d3f8c6f8ddb..58ff851fb0b 100644 --- a/dlls/ieframe/shellbrowser.c +++ b/dlls/ieframe/shellbrowser.c @@ -758,6 +758,7 @@ static HRESULT WINAPI DocObjectService_FireNavigateComplete2( ShellBrowser *This = impl_from_IDocObjectService(iface); DocHost *doc_host = This->doc_host; IHTMLPrivateWindow *priv_window; + const WCHAR *orig_url; VARIANTARG params[2]; DISPPARAMS dp = {params, NULL, 2, 0}; VARIANT url_var; @@ -786,6 +787,13 @@ static HRESULT WINAPI DocObjectService_FireNavigateComplete2( TRACE("got URL %s\n", debugstr_w(url)); set_dochost_url(This->doc_host, url);
+ orig_url = error_url_frag(url); + if(orig_url) { + BSTR tmp = SysAllocString(orig_url); + SysFreeString(url); + url = tmp; + } + V_VT(params) = (VT_BYREF|VT_VARIANT); V_VARIANTREF(params) = &url_var;
diff --git a/dlls/ieframe/tests/ie.c b/dlls/ieframe/tests/ie.c index 5e52baedb68..8a91efb3af5 100644 --- a/dlls/ieframe/tests/ie.c +++ b/dlls/ieframe/tests/ie.c @@ -186,7 +186,6 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF arg = pDispParams->rgvarg; ok(V_VT(arg) == (VT_BYREF | VT_VARIANT), "VT = %d\n", V_VT(arg)); ok(V_VT(V_VARIANTREF(arg)) == VT_BSTR, "VT = %d\n", V_VT(V_VARIANTREF(arg))); - todo_wine_if(called_Invoke_NAVIGATEERROR) ok(!wcscmp(V_BSTR(V_VARIANTREF(arg)), navigate_url), "url = %s\n", wine_dbgstr_w(V_BSTR(V_VARIANTREF(arg))));
arg = pDispParams->rgvarg + 1;