PRBool blockParser = PR_FALSE;
HTMLContentSink::ProcessLINKTag(const nsIParserNode& aNode){  nsresult  result = NS_OK;  PRInt32   index;  PRInt32   count = aNode.GetAttributeCount();  nsAutoString href;  nsAutoString rel;   nsAutoString title;   nsAutoString type;   nsAutoString media;   PRBool blockParser = PR_FALSE;  nsIScriptContextOwner* sco = mDocument->GetScriptContextOwner();  for (index = 0; index < count; index++) {    const nsString& key = aNode.GetKeyAt(index);    if (key.EqualsIgnoreCase("href")) {      GetAttributeValueAt(aNode, index, href, sco);      href.StripWhitespace();    }    else if (key.EqualsIgnoreCase("rel")) {      GetAttributeValueAt(aNode, index, rel, sco);      rel.CompressWhitespace();    }    else if (key.EqualsIgnoreCase("title")) {      GetAttributeValueAt(aNode, index, title, sco);      title.CompressWhitespace();    }    else if (key.EqualsIgnoreCase("type")) {      GetAttributeValueAt(aNode, index, type, sco);      type.StripWhitespace();    }    else if (key.EqualsIgnoreCase("media")) {      GetAttributeValueAt(aNode, index, media, sco);  // media is case sensitive    }    else if (key.EqualsIgnoreCase("wait")) {      blockParser = PR_TRUE;    }  }  // Create content object  nsAutoString tag("LINK");  nsIHTMLContent* element = nsnull;  result = NS_CreateHTMLElement(&element, tag);  if (NS_SUCCEEDED(result)) {    // Add in the attributes and add the style content object to the    // head container.    element->SetDocument(mDocument, PR_FALSE);    result = AddAttributes(aNode, element, sco);    if (NS_FAILED(result)) {      NS_RELEASE(element);      return result;    }    mHead->AppendChildTo(element, PR_FALSE);  }  else {    NS_IF_RELEASE(sco);    return result;  }  NS_IF_RELEASE(sco);  result = ProcessStyleLink(element, href, rel, title, type, media, blockParser);  NS_RELEASE(element);  return result;}