Closed Bug 842114 Opened 11 years ago Closed 7 years ago

"ASSERTION: How did we getting here, then?" with filter

Categories

(Core :: SVG, defect)

x86_64
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla54
Tracking Status
firefox51 --- wontfix
firefox52 --- wontfix
firefox-esr52 --- wontfix
firefox53 --- wontfix
firefox54 --- fixed

People

(Reporter: jruderman, Assigned: u459114)

References

Details

(Keywords: assertion, testcase)

Attachments

(5 files, 1 obsolete file)

Attached file testcase
###!!! ASSERTION: How did we getting here, then?: 'aFrame->GetParent()->StyleContext()->GetPseudo() == nsCSSAnonBoxes::mozAnonymousBlock', file layout/svg/nsSVGIntegrationUtils.cpp, line 109
Blocks: randomstyles
I refreshed the source of Thunderbird (COMM-CENTRAL) this morning(June 04), and after compiling the source, I found the DEBUG BUILD produced so many warning lines as follows during the run  of "make mozmill" test that I had to quit it half way:

"###!!! ASSERTION: How did we getting here, then?: 'aFrame->GetParent()->StyleContext()->GetPseudo() == nsCSSAnonBoxes::mozAnonymousBlock', file /TEST-MAIL-DIR/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp, line 110"  (/TEST-MAIL-DIR/comm-central is my local directory where I placed the source files.)

I am attaching the first three such cases with fixed stacktrace so that someone in the know can figure out what the problem is.
I hope it would be fixed soon.

Of the 221 such warnings I obtained after quitting "make mozmill" half way (only after a few minutes),
I think all the warnings have the stacktrace that ended in
the following sequence:

###!!! ASSERTION: How did we getting here, then?: 'aFrame->GetParent()->StyleContext()->GetPseudo() == nsCSSAnonBoxes::mozAnonymousBlock', file /TEST-MAIL-DIR/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp, line 110
mozilla::FrameProperties::Get(mozilla::FramePropertyDescriptor const*, bool*) const (/TEST-MAIL-DIR/comm-central/mozilla/layout/svg/../base/FramePropertyTable.h:230)
PreEffectsVisualOverflowCollector::AddBox(nsIFrame*) (/TEST-MAIL-DIR/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp:61)
AddBoxesForFrame (/TEST-MAIL-DIR/comm-central/mozilla/layout/base/nsLayoutUtils.cpp:2231)

I hope this helps
.
Follow-up:
When I ran the mozmill test in the middle of May using the slightly older source files, I didn't see this warning at all.

The version back then was as follows (with a series of local patches)

/COMM-CENTRAL/comm-central
hg identify
f5c604808e8a 828587.patch/qtip/tip

