From 046dfd83a1675dfb2b41f40626cf9512df075858 Mon Sep 17 00:00:00 2001 From: "nisheeth%netscape.com" Date: Wed, 11 Aug 1999 05:53:37 +0000 Subject: [PATCH] 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 --- mozilla/htmlparser/src/nsExpatTokenizer.cpp | 23 ++++++++++++------- .../htmlparser/src/nsExpatTokenizer.cpp | 23 ++++++++++++------- 2 files changed, 30 insertions(+), 16 deletions(-) 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; }