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;

}

Reply via email to