/COMM-CENTRAL/comm-central/mozilla
hg identify
84655c1fb8f0 jsinterpret-uninitialized.patch/qtip/tip
I suspect that the change(s) that introduced this assertion problem(?) happened
in the month of May sometime. (I think I updated my source at the beginning of May or at the end of April.) 
I wonder how I can check for the version that introduced it.
(Is it possible that the assertion() was introduced in COMM-CENTRAL source tree in May [and that the problem that triggered this already was there?] ?)
Look like something that could have been added by m-c.
Maybe you can use hg blame on the file that has the message to see where it was added.
(In reply to :aceman from comment #4)
> Look like something that could have been added by m-c.
> Maybe you can use hg blame on the file that has the message to see where it
> was added.

I will try to do so in the next several days.
Strange, nobody else seemed to have complained about this after running "make mozmill" (?)
Confirming the message appears many times when running mozmill tests of Thunderbird.
I analyzed the code where NS_ASSERTION is triggered.
( comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp )

I am attaching a modified code for nsSVGIntegrationUtils.cpp.

The modification is based on the following observation.

Here is the snippet of the original code with my comments inserted.
I broke down the original block comment into several paragraphs for
easy readability.

69 private:
70 
71   static nsRect GetPreEffectsVisualOverflowRect(nsIFrame* aFrame) {
72     nsRect* r = static_cast<nsRect*>
73       (aFrame->Properties().Get(nsIFrame::PreEffectsBBoxProperty()));
74     if (r) {
75       return *r;
76     }

       CI: comment, when we reach here, we don't seem to have
       PreEffectsBBoxPropery for this |aFrame|.

77     // Despite the fact that we're invoked for frames with SVG effects applied,
78     // we can actually get here. 

       /// All continuations and special siblings of a
79     // frame with SVG effects applied will have the PreEffectsBBoxProperty
80     // property set on them. Therefore, the frames that are passed to us will
81     // always have that property set...

       // well, with one exception. If the frames
82     // for an element with SVG effects applied have been subject to an "IB
83     // split", then the block frame(s) that caused the split will have been
84     // wrapped in anonymous, inline-block, nsBlockFrames of pseudo-type
85     // nsCSSAnonBoxes::mozAnonymousBlock. 

       CI comment:
       So according to the above paragraph, now that we reach here
       (we don't seem to have  PreEffectsBBoxPropery for this |aFrame|)
        we must be in the midst of this exceptional case.

	Note that the AddBoxForFrame function (in the file
	comm-central/source/mozilla/layout/base/nsLayoutUtils.cpp )
	that calls this routine handles three other AnonymousBlock cases,
	and so maybe we have to update the above paragraph?

       // These "special sibling" anonymous
86     // blocks will have the PreEffectsBBoxProperty property set on them, but
87     // they will never be passed to us. 

       CI comment: AddBoxForFrame in the file https://mxr.mozilla.org/comm-central/source/mozilla/layout/base/nsLayoutUtils.cpp seems to try hard NOT to
       pass a nsIFrame that has one of the following property, 
       	    mozAnonymousBlock. 
       	    mozAnonymousPositionedBlock
	    moaMathMLAnonymousBlock
	    mozXULAnonymousBlock

       So maybe we need to update the description in the original 85th
       line to reflect this.
       
       And I think this is crucial to shut up the NS_ASSERTION() in
       line 108 below. (But that is not enough from my subsequent testing.)

Quote: https://mxr.mozilla.org/comm-central/source/mozilla/layout/base/nsLayoutUtils.cpp#2221
2221   } else if (pseudoType == nsCSSAnonBoxes::mozAnonymousBlock ||
2222              pseudoType == nsCSSAnonBoxes::mozAnonymousPositionedBlock ||
2223              pseudoType == nsCSSAnonBoxes::mozMathMLAnonymousBlock ||
2224              pseudoType == nsCSSAnonBoxes::mozXULAnonymousBlock) {
2225     for (nsIFrame* kid = aFrame->GetFirstPrincipalChild(); kid; kid = kid->GetNextSibling()) {
2226       AddBoxesForFrame(kid, aCallback);
2227     }

       // Instead, we'll be passed the block
88     // children that they wrap, which don't have the PreEffectsBBoxProperty
89     // property set on them. 

       CI comment: Except that we now reach here meaning that 
       PreEffectsBBoxPropery is not set (the check on the original
       73th line failed).

       // This is actually okay. What we care about is
90     // collecting the _pre_ effects visual overflow rects of the frames to
91     // which the SVG effects have been applied. Since the IB split results in
92     // any overflow rect adjustments for transforms, effects, etc. taking
93     // place on the anonymous block wrappers, the wrapped children are left
94     // with their overflow rects unaffected. In other words, calling
95     // GetVisualOverflowRect() on the children will return their pre-effects
96     // visual overflow rects, just as we need.
97     //
98     // A couple of tests that demonstrate the IB split and cause us to get here
99     // are:
100     //
101     //  * reftests/svg/svg-integration/clipPath-html-06.xhtml
102     //  * reftests/svg/svg-integration/clipPath-html-06-extref.xhtml
103     //
104     // If we ever got passed a frame with the PreTransformOverflowAreasProperty
105     // property set, that would be bad, since then our GetVisualOverflowRect()
106     // call would give us the post-effects, and post-transform, overflow rect.
107     //

	CI comment: the last paragraph (104-106) above suggests that
	we should check if "PreTransformOverflowAreasPropety" is set
	and warn us. This is done in 111-113.
	And  my initial run of "make mozmill" test of Debug BUILD of
	TB (C-C)  which I had to stop only after a
	few minutes because of voluminus traceback caused by the line
	108 immediately below did NOT trigger the assertion in 111 AT ALL.
	So that is a good indication after all.

	If aFrame's parent has mozAnonymousBlock property (or the other
	three cases unmentioned in the original comment), 
	the aFrame does NOT have PreEffectsBBoxPropery as
	explained in the original line 88-89 (and that is why we come
	here, I think.) 

	So I think the NS_ASSERTION below ought to have the
	single check (==) changed into A SERIES OF "==" CHECKS to account for
	the unmentioned missing *Anonymousblock* cases.
	[This is not enough. We have other cases where
	PreEffectBBoxPropery is missing from what I found out in the
	test run. But not sure what type of parent property or properties are
	causing this.]

108     NS_ASSERTION(aFrame->GetParent()->StyleContext()->GetPseudo() ==
109                    nsCSSAnonBoxes::mozAnonymousBlock,
110                  "How did we getting here, then?");

	CI comment: So I would change the above NS_ASSERTION() to 
	account for the missing undescribed *AnonymousBlock* cases.
	Maybe if the NS_ASSERTION below triggers, we may want to know
	whether the parent has mozAnonymousBlock property or not or
	print the value as integer for analysis.
 
	So I would suggest to print the property value of the parent
	if the next assertion fails.

111     NS_ASSERTION(!aFrame->Properties().Get(
112                    aFrame->PreTransformOverflowAreasProperty()),
113                  "GetVisualOverflowRect() won't return the pre-effects rect!");
114     return aFrame->GetVisualOverflowRect();
115   }

Attached is the patch that is based on the analysis and the suggestion
above.

And I ran the "make mozmill" test suite of COMM-CENTRAL Thunderbird
and looked at the first part.

I could reduce the # of NS_ASSERTION() trigger about half
(From  225  to 135)
for the initial part of test runs in "make mozmill".
(I compared the number of NS_ASSERTIONs from an earlier run
where I stopped "make mozmill" of TB (comm-central) only after a few
minutes, and the number of NS_ASSERTIONs in a new run to the
corresponding test target.)

So there ARE anonymous block cases other than
nsCSSAnonBoxes::mozAnonymousBlock as handled above.
So the modification of NS_ASSERTION() for checking the "anonymity" of
the parent frame
reduced the triggers. 

But There are many other cases where other blocks that has *NON* AnonmousBlock
property is passed and still they don't have PreEffectsBBoxProperty().
This is based on the observation 
of the first part from the session log from the "make mozmill"
test of the modified Thunderbird (C-C)
I see  the output only from 
NS_WARNING ("aFrame->GetParent->StyleContext->GetPseudo(): Not *AnonymousBlock*"),
and not from
NS_WARNING("aFrame->GetParent->StyleContext->GetPseudo(): *AnonymousBlock*");

The above is what I found out so far with the attached patch.

NEXT STEP: Suggestion for the future debugging is welcome.

Should I proceed in this direction to figure out
what PROPERTIES these mysterious blocks have?

Or does anyone have an insight why Firefox (M-C) and Thunderbird (C-C)
seem to use the same library infrastructure, but generate
different data structures with different properites?
(I assume so. Otherwise, Firefox testers would have complained by now,
or they simply don't care for the verbose output from DEBUG BUILD
thunderbird)

TIA

PS: I notice that the NS_ASSERTION() seems to be triggered rather
easily when 3-pane classic folder/subject/mail body windows appear and
we move down the subject line one by one (and if the mail has
an attachment, especially). This gives a lot of stacktrace of
NS_ASSERTIONs.
(Of course, probably it is also triggered under other situations.
Just a casual observation.)


PPS: I am putting Jonathan Watt in the request feedback info field since he
seems to have been the author of this part of the code according to hg blame.
Attachment #760066 - Flags: feedback?
Attachment #760066 - Flags: feedback? → feedback?(jwatt)
Attachment #760066 - Flags: feedback?(jwatt) → feedback?(roc)
Comment on attachment 760066 [details] [diff] [review]
Attempt to reduce the NS_ASSERTION triggers and find out the property of mysterious block

Review of attachment 760066 [details] [diff] [review]:
-----------------------------------------------------------------

::: layout/svg/nsSVGIntegrationUtils.cpp
@@ +131,5 @@
> +      NS_ASSERTION( pseudo == nsCSSAnonBoxes::mozAnonymousBlock ||
> +                    pseudo == nsCSSAnonBoxes::mozAnonymousPositionedBlock ||
> +                    pseudo == nsCSSAnonBoxes::mozMathMLAnonymousBlock ||
> +                    pseudo == nsCSSAnonBoxes::mozXULAnonymousBlock ,
> +                    "How did we get here, then?");

This entire block should be #ifdef DEBUG. Don't want to call GetPseduo if we don't need to.

@@ +150,5 @@
> +             pseudo == nsCSSAnonBoxes::mozMathMLAnonymousBlock ||
> +             pseudo == nsCSSAnonBoxes::mozXULAnonymousBlock )
> +          NS_WARNING("aFrame->GetParent->StyleContext->GetPseudo(): *AnonymousBlock*");
> +        else
> +          NS_WARNING ("aFrame->GetParent->StyleContext->GetPseudo(): Not *AnonymousBlock*");

I'm not sure how these warnings are going to help us make progress on this bug. If we have a testcase that reliably triggers the "how did we get here, then?" assertion, we should able to debug the testcase to figure out the problem.

