New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 100703 link

Starred by 99 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2014
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android , Windows
Pri: 2
Type: Bug



Sign in to add a comment

shadowBlur is applied incorrectly to transparent images

Reported by gpalme...@gmail.com, Oct 18 2011

Issue description

Chrome Version       : 15.0.874.92
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)

Other browsers tested:
    Safari 5: OK
    Firefox 7.0.1: OK
    IE 9: OK
    Opera 11.51: OK
    OSX - Chrome 14.0.835.202: OK

What steps will reproduce the problem?
1. Set shadowBlur 10
2. Draw a transparent png onto the canvas

What is the expected result?
The edge of the image that are not transparent should have a drop shadow with a blur of 10

What happens instead?
The bounding box of the image has a shadow with a blur of 10

Additional info:
This seems to only happen in windows and not on OSX.
Attached is a screenshot of how it appears in Chrome compared to IE, Firefox, and Opera.

I've also included a test case that demonstrates this issue.



 
png_shadow.html
11.6 KB View Download
screenshot.png
182 KB View Download

Comment 1 by bean...@gmail.com, Nov 22 2011

This same bug occurs when using drawImage to copy from one canvas to another, when the source canvas had transparent areas.
Labels: -Area-Undefined Area-WebKit
Status: Untriaged
Was able to reproduce this on Windows for Chrome 18 canary and 16.0.912.75
This bug now also appears in OS X (Chromium 19.0.1080.0). Here is another demonstration using drawImage and an off-screen canvas: http://jsfiddle.net/z6WJD/2/
Cc: bsalomon@chromium.org reed@chromium.org senorblanco@chromium.org twiz@chromium.org junov@chromium.org
Status: Available
Note:  this occurs because SkBlurMaskFilter does not respect the source bitmap's alpha.  This is not fixable without a change to skia to fix SkBlurMaskFilter, or the creation of a new mask filter which does respect alpha.

Comment 5 by t...@lostpilgr.im, Sep 28 2012

Tested and this issue is still present. I've also tested the latest stable builds of Firefox and IE9, and they do not exhibit this behavior.

Comment 6 by tolm...@gmail.com, Oct 9 2012

Still broken in Chrome and Chrome Canary, seems like a pretty big bug
 Issue 154927  has been merged into this issue.
Also affcted by this bug in my plugin image-shadow. 
http://htmlpreview.github.com/?https://raw.github.com/Kukunin/image-shadow/master/src/example.html

Should use manual blurring for Chromium

Comment 9 by peter...@gmail.com, Jan 9 2013

Today, and this still exists. Should it be fixed someday? 
Owner: aelias@chromium.org
Status: Assigned
Project Member

Comment 11 by bugdroid1@chromium.org, Mar 10 2013

Labels: -Area-WebKit Cr-Content
Owner: ----
Status: Available
Project Member

Comment 13 by bugdroid1@chromium.org, Apr 6 2013

Labels: -Cr-Content Cr-Blink
Was about to post an issue, then thought I'd search it first.

On Windows we're now at Chrome 27.0, and same still happens.

Report:

Chrome Version       : 27.0.1453.116
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
URLs (if applicable) : http://jsbin.com/iweyuj/1
Other browsers tested:
  Add OK or FAIL after other browsers where you have tested this issue:
     Safari 5: OK
 Firefox 22.0: OK
  Opera 12.16: OK
       IE 7/8: FAIL
      IE 9/10: OK

What steps will reproduce the problem?
1. canvas.getContext('2d');
2. context.shadowOffsetX = 5; 
2.1. context.shadowOffsetY = 5;
3. context.shadowBlur = 5;
4. context.drawImage(transparentImageResource, 0, 0);

What is the expected result?
A blurred shadow around filled pixels.


What happens instead of that?
Shadow is applied, but without blur.


UserAgentString: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36

URL for source code (same as above): http://jsbin.com/iweyuj/1

Browser-shots attached.

chrome-canvas-shadowBlur-on-image.jpg
114 KB View Download
Chrome is becoming a pain regarding canvas.
No longer the days frustrations with IE, must be the end of the world.

Never, EVER thought chrome would be the browser breaking cross browser behavior never mind, taking YEARS to fix.
William, if you use it enough you'll find that every browser has issues with Canvas. For instance IE10 broke canvas clipping almost completely (non-rectangular clipping regions simply do not work). This works in IE9 and 11, just not 10.

