RESOLVED FIXED 126570
REGRESSION(r161381): [GTK] Rendering is broken in GTK after r161381
https://bugs.webkit.org/show_bug.cgi?id=126570
Summary REGRESSION(r161381): [GTK] Rendering is broken in GTK after r161381
Carlos Garcia Campos
Reported 2014-01-07 02:55:40 PST
Attachments
Patch (7.67 KB, patch)
2014-01-07 09:18 PST, Carlos Garcia Campos
thorton: review+
Carlos Garcia Campos
Comment 1 2014-01-07 06:46:47 PST
I think the problem has to do with the LayoutRect/IntRect conversion in RenderLayer.cpp. Using LayoutRect::infiniteRect() for the clips in RenderLayer.cpp fixes the problem.
Carlos Garcia Campos
Comment 2 2014-01-07 09:18:10 PST
Created attachment 220532 [details] Patch Using LayoutRect::infinteRect() instead of IntRect::infinteRect() when a LayoutRect is expected fixes the problem.
Andrei Bucur
Comment 3 2014-01-07 09:30:16 PST
This may not be related, but while working on the CSS Regions visual overflow patch we noticed the cairo based GraphicsContext was not able to clip using the infiniteRect(). It seems to cause an integer overflow in cairo and it clips using a completely wrong rectangle. It's probably a good idea to make infiniteRect platform specific, based on the limitations of the underlying graphics library.
Carlos Garcia Campos
Comment 4 2014-01-07 09:38:25 PST
I don't know the details, but the Int/FloatRect::infiniteRect() is not defined the same way than the LayoutRect one, see: LayoutRect: LayoutUnit::nearlyMin() / 2, LayoutUnit::nearlyMin() / 2, LayoutUnit::nearlyMax(), LayoutUnit::nearlyMax() which substituting nearlyMin/Max would be something like (std::numeric_limits<int>::min() / 2) / 2, (std::numeric_limits<int>::min() / 2) / 2, std::numeric_limits<int>::max() / 2, std::numeric_limits<int>::max() / 2 IntRect: -std::numeric_limits<int>::max() / 2, -std::numeric_limits<int>::max() / 2, std::numeric_limits<int>::max(), std::numeric_limits<int>::max()
Tim Horton
Comment 5 2014-01-07 11:53:08 PST
Comment on attachment 220532 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=220532&action=review > Source/WebCore/ChangeLog:9 > + Use LayoutRect::infiniteRect() instead of IntRect::infiniteRect() > + when a LayoutRect is expected. Whoops :(
Carlos Garcia Campos
Comment 6 2014-01-07 11:57:44 PST
Note You need to log in before you can comment on or make changes to this bug.