diff options
author | Leon Scroggins <scroggo@google.com> | 2017-04-20 15:06:53 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-04-20 15:07:23 +0000 |
commit | 434b6e81a5093bdd72b232de249386af3902248f (patch) | |
tree | 3f6fb1efd225d456d38bbefec5ffdcccccc06eed /gn | |
parent | 28804f3571e8eaa6f3b9d68bb1e72d99c990978a (diff) |
Revert "Make SkPngCodec only read as much of the stream as necessary"
This reverts commit 2c65d5161260f3d45a63dcd92229bd09c8a12d53.
Reason for revert: Causing failures in Google3 (https://test.corp.google.com/ui#cl=153703311&flags=CAMQAg==&id=OCL:153703311:BASE:153703364:1492695824938:4db2240d&t=//chrome/skia/dm_wrapper:dm_wrapper) and differences in Gold. This change was not intended to change the output.
Original change's description:
> Make SkPngCodec only read as much of the stream as necessary
>
> Previously, SkPngCodec assumed that the stream only contained one
> image, which ended at the end of the stream. It read the stream in
> arbitrarily-sized chunks, and then passed that data to libpng for
> processing.
>
> If a stream contains more than one image, this may result in reading
> beyond the end of the image, making future reads read the wrong data.
>
> Now, SkPngCodec starts by reading 8 bytes at a time. After the
> signature, 8 bytes is enough to know which chunk is next and how many
> bytes are in the chunk.
>
> When decoding the size, we stop when we reach IDAT, and when decoding
> the image, we stop when we reach IEND.
>
> This manual parsing is necessary to support APNG, which is planned in
> the future. It also allows us to remove the SK_GOOGLE3_PNG_HACK, which
> was a workaround for reading more than necessary at the beginning of
> the image.
>
> Add a test that simulates the issue, by decoding a special stream that
> reports an error if the codec attempts to read beyond the end.
>
> Temporarily disable the partial decoding tests for png. A larger change
> will be necessary to get those working again, and no clients are
> currently relying on incrementally decoding PNGs (i.e. decode part of
> an image, then decode further with more data).
>
> Bug: skia:5368
> BUG:34073812
>
> Change-Id: If832f7b20565411226fb5be3c305a4d16bf9269d
> Reviewed-on: https://skia-review.googlesource.com/13900
> Commit-Queue: Leon Scroggins <scroggo@google.com>
> Reviewed-by: Matt Sarett <msarett@google.com>
>
TBR=msarett@google.com,scroggo@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I2f82e9960dda7bf5c646774df84320dadb7b930e
Reviewed-on: https://skia-review.googlesource.com/13971
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Diffstat (limited to 'gn')
-rw-r--r-- | gn/tests.gni | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/gn/tests.gni b/gn/tests.gni index ffd8b41317..5955a32e86 100644 --- a/gn/tests.gni +++ b/gn/tests.gni @@ -34,7 +34,6 @@ tests_sources = [ "$_tests/ClipperTest.cpp", "$_tests/ClipStackTest.cpp", "$_tests/CodecAnimTest.cpp", - "$_tests/CodecExactReadTest.cpp", "$_tests/CodecPartialTest.cpp", "$_tests/CodecTest.cpp", "$_tests/ColorFilterTest.cpp", |