The rest of the patch looks good though.
I have been able to reproduce this in a nightly debug Firefox build, by opening the Addon Manager window (Tools / Add-ons) and clicking "disable" on an add-on (I have seen the message with both the Adblock Plus and Collusion add-ons).
(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #8)
> Comment on attachment 760066 [details] [diff] [review]
> Attempt to reduce the NS_ASSERTION triggers and find out the property of
> mysterious block
> 
> Review of attachment 760066 [details] [diff] [review]:

Thank you for the review. I will create a cleaned-up patch (as a matter of fact, I created a renewed patch to see if the blocks that triggered assertions have easy-to-identify
*NON* AnonmousBlock property, but could not figure out. The unknown property didn't match the compared properties. [That these properties are represented by values that are NOT compile-time constants make it a little difficult to figure out what is going on.
There is a reason that the check is of the form , " pseudo == nsCSSAnonBoxes::mozAnonymousBlock" instead of "switch(pseudo) { case nsCSSAnonBoxes::mozAnonymousBlock: ...; break; etc } ", ]


(In reply to :Irving Reid from comment #9)
> I have been able to reproduce this in a nightly debug Firefox build, by
> opening the Addon Manager window (Tools / Add-ons) and clicking "disable" on
> an add-on (I have seen the message with both the Adblock Plus and Collusion
> add-ons).

this is good. I wonder if someone can run firefox debug build and
place a breakpoint and figure out what is causing the assertion/warning to be produced.

During thunderbird "make mozmill" test run (batch style), there are cases
where something (non anonymous block or whatever is triggering the assertion.
However, when I invoked thunderbird as a standalone program from the console in an interactive fashion, i.e., just as I would use it normally, I could not trigger the assertion at all
even though I tried by mimicking the operations when the assertions were triggered (like trying to show the names of attachments in the messages, etc.). 
I may not have tried hard enough or there may be some rituals (a set of steps) before I can re-produce the condition to trigger the assertions in thunderbird.

That a simple step is found in Firegox is a good news. Maybe someone can figure out what is going there.


TIA
The second cut for the patch.
The assertion check is in #if DEBUG/#endif block.

But, I made a very lengthy addition. I tried to check the property values
of mysterious blocks to some known values: I did this because the property values
seem to be non-compile time constant (you can't use it after 'case' for example.
This means that it is not quite obvious to decipher the printed value during gdb debugging, etc. So I tried to check the values to some known values in the source code (within #if DEBUG/#endif). Unfortunately, TB's "make mozmill" test suggests that the values do not match any of the tested values. So there is something really strange going on.

Someone who can build Firefox easily on his/her computer ought to check the
DEBUG BUILD with this patch and see if something gets printed.

TIA
Attachment #760066 - Attachment is obsolete: true
Attachment #760066 - Flags: feedback?(roc)
Attachment #771564 - Flags: review?(roc)
Comment on attachment 771564 [details] [diff] [review]
Attempt to reduce the NS_ASSERTION triggers and find out the property of mysterious block  (2nd cut)

Review of attachment 771564 [details] [diff] [review]:
-----------------------------------------------------------------

If you want to add logging code to print the pseudo, why not just do that directly? Example code for extracting the string for an atom, here:
http://lxr.mozilla.org/mozilla-central/source/gfx/thebes/gfxPlatform.cpp#1068
(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #12)
> Comment on attachment 771564 [details] [diff] [review]
> Attempt to reduce the NS_ASSERTION triggers and find out the property of
> mysterious block  (2nd cut)
> 
> Review of attachment 771564 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> If you want to add logging code to print the pseudo, why not just do that
> directly? Example code for extracting the string for an atom, here:
> http://lxr.mozilla.org/mozilla-central/source/gfx/thebes/gfxPlatform.cpp#1068

Why not, indeed. Thank you for the tips.

So from the look of the code below, I could do
something like 
  nsIAtom *pseudo = ...
  
  nsAutoCString lstr;
  pseudo->ToUTF8String(lstr);
  ... here we can use lstr.get() to look at UTF8 string ??? ...

Referenced code.

1062 eFontPrefLang
1063 gfxPlatform::GetFontPrefLangFor(nsIAtom *aLang)
1064 {
1065     if (!aLang)
1066         return eFontPrefLang_Others;
1067     nsAutoCString lang;
1068     aLang->ToUTF8String(lang);
1069     return GetFontPrefLangFor(lang.get()); <--- This is not our concern now,
1070 }                                               I think.
1071 
1072 const char*
1073 gfxPlatform::GetPrefLangName(eFontPrefLang aLang)
1074 {
1075     if (uint32_t(aLang) < uint32_t(eFontPrefLang_AllCount))
1076         return gPrefLangNames[uint32_t(aLang)];
1077     return nullptr;
1078 }
1079
A quick preview of what I find.

I used the following code to print, hopefully, something useful.

--- snip ---
#if DEBUG
    // The whole test is surrounded in DEBUG now.
    {
      nsIAtom *pseudo;
      nsAutoCString lstr;

      pseudo = aFrame->GetParent()->StyleContext()->GetPseudo();

      pseudo->ToUTF8String(lstr);

      NS_ASSERTION( pseudo == nsCSSAnonBoxes::mozAnonymousBlock ||
                    pseudo == nsCSSAnonBoxes::mozAnonymousPositionedBlock ||
                    pseudo == nsCSSAnonBoxes::mozMathMLAnonymousBlock ||
                    pseudo == nsCSSAnonBoxes::mozXULAnonymousBlock ,
                    "How did we get here, then?");

      NS_WARNING("we get the following property.:");
      NS_WARNING(lstr.get());

    }
   [...]

--- snip end.

To my surprise, I got a segfault.
The reason is, gasp, pseudo was NULL (!)


So my guess is that either someone has forgotten to set proper property value
for some Atoms (or maybe that NULL should be special-cased and handled separately, i.e., there is nothing TB could do in this case, and it should forget about drawing optimization?).

Anyway, this code that seems to try to optimize some redrawing / drawing operation
is either buggy or that the warning code has forgotten about this possibility of
pseudo becomes NULL.

TIA

Below is the stack trace when TB segfaulted during "make mozmill" test run.

(gdb) where
#0  0x40021424 in __kernel_vsyscall ()
#1  0x40268c36 in nanosleep () at ../sysdeps/unix/syscall-template.S:81
#2  0x40268a63 in __sleep (seconds=0) at ../sysdeps/unix/sysv/linux/sleep.c:137
#3  0x409ffe1a in ah_crap_handler (signum=11)
    at /COMM-CENTRAL/comm-central/mozilla/toolkit/xre/nsSigHandlers.cpp:88
#4  0x40a0e11f in nsProfileLock::FatalSignalHandler (signo=11, info=0xbf9e7e0c, 
    context=0xbf9e7e8c)
    at /TEST-MAIL-DIR/objdir-tb3/mozilla/toolkit/profile/nsProfileLock.cpp:190
#5  <signal handler called>
#6  PreEffectsVisualOverflowCollector::GetPreEffectsVisualOverflowRect (aFrame=aFrame@entry=
    0xb5afe60) at /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp:136
#7  0x41b08b64 in PreEffectsVisualOverflowCollector::AddBox (this=0xbf9e8310, 
    aFrame=0xb5afe60)
    at /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp:61
#8  0x40e68951 in AddBoxesForFrame (aFrame=aFrame@entry=0xb5afe60, 
    aCallback=aCallback@entry=0xbf9e8310)
    at /COMM-CENTRAL/comm-central/mozilla/layout/base/nsLayoutUtils.cpp:2229
#9  0x40e6e417 in nsLayoutUtils::GetAllInFlowBoxes (aFrame=aFrame@entry=0xb5afe60, 
    aCallback=aCallback@entry=0xbf9e8310)
    at /COMM-CENTRAL/comm-central/mozilla/layout/base/nsLayoutUtils.cpp:2237
#10 0x41b07a59 in GetPreEffectsVisualOverflowUnion (
    aFirstContinuation=aFirstContinuation@entry=0xb5afe60, 
    aCurrentFrame=aCurrentFrame@entry=0x0, aCurrentFramePreEffectsOverflow=..., 
    aFirstContinuationToUserSpace=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp:282
#11 0x41b09547 in nsSVGIntegrationUtils::GetSVGBBoxForNonSVGFrame (
    aNonSVGFrame=aNonSVGFrame@entry=0xb5afe60)
    at /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp:353
#12 0x41b2bcf4 in nsSVGUtils::GetBBox (aFrame=aFrame@entry=0xb5afe60, aFlags=aFlags@entry=2)
    at /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGUtils.cpp:1239
#13 0x41af430b in nsAutoFilterInstance::nsAutoFilterInstance (this=0xbf9e884c, 
    aTarget=0xb5afe60, aFilterFrame=0xb80c210, aPaint=0x0, aPostFilterDirtyRect=0xbf9e88a0, 
    aPreFilterDirtyRect=0x0, aPreFilterVisualOverflowRectOverride=0x0, aOverrideBBox=0x0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGFilterFrame.cpp:150
