diff --git a/mozilla/htmlparser/src/nsExpatTokenizer.cpp b/mozilla/htmlparser/src/nsExpatTokenizer.cpp index 5ac2a87e0ed..e1be27ba8bb 100644 --- a/mozilla/htmlparser/src/nsExpatTokenizer.cpp +++ b/mozilla/htmlparser/src/nsExpatTokenizer.cpp @@ -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; } diff --git a/mozilla/parser/htmlparser/src/nsExpatTokenizer.cpp b/mozilla/parser/htmlparser/src/nsExpatTokenizer.cpp index 5ac2a87e0ed..e1be27ba8bb 100644 --- a/mozilla/parser/htmlparser/src/nsExpatTokenizer.cpp +++ b/mozilla/parser/htmlparser/src/nsExpatTokenizer.cpp @@ -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; }