[webkit-reviews] review denied: [Bug 49184] Flawed rendering design for QtWebKit resulting in artifacts being displayed : [Attachment 75410] Proposed Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Jan 6 07:53:57 PST 2011
Simon Hausmann <hausmann at webkit.org> has denied Carol Szabo
<carol.szabo at nokia.com>'s request for review:
Bug 49184: Flawed rendering design for QtWebKit resulting in artifacts being
displayed
https://bugs.webkit.org/show_bug.cgi?id=49184
Attachment 75410: Proposed Patch
https://bugs.webkit.org/attachment.cgi?id=75410&action=review
------- Additional Comments from Simon Hausmann <hausmann at webkit.org>
View in context: https://bugs.webkit.org/attachment.cgi?id=75410&action=review
None of the functions in QWebPageClient need to be virtual.
In general I think the approach is correct, but I see one major problem:
The updates that come in during the layout should not be sent to a QWidget
(ownerWidget). First of all,
the coordinates will be wrong (line 352). Think of a QGraphicsView setup where
that widget will be the
viewport and the coordinates need to be adjusted to the view's transformation
and scrollbars.
Secondly we should call QWidget::update() instead of repaint().
Lastly I don't think QWidget should be used at all and instead in
QWebFramePrivate::renderRelativeCoords you should call
void ChromeClientQt::invalidateContentsAndWindow(const IntRect& windowRect,
bool immediate).
That will take care of coordinate issues (QGraphicsWidget::update() will be
called with item-local coordinates
and they will be translate to the correct viewport ones). It will also support
use-cases where people rely
on the correct emission of the QWebPage::repaintRequested() signal. And lastly
it will allow you to do the change
without introducing a new function in the public QWebFrame API.
> WebCore/platform/qt/QWebPageClient.h:98
> + virtual QRegion getDirtyRegion() const
Just call it dirtyRegion(), we usually don't use the get suffix.
> WebCore/platform/qt/QWebPageClient.h:113
> + inline bool skipWidgetUpdates()
This function should be const.
> WebCore/platform/qt/QWebPageClient.h:119
> + inline void addToDirtyRegion(const QRect &rect)
Coding style, the & placement is incorrect.
More information about the webkit-reviews
mailing list