#14 0x41af47d7 in nsSVGFilterFrame::GetPreFilterNeededArea (this=this@entry=0xb80c210, 
    aFilteredFrame=aFilteredFrame@entry=0xb5afe60, aPostFilterDirtyRect=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGFilterFrame.cpp:490
#15 0x41b09a24 in nsSVGIntegrationUtils::GetRequiredSourceForInvalidArea (
    aFrame=aFrame@entry=0xb5afe60, aDirtyRect=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp:494
#16 0x40f2afa4 in nsIFrame::BuildDisplayListForStackingContext (this=this@entry=0xb5afe60, 
    aBuilder=aBuilder@entry=0xbf9ee530, aDirtyRect=..., aList=aList@entry=0xbf9e8b88)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:1810
#17 0x40f2c170 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xb5afec8, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xb5afe60, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2132
#18 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xb5afec8, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#19 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xb5afec8, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#20 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xb5afa58, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xb5afec8, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#21 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xb5afa58, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#22 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xb5afa58, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#23 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xb5af988, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xb5afa58, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#24 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xb5af988, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#25 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xb5af988, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#26 0x40f2cc13 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa5b4dc8, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xb5af988, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=4)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2161
#27 0x40ee339d in DisplayLine (aBuilder=aBuilder@entry=0xbf9ee530, aLineArea=..., 
    aDirtyRect=..., aLine=..., aDepth=aDepth@entry=0, aDrawnLines=@0xbf9e98d4: 0, 
    aLists=..., aFrame=aFrame@entry=0xa5b4dc8, aTextOverflow=aTextOverflow@entry=0x0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsBlockFrame.cpp:6162
#28 0x40eed36a in nsBlockFrame::BuildDisplayList (this=0xa5b4dc8, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsBlockFrame.cpp:6252
#29 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa5b4b48, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa5b4dc8, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#30 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa5b4b48, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#31 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa5b4b48, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#32 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa5b3bb8, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa5b4b48, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#33 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa5b3bb8, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#34 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa5b3bb8, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#35 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=0xa5b3c28, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=0xa5b3bb8, aDirtyRect=..., aLists=..., 
    aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#36 0x40f4ae3e in nsGfxScrollFrameInner::BuildDisplayList (this=this@entry=0xa5b3ca4, 
    aBuilder=aBuilder@entry=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsGfxScrollFrame.cpp:2212
#37 0x40f4b221 in nsXULScrollFrame::BuildDisplayList (this=0xa5b3c28, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsGfxScrollFrame.h:643
#38 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa5b3930, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa5b3c28, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#39 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa5b3930, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#40 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa5b3930, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#41 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa5a92f0, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa5b3930, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#42 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa5a92f0, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#43 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa5a92f0, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#44 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa504480, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa5a92f0, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#45 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa504480, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#46 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa504480, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#47 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa503d80, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa504480, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#48 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa503d80, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#49 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa503d80, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#50 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=0xa503df0, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=0xa503d80, aDirtyRect=..., aLists=..., 
    aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#51 0x40f4ae3e in nsGfxScrollFrameInner::BuildDisplayList (this=this@entry=0xa503e6c, 
    aBuilder=aBuilder@entry=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsGfxScrollFrame.cpp:2212
#52 0x40f4b221 in nsXULScrollFrame::BuildDisplayList (this=0xa503df0, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsGfxScrollFrame.h:643
#53 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa503ae8, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa503df0, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#54 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa503ae8, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#55 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa503ae8, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#56 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa4b5de0, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa503ae8, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#57 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa4b5de0, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#58 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa4b5de0, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#59 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa4b5ca8, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa4b5de0, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#60 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa4b5ca8, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#61 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa4b5ca8, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#62 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa497b10, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa4b5ca8, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#63 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa497b10, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#64 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa497b10, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#65 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa49f328, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa497b10, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#66 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa49f328, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#67 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa49f328, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#68 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa49ef78, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=0xa49f328, aDirtyRect=..., aLists=..., 
    aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#69 0x4111c5cc in nsDeckFrame::BuildDisplayListForChildren (this=0xa49ef78, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsDeckFrame.cpp:170
#70 0x410f5899 in nsBoxFrame::BuildDisplayList (this=this@entry=0xa49ef78, 
    aBuilder=aBuilder@entry=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#71 0x4111c125 in nsDeckFrame::BuildDisplayList (this=0xa49ef78, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsDeckFrame.cpp:154
#72 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa49e828, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa49ef78, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#73 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa49e828, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#74 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa49e828, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#75 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa49e6a0, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa49e828, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#76 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa49e6a0, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#77 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa49e6a0, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#78 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0xa48fd18, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa49e6a0, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#79 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0xa48fd18, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#80 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0xa48fd18, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#81 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0x977fcc8, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0xa48fd18, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#82 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0x977fcc8, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#83 0x410f5899 in nsBoxFrame::BuildDisplayList (this=0x977fcc8, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1325
#84 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0x977faa8, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=aChild@entry=0x977fcc8, aDirtyRect=..., 
    aLists=..., aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#85 0x410f375e in nsBoxFrame::BuildDisplayListForChildren (this=0x977faa8, 
    aBuilder=0xbf9ee530, aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsBoxFrame.cpp:1359
#86 0x410f8d98 in nsRootBoxFrame::BuildDisplayList (this=0x977faa8, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/xul/base/src/nsRootBoxFrame.cpp:212
#87 0x40f2c5b2 in nsIFrame::BuildDisplayListForChild (this=this@entry=0x977f4f8, 
    aBuilder=aBuilder@entry=0xbf9ee530, aChild=0x977faa8, aDirtyRect=..., aLists=..., 
    aFlags=aFlags@entry=0)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:2148
#88 0x40fb69e7 in ViewportFrame::BuildDisplayList (this=0x977f4f8, aBuilder=0xbf9ee530, 
    aDirtyRect=..., aLists=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsViewportFrame.cpp:74
#89 0x40f2b0a5 in nsIFrame::BuildDisplayListForStackingContext (this=this@entry=0x977f4f8, 
    aBuilder=aBuilder@entry=0xbf9ee530, aDirtyRect=..., aList=aList@entry=0xbf9ee484)
    at /COMM-CENTRAL/comm-central/mozilla/layout/generic/nsFrame.cpp:1827
#90 0x40e753a4 in nsLayoutUtils::PaintFrame (aRenderingContext=aRenderingContext@entry=0x0, 
    aFrame=aFrame@entry=0x977f4f8, aDirtyRegion=..., aBackstop=aBackstop@entry=4294967295, 
    aFlags=aFlags@entry=772)
    at /COMM-CENTRAL/comm-central/mozilla/layout/base/nsLayoutUtils.cpp:1970
#91 0x40e9eec6 in PresShell::Paint (this=0x977e838, aViewToPaint=aViewToPaint@entry=
    0x977e608, aDirtyRegion=..., aFlags=aFlags@entry=1)
    at /COMM-CENTRAL/comm-central/mozilla/layout/base/nsPresShell.cpp:5592
#92 0x4163500b in nsViewManager::ProcessPendingUpdatesForView (this=this@entry=0x977e5d8, 
    aView=0x977e608, aFlushDirtyRegion=aFlushDirtyRegion@entry=true)
    at /COMM-CENTRAL/comm-central/mozilla/view/src/nsViewManager.cpp:402
#93 0x416353d9 in nsViewManager::ProcessPendingUpdates (this=this@entry=0x977e5d8)
    at /COMM-CENTRAL/comm-central/mozilla/view/src/nsViewManager.cpp:1116
