aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Remove SkPixelRef::getTexture()Gravatar bsalomon2016-08-23
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2264293003 Review-Url: https://codereview.chromium.org/2264293003
* GN: extract optional() as a template and use for giflib-dependent codeGravatar mtklein2016-08-23
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2270833003 Review-Url: https://codereview.chromium.org/2270833003
* GN: Fix up Ganesh native interface hooks.Gravatar mtklein2016-08-23
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2269213002 Review-Url: https://codereview.chromium.org/2269213002
* Skip non-AA intersect rects in GrReducedClipGravatar csmartdalton2016-08-23
| | | | | | | | | | Skips non-AA rects whose op is intersect or replace, and who do not precede elements that grow the clip, by tightening fIBounds. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2271493002 Review-Url: https://codereview.chromium.org/2271493002
* SkScalerContextRec::computeMatrices to return status.Gravatar bungeman2016-08-23
| | | | | | | | | | | | | | | | | | | | | When computing the matricies for a scaler context, there is a special case when the matrix is determined to be singular. No port properly handles zero sized text, so we detect this case and return a 'normal' text size and a zero matrix for all computed transformations. This CL causes computeMatricies to return 'false' in this case. This is used in the constructor of SkScalerContext_Mac in order to avoid calling CGAffineTransformInvert on non-invertible transformations. CGAffineTransformInvert documents that if the transform is non-invertible it will return the passed transform unchanged. It does so, but then also prints a message to stdout. Since the information is already available to avoid this chatty behavior, use it to keep things quiet. BUG=skia:3231,chromium:630169 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2276583003 Review-Url: https://codereview.chromium.org/2276583003
* Assume all TURBO_HAS_* are true.Gravatar mtklein2016-08-23
| | | | | | | | | Should be everyone's on libjpeg-turbo >= 1.5.0. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2274643002 Review-Url: https://codereview.chromium.org/2274643002
* Moving SkBlurImageFilter into coreGravatar vjiaoblack2016-08-23
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 Committed: https://skia.googlesource.com/skia/+/e426babe7552b1cb4e27cdf4e90826feabb9e3b0 Committed: https://skia.googlesource.com/skia/+/4d760175686df8f61a11b66946eb307d89dd2c75 Committed: https://skia.googlesource.com/skia/+/a97a1ab5719d5c355f7900b7f17dec1e467cf57e Review-Url: https://codereview.chromium.org/2255803003
* CMake: require libjpeg-turbo, not libjpegGravatar mtklein2016-08-23
| | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2273753002 CQ_INCLUDE_TRYBOTS=master.client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot Review-Url: https://codereview.chromium.org/2273753002
* experimental/tools/mskp_parser.pyGravatar halcanary2016-08-23
| | | | | | | TBR= GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2268403003 Review-Url: https://codereview.chromium.org/2268403003
* Revert of Moving SkBlurImageFilter into core (patchset #9 id:160001 of ↵Gravatar bungeman2016-08-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2255803003/ ) Reason for revert: Breaking internal roll. Still needs 'Create'. Original issue's description: > Moving SkBlurImageFilter into core > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 > > Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 > Committed: https://skia.googlesource.com/skia/+/e426babe7552b1cb4e27cdf4e90826feabb9e3b0 > Committed: https://skia.googlesource.com/skia/+/4d760175686df8f61a11b66946eb307d89dd2c75 > Committed: https://skia.googlesource.com/skia/+/a97a1ab5719d5c355f7900b7f17dec1e467cf57e TBR=reed@google.com,fmalita@chromium.org,vjiaoblack@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2274603003
* fix conic path fuzzGravatar caryclark2016-08-23
| | | | | | | | | | | | The test conic has a very large weight, so it reduces to a pair of lines. Detect this case rather than subdividing the conic so much that the answers are meaningless. R=herb@google.com, reed@google.com BUG=638223 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2268073004 Review-Url: https://codereview.chromium.org/2268073004
* SkMultiSKP: version 2Gravatar halcanary2016-08-23
| | | | | | | | | | Measurable size improvement. BUG=skia:5370 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255333003 Review-Url: https://codereview.chromium.org/2255333003
* SkPDF: PDFDevice cleanup.Gravatar halcanary2016-08-23
| | | | | | | | | | | | | Remove unused fContentSize. Combine SkPDFDevice::writeContent and SkPDFDevice::content. Remove unused SkPDFDevice::initialTransform(). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2264113003 Review-Url: https://codereview.chromium.org/2264113003
* f16<->f32 ftz is an optional thing for speed.Gravatar mtklein2016-08-23
| | | | | | | | | | | | | The ARMv8 asm path actually does it right... that should be okay. My Nexus 5x fails `dm -m _finite_ftz` before this and passes after it. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2276533002 TBR=msarett@google.com Review-Url: https://codereview.chromium.org/2276533002
* Moving SkBlurImageFilter into coreGravatar vjiaoblack2016-08-23
| | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 Committed: https://skia.googlesource.com/skia/+/e426babe7552b1cb4e27cdf4e90826feabb9e3b0 Committed: https://skia.googlesource.com/skia/+/4d760175686df8f61a11b66946eb307d89dd2c75 Review-Url: https://codereview.chromium.org/2255803003
* fix pathops fuzzGravatar caryclark2016-08-23
| | | | | | | | | | | Extreme cubics may split so that one half is a point. Discard this rather than generating a degenerate line. TBR=reed@google.com BUG=640025 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2276503002 Review-Url: https://codereview.chromium.org/2276503002
* GN: make libwebp an optional dependencyGravatar mtklein2016-08-23
| | | | | | | | | | | | | | | | | | | This will be handy for folks who don't have libwebp, like Fuchsia. I convinced myself that this is done right by: - building in all three modes (default and explicitly set both ways); - looking at verbose Ninja logs to see the presence/lack of SK_HAS_WEBP_LIBRARY; - running dm -m Codec, which passes with libwebp and segfault without it. If this is viable, I intend to make all third-party dependencies optional and follow this pattern. :skia should link and degrade gracefully without any of //third_party. It's okay for tools to have hard third-party dependencies; we just need them to get past the `gn gen` stage without them. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2270693004 Review-Url: https://codereview.chromium.org/2270693004
* Reduce window rectangles cap to 8Gravatar csmartdalton2016-08-23
| | | | | | | | | | | | Lowers the cap to 8 and adds a warning message if this value is ever exceeded. The largest (only) implementation currently supports 8, so there isn't yet reason to go higher. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2254013002 Committed: https://skia.googlesource.com/skia/+/52d721580ee22525c285e2d13cf3975a7a1b2843 Review-Url: https://codereview.chromium.org/2254013002
* Cleanup use of legacy SkSurface creation methods a bitGravatar robertphillips2016-08-23
| | | | | | | | | This CL cleans up some remaining uses of the old API GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2223023002 Committed: https://skia.googlesource.com/skia/+/f21cd16228c20927fa4e9b937d6951471cfaa37a Review-Url: https://codereview.chromium.org/2223023002
* Fix valgrind issue in CircleBatch__TestGravatar robertphillips2016-08-23
| | | | | | | TBR=bsalomon@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2271653002 Review-Url: https://codereview.chromium.org/2271653002
* Remove file samplecode/SampleDraw.cppGravatar martina.kollarova2016-08-23
| | | | | | | | | | The file is not used in any build target and seems dead, i.e. failed to compile when I added it to the SampleApp target. BUG=None GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2269583002 Review-Url: https://codereview.chromium.org/2269583002
* Fix Ganesh analytic blurred rect drawsGravatar robertphillips2016-08-22
| | | | | | | | | | | | | | This CL does two things: It fixes the SkBlurMaskFilterImpl::directFilterRRectMaskGPU draw path to explicitly handle rects It fixes the SkGpuDevice::drawTextureProducerImpl draw path to provide the correct (src & device space) inputs to directFilterRRectMaskGPU. How this was working before was that GrRRectBlurEffect::Make would reject rect-rrects and the code would fallback to GrBlurUtils::drawPathWithMaskFilter which mapped the rect-rrect into device space correctly (of course, the rect-ness of the path was removed at that point so it was going through the slow path). GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2268583002 Review-Url: https://codereview.chromium.org/2268583002
* Fix GLSL int to float error in arc code in GrOvalRenderer.Gravatar bsalomon2016-08-22
| | | | | | | | | | | BUG=skia: TBR=robertphillips@google.com NOTRY=true NOTREECHECKS=true GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2263213004 Review-Url: https://codereview.chromium.org/2263213004
* More robust check for sRGB gamma tablesGravatar msarett2016-08-22
| | | | | | | | | | | | | | | This is in response to a UMA showing that 5% dst gammas are unidentified tables. We want to see if some of these tables should be marked as sRGB. https://uma.googleplex.com/p/chrome/histograms?endDate=latest&dayCount=1&histograms=Blink.ColorSpace.Destination&fixupData=true&showMax=true&filters=isofficial%2Ceq%2CTrue&implicitFilters=isofficial This check is not fast. If we find that it doesn't help us recognize sRGB curves, we should delete it. BUG=skia:5656 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2263233003 Review-Url: https://codereview.chromium.org/2263233003
* Remove virtual from overrides in SkGpuDevice.hGravatar bsalomon2016-08-22
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2265323002 Review-Url: https://codereview.chromium.org/2265323002
* Fix CircleBatch::TestCreate to always use a legal matrixGravatar bsalomon2016-08-22
| | | | | | | | | | TBR=robertphillips@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2267953002 NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2267953002
* Mark temporary paths created by SkCanvas for clipping as volatileGravatar bsalomon2016-08-22
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2268723002 Review-Url: https://codereview.chromium.org/2268723002
* Remove vulkan from most build variantsGravatar liyuqian2016-08-22
| | | | | | | | | | | Since many devices don't support vulkan, we have to remove it for most build variants and only turn it on manually by selecting arm64vulkan build variant. BUG=skia:5516 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255973003 Review-Url: https://codereview.chromium.org/2255973003
* Flush denorm half floats to zero.Gravatar mtklein2016-08-22
| | | | | | | | | | | | | | | | | | I think we convinced ourselves that denorms, while a good chunk of half floats, cover a rather small fraction of the representable range, which is always close enough to zero to flush. This makes both paths of the conversion to or from float considerably simpler. These functions now work for zero-or-normal half floats (excluding infinite, NaN). I'm not aware of a term for this class so I've called them "ordinary". A handful of GMs and SKPs draw differently in --config f16, but all imperceptibly. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2256023002 Review-Url: https://codereview.chromium.org/2256023002
* GPU implementation of drawArc.Gravatar bsalomon2016-08-22
| | | | | | | | | This adds analytic shaders for filled arcs and butt-cap stroked arcs where the center point is not used. BUG=skia:5227 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259323003 Review-Url: https://codereview.chromium.org/2259323003
* Add cap type variations to circular arcs GMsGravatar bsalomon2016-08-22
| | | | | | | BUG=skia:5227 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2269723002 Review-Url: https://codereview.chromium.org/2269723002
* check for wide-open inside quickContainsGravatar reed2016-08-22
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2263373002 Review-Url: https://codereview.chromium.org/2263373002
* Fix MSAN - mark temporary memory as kNo_ZeroInitializedGravatar msarett2016-08-22
| | | | | | | | TBR=mtklein@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2261173004 Review-Url: https://codereview.chromium.org/2261173004
* Add trooper documentation for CT bots and for iOS "the service is invalid"Gravatar rmistry2016-08-22
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2263103003 NOTRY=true DOCS_PREVIEW= https://skia.org/?cl=2263103003 Review-Url: https://codereview.chromium.org/2263103003
* Fix Equals and serialization for rare pngsGravatar msarett2016-08-22
| | | | | | | | | | | | | | | | PNGs may contain a gAMA chunk that specifies gamma values as floats. If so, we will use these floats to create an SkColorSpace. This CL fixes Equals(), serialize(), and Deserialize() to correctly handle SkColorSpaces with strange gammas, where we are unable to fall back on the profile data. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2221983002 Review-Url: https://codereview.chromium.org/2221983002
* Revert of Moving SkBlurImageFilter into core (patchset #8 id:140001 of ↵Gravatar vjiaoblack2016-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2255803003/ ) Reason for revert: Misnamed function. Original issue's description: > Moving SkBlurImageFilter into core > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 > > Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 > Committed: https://skia.googlesource.com/skia/+/e426babe7552b1cb4e27cdf4e90826feabb9e3b0 > Committed: https://skia.googlesource.com/skia/+/4d760175686df8f61a11b66946eb307d89dd2c75 TBR=reed@google.com,fmalita@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2265263002
* Moving SkBlurImageFilter into coreGravatar vjiaoblack2016-08-22
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 Committed: https://skia.googlesource.com/skia/+/e426babe7552b1cb4e27cdf4e90826feabb9e3b0 Review-Url: https://codereview.chromium.org/2255803003
* Remove quantization of device-space dest rect for Ganesh analytic rrect blursGravatar robertphillips2016-08-22
| | | | | | | | At least on Windows, this fixes a lot of the horrible banded blurs. AFAICT there is no good reason to quantize the device space rect passed to the GrRectBlurEffect. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2262263002 Review-Url: https://codereview.chromium.org/2262263002
* Mark temp paths in SkBaseDevice::drawArc and ::drawDRRect as volatileGravatar bsalomon2016-08-22
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2261123004 Review-Url: https://codereview.chromium.org/2261123004
* Fix touch event parameter orderGravatar liyuqian2016-08-22
| | | | | | | | | | | The issue is so obvious... However, all newer Android devices (e.g., Nexus 6P, 5X, 9) are immune to this bug. So I didn't notice this until I tested Viewer app on Nexus 7 yesterday... BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2254223002 Review-Url: https://codereview.chromium.org/2254223002
* Revert of Moving SkBlurImageFilter into core (patchset #8 id:140001 of ↵Gravatar vjiaoblack2016-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2255803003/ ) Reason for revert: Fixed it wrong, needs to revert to re-discuss and re-land. Original issue's description: > Moving SkBlurImageFilter into core > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 > > Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 > Committed: https://skia.googlesource.com/skia/+/e426babe7552b1cb4e27cdf4e90826feabb9e3b0 TBR=reed@google.com,fmalita@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2266063002
* Moving SkBlurImageFilter into coreGravatar vjiaoblack2016-08-22
| | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 Review-Url: https://codereview.chromium.org/2255803003
* Add stroke-and-fill circular arc test, test near 180deg arc in all ↵Gravatar bsalomon2016-08-22
| | | | | | | | | circular_arc_tests BUG=skia:5227 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2261233002 Review-Url: https://codereview.chromium.org/2261233002
* Detect all named gammasGravatar msarett2016-08-22
| | | | | | | | | | | | | | | | | | | | | | | | Our DstColorSpace UMA is showing some named gammas that are not appropriately detected and placed in named categories. https://uma.googleplex.com/p/chrome/histograms?endDate=latest&dayCount=1&histograms=Blink.ColorSpace.Destination&fixupData=true&showMax=true&filters=isofficial%2Ceq%2CTrue&implicitFilters=isofficial This CL should fix that. I'm not sure (yet) how I feel about this landing permanently. Seems a little messy. But it will be interesting to see how this affects the UMA. My best guess is that we are hitting this case when all three gammas are "invalid" in different ways. I'm expecting to see some profiles end up in the "invalid" category now. It's also possible that we'll see these cases being absorbed into sRGB or somewhere else. BUG=skia:5656 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2261213002 Review-Url: https://codereview.chromium.org/2261213002
* compress_r11eac_blocks() required more alignment than dst has.Gravatar mtklein2016-08-22
| | | | | | | | | | | | | | This shouldn't change any behavior except that the stores to dst will no longer require 8-byte alignment. Empirically it seems like we can use 4-byte alignment here, but u8 (i.e. 1-byte alignment) is always safe. BUG=skia:5637 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2264103002 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2264103002
* Revert of Moving SkBlurImageFilter into core (patchset #6 id:100001 of ↵Gravatar mtklein2016-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2255803003/ ) Reason for revert: It looks like this breaks our roll into Google3: https://test.corp.google.com/ui#id=OCL:130943857:BASE:130944046:1471881622765:61dbdd3 Original issue's description: > Moving SkBlurImageFilter into core > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 > > Committed: https://skia.googlesource.com/skia/+/dd3259eb95c3b47e11eefa3b176365a112a32b48 TBR=reed@google.com,fmalita@chromium.org,vjiaoblack@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2263283002
* Use ARMv8 CRC32 instructions for SkOpts::hash().Gravatar mtklein2016-08-22
| | | | | | | | | | | | | | | | | | | | | | | For large inputs, this runs ~11x faster than Murmur3. My bench drops from 1µs to 88ns. Like x86-64, this runs fastest if we work in 24 byte chunks. 16 byte chunks run at about 0.75x this speed, 8 byte chunks at about 0.4x (which would still be about 5x faster than Murmur3). This'll require plumbing support for opts_crc32 into Chrome first before it can roll. perf.skia.org charts we want to watch: https://perf.skia.org/#5490 Seach for compute_hash in these logs to see the difference: baseline: https://luci-milo.appspot.com/swarming/task/30ba22f3dfe30e10/steps/nanobench/0/stdout trybot: https://luci-milo.appspot.com/swarming/task/30bbc406cbf62d10/steps/nanobench/0/stdout BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2260823002 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2260823002
* Moving SkBlurImageFilter into coreGravatar vjiaoblack2016-08-22
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255803003 Review-Url: https://codereview.chromium.org/2255803003
* Support color xforms for kIndex8 pngsGravatar msarett2016-08-22
| | | | | | | | | | | | | | This change started as: "Always use color xforms to premultiply". We need to be in a linear space to premultiply correctly. It became clear that we also need to support kIndex8 color xforms in order to make this change. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2246143002 Review-Url: https://codereview.chromium.org/2246143002
* 'g' key toggles showgrid for PerlinPatchGravatar reed2016-08-22
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2269673002 TBR= Review-Url: https://codereview.chromium.org/2269673002