I have NO idea what is wrong with the above URL, but any paint-related operation on this page takes CPU usage to 100% and basically brings apprunner to it's knees on linux, including: - exposing a new area of the page - scrolling Start by assigning to rickg, but it might be linux-specific so I'll CC pavlov and blizzard
Kevin -- can you and RodS track this down for us? Thanks.
This is a problem on WIN32 as well. Using quantify on WIN32, I was able to locate the problem. The problem occurs when tiling background images which have a mask. The code nsCSSRendering::PaintBackground reverts to a slow tiling algorithm when the image to tile has a mask. The normal (non-mask) algorithm creates an offscreen drawing surface into which the tile is expanded. The expanded tile is then rendered instead of the individual tiles. The solution is to move the tiling code into the nsRenderingContext. The rendering context can use the mask to create an offscreen mask as well as an offscreen image to expand into. In addition, if the system toolkit has a call to tile bitmaps we can avoid creating the offscreens altogether. This is only a performance issue when the tiles are small and they have a mask. Should be fixed immediately after beta.(Too big of a change to make for beta)
Not only is it slow to load and repaint. It is rendering the transparent parts of the gif's as black on WIN32. Setting severity to Major.
Just observed the same problem at http://base-peak.wiley.com/ , a major chemistry portal site (in case you need another test case). And yes, the transparent gif is painted black after the end of the calculations.
*** Bug 31513 has been marked as a duplicate of this bug. ***
*** Bug 33709 has been marked as a duplicate of this bug. ***
*** Bug 20242 has been marked as a duplicate of this bug. ***
*** Bug 34577 has been marked as a duplicate of this bug. ***
fixed with the DrawTile() method added to the RenderingContext.. and letting each platform handle these issues.
I'm not reproducing the problem described with the Maty 22nd build. Marking verified frixed.