#94 0x40eadfec in nsRefreshDriver::Tick (this=this@entry=0x977dee8, 
    aNowEpoch=1373078201174854, aNowTime=...)
    at /COMM-CENTRAL/comm-central/mozilla/layout/base/nsRefreshDriver.cpp:1225
#95 0x40eae862 in TickDriver (now=..., jsnow=1373078201174854, driver=0x977dee8)
    at /COMM-CENTRAL/comm-central/mozilla/layout/base/nsRefreshDriver.cpp:171
#96 mozilla::RefreshDriverTimer::Tick (this=this@entry=0x9613098)
    at /COMM-CENTRAL/comm-central/mozilla/layout/base/nsRefreshDriver.cpp:163
#97 0x40eae952 in mozilla::RefreshDriverTimer::TimerTick (aTimer=aTimer@entry=0x96140a8, 
    aClosure=0x9613098)
    at /COMM-CENTRAL/comm-central/mozilla/layout/base/nsRefreshDriver.cpp:188
#98 0x42b9cebc in nsTimerImpl::Fire (this=0x96140a8)
    at /COMM-CENTRAL/comm-central/mozilla/xpcom/threads/nsTimerImpl.cpp:543
#99 0x42b9d2d0 in nsTimerEvent::Run (this=0x46700e50)
    at /COMM-CENTRAL/comm-central/mozilla/xpcom/threads/nsTimerImpl.cpp:627
#100 0x42b967a7 in nsThread::ProcessNextEvent (this=0x8e86770, mayWait=true, 
    result=0xbf9eeec0) at /COMM-CENTRAL/comm-central/mozilla/xpcom/threads/nsThread.cpp:627
#101 0x42bbcd14 in NS_InvokeByIndex ()
   from /TEST-MAIL-DIR/objdir-tb3/mozilla/dist/bin/libxul.so
#102 0x41c796e9 in Invoke (this=0xbf9eee88)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:2938
#103 CallMethodHelper::Call (this=this@entry=0xbf9eee88)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:2273
#104 0x41c7a0eb in XPCWrappedNative::CallMethod (ccx=..., 
    mode=mode@entry=XPCWrappedNative::CALL_METHOD)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:2239
#105 0x41c81bef in XPC_WN_CallMethod (cx=0xb1b9578, argc=1, vp=0x46a018a0)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1485
#106 0x4315f71c in js::CallJSNative (cx=0xb1b9578, 
    native=0x41c819a4 <XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:349
#107 0x4316f1ee in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:395
#108 0x431689d9 in js::Interpret (cx=cx@entry=0xb1b9578, 
    entryFrame=entryFrame@entry=0x46a01850, interpMode=interpMode@entry=js::JSINTERP_NORMAL, 
    useNewType=useNewType@entry=false)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2218
#109 0x4316e3d8 in js::RunScript (cx=cx@entry=0xb1b9578, fp=0x46a01850)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:352
#110 0x4316f109 in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408
#111 0x4316fa56 in js::Invoke (cx=cx@entry=0xb1b9578, thisv=..., fval=..., argc=1, 
    argv=0x46a01830, rval=0x46a01820)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:441
#112 0x4332c147 in js::DirectProxyHandler::call (
    this=this@entry=0x448beea8 <js::CrossCompartmentWrapper::singleton>, 
    cx=cx@entry=0xb1b9578, proxy=proxy@entry=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:479
#113 0x433bb87b in js::CrossCompartmentWrapper::call (
    this=0x448beea8 <js::CrossCompartmentWrapper::singleton>, cx=0xb1b9578, wrapper=..., 
    args=...) at /COMM-CENTRAL/comm-central/mozilla/js/src/jswrapper.cpp:446
#114 0x4332f370 in js::Proxy::call (cx=cx@entry=0xb1b9578, proxy=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:2611
#115 0x4332f468 in proxy_Call (cx=0xb1b9578, argc=1, vp=0x46a01820)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:3175
#116 0x4315f71c in js::CallJSNative (cx=0xb1b9578, 
    native=0x4332f3fe <proxy_Call(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:349
#117 0x4316f2da in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:388
#118 0x431689d9 in js::Interpret (cx=cx@entry=0xb1b9578, 
    entryFrame=entryFrame@entry=0x46a01758, interpMode=interpMode@entry=js::JSINTERP_NORMAL, 
    useNewType=useNewType@entry=false)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2218
#119 0x4316e3d8 in js::RunScript (cx=cx@entry=0xb1b9578, fp=0x46a01758)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:352
#120 0x4316f109 in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408
#121 0x4316fa56 in js::Invoke (cx=cx@entry=0xb1b9578, thisv=..., fval=..., argc=3, 
    argv=0x46a01710, rval=0x46a01700)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:441
#122 0x4332c147 in js::DirectProxyHandler::call (
    this=this@entry=0x448beea8 <js::CrossCompartmentWrapper::singleton>, 
    cx=cx@entry=0xb1b9578, proxy=proxy@entry=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:479
#123 0x433bb87b in js::CrossCompartmentWrapper::call (
    this=0x448beea8 <js::CrossCompartmentWrapper::singleton>, cx=0xb1b9578, wrapper=..., 
    args=...) at /COMM-CENTRAL/comm-central/mozilla/js/src/jswrapper.cpp:446
#124 0x4332f370 in js::Proxy::call (cx=cx@entry=0xb1b9578, proxy=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:2611
#125 0x4332f468 in proxy_Call (cx=0xb1b9578, argc=3, vp=0x46a01700)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:3175
#126 0x4315f71c in js::CallJSNative (cx=0xb1b9578, 
    native=0x4332f3fe <proxy_Call(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:349
#127 0x4316f2da in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:388
#128 0x431689d9 in js::Interpret (cx=cx@entry=0xb1b9578, 
    entryFrame=entryFrame@entry=0x46a016b8, interpMode=interpMode@entry=js::JSINTERP_NORMAL, 
    useNewType=useNewType@entry=false)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2218
#129 0x4316e3d8 in js::RunScript (cx=cx@entry=0xb1b9578, fp=0x46a016b8)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:352
#130 0x4316f109 in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408
#131 0x4316fa56 in js::Invoke (cx=cx@entry=0xb1b9578, thisv=..., fval=..., argc=1, 
    argv=0x46a01688, rval=0x46a01678)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:441
#132 0x4332c147 in js::DirectProxyHandler::call (
    this=this@entry=0x448beea8 <js::CrossCompartmentWrapper::singleton>, 
    cx=cx@entry=0xb1b9578, proxy=proxy@entry=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:479
#133 0x433bb87b in js::CrossCompartmentWrapper::call (
    this=0x448beea8 <js::CrossCompartmentWrapper::singleton>, cx=0xb1b9578, wrapper=..., 
    args=...) at /COMM-CENTRAL/comm-central/mozilla/js/src/jswrapper.cpp:446
#134 0x4332f370 in js::Proxy::call (cx=cx@entry=0xb1b9578, proxy=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:2611
#135 0x4332f468 in proxy_Call (cx=0xb1b9578, argc=1, vp=0x46a01678)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:3175
#136 0x4315f71c in js::CallJSNative (cx=0xb1b9578, 
    native=0x4332f3fe <proxy_Call(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:349
#137 0x4316f2da in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:388
#138 0x431689d9 in js::Interpret (cx=cx@entry=0xb1b9578, 
    entryFrame=entryFrame@entry=0x46a01638, interpMode=interpMode@entry=js::JSINTERP_NORMAL, 
    useNewType=useNewType@entry=false)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2218
