Module: wine Branch: master Commit: eec86f64c4cbe2528c86b402fd32be2dccd3a1cd URL: http://source.winehq.org/git/wine.git/?a=commit;h=eec86f64c4cbe2528c86b402fd...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Aug 18 13:37:08 2010 +0200
mshtml: Added nsIHttpChannel::referrer implementation.
---
dlls/mshtml/mshtml_private.h | 1 + dlls/mshtml/nsio.c | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index ee92806..7d4d00a 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -468,6 +468,7 @@ typedef struct { nsISupports *owner; nsLoadFlags load_flags; nsIURI *original_uri; + nsIURI *referrer; char *content_type; char *charset; PRUint32 response_status; diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c index d288a6b..46988f6 100644 --- a/dlls/mshtml/nsio.c +++ b/dlls/mshtml/nsio.c @@ -491,6 +491,8 @@ static nsrefcnt NSAPI nsChannel_Release(nsIHttpChannel *iface) nsIInterfaceRequestor_Release(This->notif_callback); if(This->original_uri) nsIURI_Release(This->original_uri); + if(This->referrer) + nsIURI_Release(This->referrer);
free_http_headers(&This->response_headers); free_http_headers(&This->request_headers); @@ -1072,17 +1074,25 @@ static nsresult NSAPI nsChannel_GetReferrer(nsIHttpChannel *iface, nsIURI **aRef { nsChannel *This = NSCHANNEL_THIS(iface);
- FIXME("(%p)->(%p)\n", This, aReferrer); + TRACE("(%p)->(%p)\n", This, aReferrer);
- return NS_ERROR_NOT_IMPLEMENTED; + if(This->referrer) + nsIURI_AddRef(This->referrer); + *aReferrer = This->referrer; + return NS_OK; }
static nsresult NSAPI nsChannel_SetReferrer(nsIHttpChannel *iface, nsIURI *aReferrer) { nsChannel *This = NSCHANNEL_THIS(iface);
- FIXME("(%p)->(%p)\n", This, aReferrer); + TRACE("(%p)->(%p)\n", This, aReferrer);
+ if(aReferrer) + nsIURI_AddRef(aReferrer); + if(This->referrer) + nsIURI_Release(This->referrer); + This->referrer = aReferrer; return NS_OK; }