diff --git a/mozilla/extensions/xforms/nsXFormsSwitchElement.cpp b/mozilla/extensions/xforms/nsXFormsSwitchElement.cpp index 2d845cfa941..9186c7f6ba0 100644 --- a/mozilla/extensions/xforms/nsXFormsSwitchElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsSwitchElement.cpp @@ -179,8 +179,8 @@ nsXFormsSwitchElement::DoneAddingChildren() if (!mElement) return NS_OK; - mAddingChildren = PR_FALSE; Init(); + mAddingChildren = PR_FALSE; return NS_OK; } @@ -194,7 +194,13 @@ nsXFormsSwitchElement::Init(nsIDOMElement* aDeselected) nsCOMPtr selected(do_QueryInterface(mSelected)); if (selected) { nsresult rv = selected->SetSelected(PR_TRUE); - NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "Failed to select case"); + + // it is ok to fail if Init is called during the initialization phase since + // XBL might not have attached on the xf:case, yet. + // nsXFormsCaseElement::SetSelected will fail if it cannot QI the case + // element to nsIXFormsCaseElementUI. + NS_WARN_IF_FALSE(mAddingChildren || NS_SUCCEEDED(rv), + "Failed to select case"); } }