mHeadContext->SetPreAppend(PR_TRUE);
HTMLContentSink::OpenHeadContext(){  if (mCurrentContext && mCurrentContext->IsCurrentContainer(eHTMLTag_head))    return NS_OK;  // Flush everything in the current context so that we don't have  // to worry about insertions resulting in inconsistent frame creation.  //  // Try to do this only if needed (costly), i.e., only if we are sure  // we are changing contexts from some other context to the head.  //  // PERF: This call causes approximately a 2% slowdown in page load time  // according to jrgm's page load tests, but seems to be a necessary evil  if (mCurrentContext && (mCurrentContext != mHeadContext)) {    mCurrentContext->FlushTags(PR_TRUE);  }  if (!mHeadContext) {    mHeadContext = new SinkContext(this);    NS_ENSURE_TRUE(mHeadContext, NS_ERROR_OUT_OF_MEMORY);    mHeadContext->SetPreAppend(PR_TRUE);    nsresult rv = mHeadContext->Begin(eHTMLTag_head, mHead, 0, -1);    NS_ENSURE_SUCCESS(rv, rv);  }  mContextStack.AppendElement(mCurrentContext);  mCurrentContext = mHeadContext;  return NS_OK;}