зеркало из https://github.com/mozilla/gecko-dev.git
Bug 157796 -- adding referrer URL when plugin requests the data object, r=serge, sr=darin
This commit is contained in:
Родитель
082e6eb5af
Коммит
71316c2886
|
@ -6037,7 +6037,6 @@ nsPluginHostImpl::StopPluginInstance(nsIPluginInstance* aInstance)
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
/* Called by InstantiateEmbededPlugin() */
|
/* Called by InstantiateEmbededPlugin() */
|
||||||
nsresult nsPluginHostImpl::NewEmbededPluginStream(nsIURI* aURL,
|
nsresult nsPluginHostImpl::NewEmbededPluginStream(nsIURI* aURL,
|
||||||
|
@ -6053,7 +6052,6 @@ nsresult nsPluginHostImpl::NewEmbededPluginStream(nsIURI* aURL,
|
||||||
|
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
|
|
||||||
|
|
||||||
// if we have an instance, everything has been set up
|
// if we have an instance, everything has been set up
|
||||||
// if we only have an owner, then we need to pass it in
|
// if we only have an owner, then we need to pass it in
|
||||||
// so the listener can set up the instance later after
|
// so the listener can set up the instance later after
|
||||||
|
@ -6075,18 +6073,30 @@ nsresult nsPluginHostImpl::NewEmbededPluginStream(nsIURI* aURL,
|
||||||
doc->GetDocumentLoadGroup(getter_AddRefs(loadGroup));
|
doc->GetDocumentLoadGroup(getter_AddRefs(loadGroup));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rv = NS_OpenURI(listener, nsnull, aURL, nsnull, loadGroup);
|
|
||||||
// delete listener, don't leak it
|
nsCOMPtr<nsIChannel> channel;
|
||||||
if (NS_FAILED(rv))
|
|
||||||
delete listener;
|
rv = NS_NewChannel(getter_AddRefs(channel), aURL, nsnull, loadGroup);
|
||||||
|
if (NS_SUCCEEDED(rv)) {
|
||||||
|
// if this is http channel, set referrer, some servers are configured
|
||||||
|
// to reject requests without referrer set, see bug 157796
|
||||||
|
nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel));
|
||||||
|
if (httpChannel && doc) {
|
||||||
|
nsCOMPtr<nsIURI> referrerURL;
|
||||||
|
if (NS_SUCCEEDED(doc->GetBaseURL(*getter_AddRefs(referrerURL))))
|
||||||
|
httpChannel->SetReferrer(referrerURL, nsIHttpChannel::REFERRER_INLINES);
|
||||||
|
}
|
||||||
|
|
||||||
|
rv = channel->AsyncOpen(listener, nsnull);
|
||||||
|
if (NS_SUCCEEDED(rv))
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//NS_RELEASE(aURL);
|
delete listener;
|
||||||
|
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
/* Called by InstantiateFullPagePlugin() */
|
/* Called by InstantiateFullPagePlugin() */
|
||||||
nsresult nsPluginHostImpl::NewFullPagePluginStream(nsIStreamListener *&aStreamListener,
|
nsresult nsPluginHostImpl::NewFullPagePluginStream(nsIStreamListener *&aStreamListener,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче