Weaken assertion so that it doesn't fire. (Bug 472353) r+sr=bzbarsky

This commit is contained in:
L. David Baron 2009-01-29 12:39:19 -08:00
Родитель 5e75e612a2
Коммит b64bf88ccd
1 изменённых файлов: 14 добавлений и 4 удалений

Просмотреть файл

@ -1118,9 +1118,16 @@ nsFrameManager::ReResolveStyleContext(nsPresContext *aPresContext,
nsStyleChangeList *aChangeList, nsStyleChangeList *aChangeList,
nsChangeHint aMinChange) nsChangeHint aMinChange)
{ {
NS_ASSERTION(aFrame->GetContent() || // It would be nice if we could make stronger assertions here; they
(!aFrame->GetParent() && !aParentContent), // would let us simplify the ?: expressions below setting |content|
"frame must have content (unless viewport)"); // and |pseudoContent| in sensible ways as well as making what
// |localContent|, |content|, and |pseudoContent| mean make more
// sense. However, we can't, because of frame trees like the one in
// https://bugzilla.mozilla.org/show_bug.cgi?id=472353#c14 . Once we
// fix bug 242277 we should be able to make this make more sense.
NS_ASSERTION(aFrame->GetContent() || !aParentContent ||
!aParentContent->GetParent(),
"frame must have content (unless at the top of the tree)");
// XXXldb get new context from prev-in-flow if possible, to avoid // XXXldb get new context from prev-in-flow if possible, to avoid
// duplication. (Or should we just let |GetContext| handle that?) // duplication. (Or should we just let |GetContext| handle that?)
// Getting the hint would be nice too, but that's harder. // Getting the hint would be nice too, but that's harder.
@ -1146,7 +1153,8 @@ nsFrameManager::ReResolveStyleContext(nsPresContext *aPresContext,
// |content| is the node that we used for rule matching of // |content| is the node that we used for rule matching of
// normal elements (not pseudo-elements) and for which we generate // normal elements (not pseudo-elements) and for which we generate
// framechange hints if we need them. // framechange hints if we need them.
// XXXldb Why does it make sense to use aParentContent // XXXldb Why does it make sense to use aParentContent? (See
// comment above assertion at start of function.)
nsIContent* content = localContent ? localContent : aParentContent; nsIContent* content = localContent ? localContent : aParentContent;
nsStyleContext* parentContext; nsStyleContext* parentContext;
@ -1195,6 +1203,8 @@ nsFrameManager::ReResolveStyleContext(nsPresContext *aPresContext,
else if (pseudoTag) { else if (pseudoTag) {
// XXXldb This choice of pseudoContent seems incorrect for anon // XXXldb This choice of pseudoContent seems incorrect for anon
// boxes and perhaps other cases. // boxes and perhaps other cases.
// See also the comment above the assertion at the start of this
// function.
nsIContent* pseudoContent = nsIContent* pseudoContent =
aParentContent ? aParentContent : localContent; aParentContent ? aParentContent : localContent;
if (pseudoTag == nsCSSPseudoElements::before || if (pseudoTag == nsCSSPseudoElements::before ||