#139 0x4316e3d8 in js::RunScript (cx=cx@entry=0xb1b9578, fp=0x46a01638)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:352
#140 0x4316f109 in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408
#141 0x4316fa56 in js::Invoke (cx=cx@entry=0xb1b9578, thisv=..., fval=..., argc=1, 
    argv=0x46a01618, rval=0x46a01608)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:441
#142 0x4332c147 in js::DirectProxyHandler::call (
    this=this@entry=0x448beea8 <js::CrossCompartmentWrapper::singleton>, 
    cx=cx@entry=0xb1b9578, proxy=proxy@entry=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:479
#143 0x433bb87b in js::CrossCompartmentWrapper::call (
    this=0x448beea8 <js::CrossCompartmentWrapper::singleton>, cx=0xb1b9578, wrapper=..., 
    args=...) at /COMM-CENTRAL/comm-central/mozilla/js/src/jswrapper.cpp:446
#144 0x4332f370 in js::Proxy::call (cx=cx@entry=0xb1b9578, proxy=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:2611
#145 0x4332f468 in proxy_Call (cx=0xb1b9578, argc=1, vp=0x46a01608)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:3175
#146 0x4315f71c in js::CallJSNative (cx=0xb1b9578, 
    native=0x4332f3fe <proxy_Call(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:349
#147 0x4316f2da in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:388
#148 0x431689d9 in js::Interpret (cx=cx@entry=0xb1b9578, 
    entryFrame=entryFrame@entry=0x46a012e8, interpMode=interpMode@entry=js::JSINTERP_NORMAL, 
    useNewType=useNewType@entry=false)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2218
#149 0x4316e3d8 in js::RunScript (cx=cx@entry=0xb1b9578, fp=0x46a012e8)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:352
#150 0x4316f109 in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408
#151 0x4329b536 in js_fun_apply (cx=0xb1b9578, argc=2, vp=0x46a012a8)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsfun.cpp:1002
#152 0x4315f71c in js::CallJSNative (cx=0xb1b9578, 
    native=0x4329b220 <js_fun_apply(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:349
#153 0x4316f1ee in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:395
#154 0x4316fa56 in js::Invoke (cx=cx@entry=0xb1b9578, thisv=..., fval=..., argc=2, 
    argv=0x46a01298, rval=0x46a01288)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:441
#155 0x4332c147 in js::DirectProxyHandler::call (
    this=this@entry=0x448beea8 <js::CrossCompartmentWrapper::singleton>, 
    cx=cx@entry=0xb1b9578, proxy=proxy@entry=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:479
#156 0x433bb87b in js::CrossCompartmentWrapper::call (
    this=0x448beea8 <js::CrossCompartmentWrapper::singleton>, cx=0xb1b9578, wrapper=..., 
    args=...) at /COMM-CENTRAL/comm-central/mozilla/js/src/jswrapper.cpp:446
#157 0x4332f370 in js::Proxy::call (cx=cx@entry=0xb1b9578, proxy=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:2611
#158 0x4332f468 in proxy_Call (cx=0xb1b9578, argc=2, vp=0x46a01288)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:3175
#159 0x4315f71c in js::CallJSNative (cx=0xb1b9578, 
    native=0x4332f3fe <proxy_Call(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:349
#160 0x4316f2da in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:388
#161 0x431689d9 in js::Interpret (cx=cx@entry=0xb1b9578, 
    entryFrame=entryFrame@entry=0x46a011e0, interpMode=interpMode@entry=js::JSINTERP_NORMAL, 
    useNewType=useNewType@entry=false)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2218
#162 0x4316e3d8 in js::RunScript (cx=cx@entry=0xb1b9578, fp=0x46a011e0)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:352
#163 0x4316f109 in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408
#164 0x4316fa56 in js::Invoke (cx=cx@entry=0xb1b9578, thisv=..., fval=..., argc=3, 
    argv=0x46a011a0, rval=0x46a01190)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:441
#165 0x4332c147 in js::DirectProxyHandler::call (
    this=this@entry=0x448beea8 <js::CrossCompartmentWrapper::singleton>, 
    cx=cx@entry=0xb1b9578, proxy=proxy@entry=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:479
#166 0x433bb87b in js::CrossCompartmentWrapper::call (
    this=0x448beea8 <js::CrossCompartmentWrapper::singleton>, cx=0xb1b9578, wrapper=..., 
    args=...) at /COMM-CENTRAL/comm-central/mozilla/js/src/jswrapper.cpp:446
#167 0x4332f370 in js::Proxy::call (cx=cx@entry=0xb1b9578, proxy=..., args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:2611
#168 0x4332f468 in proxy_Call (cx=0xb1b9578, argc=3, vp=0x46a01190)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsproxy.cpp:3175
#169 0x4315f71c in js::CallJSNative (cx=0xb1b9578, 
    native=0x4332f3fe <proxy_Call(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:349
#170 0x4316f2da in js::Invoke (cx=cx@entry=0xb1b9578, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:388
#171 0x431689d9 in js::Interpret (cx=cx@entry=0xb1b9578, 
    entryFrame=entryFrame@entry=0x46a01158, interpMode=interpMode@entry=js::JSINTERP_NORMAL, 
    useNewType=useNewType@entry=false)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2218
#172 0x4316e3d8 in js::RunScript (cx=cx@entry=0xb1b9578, fp=0x46a01158)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:352
#173 0x4316e87a in js::ExecuteKernel (cx=cx@entry=0xb1b9578, script=..., scopeChainArg=..., 
    thisv=..., type=type@entry=js::EXECUTE_GLOBAL, evalInFrame=evalInFrame@entry=..., 
    result=result@entry=0xbf9f2008)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:537
#174 0x4316ebad in js::Execute (cx=0xb1b9578, script=script@entry=..., scopeChainArg=..., 
    rval=rval@entry=0xbf9f2008)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:577
#175 0x4322908f in JS::Evaluate (cx=cx@entry=0xb1b9578, obj=obj@entry=..., options=..., 
    chars=0xb1b9378, length=length@entry=201, rval=rval@entry=0xbf9f2008)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsapi.cpp:5687
#176 0x41c27b05 in xpc_EvalInSandbox (cx=cx@entry=0x91279d0, 
    sandboxArg=sandboxArg@entry=..., source=..., 
    filename=0x911fec8 "resource://jsbridge/modules/server.js", lineNo=283, 
    jsVersion=jsVersion@entry=JSVERSION_DEFAULT, 
    returnStringOnly=returnStringOnly@entry=false, rval=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCComponents.cpp:3943
#177 0x41c2c2cc in nsXPCComponents_Utils::EvalInSandbox (this=0x970a230, source=..., 
    sandboxVal=..., version=..., filenameVal=..., lineNumber=0, cx=0x91279d0, 
    optionalArgc=0 '\000', retval=0xbf9f2340)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCComponents.cpp:3882
#178 0x42bbcd14 in NS_InvokeByIndex ()
   from /TEST-MAIL-DIR/objdir-tb3/mozilla/dist/bin/libxul.so
#179 0x41c796e9 in Invoke (this=0xbf9f22a8)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:2938
#180 CallMethodHelper::Call (this=this@entry=0xbf9f22a8)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:2273
#181 0x41c7a0eb in XPCWrappedNative::CallMethod (ccx=..., 
    mode=mode@entry=XPCWrappedNative::CALL_METHOD)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:2239
#182 0x41c81bef in XPC_WN_CallMethod (cx=0x91279d0, argc=2, vp=0x46a010f8)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1485
#183 0x4315f71c in js::CallJSNative (cx=0x91279d0, 
    native=0x41c819a4 <XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*)>, args=...)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:349
