Bug 14020 - [GDK] Jumbled text during initial load of a large page
Summary: [GDK] Jumbled text during initial load of a large page
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 523.x (Safari 3)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-06-06 17:31 PDT by Alp Toker
Modified: 2007-07-16 13:24 PDT (History)
1 user (show)

See Also:


Attachments
Screenshot of the bad rendering (53.41 KB, image/png)
2007-06-06 17:32 PDT, Alp Toker
no flags Details
Update the scrollbars once when ScrollView::update gets called (2.25 KB, patch)
2007-07-15 07:19 PDT, Holger Freyther
mjs: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.