Closed Bug 1177 Opened 26 years ago Closed 26 years ago

Problems laying out long documents

Categories

(Core Graveyard :: GFX, defect, P2)

x86
Windows 95

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: dbaron, Assigned: kmcclusk)

References

()

Details

NGLayout has trouble laying out a long document when the link is to an anchor within the document -- it fails to produce a scrollbar and neither scrolls nor moves to the anchor once the page has loaded. This only happens with some anchors within the above URL. (And, believe it or not, this time that link isn't because of a failure to conform to the CSS specs.) ‰
Status: NEW → ASSIGNED
Summary: Problems laying out long documents with anchor in link → Problems laying out long documents
This isn't just related to movement to anchors. There are problems scrolling in this document and I think also in WD-XSL (a similar document in the same directory). The problems result when I drag the scrollbar. There are certain points where the document gets "stuck" and dragging the scrollbar doesn't move it for a bit, and then it gets "unstuck" and jumps to where it should be. Removing "with anchor in link" from title.
This document is now no longer displaying at all, since it now uses (in the new version) a CSS stylesheet that displays an image in the upper left corner. I think NGLayout gets stuck before loading the image, and it never displays. The scrollbar is drawn, though.
This document is now displaying again. Without the #text-indent, there are 2 problems. The scrollbar does seem about the right length, but when I scroll about a sixth to a quarter of the way down, it stops showing anything new when I keep going down (by pages) for a while, and then a bit farther down it starts displaying the text on top of old text without erasing anything. I think this deserves P1, but since you only use P1 for crashes, leaving as is...
Setting all current Open Critical and Major to M3
The behavior on this document is very erratic. Once, it loaded without the stylesheet, and the scrolling problems were massive. Twice, it didn't display anything more than a scrollbar (about the right length). Once, it displayed, with the stylesheet, right as I exited the browser, so I didn't get to see it. I have to say that I find this to be one of the most disturbing bugs in the layout engine.
Assignee: kipp → michaelp
Status: ASSIGNED → NEW
Component: Layout → Compositor
Michael and I determined this is okay on NT, but miserable on Win95. Assigning to Michael
QA Contact: 4110
assigning Chris Dreckman as QA
Target Milestone: M3 → M4
*** Bug 2260 has been marked as a duplicate of this bug. ***
*** Bug 3947 has been marked as a duplicate of this bug. ***
I saw this bug mentioned when I was looking at other bug reports for beppe@netscape.com. I have a bug that seems very close but causes a different end result. I did not want to creat a duplicate bug report if it was related. As the previous people stated you will not be brought to the target. BUT in my case I can crash Apprunner (every time). http://users.ipa.net/~asj/computer.htm#M I copy and past this into the location line of Mozilla (4/2/99). Currently mozilla does not go to my "M" section. If I next click on the location line and press enter APPRUNNER crashes (every time). APPRUNNER caused an invalid page fault in module RAPTORHTML.DLL at 014f:0178ca36. Registers: EAX=00000000 CS=014f EIP=0178ca36 EFLGS=00010246 EBX=00000000 SS=0157 ESP=0076ee7c EBP=0076ee9c ECX=0076eea8 DS=0157 ESI=80000000 FS=4b67 EDX=00000003 ES=0157 EDI=04a8f470 GS=0000 Bytes at CS:EIP: 8b 18 e8 aa fe fe ff 50 68 60 4a 81 01 ff 75 ec Stack dump: 04aa3ad0 01814b50 00000000 00000000 0076eea4 04b38550 00000000 00000000 0076ef18 015b66d6 00000000 0076ee98 04a7ae78 04a7adf0 00000000 0044e920
I don't think the above comment is related. I filed it separately as bug 4580.
*** Bug 1815 has been marked as a duplicate of this bug. ***
Assignee: michaelp → beard
Target Milestone: M4 → M5
patrick, the issure here (as far as i can tell) is that in these situations, the values being passed into the scrollbars for container size, etc. are simply too large for the native code to handle. there are two things that can be done: 1) get an xp scrollbar implementation. 2) make the scrollingview code send everything to the scrollbar in terms fo pixels rather than twips. this should give us about 15 times more coordinate space on most systems (i think). talk to me and i can point you in the right direction for #2.
Status: NEW → ASSIGNED
Using a build from 4/12/99, I get very erratic behavior under viewer, extremely long pauses somewhere deep in StyleSetImpl::ResolveStyleFor(). However, the original behavior of scrolling to the anchor does work. This page is evidently a good general test case.
The scrolling to the anchor does work. However, the problem is in display, and is specific to Windows 95 (the problem does not occur on NT). Once it is at the anchor, hit PgUp. You should then see the text from the page up overwrite the old text, without erasing it with a background.
I can confirm this observation on the Mac, I've seen overlapping drawing, seems like a coordinate system overflow problem. I don't see a problem on Windows NT.
Target Milestone: M5 → M6
-> M6
Here's what's causing the overlapped drawing on Mac OS: When the document is scrolled to the #text-indent anchor, (0, 0) gets transformed to (0, -38112), which exceeds Quickdraw's representable coordinates. When a Rect is created from these coordinates, it is typically seen as empty, and Quickdraw stops painting the background color properly, hence overlapped drawing. There are several solutions to this problem, both cross platform, and platform specific: 1. pre-clip coordinates so they are always within the viewable area of the window. this may be hard to do in all cases, but it would guarantee fast drawing. 2. bullet-proof all of the OS specific calls with OS-specific knowledge of the coordinate system limitations. Option 2 is probably the only practical solution right now, but we will have to hunt all of the cases down. I have a fix for the Mac OS rendering context.
I'm not sure it is the entire problem. If you display that document on Windows, the page pointed to by the anchor is indeed displayed correctly while on Mac it's not, but if you scroll through the entire document, you will notice some areas where the text is overlayed over and over. It's the same bug as the one described in #2564.
Assignee: beard → kmcclusk
Status: ASSIGNED → NEW
I've fixed this on the Mac, but I don't know how to fix it on Win95. WinNT doesn't exhibit the problem.
Status: NEW → ASSIGNED
Target Milestone: M6 → M7
QA Contact: 4110 → 4144
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
Fixed in 5-3-99 1:22PM build Added a new method, ConditionRect which is used to fix coordinate overflow problems under WIN95. Condition rect converts nsRect to a RECT with cooordinates modified to acceptable ranges for WIN95. Modified nsRenderingContext::SetClipRect and nsRenderingContext::FillRect to make calls to ConditionRect before calling the native windows routines. This fixes long document loading under WIN95.
Status: RESOLVED → VERIFIED
Fixed in the June 09 Build.
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.