HasAttributeContent(nsIStyleContext* aStyleContext,
HasAttributeContent(nsStyleContext* aStyleContext,
HasAttributeContent(nsIStyleContext* aStyleContext,                     PRInt32 aNameSpaceID,                    nsIAtom* aAttribute){  PRBool  result = PR_FALSE;  if (aStyleContext) {    const nsStyleContent* content = (const nsStyleContent*)aStyleContext->GetStyleData(eStyleStruct_Content);    PRUint32 count = content->ContentCount();    while ((0 < count) && (! result)) {      nsStyleContentType  contentType;      nsAutoString        contentString;      content->GetContentAt(--count, contentType, contentString);      if (eStyleContentType_Attr == contentType) {        nsIAtom* attrName = nsnull;        PRInt32 attrNameSpace = kNameSpaceID_None;        PRInt32 barIndex = contentString.FindChar('|'); // CSS namespace delimiter        if (-1 != barIndex) {          nsAutoString  nameSpaceVal;          contentString.Left(nameSpaceVal, barIndex);          PRInt32 error;          attrNameSpace = nameSpaceVal.ToInteger(&error, 10);          contentString.Cut(0, barIndex + 1);          if (contentString.Length()) {            attrName = NS_NewAtom(contentString);          }        }        else {          attrName = NS_NewAtom(contentString);        }        if ((attrName == aAttribute) &&             ((attrNameSpace == aNameSpaceID) ||              (attrNameSpace == kNameSpaceID_Unknown))) {          result = PR_TRUE;        }        NS_IF_RELEASE(attrName);      }    }  }