Closed
Bug 387544
Opened 19 years ago
Closed 19 years ago
[FIXr]Crash [@ nsFrameManager::ReResolveStyleContext] with position: absolute, display: table-caption and setting display: none
Categories
(Core :: Layout, defect, P1)
Core
Layout
Tracking
()
VERIFIED
FIXED
mozilla1.9beta1
People
(Reporter: martijn.martijn, Assigned: bzbarsky)
Details
(Keywords: crash, helpwanted, testcase, Whiteboard: [sg:critical?][needs branch patch])
Crash Data
Attachments
(2 files, 1 obsolete file)
|
818 bytes,
text/html
|
Details | |
|
8.22 KB,
patch
|
bernd_mozilla
:
review+
dbaron
:
approval1.9+
|
Details | Diff | Splinter Review |
See testcase, which crashes current trunk and branch builds within 300ms, normally.
Because it also crashes branch builds, I'm marking it security sensitive for now.
The data url consists of this:
<html><head></head>
<body style="display: table;">
<div></div>
<div id="a" style="display: table-caption;">
<div id="b" style="position: absolute;"></div>
</div>
</body>
</html>
http://crash-stats.mozilla.com/report/index/397dd1b3-2ee5-11dc-bc9f-001a4bd43ed6
0 nsFrameManager::ReResolveStyleContext(nsPresContext *,nsIFrame *,nsIContent *,nsStyleChangeList *,nsChangeHint)
1 nsFrameManager::ComputeStyleChangeFor(nsIFrame *,nsStyleChangeList *,nsChangeHint)
2 nsCSSFrameConstructor::RestyleElement(nsIContent *,nsIFrame *,nsChangeHint)
3 nsCSSFrameConstructor::ProcessOneRestyle(nsIContent *,nsReStyleHint,nsChangeHint)
4 nsCSSFrameConstructor::ProcessPendingRestyles()
5 nsCSSFrameConstructor::RestyleEvent::Run()
6 nsThread::ProcessNextEvent(int,int *)
7 NS_ProcessNextEvent_P(nsIThread *,int)
8 nsBaseAppShell::Run()
9 nsAppStartup::Run()
Talkback ID: TB33900982G
| Reporter | ||
Updated•19 years ago
|
Flags: blocking1.9?
| Assignee | ||
Comment 1•19 years ago
|
||
The patch is pretty self-explanatory: processing pseudoframes when constructing the caption means that tempItems ends up with both the pseudo rowgroup and the caption. So we were failing to parent the caption correctly, and things broke.
I'm not sure how to fix this on branch, offhand, without porting the fix for bug 243159 first. Unfortunately, we really do need to detect the caption post-facto, and with the branch setup that's too late.... I suppose we could pass around a caption frame pointer all over (as TableProcessChild does), but that would really suck...
Assignee: nobody → bzbarsky
Status: NEW → ASSIGNED
Attachment #274425 -
Flags: superreview?(roc)
Attachment #274425 -
Flags: review?(bernd_mozilla)
| Assignee | ||
Updated•19 years ago
|
OS: Windows XP → All
Priority: -- → P1
Hardware: PC → All
Summary: Crash [@ nsFrameManager::ReResolveStyleContext] with position: absolute, display: table-caption and setting display: none → [FIX]Crash [@ nsFrameManager::ReResolveStyleContext] with position: absolute, display: table-caption and setting display: none
Target Milestone: --- → mozilla1.9beta2
Comment on attachment 274425 [details] [diff] [review]
Trunk fix
We should use nsFrameList:: GetPrevSiblingFor here, for the !aPrevSibling case, but I'll let it slide since that's just existing code.
I assume the caption frames can't be wrapped in anything that would hide them from this search?
Attachment #274425 -
Flags: superreview?(roc) → superreview+
| Assignee | ||
Comment 3•19 years ago
|
||
> I assume the caption frames can't be wrapped in anything that would hide them
> from this search?
Right. Not if the parent is a table, as here.
| Assignee | ||
Comment 4•19 years ago
|
||
Attachment #274425 -
Attachment is obsolete: true
Attachment #275027 -
Flags: review?(bernd_mozilla)
Attachment #274425 -
Flags: review?(bernd_mozilla)
Attachment #275027 -
Flags: review?(bernd_mozilla) → review+
| Assignee | ||
Comment 5•19 years ago
|
||
Comment on attachment 275027 [details] [diff] [review]
Merged to tip
This fixes a crash by making sure we don't make assumptions that just aren't true about how many frames will get added to a framelist when constructing frames for a single content node.
The risk is moderate shading into low; about as good as this code ever gets.
Attachment #275027 -
Flags: approval1.9?
| Assignee | ||
Updated•19 years ago
|
Summary: [FIX]Crash [@ nsFrameManager::ReResolveStyleContext] with position: absolute, display: table-caption and setting display: none → [FIXr]Crash [@ nsFrameManager::ReResolveStyleContext] with position: absolute, display: table-caption and setting display: none
Comment on attachment 275027 [details] [diff] [review]
Merged to tip
a1.9=dbaron
Attachment #275027 -
Flags: approval1.9? → approval1.9+
| Assignee | ||
Comment 7•19 years ago
|
||
Checked in.
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Flags: blocking1.9?
Resolution: --- → FIXED
| Reporter | ||
Comment 8•19 years ago
|
||
Verified fixed, using:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a8pre) Gecko/2007080805 Minefield/3.0a8pre
Status: RESOLVED → VERIFIED
Updated•19 years ago
|
Flags: wanted1.8.1.x+
Flags: wanted1.8.0.x+
Flags: blocking1.8.1.7?
Whiteboard: [sg:critical?]
Updated•19 years ago
|
Flags: blocking1.8.1.7? → blocking1.8.1.7+
Comment 9•19 years ago
|
||
From bug 398404 comment 2:
[bug 387544] is a _lot_ more work and needs pretty extensive testing
for any patch we come up with. See bug 387544 comment 1. It shouldn't
be going in this close to the end of a branch cycle. :(
Unfortunately people tend not to pay attention to their branch bugs until the end of the cycle (the trunk fix here was done at the beginning of this cycle) :-(
Moved blocking flag to 1.8.1.9. Tomorrow starts the 1.8.1.9 dev cycle while QA/Build finishes up the 1.8.1.8 release
Flags: blocking1.8.1.8+ → blocking1.8.1.9?
| Assignee | ||
Comment 10•18 years ago
|
||
I'm going to need some help here, I suspect, if we're to get this fixed on branch.
Keywords: helpwanted
Updated•18 years ago
|
Flags: blocking1.8.1.12? → blocking1.8.1.12+
Comment 11•18 years ago
|
||
In email Boris says for the branch we have a choice between risky (port biggish frame construction changes to the branch) or tricky (some custom hack), and it's really too late in 1.8.1.12 for either.
Flags: blocking1.8.1.12+ → blocking1.8.1.13+
Comment 12•18 years ago
|
||
Boris, who would be able to help you on getting this ported to branch? (i.e., who can we ask?)
Updated•18 years ago
|
Whiteboard: [sg:critical?] → [sg:critical?][needs branch patch]
| Assignee | ||
Comment 13•18 years ago
|
||
I think the only people who can even claim to know this code are bernd, roc, mats, and dbaron (probably in that order)...
| Assignee | ||
Comment 14•18 years ago
|
||
Just to make it clear, I don't think there's going to be a small safe patch here. Either you'll have a big risky backport or a big, tedious, less tested, so possibly just as risky different patch altogether...
Comment 15•18 years ago
|
||
(In reply to comment #14)
> Just to make it clear, I don't think there's going to be a small safe patch
> here. Either you'll have a big risky backport or a big, tedious, less tested,
> so possibly just as risky different patch altogether...
Sadly, that's very clear, but we still want to push for getting this fixed. If not this cycle, then the next.
Bernd, do you have time to look at porting this to the 1.8 branch (or creating a new patch entirely)?
| Reporter | ||
Comment 16•18 years ago
|
||
See bug 415447, comment 12.
Let's just stop wasting time trying to fix weird crashes on branch and just focus on branch on top-crashes or public security issues.
Comment 17•18 years ago
|
||
>Bernd, do you have time to look at porting this to the 1.8 branch (or creating
>a new patch entirely)?
No, comment 14 says it very clearly, the required changes exceed my capabilities and I still have 1.9 wanteds on my list.
Comment 18•18 years ago
|
||
We don't have anyone that can own this right now. Minusing for 1.8.1.13.
Flags: blocking1.8.1.13+ → blocking1.8.1.13-
Updated•15 years ago
|
Crash Signature: [@ nsFrameManager::ReResolveStyleContext]
Updated•11 years ago
|
Group: core-security → core-security-release
Updated•10 years ago
|
Group: core-security-release
You need to log in
before you can comment on or make changes to this bug.
Description
•