Closed Bug 107520 Opened 23 years ago Closed 20 years ago

xul textbox in a scrollbox fail to show content - CRASH [@ nsViewManager::UpdateView ]

Categories

(Core :: XUL, defect)

defect
Not set
critical

Tracking

()

RESOLVED DUPLICATE of bug 107518
mozilla1.2alpha

People

(Reporter: wgrinfeld, Assigned: roc)

References

Details

(Keywords: crash, hang, testcase)

Crash Data

Attachments

(1 file)

When an html:input control or xul textbox reside in a scrollbox, their content 
remains invisible -see testcase
Attached file testcase
Whoa, this testcase crashes for me.
2002022603 on WinXP

Severity: normal → critical
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: crash
Summary: xul textbox in a scrollbox fail to show content → xul textbox in a scrollbox fail to show content - CRASH
Any talkback report?

/be
doesn't crash, current 3/1 trunk, win2k.
Oops, forgot the talkback id:
TB3542765X

Crashed for me using build 2002030303 on WinXP
Talkback id: TB3549333X
Thanks. Talkback sez: 

nsViewManager::UpdateView 
[d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 1550] 
nsViewManager::MoveViewTo 
[d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 2315] 
nsContainerFrame::PositionFrameView 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 
472] 
nsContainerFrame::PositionChildViews 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 
847] 
nsBox::SetBounds [d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBox.cpp, 
line 612] 
nsStackLayout::Layout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsStackLayout.cpp, line 328] 
nsContainerBox::DoLayout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 608] 
nsBoxFrame::DoLayout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1207] 
nsBox::Layout [d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBox.cpp, line 
1052] 
nsBoxFrame::Reflow 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1000] 
nsGfxTextControlFrame2::Reflow 
[d:\builds\seamonkey\mozilla\layout\html\forms\src\nsGfxTextControlFrame2.cpp, 
line 2307] 
nsLineLayout::ReflowFrame 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsLineLayout.cpp, line 1087] 
nsBlockFrame::ReflowInlineFrame 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 3737] 
nsBlockFrame::DoReflowInlineFrames 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 3618] 
nsBlockFrame::DoReflowInlineFramesAuto 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 3543] 
nsBlockFrame::ReflowInlineFrames 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 3488] 
nsBlockFrame::ReflowLine 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 2603] 
nsBlockFrame::ReflowDirtyLines 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 2281] 
nsBlockFrame::Reflow 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 846] 
nsBoxToBlockAdaptor::Reflow 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxToBlockAdaptor.cpp, line 
845] 
nsBoxToBlockAdaptor::RefreshSizeCache 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxToBlockAdaptor.cpp, line 
365] 
nsBoxToBlockAdaptor::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxToBlockAdaptor.cpp, line 
572] 
nsSprocketLayout::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsSprocketLayout.cpp, line 
1521] 
nsContainerBox::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 591] 
nsBoxFrame::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1100] 
nsSprocketLayout::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsSprocketLayout.cpp, line 
1521] 
nsContainerBox::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 591] 
nsBoxFrame::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1100] 
nsScrollBoxFrame::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsScrollBoxFrame.cpp, line 
593] 
nsSprocketLayout::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsSprocketLayout.cpp, line 
1521] 
nsContainerBox::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 591] 
nsBoxFrame::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1100] 
nsSprocketLayout::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsSprocketLayout.cpp, line 
1521] 
nsContainerBox::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 591] 
nsBoxFrame::GetAscent 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1100] 
nsSprocketLayout::Layout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsSprocketLayout.cpp, line 
245] 
nsContainerBox::DoLayout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 608] 
nsBoxFrame::DoLayout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1207] 
nsBox::Layout [d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBox.cpp, line 
1052] 
nsStackLayout::Layout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsStackLayout.cpp, line 331] 
nsContainerBox::DoLayout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsContainerBox.cpp, line 608] 
nsBoxFrame::DoLayout 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1207] 
nsBox::Layout [d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBox.cpp, line 
1052] 
nsBoxFrame::Reflow 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsBoxFrame.cpp, line 1000] 
nsRootBoxFrame::Reflow 
[d:\builds\seamonkey\mozilla\layout\xul\base\src\nsRootBoxFrame.cpp, line 243] 
nsContainerFrame::ReflowChild 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsContainerFrame.cpp, line 
805] 
ViewportFrame::Reflow 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsViewportFrame.cpp, line 
574] 
nsHTMLReflowCommand::Dispatch 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsHTMLReflowCommand.cpp, line 
217] 
PresShell::ProcessReflowCommand 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6205] 
PresShell::ProcessReflowCommands 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6260] 
PresShell::FlushPendingNotifications 
[d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5042] 
nsDocument::FlushPendingNotifications 
[d:\builds\seamonkey\mozilla\content\base\src\nsDocument.cpp, line 3414] 
nsXBLResourceLoader::NotifyBoundElements 
[d:\builds\seamonkey\mozilla\content\xbl\src\nsXBLResourceLoader.cpp, line 281] 
nsXBLResourceLoader::StyleSheetLoaded 
[d:\builds\seamonkey\mozilla\content\xbl\src\nsXBLResourceLoader.cpp, line 207] 
CSSLoaderImpl::InsertSheetInDoc 
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 1204] 
InsertPendingSheet 
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 763] 
nsVoidArray::EnumerateForwards 
[d:\builds\seamonkey\mozilla\xpcom\ds\nsVoidArray.cpp, line 909] 
CSSLoaderImpl::AddPendingSheet 
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 1132] 
CSSLoaderImpl::SheetComplete 
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 920] 
CSSLoaderImpl::SheetComplete 
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 920] 
CSSLoaderImpl::ParseSheet 
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 955] 
CSSLoaderImpl::DidLoadStyle 
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 991] 
SheetLoadData::OnStreamComplete 
[d:\builds\seamonkey\mozilla\content\html\style\src\nsCSSLoader.cpp, line 751] 
nsStreamLoader::OnStopRequest 
[d:\builds\seamonkey\mozilla\netwerk\base\src\nsStreamLoader.cpp, line 163] 
How common is this on top sites?  Do you have XBL form controls enabled?  cc hewitt
Keywords: nsbeta1
Peter, from what I can tell, this is purely a toolkit issue and will not affect
HTML page rendering.
->hewitt.  Does it happen in any app needed for mozilla1.0/MachV?
Assignee: hyatt → hewitt
I don't have XBL form controls enabled.
Enabling them: still crashes.
> Does it happen in any app needed for mozilla1.0/MachV?

