nsCOMPtr<nsIContent> content; childFrame->GetContent(getter_AddRefs(content));
nsIContent* content = childFrame->GetContent();
nsSplitterFrameInner::SetPreferredSize(nsBoxLayoutState& aState, nsIBox* aChildBox, nscoord aOnePixel, PRBool aIsHorizontal, nscoord* aSize){  //printf("current=%d, pref=%d", current/onePixel, pref/onePixel);   nscoord current = 0;  nsRect rect(0,0,0,0);  aChildBox->GetBounds(rect);  if (aIsHorizontal)     current = rect.width;  else    current = rect.height;  nscoord pref = 0;  if (!aSize)  {    if (aIsHorizontal)       pref = rect.width;    else      pref = rect.height;  } else {    pref = *aSize;  }  nsMargin margin(0,0,0,0);  aChildBox->GetMargin(margin);  nsCOMPtr<nsIAtom> attribute;  if (aIsHorizontal) {	  pref -= (margin.left + margin.right);	  attribute = nsHTMLAtoms::width;  } else {	  pref -= (margin.top + margin.bottom);	  attribute = nsHTMLAtoms::height;  }  nsIFrame* childFrame = nsnull;  aChildBox->GetFrame(&childFrame);  nsCOMPtr<nsIContent> content;  childFrame->GetContent(getter_AddRefs(content));  // set its preferred size.  nsAutoString prefValue;  prefValue.AppendInt(pref/aOnePixel);  nsAutoString oldValue;  content->GetAttr(kNameSpaceID_None, attribute, oldValue);  if (oldValue.Equals(prefValue))     return;  content->SetAttr(kNameSpaceID_None, attribute, prefValue, PR_TRUE);  aChildBox->MarkDirty(aState);}