add assertions that we don't execute script during frame construction, reflow or painting

NEW
Assigned to

Status

()

P3
major
13 years ago
a year ago

People

(Reporter: dbaron, Assigned: dbaron)

Tracking

(Depends on: 1 bug, {sec-want})

Trunk
mozilla1.9alpha8
sec-want
Points:
---
Dependency tree / graph
Bug Flags:
wanted-next +
blocking1.9 -
wanted1.9 -

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [sg:want P4][dbaron-1.9:RsCe])

Attachments

(1 attachment, 1 obsolete attachment)

We need to add assertions that we don't execute script during frame construction, reflow, or painting, since scripts can trigger frame construction, reflow, or painting, but often don't.  This would catch more quickly the problems that could cause the assertions added in bug 310985.
Flags: blocking1.9a1?
Note that we should also do this for things that might execute script -- in particular, firing events.
Flags: blocking1.9a1? → blocking1.9-
Whiteboard: [wanted-1.9]
Flags: blocking1.9- → blocking1.9+
Whiteboard: [wanted-1.9]

Updated

12 years ago
Whiteboard: [sg:want P4]

Updated

11 years ago
Target Milestone: --- → mozilla1.9alpha6
Created attachment 265188 [details] [diff] [review]
patch

This is a patch for this bug and bug 335054.

Need to get bugs filed on the assertions this shows.
punting remaining a6 bugs to b1, all of these shipped in a5, so we're at least no worse off by doing so.
Target Milestone: mozilla1.9alpha6 → mozilla1.9beta1
Created attachment 282768 [details] [diff] [review]
patch

Merged to trunk.
Attachment #265188 - Attachment is obsolete: true
Bug 397954 may have some additional things we should assert on listed in it.
Whiteboard: [sg:want P4] → [sg:want P4][dbaron-1.9:RsCe]
Priority: -- → P3
Dropping this from the 1.9 blocker list at this point.
Flags: wanted1.9+
Flags: blocking1.9-
Flags: blocking1.9+
How is this related to sicking's script blocker stuff?
Flags: wanted1.9-
Flags: wanted1.9+
Flags: wanted-next+
I think these assertions and the assertions i've added will uncover many of the same bugs.

There is a big overlap between when the two will assert, but there are also things one will catch that the other won't.

For example all mutation-observer notifications will happen while we have script blocker so we can't assert there. But the assertions for not firing events while we have script blockers will catch things other than when layout code causes events to fire.
Depends on: 1366251
You need to log in before you can comment on or make changes to this bug.