[Skia] Fix the issue that unwanted black borders are rendered.

Revert CL [1] since the linear SkMipmapMode wasn't the actual root
cause for images/masks being rendered with black borders. The
unwanted borders were caused by using `kOpaque_SkAlphaType` for
initiating Skia rendering device, which will enforce the new CPU
backend to be opaque if SkMipmapMode::kLinear is in use.

Since `kOpaque_SkAlphaType` may cause unwanted opaque layers, this CL
switched to use the SkAlphaType::kPremul_SkAlphaType (which is more
reliable than SkAlphaType::kOpaque_SkAlphaType) so that an image's
(whether it's a mask or not) transparency can be respected.

[1] https://pdfium-review.googlesource.com/100174

Bug: pdfium:1818,pdfium:1896
Change-Id: Icfbbdeb4830467f829b49719ccb825d726b3549a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/100930
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Nigi <nigi@chromium.org>
diff --git a/DEPS b/DEPS
index 45495f5..23e3390 100644
--- a/DEPS
+++ b/DEPS
@@ -130,7 +130,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling pdfium_tests
   # and whatever else without interference from each other.
-  'pdfium_tests_revision': 'd9ef4ae67c89af1de020f0a4b5b16718a5b6ba88',
+  'pdfium_tests_revision': 'b05000cdfc72f339b6e0215f362f1456fa3278de',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling resultdb
   # and whatever else without interference from each other.
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
index b51526a..63e2536 100644
--- a/core/fxge/skia/fx_skia_device.cpp
+++ b/core/fxge/skia/fx_skia_device.cpp
@@ -720,8 +720,7 @@
   SkColorType colorType = forceAlpha || pSource->IsMaskFormat()
                               ? SkColorType::kAlpha_8_SkColorType
                               : SkColorType::kGray_8_SkColorType;
-  SkAlphaType alphaType =
-      pSource->IsMaskFormat() ? kPremul_SkAlphaType : kOpaque_SkAlphaType;
+  SkAlphaType alphaType = kPremul_SkAlphaType;
   int width = pSource->GetWidth();
   int height = pSource->GetHeight();
   int rowBytes = pSource->GetPitch();
@@ -808,7 +807,6 @@
     }
     case 32:
       colorType = Get32BitSkColorType(bRgbByteOrder);
-      alphaType = kPremul_SkAlphaType;
       pSource->DebugVerifyBufferIsPreMultiplied(buffer);
       break;
     default:
@@ -1734,7 +1732,7 @@
 
   SkImageInfo imageInfo =
       SkImageInfo::Make(pBitmap->GetWidth(), pBitmap->GetHeight(), color_type,
-                        kOpaque_SkAlphaType);
+                        kPremul_SkAlphaType);
   skBitmap.installPixels(imageInfo, pBitmap->GetBuffer().data(),
                          pBitmap->GetPitch());
   m_pCanvas = new SkCanvas(skBitmap);
@@ -2852,7 +2850,7 @@
           CStretchEngine::UseInterpolateBilinear(options, dest_width,
                                                  dest_height, width, height)) {
         sampling_options =
-            SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kNearest);
+            SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear);
       }
       m_pCanvas->drawImageRect(skBitmap.asImage(),
                                SkRect::MakeWH(width, height), sampling_options,
diff --git a/fpdfsdk/fpdf_edit_embeddertest.cpp b/fpdfsdk/fpdf_edit_embeddertest.cpp
index 3ba7e5d..bc78619 100644
--- a/fpdfsdk/fpdf_edit_embeddertest.cpp
+++ b/fpdfsdk/fpdf_edit_embeddertest.cpp
@@ -3856,7 +3856,7 @@
     EXPECT_EQ(FPDFBitmap_BGRA, FPDFBitmap_GetFormat(bitmap.get()));
     const char* checksum = []() {
       if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
-        return "404d679bd7e735543b001565cdbe3bf2";
+        return "3b51fc066ee18efbf70bab0501763603";
       return "582ca300e003f512d7b552c7b5b45d2e";
     }();
     CompareBitmap(bitmap.get(), 53, 43, checksum);
@@ -3893,7 +3893,7 @@
     EXPECT_EQ(FPDFBitmap_BGRA, FPDFBitmap_GetFormat(bitmap.get()));
     const char* checksum = []() {
       if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
-        return "2aec37e653af0780bc5903c34781588c";
+        return "74081c2a48c2fd4f1fde544f056e956b";
       return "0824c16dcf2dfcef44b45d88db1fddce";
     }();
     CompareBitmap(bitmap.get(), 120, 43, checksum);
diff --git a/testing/resources/pixel/bug_1015233_expected_skia.pdf.0.png b/testing/resources/pixel/bug_1015233_expected_skia.pdf.0.png
index 8e1a456..1a2a736 100644
--- a/testing/resources/pixel/bug_1015233_expected_skia.pdf.0.png
+++ b/testing/resources/pixel/bug_1015233_expected_skia.pdf.0.png
Binary files differ
diff --git a/testing/resources/pixel/xfa_specific/resolve_nodes_0_expected_skia.pdf.0.png b/testing/resources/pixel/xfa_specific/resolve_nodes_0_expected_skia.pdf.0.png
index c5fa501..e454dfd 100644
--- a/testing/resources/pixel/xfa_specific/resolve_nodes_0_expected_skia.pdf.0.png
+++ b/testing/resources/pixel/xfa_specific/resolve_nodes_0_expected_skia.pdf.0.png
Binary files differ
diff --git a/xfa/fwl/cfwl_edit_embeddertest.cpp b/xfa/fwl/cfwl_edit_embeddertest.cpp
index 8d90ec1..11797fa 100644
--- a/xfa/fwl/cfwl_edit_embeddertest.cpp
+++ b/xfa/fwl/cfwl_edit_embeddertest.cpp
@@ -255,7 +255,7 @@
   FORM_OnLButtonDown(form_handle(), page(), 0, 115, 58);
   const char* filled_checksum = []() {
     if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
-      return "40c1877a7ac5d71e61cc5dbc567576f6";
+      return "062ad65614888e4f114b99f3396be3e8";
     return "101cf6223fa2403fba4c413a8310ab02";
   }();
   ScopedFPDFBitmap page_bitmap = RenderLoadedPageWithFlags(page(), FPDF_ANNOT);