Assert This! – Top Site Assertions, October 27, 2007

Assert This! – Top Site Assertions, October 27, 2007

No matter where you go, Jesse’s been there already.

During some top site testing of about 7,500 pages with a debug Minefield build on Linux over the weekend, I ran into the following assertions ordered by decreasing count. This should give some idea of the frequency of each in the wild.

2939 ASSERTION: Computed overflow area must contain frame bounds: ‘aNewSize.width == 0 || aNewSize.height == 0 || aOverflowArea->Contains(nsRect(nsPoint(0, 0), aNewSize))’, file 1.9.0/mozilla/layout/generic/nsFrame.cpp, line 5222
1756 ASSERTION: bad argument: ‘(aRight > mLeft) && (aRight < mRight)’, file 1.9.0/mozilla/layout/generic/nsSpaceManager.cpp, line 1403
1333 ASSERTION: no user stylesheets in styleset, but we have one!: ‘numBefore > 0’, file 1.9.0/mozilla/layout/base/nsPresShell.cpp, line 1826
751 ASSERTION: invalid divisor: ‘Error’, file 1.9.0/mozilla/layout/tables/nsTableFrame.cpp, line 3287
345 ASSERTION: didn’t subtract all that we added: ‘totalSPref == 0 && totalSMin == 0 && totalSNonPctPref == 0 && nonPctCount == 0 && minOutsidePref == 0 && minWithinPref == 0 && (info.prefCoord == 0 || info.prefCoord == nscoord_MAX) && (info.prefPercent == 0.0f || !spanHasNonPct)’, file 1.9.0/mozilla/layout/tables/BasicTableLayoutStrategy.cpp, line 531
271 ASSERTION: nscoord addition will reach or pass nscoord_MAX: ‘(PRInt64)a + (PRInt64)b < (PRInt64)nscoord_MAX’, file ../../dist/include/gfx/nsCoord.h, line 153
258 ASSERTION: unconstrained widths no longer supported: ‘aContainingBlockWidth != NS_UNCONSTRAINEDSIZE’, file 1.9.0/mozilla/layout/base/nsLayoutUtils.cpp, line 1641
257 ASSERTION: Doing nscoord addition with values > nscoord_MAX: ‘a < nscoord_MAX && b < nscoord_MAX’, file ../../dist/include/gfx/nsCoord.h, line 151
211 ASSERTION: bad width: ‘Not Reached’, file 1.9.0/mozilla/layout/generic/nsLineLayout.cpp, line 177
204 ASSERTION: cannot call on a dirty frame not currently being reflowed: ‘!NS_SUBTREE_DIRTY(this) || (GetStateBits() & NS_FRAME_IN_REFLOW)’, file 1.9.0/mozilla/layout/generic/nsFrame.cpp, line 556
132 ASSERTION: shouldn’t use unconstrained widths anymore: ‘availableWidth != NS_UNCONSTRAINEDSIZE’, file 1.9.0/mozilla/layout/generic/nsHTMLReflowState.cpp, line 302
132 ASSERTION: nsStreamLoader not thread-safe: ‘_mOwningThread.GetThread() == PR_GetCurrentThread()’, file 1.9.0/mozilla/netwerk/base/src/nsStreamLoader.cpp, line 65
111 ASSERTION: RefreshURIList timer callbacks should only be RefreshTimer objects: ‘rt’, file 1.9.0/mozilla/docshell/base/nsDocShell.cpp, line 4635
93 ASSERTION: update-band called late: ‘psd->mX == psd->mLeftEdge’, file 1.9.0/mozilla/layout/generic/nsLineLayout.cpp, line 307
90 ASSERTION: shouldn’t have unconstrained widths anymore: ‘psd->mRightEdge != NS_UNCONSTRAINEDSIZE’, file 1.9.0/mozilla/layout/generic/nsLineLayout.cpp, line 815
48 ASSERTION: shouldn’t have unconstrained widths anymore: ‘NS_UNCONSTRAINEDSIZE != aReflowState.availableWidth’, file 1.9.0/mozilla/layout/generic/nsLineLayout.cpp, line 1099
45 ASSERTION: XPConnect is being called on a scope without a ‘Components’ property!
36 ASSERTION: Should be in an update while destroying frames: ‘mUpdateCount != 0’, file 1.9.0/mozilla/layout/base/nsCSSFrameConstructor.cpp, line 9572
35 ASSERTION: Adding child where we already have a child? This will likely misbehave: ‘Error’, file 1.9.0/mozilla/docshell/shistory/src/nsSHEntry.cpp, line 594
30 ASSERTION: deleting dirty buffer: ‘mBufDirty == PR_FALSE’, file 1.9.0/mozilla/netwerk/cache/src/nsDiskCacheStreams.cpp, line 750
30 ASSERTION: Unhandled border style!!: ‘Not Reached’, file 1.9.0/mozilla/layout/base/nsCSSRendering.cpp, line 1928
30 ASSERTION: Non-border-colors case with borderColorStyleCount < 1 or > 3; what happened?: ‘Error’, file 1.9.0/mozilla/layout/base/nsCSSRendering.cpp, line 2112
30 ASSERTION: Flush() failed: ‘NS_SUCCEEDED(rv)’, file 1.9.0/mozilla/netwerk/cache/src/nsDiskCacheStreams.cpp, line 461
30 ASSERTION: Failed to position iterator!: ‘NS_SUCCEEDED(rv)’, file 1.9.0/mozilla/content/base/src/nsContentIterator.cpp, line 997
27 ASSERTION: RemovedAsPrimaryFrame called after PreDestroy: ‘PR_FALSE’, file 1.9.0/mozilla/layout/forms/nsTextControlFrame.cpp, line 1202
22 ASSERTION: iconv failed: ‘Error’, file 1.9.0/mozilla/xpcom/io/nsNativeCharsetUtils.cpp, line 572
14 ASSERTION: intrinsic widths out of order: ‘aMinCoord <= aPrefCoord’, file 1.9.0/mozilla/layout/tables/nsTableColFrame.h, line 190
14 ASSERTION: PushBack: ‘Not Reached’, file 1.9.0/mozilla/netwerk/protocol/http/src/nsHttpConnection.h, line 117
13 ASSERTION: bad width: ‘metrics.width>=0’, file 1.9.0/mozilla/layout/generic/nsLineLayout.cpp, line 956
12 ASSERTION: this shouldn’t happen anymore: ‘NS_UNCONSTRAINEDSIZE != aComputedWidth && NS_UNCONSTRAINEDSIZE != aAvailWidth’, file 1.9.0/mozilla/layout/generic/nsHTMLReflowState.cpp, line 1924
12 ASSERTION: shouldn’t use unconstrained widths anymore: ‘(mFrameType == NS_CSS_FRAME_TYPE_INLINE && !frame->IsFrameOfType(nsIFrame::eReplaced)) || frame->GetType() == nsGkAtoms::textFrame || mComputedWidth != NS_UNCONSTRAINEDSIZE’, file 1.9.0/mozilla/layout/generic/nsHTMLReflowState.cpp, line 323
11 ASSERTION: Shouldn’t have pending bindings!: ‘mAttachedStack.Length() == 0’, file 1.9.0/mozilla/content/xbl/src/nsBindingManager.cpp, line 913
10 ASSERTION: invalid BC damage area: ‘PR_FALSE’, file 1.9.0/mozilla/layout/tables/nsTableFrame.cpp, line 3861
8 ASSERTION: evictionRank out of sync: ‘evictionRank == mapRecord->EvictionRank()’, file 1.9.0/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp, line 484
7 ASSERTION: no frame, see bug #188946: ‘frame’, file 1.9.0/mozilla/editor/libeditor/base/nsEditor.cpp, line 4159
7 ASSERTION: didn’t subtract all that we added: ‘space == 0 && ((l2t == FLEX_PCT_LARGE) ? (-0.001f < basis.f && basis.f < 0.001f) : (basis.c == 0 || basis.c == nscoord_MAX))’, file 1.9.0/mozilla/layout/tables/BasicTableLayoutStrategy.cpp, line 1013
7 ASSERTION: can’t mark frame dirty during reflow: ‘!mIsReflowing’, file 1.9.0/mozilla/layout/base/nsPresShell.cpp, line 3132
6 ASSERTION: no unconstrained widths should be present anymore: ‘NS_UNCONSTRAINEDSIZE != aReflowState.ComputedWidth()’, file 1.9.0/mozilla/layout/generic/nsBlockReflowState.cpp, line 113
6 ASSERTION: This shouldn’t be called anymore: ‘Not Reached’, file 1.9.0/mozilla/layout/generic/nsLineLayout.cpp, line 2437
5 ASSERTION: subshell not in the map: ‘shellContent’, file 1.9.0/mozilla/docshell/base/nsDocShell.cpp, line 3782
4 ASSERTION: storage allocated for zero data size: ‘!mBinding->mRecord.DataLocationInitialized()’, file 1.9.0/mozilla/netwerk/cache/src/nsDiskCacheStreams.cpp, line 372
4 ASSERTION: cannot call on a dirty frame not currently being reflowed: ‘!NS_SUBTREE_DIRTY(this) || (GetStateBits() & NS_FRAME_IN_REFLOW)’, file 1.9.0/mozilla/layout/generic/nsFrame.cpp, line 583
4 ASSERTION: Uh, LeaveModalState() called w/o a reachable top window?: ‘Error’, file 1.9.0/mozilla/dom/src/base/nsGlobalWindow.cpp, line 5219
4 ASSERTION: Failed to create scaled font: ‘cairo_scaled_font_status(scaledFont) == CAIRO_STATUS_SUCCESS’, file 1.9.0/mozilla/gfx/thebes/src/gfxPangoFonts.cpp, line 672
3 ASSERTION: nsNSSComponent relies on profile manager to wait for synchronous shutdown of all network activity: ‘mIsNetworkDown’, file 1.9.0/mozilla/security/manager/ssl/src/nsNSSComponent.cpp, line 2311
2 ASSERTION: unexpected progress values: ‘progress <= progressMax’, file 1.9.0/mozilla/netwerk/protocol/http/src/nsHttpChannel.cpp, line 4483
1 ASSERTION: More UnblockOnload() calls than BlockOnload() calls; dropping call: ‘Not Reached’, file 1.9.0/mozilla/content/base/src/nsDocument.cpp, line 5625
1 ASSERTION: CachedChromeStream doesn’t receive data: ‘Not Reached’, file 1.9.0/mozilla/content/xul/document/src/nsXULDocument.cpp, line 4339

YASU 0.0.2.10

Yet another Spider update version 0.0.2.10.

This version reworks the external script loader used to load user hook scripts to work around issues with the Gecko 1.8 branch and trunk. Due to changes in how eval works on the trunk, the previous version 0.0.2.8 changed from using XMLHttpRequest to load external scripts and scope.eval to evaluate the script in the appropriate scope to using the JSSubScriptLoader. However this caused problems on the 1.8 branch where the scripts were not always loaded. I’ve therefore moved to a hybrid approach where XMLHttpRequest/eval are used on the 1.8 branch while JSSubScriptLoader is still used on the trunk. Let me know if you have any issues with this release.

If you are already a user of Spider in Firefox, you can simply update the extension via the add-ons menu, otherwise you can download it.

Housekeeping

I’ve changed the category for Spider on this blog to be a top level category which is no longer part of the Mozilla category tree. This should keep YASU announcements from polluting Planet Mozilla where they are out of place.