remove clip-bounds query overrides from SkColorSpaceXformCanvas

This is the only SkCanvas subclass currently overriding these, and this
leads to buggy interactions with this canvas, saveLayer(), and image
filters.  The base SkCanvas tracks and can answer these queries just
as well as fTarget.

A couple other SkCanvas subclasses do override isClipEmpty() and
isClipRect(), and these conservative clip tracking SkCanvases can't
really answer isClipRect() correctly, so I've left those both.

I'm intentionally keeping this CL minimal in case it needs backporting
to other branches.  I'm going to follow up separately with a GM or unit
test that would reproduce the Chrome bug, and with a CL that
de-virtualizes these two methods.

BUG=chromium:781238

Change-Id: I75bf6b0910115fafe17fa721082acc415bfdae23
Reviewed-on: https://skia-review.googlesource.com/76802
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This commit is contained in:
Mike Klein 2017-11-28 11:44:45 -05:00 committed by Skia Commit-Bot
parent cd3871207d
commit 399def9595

View File

@ -286,8 +286,6 @@ public:
}
SkISize getBaseLayerSize() const override { return fTarget->getBaseLayerSize(); }
SkRect onGetLocalClipBounds() const override { return fTarget->getLocalClipBounds(); }
SkIRect onGetDeviceClipBounds() const override { return fTarget->getDeviceClipBounds(); }
bool isClipEmpty() const override { return fTarget->isClipEmpty(); }
bool isClipRect() const override { return fTarget->isClipRect(); }
bool onPeekPixels(SkPixmap* pixmap) override { return fTarget->peekPixels(pixmap); }