NS_IMETHODIMP nsCanvasRenderingContext2D::SetTextStyle(const nsAString& style) { if (style.IsEmpty()) return NS_ERROR_INVALID_ARG; nsAutoString fontStr(NS_LITERAL_STRING("font: ")); fontStr.Append(style); nsresult rv; nsCOMPtr styleRule; rv = mCSSParser->ParseStyleAttribute(fontStr, nsnull, nsnull, getter_AddRefs(styleRule)); if (NS_FAILED(rv)) return rv; nsCSSDeclaration *decl = styleRule->GetDeclaration(); if (!decl) return NS_ERROR_FAILURE; nsRuleData rule(eStyleStruct_Font, nsnull, nsnull); nsAutoPtr fontData(new nsRuleDataFont); rule.mFontData = fontData; rv = decl->MapRuleInfoInto(&rule); if (NS_FAILED(rv)) return rv; nsAutoString fontFamily; float size = 12.0; if (rule.mFontData->mFamily.GetUnit() != eCSSUnit_Null) rule.mFontData->mFamily.GetStringValue(fontFamily); if (rule.mFontData->mSize.GetUnit() != eCSSUnit_Null) size = rule.mFontData->mSize.GetFloatValue(); rule.mFontData = nsnull; ...