Jacek Caban : mshtml: Update window URI when its binding is redirected.
Alexandre Julliard
julliard at winehq.org
Wed Nov 16 12:46:46 CST 2011
Module: wine
Branch: master
Commit: 2bffcedc820db2da68ad49d3e15202714b20ac68
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2bffcedc820db2da68ad49d3e15202714b20ac68
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Nov 16 12:52:43 2011 +0100
mshtml: Update window URI when its binding is redirected.
---
dlls/mshtml/binding.h | 1 +
dlls/mshtml/navigate.c | 11 +++++++++++
dlls/mshtml/nsio.c | 9 +++++++++
3 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/binding.h b/dlls/mshtml/binding.h
index 0b23af7..a392037 100644
--- a/dlls/mshtml/binding.h
+++ b/dlls/mshtml/binding.h
@@ -112,3 +112,4 @@ HRESULT super_navigate(HTMLWindow*,IUri*,const WCHAR*,BYTE*,DWORD) DECLSPEC_HIDD
HRESULT create_channelbsc(IMoniker*,const WCHAR*,BYTE*,DWORD,nsChannelBSC**) DECLSPEC_HIDDEN;
HRESULT channelbsc_load_stream(nsChannelBSC*,IStream*) DECLSPEC_HIDDEN;
void channelbsc_set_channel(nsChannelBSC*,nsChannel*,nsIStreamListener*,nsISupports*) DECLSPEC_HIDDEN;
+IUri *nsuri_get_uri(nsWineURI*);
diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index bb97ee1..fe0d4c6 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -1134,6 +1134,17 @@ static nsresult NSAPI nsAsyncVerifyRedirectCallback_AsyncOnChannelRedirect(nsIAs
ERR("AddRequest failed: %08x\n", nsres);
}
+ if(This->bsc->window) {
+ IUri *uri = nsuri_get_uri(This->nschannel->uri);
+
+ if(uri) {
+ set_current_uri(This->bsc->window, uri);
+ IUri_Release(uri);
+ }else {
+ WARN("Could not get IUri from nsWineURI\n");
+ }
+ }
+
return NS_OK;
}
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 81dfab7..a5a974f 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -84,6 +84,15 @@ static BOOL ensure_uri(nsWineURI *This)
return TRUE;
}
+IUri *nsuri_get_uri(nsWineURI *nsuri)
+{
+ if(!ensure_uri(nsuri))
+ return NULL;
+
+ IUri_AddRef(nsuri->uri);
+ return nsuri->uri;
+}
+
static IUri *get_uri_nofrag(IUri *uri)
{
IUriBuilder *uri_builder;
More information about the wine-cvs
mailing list