Bug 34838

Summary: [Qt] Avoid painting and layout while loading a page
Product: WebKit Reporter: Henry Haverinen <henry.haverinen>
Component: WebKit QtAssignee: Nobody <webkit-unassigned>
Status: RESOLVED WONTFIX    
Severity: Enhancement CC: benjamin, hausmann, laszlo.gombos, markus, s.mathur, steve.lewontin, tonikitoo
Priority: P2 Keywords: Performance, Qt, QtTriaged
Version: 312.x   
Hardware: All   
OS: All   

Henry Haverinen
Reported 2010-02-11 04:59:36 PST
QWebFrame should have a mechanism for avoiding constant painting while loading. This is important on mobile and embedded platforms where constant painting will detoriate the UI responsiveness and cause the page loading to take more time than needed. This functionality should be done in the frame level so that it can be applied to a complex iframe while the main frame has already been loaded and is already painted normally. The proposed way to do this is to add a condition to QWebFrame::render and QWebFrame::event for not doing painting or event handling for the first seconds during loading on an embedded/mobile device. Please see the example attached to this JIRA entry: http://bugreports.qt.nokia.com/browse/QTWEBKIT-42. This feature should be disabled by default on desktop platforms, and good default settings are needed on embedded platforms. For example on Symbian, painting and event handling could be disabled for the first 5-7 seconds while still loading. Since the capabilities of Qt-based embedded devices can vary a lot, the same platform-specific default might not always be appropriate. Therefore, a new global setting in QWebSettings for the time could be added. A possible further improvement would be to develop some kind of smart logic to measure the time elapsed in the first paint event, and depending on the result, painting might be disabled automatically for some time. This logic would not require any settings or platform specific default values.
Attachments
Antonio Gomes
Comment 1 2010-02-12 07:36:31 PST
henry, in "[Qt] Avoid contant painting while loading" (bug summary) you meant "contast" or "content" ?
Henry Haverinen
Comment 2 2010-02-15 01:06:26 PST
Hi Antonio, I fixed the title, thanks! Regards, Henry
Henry Haverinen
Comment 3 2010-02-19 00:24:58 PST
Based on Steve's analysis, the proposed solution is not sufficient. Simply painting white is not enough at least on Symbian but QtWebKit should also stop frequent re-layouts when loading a complex frame.
Benjamin Poulain
Comment 4 2010-02-20 07:14:02 PST
(In reply to comment #3) > Based on Steve's analysis, the proposed solution is not sufficient. Simply > painting white is not enough at least on Symbian but QtWebKit should also stop > frequent re-layouts when loading a complex frame. No layouting takes place when you do not render. Again, without data showing the problem, this kind of claim is useless.
Tor Arne Vestbø
Comment 5 2010-03-10 06:32:26 PST
Please follow the QtWebKit bug reporting guidelines when reporting bugs. See http://trac.webkit.org/wiki/QtWebKitBugs Specifically: - The 'QtWebKit' component should only be used for bugs/features in the public QtWebKit API layer, not to signify that the bug is specific to the Qt port of WebKit http://trac.webkit.org/wiki/QtWebKitBugs#Component - Add the keyword 'Qt' to signal that it's a Qt-related bug http://trac.webkit.org/wiki/QtWebKitBugs#Keywords
Benjamin Poulain
Comment 6 2010-03-10 06:40:04 PST
Anybody is working on this? I am wondering again if this should really go into Qt. It is very easy to implement in application, and IMO, this should not be enabled if the application developer has not implemented some proper feedback.
Antonio Gomes
Comment 7 2011-01-11 19:25:16 PST
WONTFIX?
Benjamin Poulain
Comment 8 2011-01-12 03:00:11 PST
(In reply to comment #7) > WONTFIX? Good idea.
Note You need to log in before you can comment on or make changes to this bug.