NS_IMETHODIMP nsContentDLF::CreateInstanceForDocument(nsISupports* aContainer, nsIDocument* aDocument, const char *aCommand, nsIContentViewer** aContentViewer) { nsCOMPtr<nsIContentViewer> contentViewer; nsresult rv = NS_NewContentViewer(getter_AddRefs(contentViewer)); NS_ENSURE_SUCCESS(rv, rv); // Bind the document to the Content Viewer rv = contentViewer->LoadStart(aDocument); contentViewer.forget(aContentViewer); return rv; }
NS_IMETHODIMP nsContentDLF::CreateInstanceForDocument(nsISupports* aContainer, nsIDocument* aDocument, const char *aCommand, nsIContentViewer** aContentViewer) { MOZ_ASSERT(aDocument); nsCOMPtr<nsIContentViewer> contentViewer = NS_NewContentViewer(); // Bind the document to the Content Viewer contentViewer->LoadStart(aDocument); contentViewer.forget(aContentViewer); return NS_OK; }
nsresult nsContentDLF::CreateDocument(const char* aCommand, nsIChannel* aChannel, nsILoadGroup* aLoadGroup, nsISupports* aContainer, const nsCID& aDocumentCID, nsIStreamListener** aDocListener, nsIContentViewer** aContentViewer) { NS_TIME_FUNCTION; nsresult rv = NS_ERROR_FAILURE; nsCOMPtr<nsIURI> aURL; rv = aChannel->GetURI(getter_AddRefs(aURL)); if (NS_FAILED(rv)) return rv; #ifdef NOISY_CREATE_DOC if (nullptr != aURL) { nsAutoString tmp; aURL->ToString(tmp); fputs(NS_LossyConvertUTF16toASCII(tmp).get(), stdout); printf(": creating document\n"); } #endif // Create the document nsCOMPtr<nsIDocument> doc = do_CreateInstance(aDocumentCID, &rv); NS_ENSURE_SUCCESS(rv, rv); // Create the content viewer XXX: could reuse content viewer here! nsCOMPtr<nsIContentViewer> contentViewer; rv = NS_NewContentViewer(getter_AddRefs(contentViewer)); NS_ENSURE_SUCCESS(rv, rv); doc->SetContainer(aContainer); // Initialize the document to begin loading the data. An // nsIStreamListener connected to the parser is returned in // aDocListener. rv = doc->StartDocumentLoad(aCommand, aChannel, aLoadGroup, aContainer, aDocListener, true); NS_ENSURE_SUCCESS(rv, rv); // Bind the document to the Content Viewer rv = contentViewer->LoadStart(doc); contentViewer.forget(aContentViewer); return rv; }
nsresult nsContentDLF::CreateXULDocument(const char* aCommand, nsIChannel* aChannel, nsILoadGroup* aLoadGroup, const char* aContentType, nsISupports* aContainer, nsISupports* aExtraInfo, nsIStreamListener** aDocListener, nsIContentViewer** aContentViewer) { NS_TIME_FUNCTION; nsresult rv; nsCOMPtr<nsIDocument> doc = do_CreateInstance(kXULDocumentCID, &rv); if (NS_FAILED(rv)) return rv; nsCOMPtr<nsIContentViewer> contentViewer; rv = NS_NewContentViewer(getter_AddRefs(contentViewer)); if (NS_FAILED(rv)) return rv; nsCOMPtr<nsIURI> aURL; rv = aChannel->GetURI(getter_AddRefs(aURL)); if (NS_FAILED(rv)) return rv; /* * Initialize the document to begin loading the data... * * An nsIStreamListener connected to the parser is returned in * aDocListener. */ doc->SetContainer(aContainer); rv = doc->StartDocumentLoad(aCommand, aChannel, aLoadGroup, aContainer, aDocListener, true); if (NS_FAILED(rv)) return rv; /* * Bind the document to the Content Viewer... */ rv = contentViewer->LoadStart(doc); contentViewer.forget(aContentViewer); return rv; }