diff --git a/src/3rdparty/chromium/third_party/pdfium/BUILD.gn b/src/3rdparty/chromium/third_party/pdfium/BUILD.gn
index 2d336d0..f9b0c08 100644
--- a/src/3rdparty/chromium/third_party/pdfium/BUILD.gn
+++ b/src/3rdparty/chromium/third_party/pdfium/BUILD.gn
@@ -39,7 +39,12 @@ config("pdfium_common_config") {
     defines += [ "_SKIA_SUPPORT_PATHS_" ]
   }
 
-  if (is_win) {
+  if (is_mingw) {
+    # Suppress myriad of incomplete enumeration warnings
+    cflags += [ "-Wno-switch" ]
+  }
+
+  if (is_msvc) {
     # Assume UTF-8 by default to avoid code page dependencies.
     cflags += [ "/utf-8" ]
   }
@@ -108,7 +113,7 @@ config("pdfium_core_config") {
       defines += [ "_FX_CPU_=_FX_X86_" ]
     }
   }
-  if (is_win) {
+  if (is_msvc) {
     cflags += [
       "/wd4324",
       "/wd4577",
@@ -188,9 +193,9 @@ component("pdfium") {
 
   if (is_win) {
     libs += [
-      "advapi32.lib",
-      "gdi32.lib",
-      "user32.lib",
+      "advapi32",
+      "gdi32",
+      "user32",
     ]
   }
 
diff --git a/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_expintfunc.h b/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_expintfunc.h
index 95bdab6..2c41e10 100644
--- a/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_expintfunc.h
+++ b/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_expintfunc.h
@@ -7,6 +7,7 @@
 #ifndef CORE_FPDFAPI_PAGE_CPDF_EXPINTFUNC_H_
 #define CORE_FPDFAPI_PAGE_CPDF_EXPINTFUNC_H_
 
+#include <cstdint>
 #include <set>
 #include <vector>
 
diff --git a/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h b/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h
index fd68b6b..dc7c015 100644
--- a/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h
+++ b/src/3rdparty/chromium/third_party/pdfium/core/fpdfapi/page/cpdf_function.h
@@ -7,6 +7,7 @@
 #ifndef CORE_FPDFAPI_PAGE_CPDF_FUNCTION_H_
 #define CORE_FPDFAPI_PAGE_CPDF_FUNCTION_H_
 
+#include <cstdint>
 #include <memory>
 #include <set>
 #include <vector>
diff --git a/src/3rdparty/chromium/third_party/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h b/src/3rdparty/chromium/third_party/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h
index 9bcdd37..5921794 100644
--- a/src/3rdparty/chromium/third_party/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h
+++ b/src/3rdparty/chromium/third_party/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext.h
@@ -7,6 +7,7 @@
 #ifndef CORE_FXCODEC_JBIG2_JBIG2_DOCUMENTCONTEXT_H_
 #define CORE_FXCODEC_JBIG2_JBIG2_DOCUMENTCONTEXT_H_
 
+#include <cstdint>
 #include <list>
 #include <memory>
 #include <utility>
diff --git a/src/3rdparty/chromium/third_party/pdfium/skia/BUILD.gn b/src/3rdparty/chromium/third_party/pdfium/skia/BUILD.gn
index da0387a..abbff30 100644
--- a/src/3rdparty/chromium/third_party/pdfium/skia/BUILD.gn
+++ b/src/3rdparty/chromium/third_party/pdfium/skia/BUILD.gn
@@ -109,11 +109,13 @@ config("skia_library_config") {
       # starts up, depending on the actual device memory).
       "SK_DEFAULT_FONT_CACHE_LIMIT=1048576",  # 1024 * 1024
     ]
+  } else if (is_mingw) {
+    defines += [ "SK_DEFAULT_FONT_CACHE_COUNT_LIMIT=256" ]
   } else {
     defines += [ "SK_DEFAULT_FONT_CACHE_LIMIT=20971520" ]  # 20 * 1024 * 1024
   }
 
-  if (is_win) {
+  if (is_msvc) {
     defines += [
       # On windows, GDI handles are a scarse system-wide resource so we have to
       # keep the glyph cache, which holds up to 4 GDI handles per entry, to a
@@ -143,7 +145,7 @@ config("skia_library_config") {
 
 source_set("skcms") {
   cflags = []
-  if (!is_win || is_clang) {
+  if (!is_msvc || is_clang) {
     cflags += [
       "-w",
       "-std=c11",
@@ -382,7 +384,7 @@ template("skia_source_set") {
     ]
     public_configs = [ ":skia_config" ]
 
-    if (is_win) {
+    if (is_msvc) {
       cflags_cc = [
         "/std:c++17",
         "/wd5041",  # out-of-line definition for constexpr static data member is
@@ -407,7 +409,7 @@ skia_source_set("skia_core_and_effects") {
 if (current_cpu == "x86" || current_cpu == "x64") {
   skia_source_set("skia_opts_sse3") {
     sources = skia_opts.ssse3_sources
-    if (!is_win || is_clang) {
+    if (!is_msvc || is_clang) {
       cflags = [ "-mssse3" ]
     }
     if (is_win) {
@@ -417,7 +419,7 @@ if (current_cpu == "x86" || current_cpu == "x64") {
   }
   skia_source_set("skia_opts_sse41") {
     sources = skia_opts.sse41_sources
-    if (!is_win || is_clang) {
+    if (!is_msvc || is_clang) {
       cflags = [ "-msse4.1" ]
     }
     if (is_win) {
@@ -427,7 +429,7 @@ if (current_cpu == "x86" || current_cpu == "x64") {
   }
   skia_source_set("skia_opts_sse42") {
     sources = skia_opts.sse42_sources
-    if (!is_win || is_clang) {
+    if (!is_msvc || is_clang) {
       cflags = [ "-msse4.2" ]
     }
     if (is_win) {
@@ -437,17 +439,17 @@ if (current_cpu == "x86" || current_cpu == "x64") {
   }
   skia_source_set("skia_opts_avx") {
     sources = skia_opts.avx_sources
-    if (!is_win) {
+    if (!is_msvc) {
       cflags = [ "-mavx" ]
     }
-    if (is_win) {
+    if (is_msvc) {
       cflags = [ "/arch:AVX" ]
     }
     visibility = [ ":skia_opts" ]
   }
   skia_source_set("skia_opts_hsw") {
     sources = skia_opts.hsw_sources
-    if (!is_win) {
+    if (!is_msvc) {
       cflags = [
         "-mavx2",
         "-mbmi",
@@ -456,17 +458,17 @@ if (current_cpu == "x86" || current_cpu == "x64") {
         "-mfma",
       ]
     }
-    if (is_win) {
+    if (is_msvc) {
       cflags = [ "/arch:AVX2" ]
     }
     visibility = [ ":skia_opts" ]
   }
   skia_source_set("skia_opts_skx") {
     sources = skia_opts.skx_sources
-    if (!is_win) {
+    if (!is_msvc) {
       cflags = [ "-march=skylake-avx512" ]
     }
-    if (is_win) {
+    if (is_msvc) {
       cflags = [ "/arch:AVX512" ]
     }
     visibility = [ ":skia_opts" ]
diff --git a/src/3rdparty/chromium/third_party/pdfium/third_party/base/memory/aligned_memory.cc b/src/3rdparty/chromium/third_party/pdfium/third_party/base/memory/aligned_memory.cc
index 3cacf3f..dc8ed91 100644
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/base/memory/aligned_memory.cc
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/base/memory/aligned_memory.cc
@@ -19,7 +19,7 @@ void* AlignedAlloc(size_t size, size_t alignment) {
   DCHECK(bits::IsPowerOfTwo(alignment));
   DCHECK_EQ(alignment % sizeof(void*), 0U);
   void* ptr = nullptr;
-#if defined(COMPILER_MSVC)
+#if defined(OS_WIN)
   ptr = _aligned_malloc(size, alignment);
 #elif defined(OS_ANDROID)
   // Android technically supports posix_memalign(), but does not expose it in
diff --git a/src/3rdparty/chromium/third_party/pdfium/third_party/base/memory/aligned_memory.h b/src/3rdparty/chromium/third_party/pdfium/third_party/base/memory/aligned_memory.h
index 06241a5..94d700c 100644
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/base/memory/aligned_memory.h
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/base/memory/aligned_memory.h
@@ -14,7 +14,7 @@
 #include "third_party/base/base_export.h"
 #include "third_party/base/bits.h"
 
-#if defined(COMPILER_MSVC)
+#if defined(OS_WIN)
 #include <malloc.h>
 #else
 #include <stdlib.h>
@@ -41,7 +41,7 @@ namespace base {
 BASE_EXPORT void* AlignedAlloc(size_t size, size_t alignment);
 
 inline void AlignedFree(void* ptr) {
-#if defined(COMPILER_MSVC)
+#if defined(OS_WIN)
   _aligned_free(ptr);
 #else
   free(ptr);
diff --git a/src/3rdparty/chromium/third_party/pdfium/third_party/base/span.h b/src/3rdparty/chromium/third_party/pdfium/third_party/base/span.h
index bb07f43..0b7daf7 100644
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/base/span.h
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/base/span.h
@@ -9,6 +9,7 @@
 
 #include <algorithm>
 #include <array>
+#include <cstdint>
 #include <iterator>
 #include <type_traits>
 #include <utility>
diff --git a/src/3rdparty/chromium/third_party/pdfium/third_party/BUILD.gn b/src/3rdparty/chromium/third_party/pdfium/third_party/BUILD.gn
index 3c1189a..61661c5 100644
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/BUILD.gn
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/BUILD.gn
@@ -370,7 +370,7 @@ group("libopenjpeg2") {
 
 config("fx_libopenjpeg_warnings") {
   visibility = [ ":*" ]
-  if (is_win && !is_clang && target_cpu == "x86") {
+  if (is_msvc && !is_clang && target_cpu == "x86") {
     cflags = [
       # Signed/unsigned comparisons.
       "/wd4018",
@@ -499,7 +499,7 @@ source_set("fx_lpng") {
     ]
   }
 
-  if (is_win) {
+  if (is_msvc) {
     # Unary minus applied to unsigned type.
     cflags += [ "/wd4146" ]
   }
@@ -517,6 +517,13 @@ if (pdf_enable_xfa_tiff) {
       # tif_ojpeg.c and tif_jpeg.c.
       configs -= [ "//build/config/win:lean_and_mean" ]
     }
+    if (is_mingw) {
+      cflags = [
+        "-Wno-integer-overflow",
+        "-Wno-overflow",
+        "-Wno-shift-count-overflow",
+      ]
+    }
     deps = [
       ":zlib",
       "../core/fxcrt",
