Roll third_party/harfbuzz/src/ a243dcb5c..e6741e220 (406 commits)

https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git/+log/a243dcb5c447..e6741e220530

[1] introduces a relationship between HB_NO_DRAW and HB_NO_OT_FONT_CFF
in hb-config.hh. PDFium wants HB_NO_DRAW but still needs CFF support for
subsetting. Use the same temporary override as
https://crrev.com/c/7799984.

Created with:
  roll-dep third_party/harfbuzz/src

[1]
https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git/+/bd645e5573a435e7cd4dfbce0c0a6f9334b8cfa1

Bug: 507839557
Change-Id: I2a12d8ae729c9924b694eecb51c9eb3db263afbb
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/147054
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Andy Phan <andyphan@chromium.org>
diff --git a/DEPS b/DEPS
index 127b036..deb91a0 100644
--- a/DEPS
+++ b/DEPS
@@ -154,7 +154,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling HarfBuzz
   # and whatever else without interference from each other.
-  'harfbuzz_revision': 'a243dcb5c4479eebf91caa84daa51cfdd3d608bf',
+  'harfbuzz_revision': 'e6741e2205309752839da60ff075b7fa2e7cddd3',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling highway
   # and whatever else without interference from each other.
diff --git a/third_party/harfbuzz/BUILD.gn b/third_party/harfbuzz/BUILD.gn
index c0a5647..a7aea21 100644
--- a/third_party/harfbuzz/BUILD.gn
+++ b/third_party/harfbuzz/BUILD.gn
@@ -25,7 +25,10 @@
   }
 } else {
   config("harfbuzz_config") {
-    include_dirs = [ "src/src" ]
+    include_dirs = [
+      "src/src",
+      ".",
+    ]
   }
 
   config("harfbuzz_warnings") {
@@ -405,6 +408,11 @@
       # We're not using HarfBuzz' drawing functions or debug tools in this build.
       "HB_NO_DRAW",
 
+      # Workaround: We want HB_NO_DRAW but we still need CFF support for subsetting.
+      # TODO(crbug.com/507839557): Need to remove config override workaround after
+      # https://github.com/harfbuzz/harfbuzz/issues/5955 is resolved.
+      "HB_CONFIG_OVERRIDE_LAST_H=\"pdfium-config-override.h\"",
+
       # Don't ship experimental extensions.
       "HB_NO_BORING_EXPANSION",
 
diff --git a/third_party/harfbuzz/README.pdfium b/third_party/harfbuzz/README.pdfium
index 4898ee4..a44e022 100644
--- a/third_party/harfbuzz/README.pdfium
+++ b/third_party/harfbuzz/README.pdfium
@@ -1,10 +1,10 @@
 Name: harfbuzz
 Short Name: harfbuzz
 URL: http://harfbuzz.org
-Version: 12.3.0-20
-CPEPrefix: cpe:/a:harfbuzz_project:harfbuzz:12.3.0
-Date: 2026-01-08
-Revision: fa2908bf16d2ccd6623f4d575455fea72a1a722b
+Version: 14.2.0-11
+CPEPrefix: cpe:/a:harfbuzz_project:harfbuzz:14.2.0
+Date: 2026-04-29
+Revision: e6741e2205309752839da60ff075b7fa2e7cddd3
 Update Mechanism: Manual
 Security Critical: yes
 Shipped: yes
diff --git a/third_party/harfbuzz/pdfium-config-override.h b/third_party/harfbuzz/pdfium-config-override.h
new file mode 100644
index 0000000..5dd9c33
--- /dev/null
+++ b/third_party/harfbuzz/pdfium-config-override.h
@@ -0,0 +1,19 @@
+/* Copyright 2026 The PDFium Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef PDFIUM_CONFIG_OVERRIDE_H
+#define PDFIUM_CONFIG_OVERRIDE_H
+
+/* HarfBuzz 14.2.0 introduced a relationship between HB_NO_DRAW and
+ * HB_NO_OT_FONT_CFF in hb-config.hh. PDFium wants HB_NO_DRAW to reduce binary
+ * size, but still needs CFF support for variable font subsetting.
+ * This override unsets HB_NO_OT_FONT_CFF after hb-config.hh has set it.
+ * TODO(crbug.com/507839557): Need to remove config override workaround after
+ * https://github.com/harfbuzz/harfbuzz/issues/5955 is resolved.
+ */
+#undef HB_NO_OT_FONT_CFF
+
+#endif  /* PDFIUM_CONFIG_OVERRIDE_H */
+