[Webkit-unassigned] [Bug 56929] [Qt] Tiled painting still causes synchronous layout when accelerated compositing and texture mapper are enabled

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Mar 25 12:30:12 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=56929





--- Comment #8 from Carol Szabo <carol.szabo at nokia.com>  2011-03-25 12:30:12 PST ---
(In reply to comment #5)
> I just had an idea for testing this, you tell me if that works :)
> 1) have a white page containing a big iframe without border but with scrollbar
> 2) render the top left corner (let say (0, 0, 100x100), it should only contain white since there is no content inside the iframe
> 3) resize the iframe programmatically so the scrollbars enter the top left corner
> 4) change the background color of the mainframe to green
> 4) re-render the top left rect. Check if all pixels are still white
> Without your patch, the scrollbar of iframe will be in the way, over a white background.
> With your patch, we should get only the white background.

I assume that you want me to do the second render call on the IFRAME before passing through the message loop after the code that changed the size was run so that backing store refresh and layout do not have a chance to happen.
In this case I think that the scrollbars will show in the rendered area (if at all) only if they existed before the size change, as in the absence of layout there is noone to create them, so the patch would make a difference only if scrollbars did not exist before the resize.
I do not see why an IFRAME would be useful, furthermore I see it problematic, because the IFRAMEs may not get backingStores, thus the patch would not make a difference. If the IFRAME get's a backing store, the image would be ugly with and without my patch as the backing store of the parent would not be repainted, thus the scrollbars would show both with and without my patch in the middle of previous IFRAME content.

The test case I would imagine is a webpage with a Q(Graphics)WebView sized to 100x100 pix showing a webPage with white background containing a single empty div with: width 50; height 50; background-color: green. Resize this div to 150x150 pix and call Q(Graphics)WebView::paint right away. The same picture as before the resize should show (no scroll bars and white in the bottom and right halves), stay in the event loop a few seconds, call Q(Graphics)WebWebView::paint again, and the image should show the scrollbars and green all over. Before the patch in the first call scrollbars would show with white in the bottom and right areas which is an invalid state, the second call would be the same in both cases.

Does this test look goog to you?

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list