else if (mProcessing && mIgnoreContainer) { mIgnoreContainer = PR_FALSE; }
nsHTMLFragmentContentSink::OpenContainer(const nsIParserNode& aNode){  NS_ENSURE_TRUE(mNodeInfoManager, NS_ERROR_NOT_INITIALIZED);  nsresult result = NS_OK;  if (mProcessing) {    FlushText();    nsHTMLTag nodeType = nsHTMLTag(aNode.GetNodeType());    nsIContent *content = nsnull;    nsCOMPtr<nsINodeInfo> nodeInfo;    if (nodeType == eHTMLTag_userdefined) {      result =        mNodeInfoManager->GetNodeInfo(aNode.GetText(), nsnull,                                      kNameSpaceID_None,                                      getter_AddRefs(nodeInfo));    } else {      nsIParserService* parserService =        nsContentUtils::GetParserServiceWeakRef();      if (!parserService)        return NS_ERROR_OUT_OF_MEMORY;      nsIAtom *name = parserService->HTMLIdToAtomTag(nodeType);      NS_ASSERTION(name, "This should not happen!");      result = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_None,                                             getter_AddRefs(nodeInfo));    }    NS_ENSURE_SUCCESS(result, result);    result = NS_NewHTMLElement(&content, nodeInfo);    if (NS_OK == result) {      result = AddAttributes(aNode, content);      if (NS_OK == result) {        nsIContent *parent = GetCurrentContent();        if (nsnull == parent) {          parent = mRoot;        }        parent->AppendChildTo(content, PR_FALSE);        PushContent(content);      }    }    if (nodeType == eHTMLTag_table        || nodeType == eHTMLTag_thead        || nodeType == eHTMLTag_tbody        || nodeType == eHTMLTag_tfoot        || nodeType == eHTMLTag_tr        || nodeType == eHTMLTag_td        || nodeType == eHTMLTag_th)      // XXX if navigator_quirks_mode (only body in html supports background)      AddBaseTagInfo(content);   }  return result;}