first round of checkins to fix bug 37616, Retire SetRelativePath, r=warren@netscape.com

This commit is contained in:
andreas.otte@primus-online.de
2000-05-05 23:39:25 +00:00
parent 6d2d564a5f
commit a2b99a2ff8
10 changed files with 112 additions and 99 deletions

View File

@@ -34,6 +34,7 @@
#include "nsISupportsArray.h"
#include "nsFileSpec.h"
#include "nsAutoLock.h"
#include "nsXPIDLString.h"
static NS_DEFINE_CID(kStandardURLCID, NS_STANDARDURL_CID);
static NS_DEFINE_CID(kNoAuthUrlParserCID, NS_NOAUTHORITYURLPARSER_CID);
@@ -105,26 +106,27 @@ nsFileProtocolHandler::NewURI(const char *aSpec, nsIURI *aBaseURI,
nsCOMPtr<nsIURI> url;
nsCOMPtr<nsIURLParser> urlparser;
if (aBaseURI) {
rv = aBaseURI->Clone(getter_AddRefs(url));
if (NS_FAILED(rv)) return rv;
rv = url->SetRelativePath(aSpec);
}
else {
rv = nsComponentManager::CreateInstance(kNoAuthUrlParserCID,
rv = nsComponentManager::CreateInstance(kNoAuthUrlParserCID,
nsnull, NS_GET_IID(nsIURLParser),
getter_AddRefs(urlparser));
if (NS_FAILED(rv)) return rv;
rv = nsComponentManager::CreateInstance(kStandardURLCID,
nsnull, NS_GET_IID(nsIURI),
getter_AddRefs(url));
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) return rv;
rv = nsComponentManager::CreateInstance(kStandardURLCID,
nsnull, NS_GET_IID(nsIURI),
getter_AddRefs(url));
if (NS_FAILED(rv)) return rv;
rv = url->SetURLParser(urlparser);
if (NS_FAILED(rv)) return rv;
rv = url->SetURLParser(urlparser);
if (aBaseURI)
{
nsXPIDLCString aResolvedURI;
rv = aBaseURI->Resolve(aSpec, getter_Copies(aResolvedURI));
if (NS_FAILED(rv)) return rv;
rv = url->SetSpec(aResolvedURI);
} else {
rv = url->SetSpec((char*)aSpec);
}
if (NS_FAILED(rv)) return rv;
*result = url.get();