Add method CFX_WindowsRenderDevice::DebugVerifyBitmapIsPreMultiplied().

When rendering PDFs on a Windows platform, CFX_WindowsRenderDevice is
always used, and its |m_pDeviceDriver| can never be type
CFX_SkiaDeviceDriver even when Skia is enabled.

However, when Skia is enabled, the rendering process still checks
whether bitmap is pre-multiplied assuming CFX_SkiaDeviceDriver is the
only driver type that's being used, which causes crashes since
CFX_WindowsRenderDevice doesn't have a matching method
DebugVerifyBitmapIsPreMultiplied() for its possible device drivers and
CFX_RenderDevice::DebugVerifyBitmapIsPreMultiplied() gets called.

This CL adds the method
CFX_WindowsRenderDevice::DebugVerifyBitmapIsPreMultiplied() so that for
rendering with Skia on Windows, we can still verify the bitmap is
pre-multiplied without the device driver being CFX_SkiaDeviceDriver
type. This CL also enables the two Windows embedder tests which crash
due to missing this method.

Bug: pdfium:1500
Change-Id: Ie6d22200f44376dd88852da2450ae8f3e6065d5c
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/76016
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
Commit-Queue: Hui Yingst <nigi@chromium.org>
diff --git a/core/fxge/cfx_windowsrenderdevice.cpp b/core/fxge/cfx_windowsrenderdevice.cpp
index 3f40c7a..698a4d6 100644
--- a/core/fxge/cfx_windowsrenderdevice.cpp
+++ b/core/fxge/cfx_windowsrenderdevice.cpp
@@ -462,3 +462,9 @@
 }
 
 CFX_WindowsRenderDevice::~CFX_WindowsRenderDevice() = default;
+
+#if defined(_SKIA_SUPPORT_)
+void CFX_WindowsRenderDevice::DebugVerifyBitmapIsPreMultiplied() const {
+  ASSERT(GetDeviceCaps(FXDC_BITS_PIXEL) == 32);
+}
+#endif
diff --git a/core/fxge/cfx_windowsrenderdevice.h b/core/fxge/cfx_windowsrenderdevice.h
index 84b34d6..a356dc6 100644
--- a/core/fxge/cfx_windowsrenderdevice.h
+++ b/core/fxge/cfx_windowsrenderdevice.h
@@ -39,6 +39,10 @@
  public:
   CFX_WindowsRenderDevice(HDC hDC, const EncoderIface* pEncoderIface);
   ~CFX_WindowsRenderDevice() override;
+
+#if defined(_SKIA_SUPPORT_)
+  void DebugVerifyBitmapIsPreMultiplied() const override;
+#endif
 };
 
 #endif  // CORE_FXGE_CFX_WINDOWSRENDERDEVICE_H_
diff --git a/fpdfsdk/fpdf_view_embeddertest.cpp b/fpdfsdk/fpdf_view_embeddertest.cpp
index 4e52863..193f372 100644
--- a/fpdfsdk/fpdf_view_embeddertest.cpp
+++ b/fpdfsdk/fpdf_view_embeddertest.cpp
@@ -1478,13 +1478,7 @@
   }
 };
 
-// TODO(crbug.com/pdfium/1500): Fix this test and enable.
-#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-#define MAYBE_Rectangles DISABLED_Rectangles
-#else
-#define MAYBE_Rectangles Rectangles
-#endif
-TEST_F(PostScriptLevel2EmbedderTest, MAYBE_Rectangles) {
+TEST_F(PostScriptLevel2EmbedderTest, Rectangles) {
   ASSERT_TRUE(OpenDocument("rectangles.pdf"));
   FPDF_PAGE page = LoadPage(0);
   ASSERT_TRUE(page);
@@ -1501,13 +1495,7 @@
   UnloadPage(page);
 }
 
-// TODO(crbug.com/pdfium/1500): Fix this test and enable.
-#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-#define MAYBE_Rectangles DISABLED_Rectangles
-#else
-#define MAYBE_Rectangles Rectangles
-#endif
-TEST_F(PostScriptLevel3EmbedderTest, MAYBE_Rectangles) {
+TEST_F(PostScriptLevel3EmbedderTest, Rectangles) {
   ASSERT_TRUE(OpenDocument("rectangles.pdf"));
   FPDF_PAGE page = LoadPage(0);
   ASSERT_TRUE(page);