https://connect.microsoft.com/IE/feedback/details/782736/canvas-clearrect-fails-with-non-rectangular-yet-simple-clipping-paths
Can we get some transparency about what the issue is?
From my understanding this must be an issue with Skia not with Webkit or Blink. 
Is there a related issue related to that?
Is the code that is broken open source and available for contributions?
Can we get line numbers if they are known?

I have been waiting to long for this to be fixed, it has to be fixed in native code. I have been writing my own JavaScript shadows as a replacement but JavaScript is still just too slow to do this kind of thing. 

Please let us know what needs to happen to move this forward.

Comment 18 by bean...@gmail.com, Jul 29 2013

I'm also happy to help contribute to a fix. I've also implemented my own drop shadows in Javascript (which are VERY slow, particularly on mobile).
Owner: junov@chromium.org

Comment 20 by reed@google.com, Aug 5 2013

Juno, are you considering using an ImageFilter to implement this effect?
Yes, but not globally because the path is not as optimized as the current mask filter implementation. I intend to use Blink's DropShadowImageFilter instead of the DrawLooper specifically for the case of drawing bitmaps that have an alpha channel.

Comment 22 by gmur...@gmail.com, Aug 5 2013

Please keep in mind the case of rendering a canvas into a canvas with drop shadow, if the source canvas has transparent pixels. Or is that not a substantively different code path?

Comment 23 by gmur...@gmail.com, Aug 5 2013

http://jsfiddle.net/gmurray/hFLjD/
example of what I mean.
It's the same path, and should be fixed by the same fix.
Status: Started
Project Member

Comment 26 by bugdroid1@chromium.org, Aug 26 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=156733

------------------------------------------------------------------------
r156733 | junov@chromium.org | 2013-08-26T23:39:19.659453Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContext.h?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContextState.h?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/DrawLooper.cpp?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/script-tests/canvas-draw-canvas-on-canvas-shadow.js?r1=156733&r2=156732&pathrev=156733
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/DrawLooper.h?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-drawImage-shadow-expected.txt?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/InlineTextBox.cpp?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/script-tests/canvas-drawImage-shadow.js?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/EllipsisBox.cpp?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/skia/NativeImageSkia.cpp?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.cpp?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGInlineTextBox.cpp?r1=156733&r2=156732&pathrev=156733
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContext.cpp?r1=156733&r2=156732&pathrev=156733

Refactoring DrawLooper so that it can apply shadow effects as skia image filters

This fixes a bug where a bitmap's alpha channel was not being blurred when
rendering 2D canvas shadows.

BUG= 100703 
R=senorblanco
TEST=LayoutTest fast/canvas/canvas-drawImage-shadow-blur.html

Review URL: https://chromiumcodereview.appspot.com/23102018
------------------------------------------------------------------------
Project Member

Comment 27 by bugdroid1@chromium.org, Aug 27 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=156738

------------------------------------------------------------------------
r156738 | jianli@chromium.org | 2013-08-27T00:34:42.171545Z

Changed paths:
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/DrawLooper.h?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-drawImage-shadow-expected.txt?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/InlineTextBox.cpp?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/script-tests/canvas-drawImage-shadow.js?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/EllipsisBox.cpp?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/skia/NativeImageSkia.cpp?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.cpp?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGInlineTextBox.cpp?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContext.cpp?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContext.h?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContextState.h?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/DrawLooper.cpp?r1=156738&r2=156737&pathrev=156738
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/script-tests/canvas-draw-canvas-on-canvas-shadow.js?r1=156738&r2=156737&pathrev=156738

Revert 156733 "Refactoring DrawLooper so that it can apply shado..."

> Refactoring DrawLooper so that it can apply shadow effects as skia image filters
> 
> This fixes a bug where a bitmap's alpha channel was not being blurred when
> rendering 2D canvas shadows.
> 
> BUG= 100703 
> R=senorblanco
> TEST=LayoutTest fast/canvas/canvas-drawImage-shadow-blur.html
> 
> Review URL: https://chromiumcodereview.appspot.com/23102018

TBR=junov@chromium.org

Review URL: https://codereview.chromium.org/23507002
------------------------------------------------------------------------
Project Member

Comment 28 by bugdroid1@chromium.org, Aug 27 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=156783

------------------------------------------------------------------------
r156783 | junov@chromium.org | 2013-08-27T16:59:51.302524Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGInlineTextBox.cpp?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContext.cpp?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContext.h?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContextState.h?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/DrawLooper.cpp?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/script-tests/canvas-draw-canvas-on-canvas-shadow.js?r1=156783&r2=156782&pathrev=156783
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/DrawLooper.h?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-drawImage-shadow-expected.txt?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/InlineTextBox.cpp?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/script-tests/canvas-drawImage-shadow.js?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/EllipsisBox.cpp?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/skia/NativeImageSkia.cpp?r1=156783&r2=156782&pathrev=156783
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.cpp?r1=156783&r2=156782&pathrev=156783

