diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 0d02f26e593..6cb41bdde3d 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -348,6 +348,7 @@ typedef struct {
nsIInputStream *post_data_stream;
nsILoadGroup *load_group;
nsIInterfaceRequestor *notif_callback;
+ nsISupports *owner;
nsLoadFlags load_flags;
nsIURI *original_uri;
char *content_type;
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 0669463d685..1dca2a49eb1 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -417,8 +417,11 @@ static nsresult NSAPI nsChannel_GetOwner(nsIHttpChannel *iface, nsISupports **aO
if(This->channel)
return nsIChannel_GetOwner(This->channel, aOwner);
- FIXME("default action not implemented\n");
- return NS_ERROR_NOT_IMPLEMENTED;
+ if(This->owner)
+ nsISupports_AddRef(This->owner);
+ *aOwner = This->owner;
+
+ return NS_OK;
}
static nsresult NSAPI nsChannel_SetOwner(nsIHttpChannel *iface, nsISupports *aOwner)
@@ -430,8 +433,13 @@ static nsresult NSAPI nsChannel_SetOwner(nsIHttpChannel *iface, nsISupports *aOw
if(This->channel)
return nsIChannel_SetOwner(This->channel, aOwner);
- FIXME("default action not implemented\n");
- return NS_ERROR_NOT_IMPLEMENTED;
+ if(aOwner)
+ nsISupports_AddRef(aOwner);
+ if(This->owner)
+ nsISupports_Release(This->owner);
+ This->owner = aOwner;
+
+ return NS_OK;
}
static nsresult NSAPI nsChannel_GetNotificationCallbacks(nsIHttpChannel *iface,