Closed Bug 53251 Opened 24 years ago Closed 24 years ago

{ib} reframe breaks with block-in-inline

Categories

(Core :: Layout, defect, P4)

defect

Tracking

()

VERIFIED FIXED
mozilla0.9

People

(Reporter: waterson, Assigned: waterson)

Details

(Keywords: css1, testcase)

Attachments

(2 files)

To reproduce, see attached test case, which will force a re-frame by toggling the style of the <body> from "display: block" to "display: inline": 1. Load test case. 2. Click "Reframe!" 3. Click "Reframe!" Expected behavior: after 2nd click, button should move back to its original position. Actual behavior: a "phantom" button is created!
Attached file test case (deleted) —
Keyword spam. Nominating for nsbeta3, p4 because I *have* seen this -- or something like this -- occasionally happen on bugzilla (which IIRC has some block-in-inline stuff happening).
Status: NEW → ASSIGNED
Keywords: correctness, nsbeta3
Priority: P3 → P4
Target Milestone: --- → M18
er, meant to assign to self.
Assignee: clayton → waterson
Status: ASSIGNED → NEW
Status: NEW → ASSIGNED
This is a bit scary! :-|
Keywords: css1, testcase
QA Contact: petersen → chrisd
Netscape's standard compliance QA team reorganised itself once again, so taking remaining non-tables style bugs. Sorry about the spam. I tried to get this done directly at the database level, but apparently that is "not easy because of the shadow db", "plus it screws up the audit trail", so no can do...
QA Contact: chrisd → ian
Target Milestone: M18 → mozilla0.9
Attached patch fix RecreateFramesForContent() (deleted) — Splinter Review
The problem here was that RecreateFramesForContent() calls ContentRemoved(). This detects that the child frame is actually ``special'' (block-in-inline), so it does a ReframeContainingBlock(), which actually *recreates* the frames we're trying to remove! Then, when RecreateFramesForContent() calls ContentInserted(), we end up creating the frames again! The fix is to notice we're about to RecreateFrameForContent() on a ``special'' frame, and just do one ReframeContainingBlock(). (Also supplied a bit on nsCOMPtr love.)
Keywords: patch
r=karnaze, please run block and table regression tests.
sr=attinasi
fix checked in
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Filed bug 74951 on an additional problem with the testcase.
testcase fails, but at least there's no double button. VERIFIED.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: