Reland "Respect canvas size and frame offset in webp decoder"

Original Change Reviewed At:
https://skia-review.googlesource.com/c/7800

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN

BUG=skia:6185

Change-Id: I1a7732832d37920545c1775d7c7c65b43ed810f9
Reviewed-on: https://skia-review.googlesource.com/8157
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
diff --git a/tests/CodecTest.cpp b/tests/CodecTest.cpp
index 4083cfa..8a4d6fc 100644
--- a/tests/CodecTest.cpp
+++ b/tests/CodecTest.cpp
@@ -662,6 +662,8 @@
     test_invalid(r, "empty_images/zero-height.wbmp");
     // This image is an ico with an embedded mask-bmp.  This is illegal.
     test_invalid(r, "invalid_images/mask-bmp-ico.ico");
+    // It is illegal for a webp frame to not be fully contained by the canvas.
+    test_invalid(r, "invalid_images/invalid-offset.webp");
 #if defined(SK_CODEC_DECODES_RAW) && (!defined(_WIN32))
     test_invalid(r, "empty_images/zero_height.tiff");
 #endif