Closed
Bug 488417
Opened 16 years ago
Closed 16 years ago
Crash on table cell select (Ctrl+click) unselect [@ nsTypedSelection::RemoveRange(nsIRange*) ]
Categories
(Core :: DOM: Selection, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: BijuMailList, Assigned: bzbarsky)
References
(Depends on 1 open bug)
Details
(Keywords: crash, regression, testcase)
Crash Data
Attachments
(2 files)
(deleted),
text/html
|
Details | |
(deleted),
patch
|
roc
:
review+
roc
:
superreview+
|
Details | Diff | Splinter Review |
Steps:-
1. Open attached "table_select_crash.html"
2. ctrl + click on "A1" to select cell
3. ctrl + click on "B1" to select cell
4. Again ctrl + click on "A1" to unselect cell
Result
firefox crashes
Expected
"A1" unselected
PASS
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b4pre)
Gecko/20090414 Shiretoko/3.5b4pre
CRASHES
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre)
Gecko/20090413 Minefield/3.6a1pre
Flags: blocking1.9.1?
Comment 1•16 years ago
|
||
Do you have a crash ID ?
Comment 3•16 years ago
|
||
0 xul.dll nsTypedSelection::RemoveRange layout/generic/nsSelection.cpp:5126
1 xul.dll nsFrameSelection::HandleTableSelection layout/generic/nsSelection.cpp:2756
2 xul.dll HandleFrameSelection layout/generic/nsFrame.cpp:2384
3 xul.dll nsFrame::HandleRelease layout/generic/nsFrame.cpp:2461
4 xul.dll nsFrame::HandleEvent layout/generic/nsFrame.cpp:1707
5 xul.dll nsPresShellEventCB::HandleEvent layout/base/nsPresShell.cpp:1384
6 xul.dll xul.dll@0x3c2a19
Summary: Crash on table cell select (Ctrl+click) unselect → Crash on table cell select (Ctrl+click) unselect [@ nsTypedSelection::RemoveRange(nsIRange*) ]
Comment 5•16 years ago
|
||
This seems to have regressed somewhere between 2009-04-01 and 2009-04-12.
Also, see https://bugzilla.mozilla.org/attachment.cgi?id=372982 which is a test with enhanced privileges, which might be useful for an automated test.
Keywords: regressionwindow-wanted
Comment 6•16 years ago
|
||
Using Martijn's testcase from bug 488579.
Works: http://hg.mozilla.org/mozilla-central/rev/5506e9239176
Crashes: http://hg.mozilla.org/mozilla-central/rev/a10ff1269f64
Comment 7•16 years ago
|
||
So it looks like an AddRef has got lost somewhere.
nsTypedSelection::RemoveRange calls RemoveItem(aRange). When RemoveItem removes the range from mRanges, the refcount drops to 0, and gets destroyed. After that call, when aRange is dereferenced it is now a dangling pointer...
Keywords: regressionwindow-wanted
Assignee | ||
Comment 8•16 years ago
|
||
Assignee: nobody → bzbarsky
Status: NEW → ASSIGNED
Attachment #373432 -
Flags: superreview?(roc)
Attachment #373432 -
Flags: review?(roc)
Assignee | ||
Comment 9•16 years ago
|
||
Graeme, thanks for doing all the hard work here!
If someone can think of a way of automating that test, please let me know?
Blocks: 486547
Comment on attachment 373432 [details] [diff] [review]
Yeah, indeed. This should do the trick
A mochitest could just synthesize mouse events, right?
Attachment #373432 -
Flags: superreview?(roc)
Attachment #373432 -
Flags: superreview+
Attachment #373432 -
Flags: review?(roc)
Attachment #373432 -
Flags: review+
Whiteboard: [needs landing]
Flags: blocking1.9.1? → blocking1.9.1+
Priority: -- → P2
Comment 11•16 years ago
|
||
Why does this block 1.9.1?
It's a regression from 486547, which is trunk only AFAICT
Assignee | ||
Comment 12•16 years ago
|
||
Yeah. This has nothing to do with 1.9.1. It's a regression from a trunk-only cleanup that's staying trunk-only.
Flags: blocking1.9.1+
Priority: P2 → --
Assignee | ||
Comment 13•16 years ago
|
||
Pushed http://hg.mozilla.org/mozilla-central/rev/da575593579c with a mochitest.
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Assignee | ||
Comment 14•16 years ago
|
||
I had to disable the mochitest, because it made the test _after_ it fail (more or less reliably on mac, intermittently on Windows, never on Linux).
roc, it looks like you wrote that test (test_movement_by_characters.html). Any idea why it's failing?
Flags: in-testsuite+ → in-testsuite?
Sorry, no...
Whiteboard: [needs landing]
Assignee | ||
Comment 16•16 years ago
|
||
And try server doesn't get the orange. I have no idea what's going on with that, and I've filed bug 489560 on reenabling it.
Depends on: 489560
Updated•14 years ago
|
Crash Signature: [@ nsTypedSelection::RemoveRange(nsIRange*) ]
You need to log in
before you can comment on or make changes to this bug.
Description
•