Refactoring DrawLooper so that it can apply shadow effects as skia image filters

This fixes a bug where a bitmap's alpha channel was not being blurred when
rendering 2D canvas shadows.

BUG= 100703 
R=senorblanco
TEST=LayoutTest fast/canvas/canvas-drawImage-shadow-blur.html

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=156733

Review URL: https://chromiumcodereview.appspot.com/23102018
------------------------------------------------------------------------
Project Member

Comment 29 by bugdroid1@chromium.org, Aug 27 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=156791

------------------------------------------------------------------------
r156791 | ojan@chromium.org | 2013-08-27T19:24:46.314852Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/fast/canvas/canvas-incremental-repaint-expected.png?r1=156791&r2=156790&pathrev=156791
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=156791&r2=156790&pathrev=156791
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=156791&r2=156790&pathrev=156791
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/fast/canvas/canvas-incremental-repaint-expected.png?r1=156791&r2=156790&pathrev=156791
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=156791&r2=156790&pathrev=156791
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/fast/canvas/canvas-incremental-repaint-expected.png?r1=156791&r2=156790&pathrev=156791
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=156791&r2=156790&pathrev=156791
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux-x86/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=156791&r2=156790&pathrev=156791
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=156791&r2=156790&pathrev=156791

Auto-rebaseline for r156783

http://src.chromium.org/viewvc/blink?view=revision&revision=156783

BUG= 100703 
TBR=junov@chromium.org

Review URL: https://codereview.chromium.org/23602003
------------------------------------------------------------------------
Project Member

Comment 30 by bugdroid1@chromium.org, Aug 28 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=156865

------------------------------------------------------------------------
r156865 | junov@chromium.org | 2013-08-28T18:45:11.716726Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/DrawLooper.h?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-drawImage-shadow-expected.txt?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/svg/SVGInlineTextBox.cpp?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContext.cpp?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/InlineTextBox.cpp?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/script-tests/canvas-drawImage-shadow.js?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/EllipsisBox.cpp?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/skia/NativeImageSkia.cpp?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/rendering/RenderBoxModelObject.cpp?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContext.h?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/GraphicsContextState.h?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/platform/graphics/DrawLooper.cpp?r1=156865&r2=156864&pathrev=156865
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/script-tests/canvas-draw-canvas-on-canvas-shadow.js?r1=156865&r2=156864&pathrev=156865
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=156865&r2=156864&pathrev=156865

Revert 156783 "Refactoring DrawLooper so that it can apply shado..."

Reason for revert: unacceptable performance regressions
TBR=vmpstr

> Refactoring DrawLooper so that it can apply shadow effects as skia image filters
> 
> This fixes a bug where a bitmap's alpha channel was not being blurred when
> rendering 2D canvas shadows.
> 
> BUG= 100703 
> R=senorblanco
> TEST=LayoutTest fast/canvas/canvas-drawImage-shadow-blur.html
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=156733
> 
> Review URL: https://chromiumcodereview.appspot.com/23102018

TBR=junov@chromium.org

Review URL: https://codereview.chromium.org/23461012
------------------------------------------------------------------------
Project Member

Comment 31 by bugdroid1@chromium.org, Aug 28 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=156866

------------------------------------------------------------------------
r156866 | junov@chromium.org | 2013-08-28T18:49:10.403964Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/fast/canvas/canvas-incremental-repaint-expected.png?r1=156866&r2=156865&pathrev=156866
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=156866&r2=156865&pathrev=156866
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=156866&r2=156865&pathrev=156866
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/fast/canvas/canvas-incremental-repaint-expected.png?r1=156866&r2=156865&pathrev=156866
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=156866&r2=156865&pathrev=156866
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/fast/canvas/canvas-incremental-repaint-expected.png?r1=156866&r2=156865&pathrev=156866
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=156866&r2=156865&pathrev=156866
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux-x86/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=156866&r2=156865&pathrev=156866
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=156866&r2=156865&pathrev=156866

Revert 156791 "Auto-rebaseline for r156783"

Reason for revert: r156783 was reverted

> Auto-rebaseline for r156783
> 
> http://src.chromium.org/viewvc/blink?view=revision&revision=156783
> 
> BUG= 100703 
> TBR=junov@chromium.org
> 
> Review URL: https://codereview.chromium.org/23602003

TBR=ojan@chromium.org

