Closed Bug 9037 Opened 26 years ago Closed 26 years ago

Absolute position GFX text field asserts on resize of window

Categories

(Core :: Layout, defect, P3)

x86
Windows NT
defect

Tracking

()

VERIFIED WORKSFORME

People

(Reporter: rods, Assigned: troy)

Details

It asserts with a placeholder frame being null, this does happen for native widgets. Test Case: <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <body> <FORM METHOD="POST"> <input type=text value="" size=10 style="position:absolute;top:64px;left:35px;"> </form> </body> </html> Stack trace: nsDebug::Assertion(char * 0x01f26a7c, char * 0x01f26a60, char * 0x01f26a28, int 0x000001aa) line 167 + 13 bytes nsHTMLReflowState::InitAbsoluteConstraints(nsIPresContext & {...}, const nsHTMLReflowState * 0x0012e330, int 0x00000636, int 0x40000000) line 426 + 32 bytes nsHTMLReflowState::InitConstraints(nsIPresContext & {...}) line 965 nsHTMLReflowState::Init(nsIPresContext & {...}) line 146 nsHTMLReflowState::nsHTMLReflowState(nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsIFrame * 0x015c8a40, const nsSize & {width=0x00000636 height=0x40000000}, nsReflowReason eReflowReason_Resize) line 107 nsBlockReflowContext::ReflowBlock(nsIFrame * 0x015c8a40, const nsRect & {x=0x00000000 y=0x00000000 width=0x00000636 height=0x40000000}, int 0x00000001, int 0x00000000, int 0x00000001, nsMargin & {top=0x00000000 right=0x00000000 bottom=0x00000005 left=0x00000000}, unsigned int & 0x00000000) line 154 nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox * 0x015c8b10, int * 0x0012c1cc) line 2493 + 56 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x015c8b10, int * 0x0012c1cc) line 1983 + 20 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 1793 + 20 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x015c86e4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1199 + 18 bytes nsAreaFrame::Reflow(nsAreaFrame * const 0x015c86e4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 283 + 25 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x015c86e0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 392 + 28 bytes RootFrame::Reflow(RootFrame * const 0x015c84b4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 242 nsContainerFrame::ReflowChild(nsIFrame * 0x015c84b0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 392 + 28 bytes nsScrollFrame::Reflow(nsScrollFrame * const 0x015c7734, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 432 nsContainerFrame::ReflowChild(nsIFrame * 0x015c7730, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 392 + 28 bytes ViewportFrame::Reflow(ViewportFrame * const 0x015c75d4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 438 PresShell::ResizeReflow(PresShell * const 0x015c6120, int 0x00000636, int 0x0000012c) line 948 PresShell::ResizeReflow(PresShell * const 0x015c6124, nsIView * 0x015c5500, int 0x00000636, int 0x0000012c) line 2087 nsViewManager::SetWindowDimensions(nsViewManager * const 0x015c5eb0, int 0x00000636, int 0x0000012c) line 359 nsViewManager::DispatchEvent(nsViewManager * const 0x015c5eb0, nsGUIEvent * 0x0012ea10, nsEventStatus & nsEventStatus_eIgnore) line 1597 HandleEvent(nsGUIEvent * 0x0012ea10) line 67 nsWindow::DispatchEvent(nsWindow * const 0x015c55d4, nsGUIEvent * 0x0012ea10, nsEventStatus & nsEventStatus_eIgnore) line 419 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012ea10) line 440 nsWindow::OnResize(nsRect & {x=0x00000000 y=0x00000000 width=0x0000006a height=0x00000014}) line 2982 + 15 bytes nsWindow::ProcessMessage(unsigned int 0x00000047, unsigned int 0x00000000, long 0x0012ec44, long * 0x0012ebd8) line 2512 + 24 bytes nsWindow::WindowProc(void * 0x026e0554, unsigned int 0x00000047, unsigned int 0x00000000, long 0x0012ec44) line 482 + 27 bytes USER32! 77e71ab7() USER32! 77e72fbe() NTDLL! 77f7624f() DocumentViewerImpl::SetBounds(DocumentViewerImpl * const 0x01581df0, const nsRect & {x=0x00000000 y=0x00000000 width=0x0000006a height=0x00000014}) line 443 nsWebShell::SetBounds(nsWebShell * const 0x0157bae0, int 0x00000002, int 0x00000002, int 0x0000006a, int 0x00000014) line 1108 nsGfxTextControlFrame::Reflow(nsGfxTextControlFrame * const 0x01578a64, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 785 nsAbsoluteContainingBlock::ReflowAbsoluteFrame(nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsIFrame * 0x01578a60, int 0x00000000, unsigned int & 0x00000000) line 216 + 34 bytes nsAbsoluteContainingBlock::Reflow(nsIPresContext & {...}, const nsHTMLReflowState & {...}) line 71 nsAreaFrame::Reflow(nsAreaFrame * const 0x01575544, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 288 + 19 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x01575540, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 392 + 28 bytes RootFrame::Reflow(RootFrame * const 0x01575314, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 242 nsContainerFrame::ReflowChild(nsIFrame * 0x01575310, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 392 + 28 bytes nsScrollFrame::Reflow(nsScrollFrame * const 0x01574e44, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 432 nsContainerFrame::ReflowChild(nsIFrame * 0x01574e40, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 392 + 28 bytes ViewportFrame::Reflow(ViewportFrame * const 0x01574cb4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 438 PresShell::ResizeReflow(PresShell * const 0x01571800, int 0x00004344, int 0x00002b3e) line 948 PresShell::ResizeReflow(PresShell * const 0x01571804, nsIView * 0x01570700, int 0x00004344, int 0x00002b3e) line 2087 nsViewManager::SetWindowDimensions(nsViewManager * const 0x015703c0, int 0x00004344, int 0x00002b3e) line 359 nsViewManager::DispatchEvent(nsViewManager * const 0x015703c0, nsGUIEvent * 0x0012f7b0, nsEventStatus & nsEventStatus_eIgnore) line 1597 HandleEvent(nsGUIEvent * 0x0012f7b0) line 67 nsWindow::DispatchEvent(nsWindow * const 0x015707d4, nsGUIEvent * 0x0012f7b0, nsEventStatus & nsEventStatus_eIgnore) line 419 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012f7b0) line 440 nsWindow::OnResize(nsRect & {x=0x00000000 y=0x00000000 width=0x0000047c height=0x000002e2}) line 2982 + 15 bytes nsWindow::ProcessMessage(unsigned int 0x00000047, unsigned int 0x00000000, long 0x0012f9e4, long * 0x0012f978) line 2512 + 24 bytes nsWindow::WindowProc(void * 0x074503cc, unsigned int 0x00000047, unsigned int 0x00000000, long 0x0012f9e4) line 482 + 27 bytes USER32! 77e71ab7() USER32! 77e72fbe() NTDLL! 77f7624f() DocumentViewerImpl::SetBounds(DocumentViewerImpl * const 0x015ab390, const nsRect & {x=0x00000000 y=0x00000000 width=0x0000047c height=0x000002e2}) line 443 nsWebShell::SetBounds(nsWebShell * const 0x014a8e20, int 0x00000000, int 0x00000020, int 0x0000047c, int 0x000002e2) line 1108 nsBrowserWindow::Layout(int 0x0000047c, int 0x0000031a) line 1517 HandleBrowserEvent(nsGUIEvent * 0x0012fb34) line 325 nsWindow::DispatchEvent(nsWindow * const 0x014a84d4, nsGUIEvent * 0x0012fb34, nsEventStatus & nsEventStatus_eIgnore) line 419 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012fb34) line 440 nsWindow::OnResize(nsRect & {x=0xfffffffc y=0xfffffffc width=0x0000047c height=0x0000031a}) line 2982 + 15 bytes nsWindow::ProcessMessage(unsigned int 0x00000047, unsigned int 0x00000000, long 0x0012fd68, long * 0x0012fcfc) line 2512 + 24 bytes nsWindow::WindowProc(void * 0x07a7039e, unsigned int 0x00000047, unsigned int 0x00000000, long 0x0012fd68) line 482 + 27 bytes USER32! 77e71ab7() USER32! 77e72fbe() NTDLL! 77f7624f() USER32! 77e7288d() USER32! 77e72918() nsWindow::WindowProc(void * 0x07a7039e, unsigned int 0x00000112, unsigned int 0x0000f030, long 0x000f024b) line 494 USER32! 77e71ab7() USER32! 77e71a77() NTDLL! 77f7624f() USER32! 77e7288d() USER32! 77e72918() nsWindow::WindowProc(void * 0x07a7039e, unsigned int 0x000000a1, unsigned int 0x00000009, long 0x000f024b) line 494 US
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → WORKSFORME
Works fine for me. It's using a native widget and there's no assert. Looking at the frame construction code it looks just fine, and I don't see a problem. A placeholder frame is created, and the pres shell is called to add the mapping from out-of-flow frame to placeholder
Status: RESOLVED → VERIFIED
Using the simple test case provide, I don't see the original problem described. Tested with July 09 build under Win 98 and Win NT.
You need to log in before you can comment on or make changes to this bug.