Closed Bug 11683 Opened 25 years ago Closed 25 years ago

losing scrollbars going back

Categories

(Core :: Layout: Images, Video, and HTML Frames, defect, P3)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: mikepinkerton, Assigned: pollmann)

Details

(Whiteboard: working on a fix.)

Attachments

(3 files)

1) launch apprunner, default page is mozillazine which has a scrollbar 2) go to the xul checkbox test (resource:/res/samples/checkboxTest.xul) 3) go back you've now lost the scrollbars on mozillazine and for any other page you go to. this is with the build from 8/11/99.
OS: Mac System 8.5 → All
Hardware: Macintosh → All
happens on win32 as well.
Assignee: karnaze → pollmann
Target Milestone: M10
Reassigning to Eric.
Status: NEW → ASSIGNED
This is not happening in viewer, only apprunner, so I'll buy that it's quite probably an iframe issue. The rule seems to be: "scroll bar will not appear for this document iff you have visited a XUL document in this iframe in the past" I could make the scroll bar problem appear with a file foo.xul containing: <?xml version="1.0"?> <test> </test> While the same file when named foo.xml would not cause the problem. I could not get the scrollbar appear in any future document (regardless of size) without restarting apprunner.
cc'ing hyatt and waterson.
Attached file HTML page with scrollbar (deleted) —
Attached file XUL file (deleted) —
Attached file Test case for viewer (deleted) —
The Frame hierarchy for bar.html is: webshell Viewport Scroll Root ... For foo.xul it is: webshell Viewport Root ... After viewing a xul file, the frame hierarchy for bar.html is: webshell Viewport Root ... The scroll frame is inserted in layout/html/style/src/nsCSSFrameConstructor::ConstructRootFrame() and is conditional upon many things. (one being if the webShell has had SetScrolling set to TRUE or FALSE) I'll try to track down what changed...
We set scrolling to OVERFLOW_HIDDEN (no scroll frame) here: rdf/content/src/nsXULDocumentImpl::StartLayout() Just for fun, I commented out the line and scrolling wasn't turned off for XUL, as expected. The proper solution is probably to reset scrolling when unloading a XUL document (or on every document load).
Whiteboard: Possible fix.
Bug seems to be here: layout/html/document/src/nsHTMLContentSink::StartLayout() This code resets the scrolling attribute "just for safety". But it is not set if the webshell is a <frame> webshell. Consequently, it is not reset on Apprunner's main webshell. Line 2211 "if (!isFrameDoc) {" I think the fix is to remove this line. I'll verify and will probably check this in for M10.
Whiteboard: Possible fix. → working on a fix.
This fix is insufficient as it causes regressions elsewhere (scrolling attribute on a frameset frame no longer stored.) I'm still working on this one.
evaughan recently fixed this bug. See new regression bug 14827 caused by his checkin.
QA Contact: beppe → claudius
changing QA contact
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Closing this out since evaughan fixed it. The remaining issue is covered by bug 14827 (I've attached a fix for that bug to the bug report). To verify evaughan's fix: 1) Go to "Test case for viewer" 2) Click on "Go to bar.html" (Notice there is a vertical scrollbar) 3) Click on "Go to foo.xul" (Notice there is no vertical scrollbar) 4) Click on "Go to bar.html" There should be a scrollbar inside the box after step 4. If so, the bug was fixed.
Status: RESOLVED → VERIFIED
QA Contact: claudius → paulmac
haven't seen this, marking verified
Product: Core → Core Graveyard
Component: Layout: HTML Frames → Layout: Images
Product: Core Graveyard → Core
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: