}
}*/
PRBool HTMLContentSink::CloseContainer(const nsIParserNode& aNode){  NOISY_SINK_TRACE("CloseContainer", aNode)  switch (aNode.GetNodeType()) {  case eHTMLTag_map:    NS_IF_RELEASE(mCurrentMap);    return PR_TRUE;  }  // XXX we could assert things about the top tag name == aNode.getText  if (0 == mStackPos) {    // Can't pop empty stack    return PR_TRUE;  }  --mStackPos;  nsIHTMLContent* container = mContainerStack[mStackPos];  mNodeStack[mStackPos] = eHTMLTag_unknown;  mContainerStack[mStackPos] = nsnull;  nsIHTMLContent* parent = nsnull;  switch (aNode.GetNodeType()) {  case eHTMLTag_option:    ProcessCloseOPTIONTag(aNode);    eHTMLTags parentType;    parent = GetCurrentContainer(&parentType);    container->Compact();    if(parent) {      parent->AppendChild(container);    }    break;  case eHTMLTag_select:    ProcessCloseSELECTTag(aNode); // add fall through  default:    if (nsnull != container) {      // Now that this container is complete, append it to it's parent      eHTMLTags parentType;      parent = GetCurrentContainer(&parentType);      container->Compact();      if(parent) {        parent->AppendChild(container);        if (parent == mBody) {          // We just closed a child of the body off. Trigger a          // content-appended reflow if enough time has elapsed          PRTime now = PR_Now();          if (now - mLastUpdateTime >= mUpdateDelta) {            mLastUpdateTime = now;            mUpdateDelta += mUpdateDelta;            ReflowNewContent();          }        }      }      NS_RELEASE(container);    }    break;  }  return PR_TRUE;}