[Merge] Roll src/third_party/harfbuzz-ng/src/ 6454cec08..acdab17ed (117 commits)

Contains an improvement in checking CFF glyph name length, potentially related to issue 1316699. [1]

[1] https://github.com/harfbuzz/harfbuzz/commit/a2f132f1fc5ed1c8426dea1b1e27aa1eaf8eeb04

https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git/+log/6454cec085ba..acdab17ed350

$ git log 6454cec08..acdab17ed --date=short --no-merges --format='%ad %ae %s'
2022-05-13 behdad [cff] Cosmetic in parsed_values_t
2022-05-13 behdad [cff] Check buf_len, not buf
2022-05-13 grieger [subset] fix potential integer overflow in gname_t::cmp.
2022-05-13 behdad [cff-common] In INDEX, return empty bytes if length is zero
2022-05-13 behdad [cff] Check glyph-name's length, not arrayZ
2022-05-13 jeremiazhao fix build requirements for fedora/centos in buiding document
2022-05-10 thomas.devoogdt [meta] fix type traits on gcc 4.9 #3526
2022-05-13 grieger [perf] fix typo in perf Makefile.
2022-05-12 behdad [vector] Add tests for move constructor/assignment
2022-05-12 behdad [map] Fix map copy/move constructors to actually work
2022-05-12 behdad [set] Fix set copy/move constructors to actually work
2022-05-12 behdad [vector] Remove explicit std::move
2022-05-12 behdad [set] Tweak move operators a bit
2022-05-11 behdad [gsubgpos] Clean up OT::ClassDefFormat2::intersected_class_glyphs 0 case
2022-05-11 behdad [gsubgpos] Simplify OT::ClassDefFormat2::intersected_class_glyphs()
2022-05-11 behdad [subset] Optimize ClassDef1::intersected_class_glyphs() for class0
2022-05-11 behdad [subset] Allocate same size as source table for GSUB/GPOS/name
2022-05-11 behdad [subset] Use vector.allocated size instead of tracking buf_size
2022-05-11 behdad [cff-subset] Pre-alloc vector for operator decoding
2022-05-10 behdad [perf/benchmark-subset] Minor cleanup
2022-05-10 behdad [subset] Retain buffer across table subset operations
2022-05-10 behdad [cff] Convert interpretation environment to use constructor
2022-05-10 behdad [cff] Convert subr_subset_param_t to use constructor
2022-05-10 behdad [cff] Convert cff2_extents_param_t to use constructor
2022-05-10 behdad [cff] Convert cff1_extents_param_t to use constructor
2022-05-10 behdad [cff] Convert get_seac_param_t to use constructor
2022-05-10 behdad [cff] Use hb_ubytes_t() instead of Null(hb_ubytes_t)
2022-05-10 behdad [cff-common] Optimize INDEX::operator[]
2022-05-10 behdad Revert "[cff-common] Optimize INDEX::operator[]"
2022-05-10 behdad Revert "[cff] Add an unlikely()"
2022-05-10 behdad [cff] Add an unlikely()
2022-05-10 behdad [cff-common] Optimize INDEX::operator[]
2022-05-10 grieger [perf] Make subset benchmark data driven.
2022-05-10 behdad [cff2] Change extents/shape stack to be just a number
2022-05-10 grieger [perf] Add benchmarks for CFF subsetting.
2022-05-10 grieger [subset] Enforce cmap12 group ordering constraints in collect_mapping.
2022-05-09 behdad [cff] Fix arg-stack peek() impl
2022-05-09 behdad [cff] Tighten up arg-stack access
2022-05-09 behdad [cff] Allocate stack inline instead of using hb_vector_t
2022-05-09 behdad [cff] Use using instead of typedef
2022-05-09 behdad [cff-common] Use existing types for str_buff_vec_t
2022-05-09 behdad [cff-common] Remove unused method
2022-05-09 behdad [cff] Replace byte_str_t with hb_bytes_t use
2022-05-09 behdad [cff] Remove custom byte_str_t impl
2022-05-09 behdad [cff-common] Indent
2022-05-09 behdad [cff-common] Remove unused INDEX::serialize() method
2022-05-09 behdad [cff-common] Write str_buf_t::total_size() as dagger
2022-05-09 behdad [cff-common] Use range-based loop in str_buff_vec_t
2022-05-09 behdad [cff-common] Write INDEX offset-size calc using hb_bit_storage()
2022-05-09 behdad [cff-common] Add assert to INDEX::set_offset_at()
(...)
2022-05-05 behdad [cmap] Use -1 as Unicode sentinel, not U+FFFF in Format12 serialize
2022-05-05 behdad [cmap] Use iterator bool operator
2022-05-05 behdad [subset] Compute set max using previous()
2022-05-05 behdad [subset] Don't go into glyf table if it's empty
2022-05-05 behdad [subset] Use del_range in _remove_invalid_gids
2022-05-04 behdad [subset] Cosmetic; use set bulk array population instead of for loop
2022-05-04 grieger [perf] use option_t in subset benchmark to select between glyphs and codepoint subset.
2022-05-04 behdad [subset] Remove outdated comment
2022-05-04 grieger [perf] benchmark subsetting via glyphs.
2022-05-04 behdad [subset] In cmap planning, remove a qsort()
2022-05-04 grieger [subset] Re-introduce size threshold in choosing unicode collection method.
2022-05-04 grieger [subset] Presize unicode to gid list to unicodes + glyphs size.
2022-05-03 grieger [subset] Remove switch to alternate unicode collection at large subset sizes.
2022-05-03 grieger [subset] Embed unicode to gid list vector in subset plan.
2022-05-02 behdad [perf/benchmark-font] Add benchmark for glyph_h_advance
2022-05-02 behdad [perf/benchmark-font] Add a couple Noto fonts
2022-05-02 behdad Add fast-path for big-endian 32-bit byteswap
2022-05-02 behdad [perf/benchmark-font] Cosmetic
2022-05-02 behdad [cmap] Sprinkle some 'unlikely's
2022-05-02 grieger [subset] In _populate_unicodes_to_retain populate unicodes in order.
2022-05-02 behdad [perf/benchmark-font] Actually make nominal_glyph bench work
2022-05-02 behdad [perf/benchmark-font] Add back testing of is_variable
2022-05-02 behdad [perf/benchmark-font] Fix build without freetype
2022-05-02 behdad [perf/benchmark-font] Benchmark get_nominal_glyph
2022-05-02 grieger [subset] cache cp to new gid list in subset plan.
2022-05-02 behdad [perf/benchmark-font] Parametrize test
2022-05-02 behdad [perf/perf] Rename to benchmark-font
2022-05-02 behdad [perf/perf] Move all logic to perf-draw, for now
2022-05-02 behdad [perf/perf] Remove ttf-parser backend
2022-05-02 behdad [perf/perf] Rely on hb-draw to measure ft performance
2022-04-29 grieger [subset] Change serialize_rangeoffset_glyid back to using iterator.
2022-04-29 grieger [subset] in cmap4 serialization save cp to gid iter to memory.
2022-04-29 grieger [subset] In cmap4 serialization reduce unnessecary calls into the iterator.
2022-04-29 grieger [subset] In unicodes cache cleanup if set insert fails.
2022-04-29 behdad Try to fix distcheck
2022-04-29 grieger [subset] s/void */intptr_t.
2022-04-29 grieger [subset] cache results of collect_unicodes.
2022-04-29 behdad [benchmark-shape] Break lines and shape separately
2022-04-29 behdad [benchmark-shape] Data-driven test sets
2022-04-29 behdad [perf] Spawn off benchmark-shape from perf runner
2022-04-29 behdad [benchmark-set] Split SetLookup into an ordered and random version
2022-04-29 behdad [benchmark-set] At least increase needle by one in lookup benchmark
2022-04-29 behdad [benchmark-set] At least increase needle by one in lookup benchmark
2022-04-29 grieger [subset] Optimize Cmap4 collect_unicodes.
2022-04-29 behdad [benchmark-map] Remove rand() overhead from benchmark
2022-04-29 behdad [set] Optimize const page_for() using last_page_lookup caching
2022-04-29 behdad [set] Optimize non-const page_for() using last_page_lookup caching
2022-04-29 behdad [benchmark-set] Reduce lookup benchmark overhead
2022-04-28 behdad [test] Add test
2022-04-27 behdad [CFF] Fix parsing of empty Index

