Closed Bug 170730 Opened 22 years ago Closed 22 years ago

Nested framesets DOM manipulations not reflected by browser.

Categories

(Core :: DOM: Core & HTML, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 170588

People

(Reporter: mj, Assigned: jst)

Details

Attachments

(2 files, 1 obsolete file)

When nesting a frameset inside another frameset, manipulating the cols or rows
properties or even removing frame or frameset nodes from the DOM has no visual
effects. Manipulations to a top level frameset *are* correctly reflected.

Testcase, steps to reproduce and temporary work around follows.
Part 1 of testcase, frame document with buttons that drive test.
Testcase part 2, frameset definition and javascript. Part 1 (frame document) is
loaded directly from Bugzilla, there is no need to make local copies of these
files.

To reproduce:

1. Click 'Collapse left frame'. This sets the 'cols' property to "0, *".
   - Expect: Bottom left frame folds down to only show its border.
   - Actual result: View is unaffected.

2. Click 'Reinstate left frame' to bring DOM back to starting state.
   - Expect: Collapsed frame to be reinstated to old state
   - Actual Result: View was unaffected in step 1, so again nothing happens.

3. Click 'Remove left frame'. This removes the node for the bottom left frame
element from the DOM. The cols property is set to "*".
   - Expect: The bottom left frame to dissapear completely, with no border
visible.
   - Actual result: No visual result at all.

4. Click 'Reinstate left frame' to bring DOM back to starting state.
   - Expect: Removed frame to be visible again, complete with border.
   - Actual Result: View was unaffected in step 3, so again nothing happens.

For reference, the 'rows' frameset is not nested, and the buttons 'Collapse
bottom frameset', 'Remove bottom frameset', and 'Reinstate bottom frameset' all
act as expected. In Internet Explorer, all buttons have the expected visual
results.

Temporary workaround: Make a change to the left frame (collapse or remove),
then remove bottom frameset altogether, then reinstate bottom frameset. When
the bottom frameset is reinstated, the view is as expected, with the left frame
either collapsed or removed.
Whoops, corrected frameset document. Don't save changes before you upload, MJ.
*smirk*.
Attachment #100545 - Attachment is obsolete: true
Note that the above work-around doesn't appear to work for more complex
framesets; my setup with a frameset where I want to collapse an embedded
frameset (instead of a nested frame as in the example) still doesn't work.
Final workaround: 

Remove the top-level frameset from the DOM, and put it back in immediatly. This
works for all cases observed.

Disadvantage of this workaround: Frames are reinitialized to their original
state, regardless of their browsing history. I'll probably will have to manually
retrieve the URL locations from the frames and reinstate these after the flashing.
What build are you using?  If it's anything before 1.2alpha, please retest with
1.2alpha; I fixed this sometime after 1.1...
In 1.2a1, collapsing left frame (changing the cols attribute) works, but not
removing the frame node. Also, when removing the bottom frameset, the upper
frame is reloaded instead of just expanded.
Ah, ok.  So you're doing evil stuff too.  ;)

This'll be fixed when the document is owned by the content node instead of the
frame.

*** This bug has been marked as a duplicate of 170588 ***
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → DUPLICATE
Component: DOM: HTML → DOM: Core & HTML
QA Contact: stummala → general
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: