rv = AddAttributes(aNode, it);
nsIScriptContextOwner* sco = mDocument->GetScriptContextOwner(); rv = AddAttributes(aNode, it, sco); NS_IF_RELEASE(sco);
HTMLContentSink::ProcessMETATag(const nsIParserNode& aNode){  if (nsnull != mHead) {    // Create content object    nsAutoString tmp("META");    nsIAtom* atom = NS_NewAtom(tmp);    if (nsnull == atom) {      return NS_ERROR_OUT_OF_MEMORY;    }    nsIHTMLContent* it;    nsresult rv = NS_NewHTMLMeta(&it, atom);    NS_RELEASE(atom);    if (NS_OK == rv) {      // Add in the attributes and add the meta content object to the      // head container.      rv = AddAttributes(aNode, it);      if (NS_OK != rv) {        NS_RELEASE(it);        return rv;      }      mHead->AppendChildTo(it, PR_FALSE);      // If we are processing an HTTP url, handle the Refresh Case. We      // could also handle the other http-equiv cases here such as      // "Content-type".      nsIHttpUrl* httpUrl = nsnull;      rv = mDocumentURL->QueryInterface(kIHTTPUrlIID, (void **)&httpUrl);      if (NS_OK == rv) {        nsAutoString result;        it->GetAttribute(nsHTMLAtoms::httpEquiv, result);        if (result.EqualsIgnoreCase("REFRESH")) {          it->GetAttribute(nsHTMLAtoms::content, result);          if (result.Length() > 0) {            char* value = result.ToNewCString();            if (!value) {              NS_RELEASE(it);              return NS_ERROR_OUT_OF_MEMORY;            }            httpUrl->AddMimeHeader("REFRESH", value);            delete value;          }        }        NS_RELEASE(httpUrl);      }      NS_RELEASE(it);    }  }  return NS_OK;}