Review URL: https://codereview.chromium.org/23534013
------------------------------------------------------------------------

Comment 32 by junov@chromium.org, Aug 30 2013

Status: Assigned
Update: the fix was rolled-out due to unacceptable performance degradations.  After investigation, the poor performance was due to the blur image filter being applied to a temporary buffer that is the size of the entire canvas rather than the size of the primitive being drawn.  I attempted to use an SkBounder-derived class to track primitive bounds inside the draw looper loops, which seemed like a sensible solution until I realized that SkBounders only track non-accelerated draws from SkDraw, and that code has not been properly maintained.  I think that to do this right, we need to refactor the bounds tracking code that was developed for SkBoundingBoxHierachy and friends in order to expose that functionality to SkCanvas.  This is a major project.  Setting aside for now...

Project Member

Comment 33 by bugdroid1@chromium.org, Aug 31 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=157039

------------------------------------------------------------------------
r157039 | ojan@chromium.org | 2013-08-31T18:23:04.161876Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=157039&r2=157038&pathrev=157039

Auto-rebaseline for r156866

http://src.chromium.org/viewvc/blink?view=revision&revision=156866

BUG= 100703 
TBR=junov@chromium.org

Review URL: https://codereview.chromium.org/23609012
------------------------------------------------------------------------
Project Member

Comment 34 by bugdroid1@chromium.org, Oct 8 2013

The following revision refers to this bug:
    http://src.chromium.org/viewvc/blink?view=rev&rev=159088

------------------------------------------------------------------------
r159088 | adamk@chromium.org | 2013-10-08T04:39:51.318321Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=159088&r2=159087&pathrev=159088

Remove a bunch of no-longer-flaky tests from TestExpectations

Manually verified by looking at flakiness dashboard; tests removed had
at most a single failure (across all platforms) visible on dashboard.

TBR=ojan
BUG= 51854 , 100703 , 231721 , 231917 , 241481 , 243353 , 247981 , 251149 , 255359 , 276861 , 278318 , 282620 , 284789 , 295011 

Review URL: https://codereview.chromium.org/26374003
------------------------------------------------------------------------
The above change seems to have simply lopped off the testcase for this issue.  Here's the relevant line that was deleted:

 647  crbug.com/100703  virtual/gpu/fast/canvas/canvas-drawImage-shadow.html [ Pass Tim
      eout ]

The issue is very much still alive though (view the jsfiddle link from comment #3 for an example), so simply hiding the testcase doesn't seem like the best course of action.
@#35:
virtual/gpu/fast/canvas/canvas-drawImage-shadow.html had intermittent failures in the past that were unrelated to this bug.  The fact that the test expectation was associated with this bug was an error (possibly an obsolete association based an older manifestation of the failure).  The expectations clean-up from comment 34 is just a red herring IMHO.

Comment 37 by Deleted ...@, May 13 2014

This bug is preventing our team from shipping a really big set of features to our canvas based design tool. We're hoping to open source the backbone of our work, but can't really until this is fixed. Bug is only in chrome, other browsers work great.

Comment 38 by junov@chromium.org, May 28 2014

Owner: sugoi@chromium.org

Comment 39 by vli@chromium.org, Jun 16 2014

Labels: Hotlist-DevRel

Comment 40 by a...@inkarnate.com, Jul 31 2014

Any update on this? This is a significant issue for our project. I'm surprised this has gone unfixed for 3 years now. Is there a timeline on getting this fixed?

Comment 41 Deleted

Possibly a related bug, though I think it's a regression: extremely slow shadowBlur on some (most?) Android devices, after the Chromium version in 4.4.2.

http://code.google.com/p/chromium/issues/detail?id=403223

Seems someone should go out back and shoot shadowBlur.
Almost 3 years now... Any news?
Labels: OS-Android
This bug also occurs in Android 4.4.2 running Chrome 38.0.2125.102.

Comment 45 by sugoi@google.com, Oct 24 2014

Sorry, it's been assigned to me a few months ago, but I just finally got some time to work on this. I have a fix under review here:

https://codereview.chromium.org/669123002/

Hopefully this one will stick once it's in.

Comment 46 by mr.de...@gmail.com, Oct 24 2014

Thanks for all of your work. We all appreciate it and understand being overwhelmed with other tasks. Looking forward to using your implementation. :)

:Devin
———————————————
Devin Hartman
Project Member

Comment 47 by bugdroid1@chromium.org, Oct 27 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=184443

