In the GraphicsContext function: void GraphicsContext::fillRect(const FloatRect& rect, const Color& color, ColorSpace styleColorSpace, CompositeOperator op) (which is not overridden in the GraphicsContextCairo) It sets the operator and then proceeds to call the fillRect(const FloatRect& rect, const Color& color, ColorSpace styleColorSpace) (i.e. the version without the operator) The problem is that the fillRectWithColor in GraphicsContextCairo.cpp always uses the OVER operator. Without respecting the operator I think we would see incorrect results from code that triggers " if (baseColor.alpha()) { if (bgColor.alpha()) baseColor = baseColor.blend(bgColor); context->fillRect(backgroundRect, baseColor, style()->colorSpace(), CompositeCopy); } else if (bgColor.alpha()) { CompositeOperator operation = shouldClearBackground ? CompositeCopy : context->compositeOperation(); context->fillRect(backgroundRect, bgColor, style()->colorSpace(), operation); } else if (shouldClearBackground) context->clearRect(backgroundRect); " from RenderBoxModelObject::paintFillLayerExtended
Created attachment 105968 [details] Proposed patch
Created attachment 105969 [details] Fix gramatical errors in the ChangeLog entry on the original patch
Do you have a test case where this fails? In what cases would this lead to degraded performance?
(In reply to comment #3) > Do you have a test case where this fails? In what cases would this lead to degraded performance? I observed this bug by observation of the code. I will try and figure out a test case that triggers a visual issue because of this bug. In terms of performance painting with OVER is more costly than SOURCE since SOURCE can be optimised to a blit by Cairo in many situations (since it doesn't depend on the value that is currently in the destination.)
(In reply to comment #4) > In terms of performance painting with OVER is more costly than SOURCE since SOURCE can be optimised to a blit by Cairo in many situations (since it doesn't depend on the value that is currently in the destination.) Thanks. This is very likely a bug!
Comment on attachment 105969 [details] Fix gramatical errors in the ChangeLog entry on the original patch View in context: https://bugs.webkit.org/attachment.cgi?id=105969&action=review How do we test this? > Source/WebCore/ChangeLog:5 > + Please don't remove the REviewed by line, otherwise the tools can't fill it in fo ryou.
*** Bug 84848 has been marked as a duplicate of this bug. ***
*** This bug has been marked as a duplicate of bug 84848 ***