summaryrefslogtreecommitdiff
path: root/www-client/chromium/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-07-24 11:59:22 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-07-24 11:59:22 +0100
commit6abaca02d36f161c81e2d5ee467719a89f88b2c5 (patch)
tree3caa7c096e2eccd186e20aa71bda508c5c50fb23 /www-client/chromium/files
parentb49088575eb777ced2551f484da86317332d6087 (diff)
gentoo resync (2) : 24.07.2021
Diffstat (limited to 'www-client/chromium/files')
-rw-r--r--www-client/chromium/files/chromium-92-GetUsableSize-nullptr.patch46
-rw-r--r--www-client/chromium/files/chromium-freetype-2.11.patch50
2 files changed, 96 insertions, 0 deletions
diff --git a/www-client/chromium/files/chromium-92-GetUsableSize-nullptr.patch b/www-client/chromium/files/chromium-92-GetUsableSize-nullptr.patch
new file mode 100644
index 000000000000..e36ed1b66152
--- /dev/null
+++ b/www-client/chromium/files/chromium-92-GetUsableSize-nullptr.patch
@@ -0,0 +1,46 @@
+From 61e16c92ff24bb71b9b7309a9d6d470ee91738bc Mon Sep 17 00:00:00 2001
+From: Bartek Nowierski <bartekn@chromium.org>
+Date: Wed, 21 Jul 2021 15:01:38 +0000
+Subject: [PATCH] [PA] Make GetUsableSize() handle nullptr gracefully
+
+malloc_usable_size() is expected to not crush on NULL and return 0.
+
+Bug: 1221442
+Change-Id: I6a3b90dcf3a8ad18114c206d87b98f60d5f50eb1
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3042177
+Commit-Queue: Bartek Nowierski <bartekn@chromium.org>
+Commit-Queue: Kentaro Hara <haraken@chromium.org>
+Auto-Submit: Bartek Nowierski <bartekn@chromium.org>
+Reviewed-by: Kentaro Hara <haraken@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#903900}
+---
+
+diff --git a/base/allocator/partition_allocator/partition_alloc_unittest.cc b/base/allocator/partition_allocator/partition_alloc_unittest.cc
+index c1212011..8863984 100644
+--- a/base/allocator/partition_allocator/partition_alloc_unittest.cc
++++ b/base/allocator/partition_allocator/partition_alloc_unittest.cc
+@@ -2838,6 +2838,10 @@
+ }
+ }
+
++TEST_F(PartitionAllocTest, GetUsableSizeNull) {
++ EXPECT_EQ(0ULL, PartitionRoot<ThreadSafe>::GetUsableSize(nullptr));
++}
++
+ TEST_F(PartitionAllocTest, GetUsableSize) {
+ size_t delta = SystemPageSize() + 1;
+ for (size_t size = 1; size <= kMinDirectMappedDownsize; size += delta) {
+diff --git a/base/allocator/partition_allocator/partition_root.h b/base/allocator/partition_allocator/partition_root.h
+index b72a1d9..baac9525 100644
+--- a/base/allocator/partition_allocator/partition_root.h
++++ b/base/allocator/partition_allocator/partition_root.h
+@@ -1220,6 +1220,9 @@
+ // PartitionAlloc's internal data. Used as malloc_usable_size.
+ template <bool thread_safe>
+ ALWAYS_INLINE size_t PartitionRoot<thread_safe>::GetUsableSize(void* ptr) {
++ // malloc_usable_size() is expected to handle NULL gracefully and return 0.
++ if (!ptr)
++ return 0;
+ auto* slot_span = SlotSpan::FromSlotInnerPtr(ptr);
+ auto* root = FromSlotSpan(slot_span);
+ return slot_span->GetUsableSize(root);
diff --git a/www-client/chromium/files/chromium-freetype-2.11.patch b/www-client/chromium/files/chromium-freetype-2.11.patch
new file mode 100644
index 000000000000..aee6dc82e980
--- /dev/null
+++ b/www-client/chromium/files/chromium-freetype-2.11.patch
@@ -0,0 +1,50 @@
+--- a/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
++++ b/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
+@@ -712,7 +712,11 @@ void colrv1_draw_paint(SkCanvas* canvas,
+ canvas->drawPaint(colrPaint);
+ break;
+ }
++#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
++ case FT_COLR_PAINTFORMAT_TRANSFORM:
++#else
+ case FT_COLR_PAINTFORMAT_TRANSFORMED:
++#endif
+ case FT_COLR_PAINTFORMAT_TRANSLATE:
+ case FT_COLR_PAINTFORMAT_ROTATE:
+ case FT_COLR_PAINTFORMAT_SKEW:
+@@ -759,10 +763,17 @@ void colrv1_transform(SkCanvas* canvas, FT_Face face, FT_COLR_Paint colrv1_paint
+ SkMatrix transform;
+
+ switch (colrv1_paint.format) {
++#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
++ case FT_COLR_PAINTFORMAT_TRANSFORM: {
++ transform = ToSkMatrix(colrv1_paint.u.transform.affine);
++ break;
++ }
++#else
+ case FT_COLR_PAINTFORMAT_TRANSFORMED: {
+ transform = ToSkMatrix(colrv1_paint.u.transformed.affine);
+ break;
+ }
++#endif
+ case FT_COLR_PAINTFORMAT_TRANSLATE: {
+ transform = SkMatrix::Translate(
+ SkFixedToScalar(colrv1_paint.u.translate.dx),
+@@ -880,10 +891,17 @@ bool colrv1_traverse_paint(SkCanvas* canvas,
+ traverse_result = colrv1_start_glyph(canvas, palette, face, paint.u.colr_glyph.glyphID,
+ FT_COLOR_NO_ROOT_TRANSFORM);
+ break;
++#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
++ case FT_COLR_PAINTFORMAT_TRANSFORM:
++ colrv1_transform(canvas, face, paint);
++ traverse_result = colrv1_traverse_paint(canvas, palette, face,
++ paint.u.transform.paint, visited_set);
++#else
+ case FT_COLR_PAINTFORMAT_TRANSFORMED:
+ colrv1_transform(canvas, face, paint);
+ traverse_result = colrv1_traverse_paint(canvas, palette, face,
+ paint.u.transformed.paint, visited_set);
++#endif
+ break;
+ case FT_COLR_PAINTFORMAT_TRANSLATE:
+ colrv1_transform(canvas, face, paint);