Jacek Caban : mshtml: Added nsIHttpChannel::referrer implementation.
Alexandre Julliard
julliard at winehq.org
Wed Aug 18 12:09:59 CDT 2010
Module: wine
Branch: master
Commit: eec86f64c4cbe2528c86b402fd32be2dccd3a1cd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=eec86f64c4cbe2528c86b402fd32be2dccd3a1cd
Author: Jacek Caban <jacek at 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;
}
More information about the wine-cvs
mailing list