------------------------------------------------------------------
r184443 | sugoi@chromium.org | 2014-10-27T12:56:37.011254Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/paint/BoxPainter.cpp?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/GraphicsContext.h?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/GraphicsContextState.h?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/filters/FEDropShadow.cpp?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/filters/SkiaImageFilterBuilder.cpp?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=184443&r2=184442&pathrev=184443
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-shadow-source-in-expected.html?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/GraphicsContext.cpp?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/UnacceleratedImageBufferSurface.cpp?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-shadow-source-in.html?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/GraphicsContextState.cpp?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/StaticBitmapImage.cpp?r1=184443&r2=184442&pathrev=184443
   M http://src.chromium.org/viewvc/blink/trunk/Source/platform/graphics/skia/NativeImageSkia.cpp?r1=184443&r2=184442&pathrev=184443

Fixed Shadow blur for transparent objects

Added image filter as another option to drawLooper for rendering shadows, when alpha must be respected.

BUG= 100703 

Review URL: https://codereview.chromium.org/669123002
-----------------------------------------------------------------
Project Member

Comment 48 by bugdroid1@chromium.org, Oct 27 2014

The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=184452

------------------------------------------------------------------
r184452 | wangxianzhu@chromium.org | 2014-10-27T15:03:05.106505Z

Changed paths:
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.png?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/virtual/gpu/canvas/philip?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/fast/canvas/canvas-incremental-repaint-expected.png?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/fast/canvas/canvas-shadow-source-in-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.png?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.png?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.png?r1=184452&r2=184451&pathrev=184452
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac-retina/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux-x86/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/gpu/canvas/philip/tests/2d.shadow.canvas.transparent.2-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/fast/canvas/canvas-shadow-source-in-expected.txt?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/fast/canvas/canvas-shadow-source-in-expected.txt?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/fast/canvas/canvas-shadow-source-in-expected.txt?r1=184452&r2=184451&pathrev=184452
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac-snowleopard/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/virtual/gpu/canvas/philip/tests/2d.shadow.image.transparent.2-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux-x86/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.png?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/fast/canvas/canvas-incremental-repaint-expected.png?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.txt?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/fast/canvas/canvas-incremental-repaint-expected.png?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/virtual/gpu/canvas/philip/tests?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=184452&r2=184451&pathrev=184452
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac-mountainlion/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/gpu/fast/canvas/canvas-shadow-source-in-expected.txt?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/fast/canvas/canvas-shadow-source-in-expected.png?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/virtual/gpu/canvas?r1=184452&r2=184451&pathrev=184452
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/TestExpectations?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/virtual/gpu/canvas/philip/tests/2d.shadow.canvas.transparent.2-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/fast/canvas/canvas-incremental-repaint-expected.png?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/virtual/gpu/fast/canvas/canvas-incremental-repaint-expected.png?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   M http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win-xp/fast/canvas/canvas-incremental-repaint-expected.png?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/fast/canvas/canvas-shadow-source-in-expected.png?r1=184452&r2=184451&pathrev=184452
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/win/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/fast/canvas/canvas-shadow-source-in-expected.png?r1=184452&r2=184451&pathrev=184452
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac-lion/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   D http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/linux/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/android/virtual/gpu/canvas/philip/tests/2d.shadow.image.transparent.2-expected.txt?r1=184452&r2=184451&pathrev=184452
   A http://src.chromium.org/viewvc/blink/trunk/LayoutTests/platform/mac/fast/canvas/canvas-shadow-source-in-expected.png?r1=184452&r2=184451&pathrev=184452

Auto-rebaseline for r184443

http://src.chromium.org/viewvc/blink?view=revision&revision=184443

BUG= 100703 
TBR=sugoi@chromium.org

Review URL: https://codereview.chromium.org/680633003
-----------------------------------------------------------------
Status: Fixed
Nothing too horrible seems to have happened on the bots. There were (expected) slowdowns for the fixed cases, but nothing catastrophic, so marking this as fixed.
Fixed? What version of Chrome has this fixed then? I run the latest Chrome browser on WIn7 x64 and bug still is there :(

Comment 51 by sugoi@chromium.org, Nov 17 2014

Hi educasoft@,

  Chrome has 6 weeks release cycles, so when a bug is fixed, it is not automatically propagated to the stable release of chrome right away. The fix should appear in the next version of chrome.

  For now, if you'd like to see the fix in action, you can try downloading chrome canary, which is ahead of the stable chrome by a few weeks and already contains the fix.

Thanks

Comment 52 by junov@chromium.org, Nov 11 2015

Cc: sugoi@chromium.org
 Issue 380733  has been merged into this issue.

Sign in to add a comment