Fix for bug 8251. We needed to resolve relative URLs when we loaded external DTDs. This had been fixed earlier but the fix needed to get replicated for the Necko code path.
git-svn-id: svn://10.0.0.236/trunk@43171 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -521,14 +521,21 @@ nsExpatTokenizer::OpenInputStream(const nsString& aURLStr,
|
||||
}
|
||||
#else // NECKO
|
||||
nsIURI* uri;
|
||||
|
||||
// XXX We need to use the aBaseURL parameter here...
|
||||
rv = NS_NewURI(&uri, aURLStr);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = NS_OpenURI(in, uri);
|
||||
|
||||
NS_RELEASE(uri);
|
||||
nsIURI* baseURI;
|
||||
|
||||
rv = NS_NewURI(&baseURI, aBaseURL);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
rv = NS_NewURI(&uri, aURLStr, baseURI);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
rv = NS_OpenURI(in, uri);
|
||||
char* absURL = nsnull;
|
||||
uri->GetSpec(&absURL);
|
||||
aAbsURL->Append(absURL);
|
||||
nsCRT::free(absURL);
|
||||
NS_RELEASE(uri);
|
||||
}
|
||||
NS_RELEASE(baseURI);
|
||||
}
|
||||
#endif // NECKO
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -521,14 +521,21 @@ nsExpatTokenizer::OpenInputStream(const nsString& aURLStr,
|
||||
}
|
||||
#else // NECKO
|
||||
nsIURI* uri;
|
||||
|
||||
// XXX We need to use the aBaseURL parameter here...
|
||||
rv = NS_NewURI(&uri, aURLStr);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = NS_OpenURI(in, uri);
|
||||
|
||||
NS_RELEASE(uri);
|
||||
nsIURI* baseURI;
|
||||
|
||||
rv = NS_NewURI(&baseURI, aBaseURL);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
rv = NS_NewURI(&uri, aURLStr, baseURI);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
rv = NS_OpenURI(in, uri);
|
||||
char* absURL = nsnull;
|
||||
uri->GetSpec(&absURL);
|
||||
aAbsURL->Append(absURL);
|
||||
nsCRT::free(absURL);
|
||||
NS_RELEASE(uri);
|
||||
}
|
||||
NS_RELEASE(baseURI);
|
||||
}
|
||||
#endif // NECKO
|
||||
return rv;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user