No, not to my knowledge.
nsbeta1- per Nav triage team, ->1.2
Keywords: nsbeta1nsbeta1-
Target Milestone: --- → mozilla1.2
removing self from cc list
Always crashing from 1.0.x Official to 1.2B CVS.
Please... I need it :-)

<?xml version="1.0" encoding="iso-8859-1" ?>

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

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

    <scrollbox orient="horizontal" style="border:1px solid">
        <textbox id="t" value="sdkcjskcsjcskjcjskdsdckj"/>
    </scrollbox>
    
</window>
This also fails on other operating systems (Linux). I am working with Ariel
Fatecha on this issue.

I am particularly interested in Brian Ryner's comment #8. Brian, we have been
studying the C++ code for a couple days, playing with the debugger, but would
definitely be glad to accept a pointer on this issue. Do you have a suspect code
section? Thanks.
OS: Windows NT → All
This is probably an issue with XUL scrollbox construction building an incorrect
view hierarchy. It's probably a duplicate of bug 165469.
I have readed the comment #10 in bug 151826 by O'Callahan. this bug is the same.
I have reduced testcase:
<scrollbox><html:input value="blabla"/></scrollbox>
I found the method nsScrollBoxFrame::SetInitialChildList is called as many times
as children and one has the scrollbox. 
In this method I added code:
nsScrollBoxFrame::SetInitialChildList(nsIPresContext* aPresContext,
                                   nsIAtom*        aListName,
                                   nsIFrame*       aChildList)
{
  nsIView *thisView, *newParentView, *kidView;
  GetView(aPresContext, &thisView);
  if(nsnull != thisView)
    thisView->GetFirstChild(*&kidView);
  nsresult  rv = nsBoxFrame::SetInitialChildList(aPresContext, aListName,
                                                           aChildList);

  SetUpScrolledFrame(aPresContext);
  nsIFrame frame = mFrame.FirstChild();
  if(!frame) return;
  nsCOMPtr<nsIViewManager> viewManager;
  thisView->GetViewManager(*getter_AddRefs(viewManager));
  frame->GetView(aPresContext, &newParentView);
  if(newParentView){
    while(kidView){
      if(kidView != newParentView){
        viewManager->RemoveChild(*&kidView);
        viewManager->InsertChild(*&newParentView, *&kidView, nsnull, PR_TRUE);
      }
      kidView->GetNextSibling(*&kidView);
    }
  }
  return rv;
}
This code produce that the last child of the scrollbox's children appear
correctly. I have too many calls to nsScrollBoxFrame::SetInitialChildList and I
don't know neither why nor where.
xul:scrollbox hasn't a FinishBuildingScrollFrameMethod, instead makes the same
thing in the last line of nsScrollBoxFrame::SetInitialChildList when calls to
SetUpScrolledFrame. But that would makes a good job if just one called for
scrollbox. Other aspect is the views which want to iter actually aren't
siblings, so I can't iter them. (GetNextSibling() has null value).
Does not creash for me, but the testcase causes Mozilla to hang.  I have to
close the window (which it lets me do), then I have to manually kill mozilla.exe
with task manager.

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040316
Depends on: 165469
Keywords: nsbeta1-hang, testcase
Summary: xul textbox in a scrollbox fail to show content - CRASH → xul textbox in a scrollbox fail to show content - CRASH [@ nsViewManager::UpdateView ]
I think my bug is the same of this bug, i attach my code :

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="user.css" type="text/css"?>

<window onload='onLoad(event);' id="user-window" title="Recherche de fichiers"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
			<arrowscrollbox id="droits_list" orient="vertical" flex="1">
				<groupbox id="xxx" >
					<textbox value="XXXXXXXXXXXXXXX" multiline="true" readonly="true"
style="height:150px;"/>
				</groupbox>
			</arrowscrollbox>
</window>
The attached testcase
(https://bugzilla.mozilla.org/attachment.cgi?id=55712&action=view) crashes my
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; de-DE; rv:1.7.3) Gecko/20041021
Firefox/1.0". Its Talkback-ID "TB1517969E".
-> so its a cross-platform bug.
Hardware: PC → All
(In reply to comment #19)

I have tested this on :

On linux : Mozilla 1.7.3, gentoo build (athlon-xp), firefox 1.0PR, gentoo build
(athlon-xp). 

On windows : Mozilla 1.6 and firefox 1.0PR, WinXP family edition.
Assignee: hewitt → roc
This was fixed by the fix for 107518. Try using a 1.8 trunk build. The next
Firefox release with this fix will be 1.1.

*** This bug has been marked as a duplicate of 107518 ***
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → DUPLICATE
Component: XP Toolkit/Widgets: XUL → XUL
QA Contact: jrgmorrison → xptoolkit.widgets
Crash Signature: [@ nsViewManager::UpdateView ]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: