width = aMetrics.width; haveWidth = PR_TRUE;
width = EMBED_DEF_DIM; haveWidth = PR_FALSE;
nsObjectFrame::GetDesiredSize(nsIPresContext* aPresContext,                              const nsHTMLReflowState& aReflowState,                              nsHTMLReflowMetrics& aMetrics){  // Determine our size stylistically  PRBool haveWidth = PR_FALSE;  PRBool haveHeight = PR_FALSE;  PRUint32 width = EMBED_DEF_DIM;  PRUint32 height = EMBED_DEF_DIM;  if (NS_UNCONSTRAINEDSIZE != aReflowState.mComputedWidth) {    aMetrics.width = aReflowState.mComputedWidth;    haveWidth = PR_TRUE;  }  if (NS_UNCONSTRAINEDSIZE != aReflowState.mComputedHeight) {    aMetrics.height = aReflowState.mComputedHeight;    haveHeight = PR_TRUE;  }  // the first time, mInstanceOwner will be null, so we a temporary default  if(mInstanceOwner != nsnull)  {    // if no width and height attributes specified try to use whatever we already have.    if(NS_OK != mInstanceOwner->GetWidth(&width))    {      width = aMetrics.width;  	  haveWidth = PR_TRUE;    }    else	    haveWidth = PR_FALSE;    if(NS_OK != mInstanceOwner->GetHeight(&height))    {      height = aMetrics.height;  	  haveHeight = PR_TRUE;    }    else	    haveHeight = PR_FALSE;  }  // XXX Temporary auto-sizing logic  if (!haveWidth) {    if (haveHeight) {      aMetrics.width = aMetrics.height;    }    else {      float p2t;      aPresContext->GetScaledPixelsToTwips(&p2t);      aMetrics.width = NSIntPixelsToTwips(width, p2t);    }  }  if (!haveHeight) {    if (haveWidth) {      aMetrics.height = aMetrics.width;    }    else {      float p2t;      aPresContext->GetScaledPixelsToTwips(&p2t);      aMetrics.height = NSIntPixelsToTwips(height, p2t);    }  }  aMetrics.ascent = aMetrics.height;  aMetrics.descent = 0;}