Merge cherrypicks of [15151696, 15151717, 15151893, 15151895, 15151897, 15151898, 15150909, 15151854, 15151855, 15151385, 15151702, 15151705, 15151707] into security-aosp-pi-release
Change-Id: I2a7b0f8b95ec8de222377a0bdef14a83dc77c69d
diff --git a/src/codec/SkPngCodec.cpp b/src/codec/SkPngCodec.cpp
index ebfe745..9646569 100644
--- a/src/codec/SkPngCodec.cpp
+++ b/src/codec/SkPngCodec.cpp
@@ -952,7 +952,7 @@
imageInfo = imageInfo.makeColorType(kAlpha_8_SkColorType);
}
}
- } else if (SkEncodedInfo::kOpaque_Alpha == alpha) {
+ } else if (encodedColorType == PNG_COLOR_TYPE_RGB) {
png_color_8p sigBits;
if (png_get_sBIT(fPng_ptr, fInfo_ptr, &sigBits)) {
if (5 == sigBits->red && 6 == sigBits->green && 5 == sigBits->blue) {
@@ -962,6 +962,18 @@
}
}
+#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
+ if (encodedColorType != PNG_COLOR_TYPE_GRAY_ALPHA
+ && SkEncodedInfo::kOpaque_Alpha == alpha) {
+ png_color_8p sigBits;
+ if (png_get_sBIT(fPng_ptr, fInfo_ptr, &sigBits)) {
+ if (5 == sigBits->red && 6 == sigBits->green && 5 == sigBits->blue) {
+ SkAndroidFrameworkUtils::SafetyNetLog("190188264");
+ }
+ }
+ }
+#endif // SK_BUILD_FOR_ANDROID_FRAMEWORK
+
if (1 == numberPasses) {
*fOutCodec = new SkPngNormalDecoder(encodedInfo, imageInfo,
std::unique_ptr<SkStream>(fStream), fChunkReader, fPng_ptr, fInfo_ptr, bitDepth);