Closed Bug 43549 Opened 24 years ago Closed 23 years ago

crash if a text node is the first or last child of a <tree>

Categories

(Core :: XUL, defect, P3)

defect

Tracking

()

VERIFIED WORKSFORME
Future

People

(Reporter: jrgmorrison, Assigned: hyatt)

Details

(Keywords: crash, Whiteboard: [nsbeta2-][nsbeta3-])

Overview Description:
  The following is the root cause of http://bugscape/show_bug.cgi?id=1232
  That bug was fixed by removing some stray text that had been inserted 
  into the file. However, this crash can still occur. 

  Basically, if a text node is the first or last child of a <tree>, a 
  crash will occur (and it looks like box/grid layout is somewhat confused).

Steps to Reproduce:
1) load the following XUL into the browser

----------------------------------------------------------------------
<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window 
  xmlns:html="http://www.w3.org/1999/xhtml"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

      <tree>
        <treecolgroup><treecol flex="1"/><treecol flex="1"/></treecolgroup>
        <treechildren flex="1">
          <treerow>
            <treecell><text value="foo"/></treecell>
            <treecell><text value="bar"/></treecell>
          </treerow>
        </treechildren>
someText
      </tree>

</window>
----------------------------------------------------------------------

Actual Results  : crashes
Expected Results: probably that the text node should be "ejected" 
                  from the <tree> or simply ignored/removed from the 
                  content.

Reproducibility: always (if a text node if first or last child of <tree>

Build Date & Platform Bug Found:
  2000062211 win95
  2000062120 mac
  2000062120 linux
  
Additional Information:
 
Stack trace from a Talkback incident:

nsGridLayout::GetOtherTemple 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsGridLayout.cpp, line 99] 
nsMonumentLayout::GetOtherTemple 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsMonumentLayout.cpp, line 
555] 
nsMonumentLayout::GetOtherTemple 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsMonumentLayout.cpp, line 
555] 
nsObeliskLayout::GetMinSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsObeliskLayout.cpp, line 144] 
nsContainerBox::GetMinSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 484] 
nsBoxFrame::GetMinSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 759] 
nsSprocketLayout::GetMinSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsSprocketLayout.cpp, line 
1199] 
nsTempleLayout::GetMinSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsTempleLayout.cpp, line 241] 
nsContainerBox::GetMinSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 484] 
nsBoxFrame::GetMinSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 759] 
nsStackLayout::GetMinSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsStackLayout.cpp, line 123] 
nsContainerBox::GetMinSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 484] 
nsBoxFrame::GetMinSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 759] 
nsContainerBox::GetPrefSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 456] 
nsBoxFrame::GetPrefSize 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 721] 
nsSprocketLayout::PopulateBoxSizes 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsSprocketLayout.cpp, line 
690] 
nsSprocketLayout::Layout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsSprocketLayout.cpp, line 
142] 
nsContainerBox::Layout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 558] 
nsBoxFrame::Layout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 825] 
nsStackLayout::Layout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsStackLayout.cpp, line 245] 
nsContainerBox::Layout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 558] 
nsBoxFrame::Layout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 825] 
nsBoxFrame::Reflow 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 676] 
nsRootBoxFrame::Reflow 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsRootBoxFrame.cpp, line 211] 
nsContainerFrame::ReflowChild 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 
716] 
ViewportFrame::Reflow 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsViewportFrame.cpp, line 
546] 
PresShell::InitialReflow 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 1689] 
nsXULDocument::StartLayout 
[d:\builds\seamonkey\mozilla\rdf\content\src\nsXULDocument.cpp, line 4165] 
nsXULDocument::ResumeWalk 
[d:\builds\seamonkey\mozilla\rdf\content\src\nsXULDocument.cpp, line 5482] 
nsXULDocument::EndLoad 
[d:\builds\seamonkey\mozilla\rdf\content\src\nsXULDocument.cpp, line 1600] 
XULContentSinkImpl::DidBuildModel 
[d:\builds\seamonkey\mozilla\rdf\content\src\nsXULContentSink.cpp, line 556] 
CWellFormedDTD::DidBuildModel 
[d:\builds\seamonkey\mozilla\htmlparser\src\nsWellFormedDTD.cpp, line 315] 
nsParser::DidBuildModel 
[d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp, line 1068] 
nsParser::ResumeParse [d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp, 
line 1588] 
nsParser::EnableParser 
[d:\builds\seamonkey\mozilla\htmlparser\src\nsParser.cpp, line 1171] 
CSSLoaderImpl::Cleanup 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSLoader.cpp, line 747] 
CSSLoaderImpl::SheetComplete 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSLoader.cpp, line 817] 
CSSLoaderImpl::Cleanup 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSLoader.cpp, line 728] 
CSSLoaderImpl::SheetComplete 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSLoader.cpp, line 817] 
CSSLoaderImpl::ParseSheet 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSLoader.cpp, line 852] 
CSSLoaderImpl::DidLoadStyle 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSLoader.cpp, line 888] 
SheetLoadData::OnStreamComplete 
[d:\builds\seamonkey\mozilla\layout\html\style\src\nsCSSLoader.cpp, line 685] 
nsStreamLoader::OnStopRequest 
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsStreamLoader.cpp, line 122] 
nsFileChannel::OnStopRequest 
[d:\builds\seamonkey\mozilla\netwerk\protocol\file\src\nsFileChannel.cpp, line 
630] 
nsOnStopRequestEvent::HandleEvent 
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsAsyncStreamListener.cpp, line
302] 
nsStreamListenerEvent::HandlePLEvent 
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsAsyncStreamListener.cpp, line
106] 
PL_HandleEvent [d:\builds\seamonkey\mozilla\xpcom\threads\plevent.c, line 576] 
PL_ProcessPendingEvents [d:\builds\seamonkey\mozilla\xpcom\threads\plevent.c, 
line 539] 
_md_EventReceiverProc [d:\builds\seamonkey\mozilla\xpcom\threads\plevent.c, 
line 1034] 
KERNEL32.DLL + 0x3663 (0xbff73663) 
KERNEL32.DLL + 0x228e0 (0xbff928e0) 
0x00688b48
should be beta2+ 
Status: NEW → ASSIGNED
Target Milestone: --- → M18
Keywords: crash, nsbeta2
Putting on [nsbeta2+] radar for beta2 fix. 
Whiteboard: [nsbeta2+]
Keywords: nsbeta3
Whiteboard: [nsbeta2+]
Target Milestone: M18 → M21
since the fix for this is pretty easy (*smack*, don't do that), nominating for 
beta3 to get it off our beta2 radar.

we _must_ fix this by rtm, but it's not required for beta2
Whiteboard: [nsbeta2-]
[nsbeta3-] cuz its malformed. -> hyatt
Assignee: evaughan → hyatt
Status: ASSIGNED → NEW
Whiteboard: [nsbeta2-] → [nsbeta2-][nsbeta3-]
Target Milestone: M21 → Future
worksforme
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → WORKSFORME
Time heals...
Status: RESOLVED → VERIFIED
Component: XP Toolkit/Widgets: Trees → XUL
QA Contact: jrgmorrison → xptoolkit.widgets
You need to log in before you can comment on or make changes to this bug.