Created with:
  roll-dep src/third_party/harfbuzz-ng/src
R=​behdad@chromium.org,bungeman@chromium.org,drott@chromium.org,jshin@chromium.org,kojii@chromium.org

(cherry picked from commit f8a60b45b0386a122f56f248b922b3be7f7ecb38)

Bug: 1316699
Change-Id: Ie0d4ef21ba667a10d60669ee0e3792f0fe4c870d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3650436
Auto-Submit: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Original-Commit-Position: refs/heads/main@{#1003657}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3652048
Commit-Queue: Krishna Govind <govind@chromium.org>
Reviewed-by: Krishna Govind <govind@chromium.org>
Owners-Override: Krishna Govind <govind@chromium.org>
Cr-Commit-Position: refs/branch-heads/5060@{#80}
Cr-Branched-From: b83393d0f4038aeaf67f970a024d8101df7348d1-refs/heads/main@{#1002911}
2 files changed
tree: b1a7e866b7ce3b3bc6a303d8072dd9af8ff19115
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia/
  22. fuchsia_webengine/
  23. gin/
  24. google_apis/
  25. google_update/
  26. gpu/
  27. headless/
  28. infra/
  29. ios/
  30. ipc/
  31. media/
  32. mojo/
  33. native_client_sdk/
  34. net/
  35. pdf/
  36. ppapi/
  37. printing/
  38. remoting/
  39. rlz/
  40. sandbox/
  41. services/
  42. skia/
  43. sql/
  44. storage/
  45. styleguide/
  46. testing/
  47. third_party/
  48. tools/
  49. ui/
  50. url/
  51. weblayer/
  52. .clang-format
  53. .clang-tidy
  54. .eslintrc.js
  55. .git-blame-ignore-revs
  56. .gitattributes
  57. .gitignore
  58. .gn
  59. .mailmap
  60. .rustfmt.toml
  61. .vpython
  62. .vpython3
  63. .yapfignore
  64. AUTHORS
  65. BUILD.gn
  66. CODE_OF_CONDUCT.md
  67. codereview.settings
  68. DEPS
  69. DIR_METADATA
  70. ENG_REVIEW_OWNERS
  71. LICENSE
  72. LICENSE.chromium_os
  73. OWNERS
  74. PRESUBMIT.py
  75. PRESUBMIT_test.py
  76. PRESUBMIT_test_mocks.py
  77. README.md
  78. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.