Bug 14020

Summary: [GDK] Jumbled text during initial load of a large page
Product: WebKit Reporter: Alp Toker <alp>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Severity: Normal CC: zecke
Priority: P2    
Version: 523.x (Safari 3)   
Hardware: All   
OS: All   
Description Flags
Screenshot of the bad rendering
Update the scrollbars once when ScrollView::update gets called mjs: review+

Description Alp Toker 2007-06-06 17:31:28 PDT
Visiting http://planet.gnome.org/

Some of the text content seems to get rendered in a very small area near the top left of the window, overlapping previous text output.

This happens during the first half a second or so of page loading, after which the page is re-rendered, correctly this time.

This causes some slowdown on mobile devices, though it can be easily observed on desktop systems. Other ports are reported not to suffer from this issue.
Comment 1 Alp Toker 2007-06-06 17:32:54 PDT
Created attachment 14892 [details]
Screenshot of the bad rendering

This screenshot was taken in the split second during which the rendering is jumbled during initial page load.
Comment 2 Alp Toker 2007-06-07 12:07:01 PDT
It's worth noting that this issue happens on other pages too, not just the site mentioned.
Comment 3 Holger Freyther 2007-06-07 13:38:51 PDT
I have observed this as well. Currently I'm tempted to blame CURL. What we could try is to save the website+resources as files (adjust the html to refer to the images relative) and see if we have this rendering issue as well.
I will add this to my agenda but feel free to beat me.

My hypothesis is: The CURL ResourceHandleManager is not loading fast enough and we have some sort of partial layouting+rendering. By trying file based loading we could partly confirm this.
Comment 4 Holger Freyther 2007-07-14 11:56:52 PDT
This is due ScrollView::resizeContent generating an expose event which will draw the incomplete site. The fix would disable generating expose signals..
Comment 5 Holger Freyther 2007-07-15 07:19:29 PDT
Created attachment 15523 [details]
Update the scrollbars once when ScrollView::update gets called

Fix jumbled text by updating the scrollbars on ScrollView::update. The theory is we will generate less expose events, so FrameGdk.cpp will less often paint and we don't force the RenderTree to layout.
Comment 6 Maciej Stachowiak 2007-07-15 23:51:01 PDT
Comment on attachment 15523 [details]
Update the scrollbars once when ScrollView::update gets called

Tiny nitpicks:

"lead to less often layouting" - there's no such word as layouting in English, layout is only a noun, not a verb. "lead to laying out less often" would be the way to say it.

+    if (m_data->scrollBarsNeedUpdate) {
+        updateScrollbars();
+    }

Shouldn't be braces here.

You can fix these before committing, otherwise r=me.
Comment 7 Holger Freyther 2007-07-16 13:24:42 PDT
Landed in r24321.