Bug 654990 - Don't use SetInitialChildList to specify the style context of the progress bar anonymous child. r=bz

This commit is contained in:
Mounir Lamouri
2011-05-09 18:42:58 +02:00
parent eb74ec81dc
commit bcb321d454
2 changed files with 7 additions and 28 deletions

View File

@@ -71,30 +71,6 @@ nsProgressFrame::~nsProgressFrame()
{
}
NS_IMETHODIMP
nsProgressFrame::SetInitialChildList(nsIAtom* aListName,
nsFrameList& aChildList)
{
NS_ASSERTION(mBarDiv, "Progress bar div must exist!");
nsresult rv = nsHTMLContainerFrame::SetInitialChildList(aListName,
aChildList);
nsIFrame* barFrame = mBarDiv->GetPrimaryFrame();
nsCSSPseudoElements::Type pseudoType = nsCSSPseudoElements::ePseudo_mozProgressBar;
nsRefPtr<nsStyleContext> newStyleContext;
newStyleContext = barFrame->PresContext()->StyleSet()->
ResolvePseudoElementStyle(mContent->AsElement(), pseudoType,
barFrame->GetParent()->GetStyleContext());
if (newStyleContext) {
barFrame->SetStyleContext(newStyleContext);
}
return rv;
}
void
nsProgressFrame::DestroyFrom(nsIFrame* aDestructRoot)
{
@@ -122,7 +98,13 @@ nsProgressFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
mozilla::dom::NOT_FROM_PARSER);
NS_ENSURE_SUCCESS(rv, rv);
if (!aElements.AppendElement(mBarDiv)) {
// Associate ::-moz-progress-bar pseudo-element to the anonymous child.
nsCSSPseudoElements::Type pseudoType = nsCSSPseudoElements::ePseudo_mozProgressBar;
nsRefPtr<nsStyleContext> newStyleContext = PresContext()->StyleSet()->
ResolvePseudoElementStyle(mContent->AsElement(), pseudoType,
GetStyleContext());
if (!aElements.AppendElement(ContentInfo(mBarDiv, newStyleContext))) {
return NS_ERROR_OUT_OF_MEMORY;
}