Closed Bug 14463 Opened 21 years ago Closed 21 years ago

Drag selecting across lines tiggers infinite loop

Categories

(Core :: DOM: Selection, defect, P1, critical)

defect

Tracking

()

VERIFIED DUPLICATE of bug 14473

People

(Reporter: kinmoz, Assigned: mjudge)

References

()

Details

To reproduce:

  1. Load resource://res/samples/test0.html in apprunner or viewer.
     Note: this is the default page in viewer.

  2. Drag select from the first line of text down to any line in the middle of
the document.

The app should now be unresponsive because the CPU is pegged at 100%.

This is either an infinite loop, or something that takes a real long time. ;)

Here's the stack trace I get when I break in the debugger. Looks like we're
stuck selecting frames:


nsFrame::Invalidate(const nsRect & {...}, int 0) line 1530
nsTextFrame::SetSelected(nsTextFrame * const 0x038d8120, nsIDOMRange *
0x00000000, int 1, nsSpread eSpreadNone) line 1857
nsTextFrame::SetSelected(nsTextFrame * const 0x038ffb60, nsIDOMRange *
0x00000000, int 1, nsSpread eSpreadDown) line 1862
nsFrame::SetSelected(nsFrame * const 0x038d1ed0, nsIDOMRange * 0x039286e0, int
1, nsSpread eSpreadDown) line 1834
nsTextFrame::SetSelected(nsTextFrame * const 0x038d1d00, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsTextFrame::SetSelected(nsTextFrame * const 0x038c8960, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsTextFrame::SetSelected(nsTextFrame * const 0x038cc1f0, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsTextFrame::SetSelected(nsTextFrame * const 0x038cbca0, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsTextFrame::SetSelected(nsTextFrame * const 0x038c8610, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsTextFrame::SetSelected(nsTextFrame * const 0x038bab20, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsTextFrame::SetSelected(nsTextFrame * const 0x038ba120, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsTextFrame::SetSelected(nsTextFrame * const 0x038b7930, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsTextFrame::SetSelected(nsTextFrame * const 0x038b7480, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsTextFrame::SetSelected(nsTextFrame * const 0x038f7ea0, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsFrame::SetSelected(nsFrame * const 0x038ea190, nsIDOMRange * 0x039286e0, int
1, nsSpread eSpreadDown) line 1875
nsTextFrame::SetSelected(nsTextFrame * const 0x038ea120, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsFrame::SetSelected(nsFrame * const 0x038cd4c0, nsIDOMRange * 0x039286e0, int
1, nsSpread eSpreadDown) line 1875
nsTextFrame::SetSelected(nsTextFrame * const 0x038cd450, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsFrame::SetSelected(nsFrame * const 0x038c1820, nsIDOMRange * 0x039286e0, int
1, nsSpread eSpreadDown) line 1875
nsTextFrame::SetSelected(nsTextFrame * const 0x038c13b0, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsTextFrame::SetSelected(nsTextFrame * const 0x038c1fb0, nsIDOMRange *
0x039286e0, int 1, nsSpread eSpreadDown) line 1879
nsDOMSelection::selectFrames(nsDOMSelection * const 0x038845a0, nsIDOMRange *
0x039286e0, int 1) line 1725
nsDOMSelection::Extend(nsDOMSelection * const 0x038845a0, nsIDOMNode *
0x0389fe10, int 0) line 2712
nsRangeList::TakeFocus(nsRangeList * const 0x03884540, nsIContent * 0x0389fe1c,
unsigned int 0, unsigned int 0, int 1, int 0) line 970
nsRangeList::HandleClick(nsRangeList * const 0x03884540, nsIContent *
0x0389fe1c, unsigned int 0, unsigned int 0, int 1, int 0) line 902
nsFrame::HandleDrag(nsFrame * const 0x038c1660, nsIPresContext & {...},
nsGUIEvent * 0x0012fbdc, nsEventStatus & nsEventStatus_eIgnore) line 953 + 44
bytes
nsFrame::HandleEvent(nsFrame * const 0x038c1660, nsIPresContext & {...},
nsGUIEvent * 0x0012fbdc, nsEventStatus & nsEventStatus_eIgnore) line 744 + 27
bytes
nsBlockFrame::HandleEvent(nsBlockFrame * const 0x0389a280, nsIPresContext &
{...}, nsGUIEvent * 0x0012fbdc, nsEventStatus & nsEventStatus_eIgnore) line 5487
+ 24 bytes
PresShell::HandleEvent(PresShell * const 0x03884494, nsIView * 0x03899de0,
nsGUIEvent * 0x0012fbdc, nsEventStatus & nsEventStatus_eIgnore) line 2083 + 38
bytes
nsView::HandleEvent(nsView * const 0x03899de0, nsGUIEvent * 0x0012fbdc, unsigned
int 8, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 828
nsView::HandleEvent(nsView * const 0x03898e20, nsGUIEvent * 0x0012fbdc, unsigned
int 8, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 813
nsView::HandleEvent(nsView * const 0x03898d00, nsGUIEvent * 0x0012fbdc, unsigned
int 8, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 813
nsView::HandleEvent(nsView * const 0x0386d7c0, nsGUIEvent * 0x0012fbdc, unsigned
int 28, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 813
nsViewManager::DispatchEvent(nsViewManager * const 0x038332c0, nsGUIEvent *
0x0012fbdc, nsEventStatus & nsEventStatus_eIgnore) line 1667
HandleEvent(nsGUIEvent * 0x0012fbdc) line 63
nsWindow::DispatchEvent(nsWindow * const 0x03899124, nsGUIEvent * 0x0012fbdc,
nsEventStatus & nsEventStatus_eIgnore) line 338 + 10 bytes
nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012fbdc) line 359
nsWindow::DispatchMouseEvent(unsigned int 300, nsPoint * 0x00000000) line 3223 +
21 bytes
ChildWindow::DispatchMouseEvent(unsigned int 300, nsPoint * 0x00000000) line
3441
nsWindow::ProcessMessage(unsigned int 512, unsigned int 1, long 3997926, long *
0x0012fdec) line 2446 + 24 bytes
nsWindow::WindowProc(void * 0x0c6907f8, unsigned int 512, unsigned int 1, long
3997926) line 453 + 27 bytes
USER32! 77e71250()
Forgot to mention that this first appeared in the 09/21/99 build.
Status: NEW → RESOLVED
Closed: 21 years ago
Priority: P3 → P1
Resolution: --- → DUPLICATE
Target Milestone: M11
*** This bug has been marked as a duplicate of 14473 ***
Status: RESOLVED → VERIFIED
Since I can't reproduce this on today's Mac OS or Win32 builds, I'm marking this
as verified/duplicate.
You need to log in before you can comment on or make changes to this bug.