Hi,
I'm using the attached code trying to construct a DOMDocument from a url,however, I get NS_ERROR_FALURE return code from nsISyncLoadDOMService::LoadDocument. I don't have a debug build but the problem look like in nsSyncLoadService.cpp:403 ( http://lxr.mozilla.org/mozilla1.7/source/content/base/src/nsSyncLoadService.cpp#403) while tracing the assembly code . mLoadSuccess seem to be false. What's wrong with it? I'm using mozilla 1.7.5 on debian sid.
Thanks
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; compile-command: "g++ testdom.cpp `mozilla-config xpcom --cflags --libs` -I /usr/include/mozilla/content -I /usr/include/mozilla/necko -I /usr/include/mozilla/string -o testdom -Wall"; -*- */
#include "nsCOMPtr.h"
#include "nsXPCOM.h"
#include "nsContentCID.h"
#include "nsNetCID.h"
#include "nsIServiceManager.h"
#include "nsISyncLoadDOMService.h"
#include "nsIInputStream.h"
#include "nsNetUtil.h"
static NS_DEFINE_CID(kIOServiceCID, NS_IOSERVICE_CID);
static NS_DEFINE_CID(kSyncLoadDOMServiceCID,NS_SYNCLOADDOMSERVICE_CID);
int main()
{
nsresult rv = NS_OK;
NS_InitXPCOM2(nsnull,nsnull,nsnull);
nsCOMPtr<nsISyncLoadDOMService> docLoader = do_GetService(kSyncLoadDOMServiceCID,&rv);
NS_ENSURE_SUCCESS(rv,1);
nsCOMPtr<nsIIOService> ioService = do_CreateInstance(kIOServiceCID,&rv);
NS_ENSURE_SUCCESS(rv,1);
nsCOMPtr<nsIURI> uri;
nsCOMPtr<nsIDOMDocument> document;
rv = NS_NewURI(getter_AddRefs(uri),"http://www.google.com");
NS_ENSURE_SUCCESS(rv,1);
nsCOMPtr<nsIChannel> channel ;
rv = ioService->NewChannelFromURI(uri,getter_AddRefs(channel));
NS_ENSURE_SUCCESS(rv,1);
nsCOMPtr<nsIInputStream> stream;
channel->Open(getter_AddRefs(stream));
printf("error code = %x,:Code = %d,module = %d,severity= %d\n",rv,NS_ERROR_GET_CODE(rv),NS_ERROR_GET_MODULE(rv),NS_ERROR_GET_SEVERITY(rv));
NS_ENSURE_SUCCESS(rv,1);
printf("error code = %x,:Code = %d,module = %d,severity= %d\n",rv,NS_ERROR_GET_CODE(rv),NS_ERROR_GET_MODULE(rv),NS_ERROR_GET_SEVERITY(rv));
rv = docLoader->LoadDocument(channel,nsnull,getter_AddRefs(document));
printf("error code = %x,:Code = %d,module = %d,severity= %d\n",rv,NS_ERROR_GET_CODE(rv),NS_ERROR_GET_MODULE(rv),NS_ERROR_GET_SEVERITY(rv));
NS_ENSURE_SUCCESS(rv,1);
return 0;
}
