Bug 464222 - Allow URI loads with a base URI argument. r=bz

This commit is contained in:
James Kitchener
2014-02-20 08:43:53 -05:00
parent a0bac0d895
commit ca9510e346
4 changed files with 95 additions and 1 deletions

View File

@@ -4278,6 +4278,18 @@ nsDocShell::LoadURI(const char16_t * aURI,
nsIURI * aReferringURI,
nsIInputStream * aPostStream,
nsIInputStream * aHeaderStream)
{
return LoadURIWithBase(aURI, aLoadFlags, aReferringURI, aPostStream,
aHeaderStream, nullptr);
}
NS_IMETHODIMP
nsDocShell::LoadURIWithBase(const char16_t * aURI,
uint32_t aLoadFlags,
nsIURI * aReferringURI,
nsIInputStream * aPostStream,
nsIInputStream * aHeaderStream,
nsIURI * aBaseURI)
{
NS_ASSERTION((aLoadFlags & 0xf) == 0, "Unexpected flags");
@@ -4371,6 +4383,7 @@ nsDocShell::LoadURI(const char16_t * aURI,
loadInfo->SetPostDataStream(postStream);
loadInfo->SetReferrer(aReferringURI);
loadInfo->SetHeadersStream(aHeaderStream);
loadInfo->SetBaseURI(aBaseURI);
rv = LoadURI(uri, loadInfo, extraFlags, true);
@@ -9767,6 +9780,12 @@ nsDocShell::DoURILoad(nsIURI * aURI,
}
return rv;
}
if (aBaseURI) {
nsCOMPtr<nsIViewSourceChannel> vsc = do_QueryInterface(channel);
if (vsc) {
vsc->SetBaseURI(aBaseURI);
}
}
}
else {
nsAutoCString scheme;