Set SkPaint stroke width to 0 to guarantee drawing hairline.

This CL makes sure that when filling a zero-area path, the rendering
result will be a hairline (exactly one pixel wide in device space).

Change-Id: I22e175653111518ce93bbf24ec241900aa05893a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/103876
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Nigi <nigi@chromium.org>
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
index 57c692d..e615529 100644
--- a/core/fxge/skia/fx_skia_device.cpp
+++ b/core/fxge/skia/fx_skia_device.cpp
@@ -607,9 +607,11 @@
   SkVector deviceUnits[2] = {{0, 1}, {1, 0}};
   inverse.mapPoints(deviceUnits, std::size(deviceUnits));
 
-  float width =
-      std::max(graph_state->m_LineWidth,
-               std::min(deviceUnits[0].length(), deviceUnits[1].length()));
+  float width = fill_options.zero_area
+                    ? 0.0f
+                    : std::max(graph_state->m_LineWidth,
+                               std::min(deviceUnits[0].length(),
+                                        deviceUnits[1].length()));
   if (!graph_state->m_DashArray.empty()) {
     size_t count = (graph_state->m_DashArray.size() + 1) / 2;
     DataVector<SkScalar> intervals(count * 2);