#184 0x4316f1ee in js::Invoke (cx=cx@entry=0x91279d0, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:395
#185 0x431689d9 in js::Interpret (cx=cx@entry=0x91279d0, 
    entryFrame=entryFrame@entry=0x46a01050, interpMode=interpMode@entry=js::JSINTERP_NORMAL, 
    useNewType=useNewType@entry=false)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2218
#186 0x4316e3d8 in js::RunScript (cx=cx@entry=0x91279d0, fp=0x46a01050)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:352
#187 0x4316f109 in js::Invoke (cx=cx@entry=0x91279d0, args=..., 
    construct=construct@entry=js::NO_CONSTRUCT)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:408
#188 0x4316fa56 in js::Invoke (cx=cx@entry=0x91279d0, thisv=..., fval=..., 
    argc=argc@entry=5, argv=argv@entry=0xbf9f2b98, rval=rval@entry=0xbf9f2ad8)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:441
#189 0x4322aeab in JS_CallFunctionValue (cx=cx@entry=0x91279d0, objArg=0x4cf87160, fval=..., 
    argc=argc@entry=5, argv=argv@entry=0xbf9f2b98, rval=rval@entry=0xbf9f2ad8)
    at /COMM-CENTRAL/comm-central/mozilla/js/src/jsapi.cpp:5883
#190 0x41c6ae32 in nsXPCWrappedJSClass::CallMethod (this=0x9895aa0, wrapper=0x9a89918, 
    methodIndex=5, info_=0x8f30650, nativeParams=0xbf9f2d68)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedJSClass.cpp:1434
#191 0x41c62f59 in nsXPCWrappedJS::CallMethod (this=0x9a89918, methodIndex=5, 
    info=0x8f30650, params=0xbf9f2d68)
    at /COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedJS.cpp:573
#192 0x42bbd8fd in PrepareAndDispatch (methodIndex=<optimized out>, self=0x9ae3a30, 
    args=<optimized out>)
    at /COMM-CENTRAL/comm-central/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp:60
#193 0x40b1f363 in nsInputStreamPump::OnStateTransfer (this=this@entry=0x9707478)
    at /COMM-CENTRAL/comm-central/mozilla/netwerk/base/src/nsInputStreamPump.cpp:484
#194 0x40b2097f in nsInputStreamPump::OnInputStreamReady (this=0x9707478, stream=0x9ae3814)
    at /COMM-CENTRAL/comm-central/mozilla/netwerk/base/src/nsInputStreamPump.cpp:372
#195 0x42b76b5a in nsInputStreamReadyEvent::Run (this=0xb18b340)
    at /COMM-CENTRAL/comm-central/mozilla/xpcom/io/nsStreamUtils.cpp:82
#196 0x42b967a7 in nsThread::ProcessNextEvent (this=0x8e86770, mayWait=true, 
    result=0xbf9f2faf) at /COMM-CENTRAL/comm-central/mozilla/xpcom/threads/nsThread.cpp:627
#197 0x42b2572f in NS_ProcessNextEvent (thread=<optimized out>, mayWait=mayWait@entry=true)
    at /TEST-MAIL-DIR/objdir-tb3/mozilla/xpcom/build/nsThreadUtils.cpp:238
#198 0x426adba2 in mozilla::ipc::MessagePump::Run (this=0x8e7adc8, aDelegate=0x8e7af48)
    at /COMM-CENTRAL/comm-central/mozilla/ipc/glue/MessagePump.cpp:117
#199 0x42be357f in MessageLoop::RunInternal (this=this@entry=0x8e7af48)
    at /COMM-CENTRAL/comm-central/mozilla/ipc/chromium/src/base/message_loop.cc:219
#200 0x42be359b in MessageLoop::RunHandler (this=this@entry=0x8e7af48)
    at /COMM-CENTRAL/comm-central/mozilla/ipc/chromium/src/base/message_loop.cc:212
#201 0x42be38fa in MessageLoop::Run (this=0x8e7af48)
    at /COMM-CENTRAL/comm-central/mozilla/ipc/chromium/src/base/message_loop.cc:186
#202 0x420c47e3 in nsBaseAppShell::Run (this=0x9126ff8)
    at /COMM-CENTRAL/comm-central/mozilla/widget/xpwidgets/nsBaseAppShell.cpp:163
#203 0x41ddcf06 in nsAppStartup::Run (this=0x9168100)
    at /COMM-CENTRAL/comm-central/mozilla/toolkit/components/startup/nsAppStartup.cpp:269
#204 0x409fbdb3 in XREMain::XRE_mainRun (this=this@entry=0xbf9f32d4)
    at /COMM-CENTRAL/comm-central/mozilla/toolkit/xre/nsAppRunner.cpp:3851
#205 0x409fd42a in XREMain::XRE_main (this=this@entry=0xbf9f32d4, argc=argc@entry=6, 
    argv=argv@entry=0xbf9f4574, aAppData=aAppData@entry=0x8e1d158)
    at /COMM-CENTRAL/comm-central/mozilla/toolkit/xre/nsAppRunner.cpp:3919
#206 0x409fd7fd in XRE_main (argc=6, argv=0xbf9f4574, aAppData=0x8e1d158, aFlags=0)
    at /COMM-CENTRAL/comm-central/mozilla/toolkit/xre/nsAppRunner.cpp:4121
#207 0x0804af5d in do_main (argv=0xbf9f4574, argc=6, 
    exePath=0xbf9f34a8 "/TEST-MAIL-DIR/objdir-tb3/mozilla/dist/bin/")
    at /COMM-CENTRAL/comm-central/mail/app/nsMailApp.cpp:113
#208 main (argc=6, argv=0xbf9f4574) at /COMM-CENTRAL/comm-central/mail/app/nsMailApp.cpp:211
(gdb) up
#1  0x40268c36 in nanosleep () at ../sysdeps/unix/syscall-template.S:81
81	../sysdeps/unix/syscall-template.S: そのようなファイルやディレクトリはありません.
(gdb) up
#2  0x40268a63 in __sleep (seconds=0) at ../sysdeps/unix/sysv/linux/sleep.c:137
137	../sysdeps/unix/sysv/linux/sleep.c: そのようなファイルやディレクトリはありません.
(gdb) up
#3  0x409ffe1a in ah_crap_handler (signum=11)
    at /COMM-CENTRAL/comm-central/mozilla/toolkit/xre/nsSigHandlers.cpp:88
88	  sleep(_gdb_sleep_duration);
(gdb) up
#4  0x40a0e11f in nsProfileLock::FatalSignalHandler (signo=11, info=0xbf9e7e0c, 
    context=0xbf9e7e8c)
    at /TEST-MAIL-DIR/objdir-tb3/mozilla/toolkit/profile/nsProfileLock.cpp:190
190	            oldact->sa_handler(signo);
(gdb) up
#5  <signal handler called>
(gdb) up
#6  PreEffectsVisualOverflowCollector::GetPreEffectsVisualOverflowRect (
    aFrame=aFrame@entry=0xb5afe60)
    at /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp:136
136	      pseudo->ToUTF8String(lstr);
(gdb) print pseudo
$1 = (nsIAtom *) 0x0
(gdb)
I ran "make mozmill" of DEBUG BUILD of TB and found that
all the cases where the assertion, 
"###!!! ASSERTION: How did we get here, then?", 
is triggered are caused by psuedo being NULL, i.e.,

      pseudo = aFrame->GetParent()->StyleContext()->GetPseudo();

is NULL.

