Revert "Revert "Add support for writing icc profiles to the jpeg encoder""

This reverts commit dda14b9b7ac13dba9214f484fc6270b3ccf4b68b.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Add support for writing icc profiles to the jpeg encoder"
> 
> This reverts commit 4ef01482025e2e629e35458aa214436d3b4138e8.
> 
> Reason for revert: This breaks the android autoroller.
> 
> Original change's description:
> > Add support for writing icc profiles to the jpeg encoder
> > 
> > Also, share the impl for skjpeg_error_mgr between the
> > jpeg decoder and encoder.  They are already identical
> > anyway.
> > 
> > BUG=skia:
> > 
> > Change-Id: I4d67f28126388fef3057d62b6e0b203e21ed4afb
> > Reviewed-on: https://skia-review.googlesource.com/10011
> > Reviewed-by: Leon Scroggins <scroggo@google.com>
> > Commit-Queue: Matt Sarett <msarett@google.com>
> > 
> 
> TBR=msarett@google.com,scroggo@google.com,reviews@skia.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
> 
> Change-Id: Idbb9918370e8384e39d6b7d1c3bcd9545ce4cfd1
> Reviewed-on: https://skia-review.googlesource.com/10017
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Commit-Queue: Derek Sollenberger <djsollen@google.com>
> 

TBR=djsollen@google.com,msarett@google.com,scroggo@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Change-Id: I9c1df3f497a9187ac017e464976fd8f0333bad0e
Reviewed-on: https://skia-review.googlesource.com/10030
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 65e5475..da75ffb 100644
--- a/tests/CodecTest.cpp
+++ b/tests/CodecTest.cpp
@@ -1530,7 +1530,22 @@
     }
 }
 
-DEF_TEST(Codec_EncodeICC, r) {
+static void encode_format(SkDynamicMemoryWStream* stream, const SkPixmap& pixmap,
+                          const SkEncodeOptions& opts, SkEncodedImageFormat format) {
+    switch (format) {
+        case SkEncodedImageFormat::kPNG:
+            SkEncodeImageAsPNG(stream, pixmap, opts);
+            break;
+        case SkEncodedImageFormat::kJPEG:
+            SkEncodeImageAsJPEG(stream, pixmap, opts);
+            break;
+        default:
+            SkASSERT(false);
+            break;
+    }
+}
+
+static void test_encode_icc(skiatest::Reporter* r, SkEncodedImageFormat format) {
     // Test with sRGB color space.
     SkBitmap srgbBitmap;
     SkImageInfo srgbInfo = SkImageInfo::MakeS32(1, 1, kOpaque_SkAlphaType);
@@ -1541,7 +1556,7 @@
     SkDynamicMemoryWStream srgbBuf;
     SkEncodeOptions opts;
     opts.fColorBehavior = SkEncodeOptions::ColorBehavior::kCorrect;
-    SkEncodeImageAsPNG(&srgbBuf, pixmap, opts);
+    encode_format(&srgbBuf, pixmap, opts, format);
     sk_sp<SkData> srgbData = srgbBuf.detachAsData();
     std::unique_ptr<SkCodec> srgbCodec(SkCodec::NewFromData(srgbData));
     REPORTER_ASSERT(r, srgbCodec->getInfo().colorSpace() == SkColorSpace::MakeSRGB().get());
@@ -1551,7 +1566,7 @@
     sk_sp<SkColorSpace> p3 = SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma,
                                                    SkColorSpace::kDCIP3_D65_Gamut);
     pixmap.setColorSpace(p3);
-    SkEncodeImageAsPNG(&p3Buf, pixmap, opts);
+    encode_format(&p3Buf, pixmap, opts, format);
     sk_sp<SkData> p3Data = p3Buf.detachAsData();
     std::unique_ptr<SkCodec> p3Codec(SkCodec::NewFromData(p3Data));
     REPORTER_ASSERT(r, p3Codec->getInfo().colorSpace()->gammaCloseToSRGB());
@@ -1564,7 +1579,12 @@
 
     for (int i = 0; i < 4; i++) {
         for (int j = 0; j < 4; j++) {
-            REPORTER_ASSERT(r, color_space_almost_equal(mat0.get(0, 0), mat1.get(0, 0)));
+            REPORTER_ASSERT(r, color_space_almost_equal(mat0.get(i, j), mat1.get(i, j)));
         }
     }
 }
+
+DEF_TEST(Codec_EncodeICC, r) {
+    test_encode_icc(r, SkEncodedImageFormat::kPNG);
+    test_encode_icc(r, SkEncodedImageFormat::kJPEG);
+}