const nsString& aValue,
const nsAReadableString& aValue,
nsHTMLTableRowElement::StringToAttribute(nsIAtom* aAttribute,                                  const nsString& aValue,                                  nsHTMLValue& aResult){  /* ignore these attributes, stored simply as strings     ch   */  /* attributes that resolve to integers with default=0*/  if (aAttribute == nsHTMLAtoms::choff) {    if (nsGenericHTMLElement::ParseValue(aValue, 0, aResult, eHTMLUnit_Integer)) {      return NS_CONTENT_ATTR_HAS_VALUE;    }  }  /* attributes that resolve to integers or percents */  else if (aAttribute == nsHTMLAtoms::height) {    if (nsGenericHTMLElement::ParseValueOrPercent(aValue, aResult, eHTMLUnit_Pixel)) {      return NS_CONTENT_ATTR_HAS_VALUE;    }  }  /* attributes that resolve to integers or percents or proportions */  else if (aAttribute == nsHTMLAtoms::width) {    if (nsGenericHTMLElement::ParseValueOrPercentOrProportional(aValue, aResult, eHTMLUnit_Pixel)) {      return NS_CONTENT_ATTR_HAS_VALUE;    }  }  /* other attributes */  else if (aAttribute == nsHTMLAtoms::align) {    if (mInner.ParseTableCellHAlignValue(aValue, aResult)) {      return NS_CONTENT_ATTR_HAS_VALUE;    }  }  else if (aAttribute == nsHTMLAtoms::bgcolor) {    if (nsGenericHTMLElement::ParseColor(aValue, mInner.mDocument, aResult)) {      return NS_CONTENT_ATTR_HAS_VALUE;    }  }  else if (aAttribute == nsHTMLAtoms::valign) {    if (nsGenericHTMLElement::ParseTableVAlignValue(aValue, aResult)) {      return NS_CONTENT_ATTR_HAS_VALUE;    }  }  return NS_CONTENT_ATTR_NOT_THERE;}