There were 229 times where the assertions were triggered 
during "make mozmill" run.
And pseudo was NULL exactly the same numbers of times.

    229 ###!!! ASSERTION: How did we get here, then?: 'pseudo == nsCSSAnonBoxes::mozAnonymousBlock || pseudo == nsCSSAnonBoxes::mozAnonymousPositionedBlock || pseudo == nsCSSAnonBoxes::mozMathMLAnonymousBlock || pseudo == nsCSSAnonBoxes::mozXULAnonymousBlock', file /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp, line 140

    229 WARNING: pseudo is NULL: file /COMM-CENTRAL/comm-central/mozilla/layout/svg/nsSVGIntegrationUtils.cpp, line 143

Hope this helps debugging the issue.

TIA
Thinking that pseudo is NULL is not handled, and such value seems to be out of order,
I think function AddBoxesForFrame() may need a rewrite.

https://mxr.mozilla.org/comm-central/source/mozilla/layout/base/nsLayoutUtils.cpp#2207

static void
2207 AddBoxesForFrame(nsIFrame* aFrame,
2208                  nsLayoutUtils::BoxCallback* aCallback)
2209 {
2210   nsIAtom* pseudoType = aFrame->StyleContext()->GetPseudo();
2211 
2212   if (pseudoType == nsCSSAnonBoxes::tableOuter) {
2213     AddBoxesForFrame(aFrame->GetFirstPrincipalChild(), aCallback);
2214     nsIFrame* kid = aFrame->GetFirstChild(nsIFrame::kCaptionList);
2215     if (kid) {
2216       AddBoxesForFrame(kid, aCallback);
2217     }
2218   } else if (pseudoType == nsCSSAnonBoxes::mozAnonymousBlock ||
2219              pseudoType == nsCSSAnonBoxes::mozAnonymousPositionedBlock ||
2220              pseudoType == nsCSSAnonBoxes::mozMathMLAnonymousBlock ||
2221              pseudoType == nsCSSAnonBoxes::mozXULAnonymousBlock) {
2222     for (nsIFrame* kid = aFrame->GetFirstPrincipalChild(); kid; kid = kid->GetNextSibling()) {
2223       AddBoxesForFrame(kid, aCallback);
2224     }
2225   } else {
2226     aCallback->AddBox(aFrame);
2227   }
2228 }

But the code is not commented and the logic seems rather warped, and
the major coding was done in 2008(?), and not sure if the original author may be
still around.

But I am requesting feedback from roc@ocallahan.org:

The big question is this: 

Should we not handle the special case where pseudo can be NULL in the above function. If pseudo MUST NOT be NULL when the function is called, then
we need to figure out where such object is created. (Maybe in the rewrite that took place in the last several months...)
The pseudo is NULL case seems to cause some assertion code to trigger as in
the original reporter and comment 1. 

TIA
Flags: needinfo?(roc)
(In reply to ISHIKAWA, Chiaki from comment #16)

> But the code is not commented and the logic seems rather warped, and
> the major coding was done in 2008(?), and not sure if the original author
> may be
> still around.

Aha, it looks to me that most of the coding was originally done by
Robert after all (!)

Your comment will be appreciated.

TIA
I'm juggling many critical bugs. I don't have time to debug this bug myself, sorry.
Flags: needinfo?(roc)
(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #18)
> I'm juggling many critical bugs. I don't have time to debug this bug myself,
> sorry.

Thank you for the response. I will wait and see. From what I read in the comments,
this bug or strange warning may be related to a potential redrawing bug or
performance regression, so can wait for a later review, I suspect.

Thank you again for your time.
See Also: → 1030604
See Also: 1030604
Roc, any time to look at this now?
Flags: needinfo?(roc)
Why is it important? If it happens in Thunderbird mozmill tests, can't you change the test files so it doesn't happen? I assume it's becuse the filter is a child of its own style which seems a poor way to write svg, so why not fix that.
Flags: needinfo?(acelists)
Sure, if you can show us on the Firefox case (comment 9) the pattern of what to do.
Flags: needinfo?(acelists)
The attached testcase no longer asserts for me on Win10 with m-c tip. Same for you, Jesse?
Flags: needinfo?(jruderman)
Flags: in-testsuite?
Try says we're still hitting it.
https://treeherder.mozilla.org/logviewer.html#?job_id=12838576&repo=try
Flags: needinfo?(jruderman)
Assignee: nobody → cku
Attachment #8833299 - Flags: review?(cam)
Attachment #8833300 - Flags: review?(cam)
Comment on attachment 8833299 [details]
Bug 842114 - Part 1. Correct assert condition and promote NS_ASSERTION to MOZ_ASSERT.

https://reviewboard.mozilla.org/r/109554/#review114018

Sorry for the delay.

::: layout/svg/nsSVGIntegrationUtils.cpp:58
(Diff revision 2)
>     * frame property lookup - these arguments are optional.
>     */
>    PreEffectsVisualOverflowCollector(nsIFrame* aFirstContinuation,
>                                      nsIFrame* aCurrentFrame,
> -                                    const nsRect& aCurrentFrameOverflowArea)
> +                                    const nsRect& aCurrentFrameOverflowArea,
> +                                    bool aCheckPreEffectsBBoxPropChache)

s/Chache/Cache/ (here and in other parts of the patch).

::: layout/svg/nsSVGIntegrationUtils.cpp:118
(Diff revision 2)
>      //
>      // If we ever got passed a frame with the PreTransformOverflowAreasProperty
>      // property set, that would be bad, since then our GetVisualOverflowRect()
>      // call would give us the post-effects, and post-transform, overflow rect.
>      //
> -    // There are two more exceptions:
> +    // There are one more exceptions, in

s/are/is/
Attachment #8833299 - Flags: review?(cam) → review+
Comment on attachment 8833300 [details]
Bug 842114 - Part 2. Crash test.

https://reviewboard.mozilla.org/r/109556/#review114022

::: layout/base/crashtests/crashtests.list:485
(Diff revision 3)
>  load 1288608.html
>  load 1299736-1.html
>  load 1308793.svg
>  load 1308848-1.html
>  load 1308848-2.html
> +load 842114.html

Please put this in sorted (numerical) order, earlier in the file.
Attachment #8833300 - Flags: review?(cam) → review+
Pushed by cku@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/95eabf0aa83b
Part 1. Correct assert condition and promote NS_ASSERTION to MOZ_ASSERT. r=heycam
https://hg.mozilla.org/integration/mozilla-inbound/rev/d50d32601e7f
Part 2. Crash test. r=heycam
I had to back these out because they were causing conflicts while attempting to merge inbound to mozilla-central. Could you rebase and reland, please?

https://hg.mozilla.org/mozilla-central/rev/95eabf0aa83b
Flags: needinfo?(cku)
Backout by kwierso@gmail.com:
https://hg.mozilla.org/mozilla-central/rev/09a2cd12ac20
Backed out 2 changesets for causing merge conflicts while merging to m-c a=backout
Pushed by cku@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a5e1766d377c
Part 1. Correct assert condition and promote NS_ASSERTION to MOZ_ASSERT. r=heycam
https://hg.mozilla.org/integration/autoland/rev/965637a1da6f
Part 2. Crash test. r=heycam
Rebase and checkin again
Flags: needinfo?(cku)
https://hg.mozilla.org/mozilla-central/rev/a5e1766d377c
https://hg.mozilla.org/mozilla-central/rev/965637a1da6f
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
Is this worth backporting to 53 or should we let it ride the 54 train?
Flags: needinfo?(cku)
Flags: in-testsuite?
Flags: in-testsuite+
Probably not
Flags: needinfo?(cku)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: