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