forked from pool/nodejs-electron
Compare commits
383 Commits
Author | SHA256 | Date | |
---|---|---|---|
803927fd7e | |||
21fbf325a3 | |||
758de39aea | |||
5765681808 | |||
79679f2fbb | |||
5be0f9e35b | |||
f9c189847a | |||
2745d52c99 | |||
2ee3fa7c5e | |||
ba3164c8d0 | |||
129bd48c75 | |||
548e8271ab | |||
1984683d0d | |||
bf60c1d946 | |||
91145a4481 | |||
73230888f5 | |||
94acae6908 | |||
50e8fd7f3b | |||
0d91dac45f | |||
931ac75573 | |||
458cdabcf4 | |||
69cee08715 | |||
ea2eedcf83 | |||
c5d79bee92 | |||
dda2df6317 | |||
a286c5952f | |||
4ee39d9a79 | |||
d7c173aa77 | |||
a64c9dccb1 | |||
5b1a8bff84 | |||
afba4501f7 | |||
a21a1d5e35 | |||
6f63c0c7a8 | |||
0787ba5819 | |||
3dec7518f7 | |||
427a7ecf09 | |||
556fe0315b | |||
b9aacd37d0 | |||
3a7275536e | |||
8078bc9f30 | |||
ef514a274b | |||
bccb2862ff | |||
ec5c89c800 | |||
f686ef214c | |||
28b2a84276 | |||
714ee0c2c3 | |||
9dd5c001df | |||
45415355cd | |||
afa046e091 | |||
9bfe301528 | |||
6af2fa5dd7 | |||
66f3d96e7c | |||
5c76ed5673 | |||
eb6dac6692 | |||
3b8ebff83d | |||
87f6a13a0f | |||
eb24077881 | |||
560de9fbdb | |||
e54ecfcc6e | |||
5d49f4bb5d | |||
05376051f9 | |||
03f55644ac | |||
3a639489c9 | |||
549434a4a4 | |||
018e517651 | |||
1ca327f854 | |||
8bf1b849b9 | |||
cce6e8874f | |||
b30830e0d9 | |||
4a149839f2 | |||
85817b21f0 | |||
9b9610448b | |||
af67ce2f09 | |||
86384ec4da | |||
9a1f6d7223 | |||
0c53dad61e | |||
bbed01e29d | |||
7f454e27db | |||
d85174bd2b | |||
b8e615560c | |||
59940d3268 | |||
2a47134200 | |||
0ace04eabb | |||
77ddcdc72b | |||
3892c1cab0 | |||
f133d522b8 | |||
641041af0c | |||
9e69378e9a | |||
0f89da960d | |||
ec5006ea2e | |||
260ba0122d | |||
f6dde4469c | |||
e8dda073d6 | |||
85d8cae8fd | |||
fff53f3c2e | |||
9dda8dd120 | |||
d74ae9ab23 | |||
805ede6b84 | |||
26d96f1da7 | |||
b817b0df97 | |||
4c06b33c6b | |||
754f344fe0 | |||
a03e893c19 | |||
26d8b6ddb5 | |||
29251bbf34 | |||
73c6162442 | |||
94ec34be6b | |||
e95bf3c296 | |||
d83e41ea5c | |||
8fdf2bc55f | |||
8a7b712932 | |||
9d30973976 | |||
669e2448d0 | |||
b798aa04c9 | |||
c2c18aa4ea | |||
042a08719d | |||
82c926a786 | |||
ef5e272069 | |||
1a1f18fcee | |||
d2030dc315 | |||
406ba87a0f | |||
b751b12230 | |||
80bce23334 | |||
e635b1b78b | |||
542e43e0b8 | |||
75c9f1de89 | |||
aea5648173 | |||
cfa7ba0c34 | |||
1445e658ba | |||
be629b734d | |||
eb3b37261d | |||
70f067cacc | |||
2a429b3ee5 | |||
026fa6c008 | |||
5b61c80cd8 | |||
91bf85bb5c | |||
2440798081 | |||
65af71ce49 | |||
e8bc9d9f1b | |||
745a3d0d67 | |||
aacdf47b74 | |||
ee8e43b84d | |||
8109463bcc | |||
813e001eb6 | |||
29e8310f36 | |||
c1d2f1fc97 | |||
790e0d969d | |||
a86f6d501c | |||
bc83f3c133 | |||
7566a988dc | |||
13a7d58d32 | |||
e2f510b254 | |||
efd16e3d7c | |||
108b012e87 | |||
73e2d507c4 | |||
1ef9755d4e | |||
3849245283 | |||
3948c045e7 | |||
680ed95ecc | |||
d2352147a4 | |||
dccc537bdf | |||
49b83f55af | |||
eccff4a6fb | |||
7572262433 | |||
22f147201a | |||
c8d2bd2b98 | |||
eb54f04ac4 | |||
1115f8ef5b | |||
32e191bbca | |||
7a6c2ab836 | |||
42e6345ca8 | |||
a1e40c1b19 | |||
09f0b10444 | |||
95dd27cb71 | |||
daacca7243 | |||
3500c44eab | |||
90dc965674 | |||
65bda7d06e | |||
5f0c39625e | |||
4bb9075f6e | |||
b9226c4203 | |||
c5be2e53a3 | |||
9ba5597e83 | |||
81623b9fe4 | |||
70eadb9337 | |||
fd457c8222 | |||
5b6cc34f72 | |||
e0033247b8 | |||
12ee6c9f4b | |||
7edd73f22b | |||
3ab58995f0 | |||
c55d82c229 | |||
7aa978b464 | |||
c8db8b05cd | |||
b8de22e7d6 | |||
7d2ea15c69 | |||
3a09d484f7 | |||
7bfa69403a | |||
2c263b12ca | |||
1933231e97 | |||
267719b9ea | |||
5481d9819d | |||
cef1ee1e83 | |||
2a74265430 | |||
b74799856e | |||
755f0b9d0c | |||
fd9e2b5519 | |||
efb4960e0f | |||
3a6c804cdb | |||
e2678d3698 | |||
89a5337a99 | |||
ebe5ceaa3c | |||
186e1cbc0d | |||
f7afbac4ea | |||
ae7d830a89 | |||
4553380709 | |||
afe3489454 | |||
b3a99a75c7 | |||
4f8915679b | |||
46ead24b74 | |||
7b259750d2 | |||
df11a7ab2b | |||
225eb7cb74 | |||
0c2baa41b0 | |||
ad7c1f6ef8 | |||
0d8fe13690 | |||
feb0b011a6 | |||
3e923870ec | |||
c69a421668 | |||
37300b8b33 | |||
87b6cc8a4e | |||
4c5373e958 | |||
87e3ce1f0a | |||
c3cb083fac | |||
4e42e601e4 | |||
1f9dd53ca1 | |||
6f65188611 | |||
ba3df18479 | |||
c993a8a9c5 | |||
927e8f5953 | |||
a41f549df1 | |||
fa2f53afee | |||
e0e5abe1a7 | |||
7c283382da | |||
f0080a89d4 | |||
1096bbe706 | |||
0c99c13e61 | |||
67c50d89c5 | |||
c07c336240 | |||
7ea953712c | |||
83b865b88d | |||
54e7d0e8ce | |||
597027e7ca | |||
64170b0340 | |||
c49ea03c29 | |||
4005129651 | |||
c3b29f18a0 | |||
30c1f7518c | |||
c0c29ae089 | |||
efd35844fa | |||
820e507eaf | |||
e988b8f6a1 | |||
82bc3670f8 | |||
8dbe484b4b | |||
a9279f958b | |||
2b00d0feee | |||
f542cb4c47 | |||
9de9c110ff | |||
9c8e9fa36d | |||
23d036eca0 | |||
21f03c114f | |||
05c15db0db | |||
14942f1fd5 | |||
9eacfcb3e1 | |||
2a16fb7732 | |||
323add7636 | |||
ac21aa6231 | |||
f023bdd117 | |||
7f10e9ee96 | |||
0b61227024 | |||
27bbbd6d17 | |||
5816b4bacb | |||
17808cfb12 | |||
146c428ae0 | |||
1f3d84ef44 | |||
ed31429226 | |||
29abc82366 | |||
fba193030d | |||
83e3511436 | |||
a2ce5a1df1 | |||
64efbefb2c | |||
d9c4e81c5d | |||
56f0973865 | |||
1587d3bd0b | |||
3472ce9a18 | |||
bf88c724a1 | |||
ec046abfc3 | |||
393091b152 | |||
f14840cd6d | |||
7beda6c89c | |||
a511e89fff | |||
8dd9ce1537 | |||
136f8f9049 | |||
24a159f305 | |||
7c0d60fca1 | |||
02197119a7 | |||
d43d7ad921 | |||
a53de4fa08 | |||
e5ff004c6f | |||
6040cde70f | |||
afb8eb7cf7 | |||
f44dd6395d | |||
728e94feac | |||
1d849e57e6 | |||
51e10085b9 | |||
bc592fb532 | |||
bca00a8259 | |||
20c23b1b0e | |||
f72727c85e | |||
52df3eda55 | |||
b9fd1ba996 | |||
dbace1a89c | |||
08717d1bdc | |||
4d8761af4a | |||
f0f4ef8928 | |||
f9b667973e | |||
97cbe94070 | |||
4530eb8513 | |||
450e1b36b3 | |||
d0b66d92f1 | |||
7ff6c5973f | |||
4ac813e451 | |||
e44b0c7f29 | |||
3c6d26d688 | |||
b135887a5a | |||
d9dba2628c | |||
cc51990a5c | |||
12238d66dd | |||
6209b7ee56 | |||
0e00e8b94d | |||
19d45e1790 | |||
8565b90830 | |||
95d088d38f | |||
36fa6f0eaa | |||
8de0d2bd2a | |||
79fd34cb6c | |||
4d85197ca1 | |||
dd0c5d2145 | |||
a4f643f70c | |||
7bbec93be9 | |||
41790d0878 | |||
e083359149 | |||
6ff303675b | |||
d493b30806 | |||
71a8f1327e | |||
a662e74942 | |||
d1d531363b | |||
ab40df849c | |||
ed7f82d7da | |||
611d4b7c2f | |||
2e628127f2 | |||
55ec2537d0 | |||
63bd25a51d | |||
612fa607f8 | |||
6cccd06c3d | |||
921966cbcc | |||
714881bdba | |||
49ed28a0a7 | |||
d94dec1e89 | |||
21be061193 | |||
3c314764c1 | |||
06b9e5cfc5 | |||
37985423c5 | |||
d51b5b9a83 | |||
fd50b8872c | |||
a75aa8b925 | |||
69fef88324 | |||
f1c9037323 | |||
|
8456acadf2 | ||
5a2caf8e59 | |||
f43046211b | |||
14acc2eb19 | |||
4a7868ca52 |
229
ANNOTATE_CONTIGUOUS_CONTAINER-Wodr.patch
Normal file
229
ANNOTATE_CONTIGUOUS_CONTAINER-Wodr.patch
Normal file
@@ -0,0 +1,229 @@
|
||||
This collides with an abseil macro causing ODR miscompiles
|
||||
|
||||
diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h src/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h
|
||||
--- src.old/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h 2025-08-15 17:32:29.517405064 +0200
|
||||
+++ src/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h 2025-08-17 14:47:13.834152160 +0200
|
||||
@@ -100,9 +100,9 @@ HeapVectorBacking<T, Traits>::~HeapVecto
|
||||
const size_t length = object_size / sizeof(T);
|
||||
using ByteBuffer = uint8_t*;
|
||||
ByteBuffer payload = reinterpret_cast<ByteBuffer>(this);
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
ANNOTATE_CHANGE_SIZE(payload, length * sizeof(T), 0, length * sizeof(T));
|
||||
-#endif // ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#endif // WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
// HeapVectorBacking calls finalizers for unused slots and expects them to be
|
||||
// no-ops.
|
||||
if (std::is_polymorphic<T>::value) {
|
||||
@@ -176,11 +176,11 @@ struct TraceInCollectionTrait<kNoWeakHan
|
||||
cppgc::subtle::ObjectSizeTrait<const Backing>::GetSize(
|
||||
*reinterpret_cast<const Backing*>(self)) /
|
||||
sizeof(T);
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
// As commented above, HeapVectorBacking can trace unused slots (which are
|
||||
// already zeroed out).
|
||||
ANNOTATE_CHANGE_SIZE(array, length, 0, length);
|
||||
-#endif // ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#endif // WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
if constexpr (IsTraceable<T>::value) {
|
||||
for (unsigned i = 0; i < length; ++i) {
|
||||
if (!std::is_polymorphic_v<T> ||
|
||||
diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/heap/test/heap_test.cc src/third_party/blink/renderer/platform/heap/test/heap_test.cc
|
||||
--- src.old/third_party/blink/renderer/platform/heap/test/heap_test.cc 2025-08-15 17:32:29.517405064 +0200
|
||||
+++ src/third_party/blink/renderer/platform/heap/test/heap_test.cc 2025-08-17 14:47:13.834152160 +0200
|
||||
@@ -854,7 +854,7 @@ TEST_F(HeapTest, HeapVectorShrinkInlineC
|
||||
// Vector inline buffers are disabled; that constraint should be attempted
|
||||
// removed, but until that time, disable testing handling of capacities
|
||||
// of inline buffers.
|
||||
-#if !defined(ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
+#if !defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
// Shrinking switches the buffer from the external one to the inline one.
|
||||
vector1.Shrink(kInlineCapacity - 1);
|
||||
vector1.shrink_to_fit();
|
||||
@@ -2446,7 +2446,7 @@ class InlinedVectorObjectWithVtableWrapp
|
||||
|
||||
// TODO(Oilpan): when Vector.h's contiguous container support no longer disables
|
||||
// Vector<>s with inline capacity, enable this test.
|
||||
-#if !defined(ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
+#if !defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
TEST_F(HeapTest, VectorDestructorsWithVtable) {
|
||||
ClearOutOldGarbage();
|
||||
InlinedVectorObjectWithVtable::destructor_calls_ = 0;
|
||||
diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/sparse_vector_test.cc src/third_party/blink/renderer/platform/sparse_vector_test.cc
|
||||
--- src.old/third_party/blink/renderer/platform/sparse_vector_test.cc 2025-08-15 17:32:29.549405057 +0200
|
||||
+++ src/third_party/blink/renderer/platform/sparse_vector_test.cc 2025-08-17 14:47:13.846152160 +0200
|
||||
@@ -240,9 +240,9 @@ TEST(SparseVectorPtrTest, SettingToNullp
|
||||
EXPECT_FALSE(sparse_vector.HasField(FieldId::kFoo));
|
||||
}
|
||||
|
||||
-// WTF::Vector always uses 0 inline capacity when ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+// WTF::Vector always uses 0 inline capacity when WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
// is defined.
|
||||
-#ifndef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifndef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
TEST(SparseVectorInlineCapacityTest, Basic) {
|
||||
SparseVector<FieldId, int, 16> sparse_vector;
|
||||
EXPECT_EQ(16u, sparse_vector.capacity());
|
||||
diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/wtf/container_annotations.h src/third_party/blink/renderer/platform/wtf/container_annotations.h
|
||||
--- src.old/third_party/blink/renderer/platform/wtf/container_annotations.h 2025-08-15 17:32:29.573405052 +0200
|
||||
+++ src/third_party/blink/renderer/platform/wtf/container_annotations.h 2025-08-17 14:47:13.842152160 +0200
|
||||
@@ -18,7 +18,7 @@
|
||||
// documentation:
|
||||
// https://github.com/llvm-mirror/compiler-rt/blob/master/include/sanitizer/common_interface_defs.h#L154
|
||||
|
||||
-#define ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#define WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
|
||||
#define ANNOTATE_NEW_BUFFER(buffer, capacity, newSize) \
|
||||
if (buffer) { \
|
||||
diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/wtf/size_assertions.cc src/third_party/blink/renderer/platform/wtf/size_assertions.cc
|
||||
--- src.old/third_party/blink/renderer/platform/wtf/size_assertions.cc 2025-08-15 17:32:29.577405052 +0200
|
||||
+++ src/third_party/blink/renderer/platform/wtf/size_assertions.cc 2025-08-17 14:47:13.838152160 +0200
|
||||
@@ -61,7 +61,7 @@ struct SameSizeAsVectorWithInlineCapacit
|
||||
template <typename T, unsigned inlineCapacity>
|
||||
struct SameSizeAsVectorWithInlineCapacity {
|
||||
SameSizeAsVectorWithInlineCapacity<T, 0> base_capacity;
|
||||
-#if !defined(ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
+#if !defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
T inline_buffer[inlineCapacity];
|
||||
#endif
|
||||
};
|
||||
diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/wtf/vector.h src/third_party/blink/renderer/platform/wtf/vector.h
|
||||
--- src.old/third_party/blink/renderer/platform/wtf/vector.h 2025-08-15 17:32:29.581405051 +0200
|
||||
+++ src/third_party/blink/renderer/platform/wtf/vector.h 2025-08-17 14:47:13.842152160 +0200
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
// For ASAN builds, disable inline buffers completely as they cause various
|
||||
// issues.
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
#define INLINE_CAPACITY 0
|
||||
#else
|
||||
#define INLINE_CAPACITY InlineCapacity
|
||||
@@ -471,7 +471,7 @@ class VectorBufferBase {
|
||||
}
|
||||
|
||||
void CheckUnusedSlots(const T* from, const T* to) {
|
||||
-#if DCHECK_IS_ON() && !defined(ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
+#if DCHECK_IS_ON() && !defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
if constexpr (NeedsToClearUnusedSlots()) {
|
||||
const unsigned char* unused_area =
|
||||
reinterpret_cast<const unsigned char*>(from);
|
||||
@@ -606,7 +606,7 @@ class VectorBuffer<T, 0, Allocator> : pr
|
||||
DCHECK(buffer_);
|
||||
DCHECK_LT(new_capacity, capacity());
|
||||
size_t size_to_allocate = AllocationSize(new_capacity);
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
ANNOTATE_DELETE_BUFFER(buffer_, capacity_, size_);
|
||||
#endif
|
||||
bool succeeded = false;
|
||||
@@ -615,7 +615,7 @@ class VectorBuffer<T, 0, Allocator> : pr
|
||||
capacity_ = static_cast<wtf_size_t>(size_to_allocate / sizeof(T));
|
||||
succeeded = true;
|
||||
}
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
MARKING_AWARE_ANNOTATE_NEW_BUFFER(Allocator, buffer_, capacity_, size_);
|
||||
#endif
|
||||
return succeeded;
|
||||
@@ -740,7 +740,7 @@ class VectorBuffer : protected VectorBuf
|
||||
DCHECK_NE(buffer_, InlineBuffer());
|
||||
size_t new_size = AllocationSize(new_capacity);
|
||||
bool succeeded = false;
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
ANNOTATE_DELETE_BUFFER(buffer_, capacity_, size_);
|
||||
#endif
|
||||
if (Allocator::ShrinkVectorBacking(buffer_, AllocationSize(capacity()),
|
||||
@@ -748,7 +748,7 @@ class VectorBuffer : protected VectorBuf
|
||||
capacity_ = static_cast<wtf_size_t>(new_size / sizeof(T));
|
||||
succeeded = true;
|
||||
}
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
MARKING_AWARE_ANNOTATE_NEW_BUFFER(Allocator, buffer_, capacity_, size_);
|
||||
#endif
|
||||
return succeeded;
|
||||
@@ -2145,7 +2145,7 @@ void Vector<T, InlineCapacity, Allocator
|
||||
Shrink(new_capacity);
|
||||
|
||||
T* old_buffer = data();
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
wtf_size_t old_capacity = capacity();
|
||||
#endif
|
||||
if (new_capacity > 0) {
|
||||
@@ -2160,7 +2160,7 @@ void Vector<T, InlineCapacity, Allocator
|
||||
return;
|
||||
}
|
||||
Base::ResetBufferPointer();
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
if (old_buffer != data()) {
|
||||
MARKING_AWARE_ANNOTATE_NEW_BUFFER(Allocator, data(), capacity(), size_);
|
||||
ANNOTATE_DELETE_BUFFER(old_buffer, old_capacity, size_);
|
||||
@@ -2270,7 +2270,7 @@ template <typename T, wtf_size_t InlineC
|
||||
template <typename U>
|
||||
ALWAYS_INLINE void Vector<T, InlineCapacity, Allocator>::UncheckedAppend(
|
||||
U&& val) {
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
// Vectors in ASAN builds don't have InlineCapacity.
|
||||
push_back(std::forward<U>(val));
|
||||
#else
|
||||
@@ -2460,10 +2460,10 @@ void TraceInlinedBuffer(VisitorDispatche
|
||||
const T* buffer_begin,
|
||||
size_t capacity) {
|
||||
const T* buffer_end = buffer_begin + capacity;
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
// Vector can trace unused slots (which are already zeroed out).
|
||||
ANNOTATE_CHANGE_SIZE(buffer_begin, capacity, 0, capacity);
|
||||
-#endif // ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#endif // WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
for (const T* buffer_entry = buffer_begin; buffer_entry != buffer_end;
|
||||
buffer_entry++) {
|
||||
Allocator::template Trace<T, VectorTraits<T>>(visitor, *buffer_entry);
|
||||
@@ -2542,7 +2542,7 @@ void Vector<T, InlineCapacity, Allocator
|
||||
}
|
||||
// Shrinking to inline buffer from out-of-line one.
|
||||
T *old_begin = data(), *old_end = DataEnd();
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
const wtf_size_t old_capacity = capacity();
|
||||
#endif
|
||||
Base::ResetBufferPointer();
|
||||
diff '--color=auto' -urp src.old/third_party/blink/renderer/platform/wtf/vector_test.cc src/third_party/blink/renderer/platform/wtf/vector_test.cc
|
||||
--- src.old/third_party/blink/renderer/platform/wtf/vector_test.cc 2025-08-15 17:32:29.581405051 +0200
|
||||
+++ src/third_party/blink/renderer/platform/wtf/vector_test.cc 2025-08-17 14:47:13.846152160 +0200
|
||||
@@ -377,7 +377,7 @@ TEST(VectorTest, SwapWithInlineCapacity)
|
||||
vector_b.swap(vector_a);
|
||||
}
|
||||
|
||||
-#if defined(ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
+#if defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
TEST(VectorTest, ContainerAnnotations) {
|
||||
Vector<int> vector_a;
|
||||
vector_a.push_back(10);
|
||||
@@ -415,7 +415,7 @@ TEST(VectorTest, ContainerAnnotations) {
|
||||
volatile int* int_pointer_b3 = vector_b.data();
|
||||
EXPECT_DEATH((void)int_pointer_b3[2], "container-overflow");
|
||||
}
|
||||
-#endif // defined(ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
+#endif // defined(WTF_ANNOTATE_CONTIGUOUS_CONTAINER)
|
||||
|
||||
class Comparable {};
|
||||
bool operator==(const Comparable& a, const Comparable& b) {
|
||||
--- src/third_party/blink/renderer/core/html/parser/literal_buffer.h.orig 2025-08-15 17:32:29.197405123 +0200
|
||||
+++ src/third_party/blink/renderer/core/html/parser/literal_buffer.h 2025-08-17 16:56:06.586499195 +0200
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
// For ASAN builds, disable inline buffers completely as they cause various
|
||||
// issues.
|
||||
-#ifdef ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
+#ifdef WTF_ANNOTATE_CONTIGUOUS_CONTAINER
|
||||
#define BUFFER_INLINE_CAPACITY 0
|
||||
#else
|
||||
#define BUFFER_INLINE_CAPACITY kInlineSize
|
@@ -1,25 +0,0 @@
|
||||
Manual backport of https://github.com/nodejs/undici/commit/6805746680d27a5369d7fb67bc05f95a28247d75
|
||||
|
||||
--- src/third_party/electron_node/deps/undici/src/lib/handler/RedirectHandler.js.old 2024-04-04 09:55:39.696980900 +0000
|
||||
+++ src/third_party/electron_node/deps/undici/src/lib/handler/RedirectHandler.js 2024-04-09 16:52:37.888616200 +0000
|
||||
@@ -188,7 +188,8 @@ function shouldRemoveHeader (header, rem
|
||||
(header.length === 4 && header.toString().toLowerCase() === 'host') ||
|
||||
(removeContent && header.toString().toLowerCase().indexOf('content-') === 0) ||
|
||||
(unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') ||
|
||||
- (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie')
|
||||
+ (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie') ||
|
||||
+ (unknownOrigin && header.length === 19 && header.toString().toLowerCase() === 'proxy-authorization')
|
||||
)
|
||||
}
|
||||
|
||||
--- src/third_party/electron_node/deps/undici/undici.js.old 2024-04-04 10:02:38.059765300 +0000
|
||||
+++ src/third_party/electron_node/deps/undici/undici.js 2024-04-09 16:51:15.754041100 +0000
|
||||
@@ -7902,7 +7902,7 @@ var require_RedirectHandler = __commonJS
|
||||
}
|
||||
__name(parseLocation, "parseLocation");
|
||||
function shouldRemoveHeader(header, removeContent, unknownOrigin) {
|
||||
- return header.length === 4 && header.toString().toLowerCase() === "host" || removeContent && header.toString().toLowerCase().indexOf("content-") === 0 || unknownOrigin && header.length === 13 && header.toString().toLowerCase() === "authorization" || unknownOrigin && header.length === 6 && header.toString().toLowerCase() === "cookie";
|
||||
+ return header.length === 4 && header.toString().toLowerCase() === "host" || removeContent && header.toString().toLowerCase().indexOf("content-") === 0 || unknownOrigin && header.length === 13 && header.toString().toLowerCase() === "authorization" || unknownOrigin && header.length === 6 && header.toString().toLowerCase() === "cookie" || unknownOrigin && header.length === 19 && header.toString().toLowerCase() === "proxy-authorization"
|
||||
}
|
||||
__name(shouldRemoveHeader, "shouldRemoveHeader");
|
||||
function cleanRequestHeaders(headers, removeContent, unknownOrigin) {
|
@@ -1,136 +0,0 @@
|
||||
Port https://github.com/nodejs/undici/commit/d542b8c to apply to amalgamated undici code in nodejs (the original copy in deps/undici/src is not used and i'm not bothering with patching it)
|
||||
|
||||
These chunks were manually cherry-picked from upstream nodejs commit https://github.com/nodejs/node/commit/60d24938 to match the undici changes.
|
||||
|
||||
|
||||
--- a/third_party/electron_node/deps/undici/undici.js
|
||||
+++ b/third_party/electron_node/deps/undici/undici.js
|
||||
@@ -992,9 +992,12 @@ var require_util2 = __commonJS({
|
||||
var { isBlobLike, toUSVString, ReadableStreamFrom } = require_util();
|
||||
var assert = require("assert");
|
||||
var { isUint8Array } = require("util/types");
|
||||
+ var supportedHashes = [];
|
||||
var crypto;
|
||||
try {
|
||||
crypto = require("crypto");
|
||||
+ const possibleRelevantHashes = ["sha256", "sha384", "sha512"];
|
||||
+ supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash));
|
||||
} catch {
|
||||
}
|
||||
function responseURL(response) {
|
||||
@@ -1277,46 +1280,38 @@ var require_util2 = __commonJS({
|
||||
if (parsedMetadata.length === 0) {
|
||||
return true;
|
||||
}
|
||||
- const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo));
|
||||
- const strongest = list[0].algo;
|
||||
- const metadata = list.filter((item) => item.algo === strongest);
|
||||
+ const strongest = getStrongestMetadata(parsedMetadata);
|
||||
+ const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest);
|
||||
for (const item of metadata) {
|
||||
const algorithm = item.algo;
|
||||
- let expectedValue = item.hash;
|
||||
- if (expectedValue.endsWith("==")) {
|
||||
- expectedValue = expectedValue.slice(0, -2);
|
||||
- }
|
||||
+ const expectedValue = item.hash;
|
||||
let actualValue = crypto.createHash(algorithm).update(bytes).digest("base64");
|
||||
- if (actualValue.endsWith("==")) {
|
||||
- actualValue = actualValue.slice(0, -2);
|
||||
- }
|
||||
- if (actualValue === expectedValue) {
|
||||
- return true;
|
||||
- }
|
||||
- let actualBase64URL = crypto.createHash(algorithm).update(bytes).digest("base64url");
|
||||
- if (actualBase64URL.endsWith("==")) {
|
||||
- actualBase64URL = actualBase64URL.slice(0, -2);
|
||||
+ if (actualValue[actualValue.length - 1] === "=") {
|
||||
+ if (actualValue[actualValue.length - 2] === "=") {
|
||||
+ actualValue = actualValue.slice(0, -2);
|
||||
+ } else {
|
||||
+ actualValue = actualValue.slice(0, -1);
|
||||
+ }
|
||||
}
|
||||
- if (actualBase64URL === expectedValue) {
|
||||
+ if (compareBase64Mixed(actualValue, expectedValue)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
__name(bytesMatch, "bytesMatch");
|
||||
- var parseHashWithOptions = /((?<algo>sha256|sha384|sha512)-(?<hash>[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i;
|
||||
+ var parseHashWithOptions = /(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;
|
||||
function parseMetadata(metadata) {
|
||||
const result = [];
|
||||
let empty = true;
|
||||
- const supportedHashes = crypto.getHashes();
|
||||
for (const token of metadata.split(" ")) {
|
||||
empty = false;
|
||||
const parsedToken = parseHashWithOptions.exec(token);
|
||||
- if (parsedToken === null || parsedToken.groups === void 0) {
|
||||
+ if (parsedToken === null || parsedToken.groups === void 0 || parsedToken.groups.algo === void 0) {
|
||||
continue;
|
||||
}
|
||||
- const algorithm = parsedToken.groups.algo;
|
||||
- if (supportedHashes.includes(algorithm.toLowerCase())) {
|
||||
+ const algorithm = parsedToken.groups.algo.toLowerCase();
|
||||
+ if (supportedHashes.includes(algorithm)) {
|
||||
result.push(parsedToken.groups);
|
||||
}
|
||||
}
|
||||
@@ -1326,6 +1321,54 @@ var require_util2 = __commonJS({
|
||||
return result;
|
||||
}
|
||||
__name(parseMetadata, "parseMetadata");
|
||||
+ function getStrongestMetadata(metadataList) {
|
||||
+ let algorithm = metadataList[0].algo;
|
||||
+ if (algorithm[3] === "5") {
|
||||
+ return algorithm;
|
||||
+ }
|
||||
+ for (let i = 1; i < metadataList.length; ++i) {
|
||||
+ const metadata = metadataList[i];
|
||||
+ if (metadata.algo[3] === "5") {
|
||||
+ algorithm = "sha512";
|
||||
+ break;
|
||||
+ } else if (algorithm[3] === "3") {
|
||||
+ continue;
|
||||
+ } else if (metadata.algo[3] === "3") {
|
||||
+ algorithm = "sha384";
|
||||
+ }
|
||||
+ }
|
||||
+ return algorithm;
|
||||
+ }
|
||||
+ __name(getStrongestMetadata, "getStrongestMetadata");
|
||||
+ function filterMetadataListByAlgorithm(metadataList, algorithm) {
|
||||
+ if (metadataList.length === 1) {
|
||||
+ return metadataList;
|
||||
+ }
|
||||
+ let pos = 0;
|
||||
+ for (let i = 0; i < metadataList.length; ++i) {
|
||||
+ if (metadataList[i].algo === algorithm) {
|
||||
+ metadataList[pos++] = metadataList[i];
|
||||
+ }
|
||||
+ }
|
||||
+ metadataList.length = pos;
|
||||
+ return metadataList;
|
||||
+ }
|
||||
+ __name(filterMetadataListByAlgorithm, "filterMetadataListByAlgorithm");
|
||||
+ function compareBase64Mixed(actualValue, expectedValue) {
|
||||
+ if (actualValue.length !== expectedValue.length) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ for (let i = 0; i < actualValue.length; ++i) {
|
||||
+ if (actualValue[i] !== expectedValue[i]) {
|
||||
+ if (actualValue[i] === "+" && expectedValue[i] === "-" || actualValue[i] === "/" && expectedValue[i] === "_") {
|
||||
+ continue;
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
+ return true;
|
||||
+ }
|
||||
+ __name(compareBase64Mixed, "compareBase64Mixed");
|
||||
function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) {
|
||||
}
|
||||
__name(tryUpgradeRequestToAPotentiallyTrustworthyURL, "tryUpgradeRequestToAPotentiallyTrustworthyURL");
|
@@ -178,7 +178,7 @@ index 3c97e4a6cf4c7..a55e4ab51d5b3 100644
|
||||
- smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance);
|
||||
- }
|
||||
-
|
||||
- // TODO(https://crbug.com/1446302): Consider rejecting metadata that
|
||||
- // TODO(crbug.com/40268540): Consider rejecting metadata that
|
||||
- // does not specify all values.
|
||||
- if (mdcv->has_primaries || mdcv->has_luminance) {
|
||||
- hdr_metadata.smpte_st_2086 = smpte_st_2086;
|
||||
@@ -221,7 +221,7 @@ index 3c97e4a6cf4c7..a55e4ab51d5b3 100644
|
||||
+ smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance);
|
||||
+ }
|
||||
+
|
||||
+ // TODO(https://crbug.com/1446302): Consider rejecting metadata that
|
||||
+ // TODO(crbug.com/40268540): Consider rejecting metadata that
|
||||
+ // does not specify all values.
|
||||
+ if (mdcv->has_primaries || mdcv->has_luminance) {
|
||||
+ hdr_metadata.smpte_st_2086 = smpte_st_2086;
|
||||
@@ -271,7 +271,7 @@ index 3c97e4a6cf4c7..a55e4ab51d5b3 100644
|
||||
- // Treat dolby vision contents as dolby vision codec only if the
|
||||
- // device support clear DV decoding, otherwise use the original
|
||||
- // HEVC or AVC codec and profile.
|
||||
- if (media::IsSupportedVideoType(type)) {
|
||||
- if (media::IsDecoderSupportedVideoType(type)) {
|
||||
- codec = type.codec;
|
||||
- profile = type.profile;
|
||||
- }
|
||||
@@ -307,7 +307,7 @@ index 3c97e4a6cf4c7..a55e4ab51d5b3 100644
|
||||
+ // Treat dolby vision contents as dolby vision codec only if the
|
||||
+ // device support clear DV decoding, otherwise use the original
|
||||
+ // HEVC or AVC codec and profile.
|
||||
+ if (media::IsSupportedVideoType(type)) {
|
||||
+ if (media::IsDecoderSupportedVideoType(type)) {
|
||||
+ codec = type.codec;
|
||||
+ profile = type.profile;
|
||||
+ }
|
||||
|
@@ -1,33 +0,0 @@
|
||||
From f9819bb70b413c8310cd209c75cc555495e28564 Mon Sep 17 00:00:00 2001
|
||||
From: Allen Bauer <kylixrd@chromium.org>
|
||||
Date: Fri, 31 May 2024 15:55:13 +0000
|
||||
Subject: [PATCH] Harden DesktopNativeWidgetAura against a destroyed Widget.
|
||||
|
||||
Under CLIENT_OWNS_WIDGET ownership mode, it is possible for the Widget to have already been destroyed. This hardens the NativeWidget to handle this case without crashing.
|
||||
|
||||
Bug: 40242079, 40232479
|
||||
Change-Id: I455e1690b49ff50e4eac3b9a085d9f15ccb6adec
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5585758
|
||||
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
|
||||
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
|
||||
Commit-Queue: Allen Bauer <kylixrd@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1308668}
|
||||
---
|
||||
ui/views/widget/desktop_aura/desktop_native_widget_aura.cc | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
|
||||
index 9ae19505357c6b..1974865e8c8a8f 100644
|
||||
--- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
|
||||
+++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
|
||||
@@ -431,8 +431,8 @@ DesktopNativeWidgetAura::tooltip_controller() {
|
||||
}
|
||||
|
||||
void DesktopNativeWidgetAura::HandleActivationChanged(bool active) {
|
||||
- DCHECK(native_widget_delegate_);
|
||||
- if (!native_widget_delegate_->ShouldHandleNativeWidgetActivationChanged(
|
||||
+ if (!native_widget_delegate_ ||
|
||||
+ !native_widget_delegate_->ShouldHandleNativeWidgetActivationChanged(
|
||||
active)) {
|
||||
return;
|
||||
}
|
@@ -1,40 +0,0 @@
|
||||
From e9eda8f8456c98e3c3a438bfd2ff41d90f59a8ec Mon Sep 17 00:00:00 2001
|
||||
From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com>
|
||||
Date: Tue, 14 May 2024 21:26:51 +0000
|
||||
Subject: [PATCH] Fix cast in ElectronDesktopWindowTreeHostLinux
|
||||
|
||||
The frame view of the widget is an `ClientFrameViewLinux` instance only
|
||||
when both `frame` and `client_frame` booleans are set to `true`.
|
||||
Otherwise it is an instance of a different class and thus casting to
|
||||
`ClientFrameViewLinux` is incorrect and leads to crashes.
|
||||
|
||||
Fix: #41839
|
||||
|
||||
Co-authored-by: Fedor Indutny <indutny@signal.org>
|
||||
---
|
||||
.../ui/electron_desktop_window_tree_host_linux.cc | 12 +++++++++---
|
||||
1 file changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/shell/browser/ui/electron_desktop_window_tree_host_linux.cc b/shell/browser/ui/electron_desktop_window_tree_host_linux.cc
|
||||
index cfc87f6fb7efd..17936ba352a1c 100644
|
||||
--- a/electron/shell/browser/ui/electron_desktop_window_tree_host_linux.cc
|
||||
+++ b/electron/shell/browser/ui/electron_desktop_window_tree_host_linux.cc
|
||||
@@ -71,9 +71,15 @@ void ElectronDesktopWindowTreeHostLinux::OnWindowStateChanged(
|
||||
|
||||
void ElectronDesktopWindowTreeHostLinux::OnWindowTiledStateChanged(
|
||||
ui::WindowTiledEdges new_tiled_edges) {
|
||||
- static_cast<ClientFrameViewLinux*>(
|
||||
- native_window_view_->widget()->non_client_view()->frame_view())
|
||||
- ->set_tiled_edges(new_tiled_edges);
|
||||
+ // CreateNonClientFrameView creates `ClientFrameViewLinux` only when both
|
||||
+ // frame and client_frame booleans are set, otherwise it is a different type
|
||||
+ // of view.
|
||||
+ if (native_window_view_->has_frame() &&
|
||||
+ native_window_view_->has_client_frame()) {
|
||||
+ static_cast<ClientFrameViewLinux*>(
|
||||
+ native_window_view_->widget()->non_client_view()->frame_view())
|
||||
+ ->set_tiled_edges(new_tiled_edges);
|
||||
+ }
|
||||
UpdateFrameHints();
|
||||
}
|
||||
|
@@ -1,55 +0,0 @@
|
||||
From ee6e6d3e45af1f7210e144a17f14fb21a7e86588 Mon Sep 17 00:00:00 2001
|
||||
From: mikt <mikt@google.com>
|
||||
Date: Tue, 30 Jan 2024 03:09:24 +0000
|
||||
Subject: [PATCH] [PA] Fix InternalAllocator for GCC builds
|
||||
|
||||
Internal Allocator has a few missing member functions, that are required
|
||||
as a part of named requirement Allocator.
|
||||
https://en.cppreference.com/w/cpp/named_req/Allocator
|
||||
|
||||
It broke builds on GCC, so adding these to fix.
|
||||
https://crrev.com/c/5196856/comments/0c4bbfd9_6433016b
|
||||
|
||||
Change-Id: Ifce5f3e47c94c7bb1e298ac4cd7d0d1e4c6de59c
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5231905
|
||||
Commit-Queue: Mikihito Matsuura <mikt@google.com>
|
||||
Reviewed-by: Kalvin Lee <kdlee@chromium.org>
|
||||
Reviewed-by: Takashi Sakamoto <tasak@google.com>
|
||||
Cr-Commit-Position: refs/heads/main@{#1253709}
|
||||
---
|
||||
.../internal_allocator_forward.h | 21 +++++++++++++++----
|
||||
1 file changed, 17 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/base/allocator/partition_allocator/src/partition_alloc/internal_allocator_forward.h b/base/allocator/partition_allocator/src/partition_alloc/internal_allocator_forward.h
|
||||
index 45fec29f8cc93..b31a145ff6e99 100644
|
||||
--- a/base/allocator/partition_allocator/src/partition_alloc/internal_allocator_forward.h
|
||||
+++ b/base/allocator/partition_allocator/src/partition_alloc/internal_allocator_forward.h
|
||||
@@ -27,11 +27,24 @@ PartitionRoot& InternalAllocatorRoot();
|
||||
template <typename T>
|
||||
class InternalAllocator {
|
||||
public:
|
||||
- // Member types required by allocator completeness requirements.
|
||||
using value_type = T;
|
||||
- using size_type = std::size_t;
|
||||
- using difference_type = std::ptrdiff_t;
|
||||
- using propagate_on_container_move_assignment = std::true_type;
|
||||
+ using is_always_equal = std::true_type;
|
||||
+
|
||||
+ InternalAllocator() = default;
|
||||
+
|
||||
+ template <typename U>
|
||||
+ InternalAllocator(const InternalAllocator<U>&) {} // NOLINT
|
||||
+
|
||||
+ template <typename U>
|
||||
+ InternalAllocator& operator=(const InternalAllocator<U>&) {
|
||||
+ return *this;
|
||||
+ }
|
||||
+
|
||||
+ template <typename U>
|
||||
+ bool operator==(const InternalAllocator<U>&) {
|
||||
+ // InternalAllocator<T> can free allocations made by InternalAllocator<U>.
|
||||
+ return true;
|
||||
+ }
|
||||
|
||||
value_type* allocate(std::size_t count);
|
||||
|
@@ -1,17 +1,17 @@
|
||||
--- src/content/browser/renderer_host/render_frame_host_impl.cc.orig 2023-02-08 21:38:09.974003318 +0100
|
||||
+++ src/content/browser/renderer_host/render_frame_host_impl.cc 2023-02-13 14:13:50.217792624 +0100
|
||||
--- src/content/browser/renderer_host/render_frame_host_impl.cc.orig 2024-12-08 18:45:24.018025513 +0100
|
||||
+++ src/content/browser/renderer_host/render_frame_host_impl.cc 2024-12-20 14:29:00.900380913 +0100
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <deque>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
+#include <new>
|
||||
#include <optional>
|
||||
#include <string_view>
|
||||
#include <tuple>
|
||||
#include <unordered_map>
|
||||
@@ -1818,7 +1819,12 @@ RenderFrameHostImpl::~RenderFrameHostImp
|
||||
@@ -2276,7 +2277,12 @@ RenderFrameHostImpl::~RenderFrameHostImp
|
||||
// completes. Among other things, this ensures that any `SafeRef`s from
|
||||
// `DocumentService` and `RenderFrameHostUserData` subclasses are still valid
|
||||
// when their destructors run.
|
||||
document_associated_data_->RemoveAllServices();
|
||||
- document_associated_data_.reset();
|
||||
+ // HACK: Using .reset() here works on MSVC and LLVM libc++ because the std::optional
|
||||
+ // is still valid while the destructor runs. This does not work on GNU libstdc++
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
// If this was the last active frame in the SiteInstanceGroup, the
|
||||
// DecrementActiveFrameCount call will trigger the deletion of the
|
||||
@@ -13254,7 +13260,9 @@ bool RenderFrameHostImpl::DidCommitNavig
|
||||
@@ -14482,7 +14488,9 @@ bool RenderFrameHostImpl::DidCommitNavig
|
||||
// RenderFrameHost commits before the navigation commits. This happens
|
||||
// when the current RenderFrameHost crashes before navigating to a new
|
||||
// URL.
|
||||
|
14
_constraints
14
_constraints
@@ -15,7 +15,7 @@
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">24</size>
|
||||
<size unit="G">30</size> <!-- lto1-wpa does really need enormous amounts of memory -->
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
@@ -31,16 +31,4 @@
|
||||
<jobs>8</jobs>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
<arch>armv7l</arch>
|
||||
<arch>armv6l</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<cpu>
|
||||
<flag>asimdrdm</flag> <!-- prevent scheduling on old machines -->
|
||||
</cpu>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
||||
|
40
absl_strings-missing-headers.patch
Normal file
40
absl_strings-missing-headers.patch
Normal file
@@ -0,0 +1,40 @@
|
||||
--- src/build/linux/unbundle/absl_strings.gn.orig 2025-04-12 17:15:17.061420294 +0200
|
||||
+++ src/build/linux/unbundle/absl_strings.gn 2025-04-15 20:16:58.452941199 +0200
|
||||
@@ -5,6 +5,10 @@ pkg_config("system_absl_cord") {
|
||||
packages = [ "absl_cord" ]
|
||||
}
|
||||
|
||||
+pkg_config("system_absl_has_ostream_operator") {
|
||||
+ packages = [ "absl_has_ostream_operator" ]
|
||||
+}
|
||||
+
|
||||
pkg_config("system_absl_strings") {
|
||||
packages = [ "absl_strings" ]
|
||||
}
|
||||
@@ -35,6 +39,9 @@ shim_headers("strings_shim") {
|
||||
"ascii.h",
|
||||
"charconv.h",
|
||||
"escaping.h",
|
||||
+ "has_absl_stringify.h",
|
||||
+ "internal/damerau_levenshtein_distance.h",
|
||||
+ "internal/string_constant.h",
|
||||
"match.h",
|
||||
"numbers.h",
|
||||
"str_cat.h",
|
||||
@@ -74,8 +81,15 @@ source_set("string_view") {
|
||||
public_configs = [ ":system_absl_string_view" ]
|
||||
}
|
||||
|
||||
+shim_headers("has_ostream_operator_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/strings/"
|
||||
+ headers = [ "has_ostream_operator.h" ]
|
||||
+}
|
||||
+
|
||||
source_set("has_ostream_operator") {
|
||||
- # Dummy — unavailable with abseil 202308 and chromium 122 does not use it
|
||||
+ deps = [ ":has_ostream_operator_shim" ]
|
||||
+ public_configs = [ ":system_absl_has_ostream_operator" ]
|
||||
}
|
||||
|
||||
source_set("ascii_test") {
|
14
angle-BlobCache-Success.patch
Normal file
14
angle-BlobCache-Success.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
--- src/third_party/angle/src/common/vulkan/vk_headers.h.orig 2025-08-15 17:33:15.429396781 +0200
|
||||
+++ src/third_party/angle/src/common/vulkan/vk_headers.h 2025-08-15 21:50:06.831979165 +0200
|
||||
@@ -16,6 +16,11 @@
|
||||
# include <vulkan/vulkan.h>
|
||||
#endif
|
||||
|
||||
+// braindead change https://chromium-review.googlesource.com/c/angle/angle/+/5273491
|
||||
+#undef Success
|
||||
+#undef None
|
||||
+#undef Always
|
||||
+
|
||||
#if !defined(ANGLE_SHARED_LIBVULKAN)
|
||||
|
||||
namespace rx
|
@@ -1,39 +0,0 @@
|
||||
From 2f934a47e9709cac9ce04d312b7aa496948bced6 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jdapena@igalia.com>
|
||||
Date: Mon, 18 Mar 2024 12:53:27 +0100
|
||||
Subject: [PATCH] libstdc++: replace std::powf with std:pow
|
||||
|
||||
libstdc++ before GCC 14 does not provide std::powf. So replace the
|
||||
call with std::pow, that provides an overload for floats.
|
||||
|
||||
For reference of the bug tracking the missing methods in libstdc++:
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79700
|
||||
|
||||
Bug: chromium:41455655
|
||||
Change-Id: Idfb53fe3c71f4dc0198cf6ba3e26c07895f65bc6
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5379670
|
||||
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
||||
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
||||
---
|
||||
src/libANGLE/renderer/vulkan/FramebufferVk.cpp | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
|
||||
index 98831436adb..e88339521e6 100644
|
||||
--- a/third_party/angle/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
|
||||
+++ b/third_party/angle/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
|
||||
@@ -1726,10 +1726,10 @@ angle::Result FramebufferVk::generateFragmentShadingRateWithCPU(
|
||||
for (uint32_t point = 0; point < activeFocalPoints.size(); point++)
|
||||
{
|
||||
float density =
|
||||
- 1.0f / std::max(std::powf(activeFocalPoints[point].focalX - px, 2) *
|
||||
- std::powf(activeFocalPoints[point].gainX, 2) +
|
||||
- std::powf(activeFocalPoints[point].focalY - py, 2) *
|
||||
- std::powf(activeFocalPoints[point].gainY, 2) -
|
||||
+ 1.0f / std::max(std::pow(activeFocalPoints[point].focalX - px, 2.0f) *
|
||||
+ std::pow(activeFocalPoints[point].gainX, 2.0f) +
|
||||
+ std::pow(activeFocalPoints[point].focalY - py, 2.0f) *
|
||||
+ std::pow(activeFocalPoints[point].gainY, 2.0f) -
|
||||
activeFocalPoints[point].foveaArea,
|
||||
1.0f);
|
||||
|
62
angle-SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT.patch
Normal file
62
angle-SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT.patch
Normal file
@@ -0,0 +1,62 @@
|
||||
From 397eb7c81ee996027470b2453b787e4947cdc8c0 Mon Sep 17 00:00:00 2001
|
||||
From: Shahbaz Youssefi <syoussefi@chromium.org>
|
||||
Date: Sat, 29 Jun 2024 00:22:42 -0400
|
||||
Subject: [PATCH] Vulkan: Easier to read SPIR-V disassembly
|
||||
|
||||
Bug: angleproject:349994211
|
||||
Change-Id: I9d8da4a9fa336e1f5ecdfa39c33959ecebb2c6ea
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5667081
|
||||
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
||||
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
||||
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
||||
---
|
||||
samples/shader_translator/shader_translator.cpp | 4 +++-
|
||||
src/common/spirv/angle_spirv_utils.cpp | 4 +++-
|
||||
src/compiler/translator/spirv/OutputSPIRV.cpp | 4 +++-
|
||||
3 files changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/samples/shader_translator/shader_translator.cpp b/samples/shader_translator/shader_translator.cpp
|
||||
index 64f4df372f0..3d6aa709ce1 100644
|
||||
--- a/third_party/angle/samples/shader_translator/shader_translator.cpp
|
||||
+++ b/third_party/angle/samples/shader_translator/shader_translator.cpp
|
||||
@@ -928,7 +928,9 @@ static void PrintSpirv(const sh::BinaryBlob &blob)
|
||||
spvtools::SpirvTools spirvTools(SPV_ENV_VULKAN_1_1);
|
||||
|
||||
std::string readableSpirv;
|
||||
- spirvTools.Disassemble(blob, &readableSpirv, 0);
|
||||
+ spirvTools.Disassemble(blob, &readableSpirv,
|
||||
+ SPV_BINARY_TO_TEXT_OPTION_COMMENT | SPV_BINARY_TO_TEXT_OPTION_INDENT |
|
||||
+ SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT);
|
||||
|
||||
puts(readableSpirv.c_str());
|
||||
#endif
|
||||
diff --git a/src/common/spirv/angle_spirv_utils.cpp b/src/common/spirv/angle_spirv_utils.cpp
|
||||
index 5082b3c7341..fc83582eb48 100644
|
||||
--- a/third_party/angle/src/common/spirv/angle_spirv_utils.cpp
|
||||
+++ b/third_party/angle/src/common/spirv/angle_spirv_utils.cpp
|
||||
@@ -62,7 +62,9 @@ void Print(const Blob &blob)
|
||||
{
|
||||
spvtools::SpirvTools spirvTools(GetEnv(blob));
|
||||
std::string readableSpirv;
|
||||
- spirvTools.Disassemble(blob, &readableSpirv, 0);
|
||||
+ spirvTools.Disassemble(blob, &readableSpirv,
|
||||
+ SPV_BINARY_TO_TEXT_OPTION_COMMENT | SPV_BINARY_TO_TEXT_OPTION_INDENT |
|
||||
+ SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT);
|
||||
INFO() << "Disassembled SPIR-V:\n" << readableSpirv.c_str();
|
||||
}
|
||||
|
||||
diff --git a/src/compiler/translator/spirv/OutputSPIRV.cpp b/src/compiler/translator/spirv/OutputSPIRV.cpp
|
||||
index ad5c12e07fe..1ed6b264622 100644
|
||||
--- a/third_party/angle/src/compiler/translator/spirv/OutputSPIRV.cpp
|
||||
+++ b/third_party/angle/src/compiler/translator/spirv/OutputSPIRV.cpp
|
||||
@@ -6550,7 +6550,9 @@ spirv::Blob OutputSPIRVTraverser::getSpirv()
|
||||
spvtools::SpirvTools spirvTools(mCompileOptions.emitSPIRV14 ? SPV_ENV_VULKAN_1_1_SPIRV_1_4
|
||||
: SPV_ENV_VULKAN_1_1);
|
||||
std::string readableSpirv;
|
||||
- spirvTools.Disassemble(result, &readableSpirv, 0);
|
||||
+ spirvTools.Disassemble(result, &readableSpirv,
|
||||
+ SPV_BINARY_TO_TEXT_OPTION_COMMENT | SPV_BINARY_TO_TEXT_OPTION_INDENT |
|
||||
+ SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT);
|
||||
fprintf(stderr, "%s\n", readableSpirv.c_str());
|
||||
#endif // ANGLE_DEBUG_SPIRV_GENERATION
|
||||
|
@@ -11,8 +11,8 @@
|
||||
"src/common/base",
|
||||
- "src/common/third_party/xxhash",
|
||||
]
|
||||
libs = []
|
||||
if (is_android) {
|
||||
libs = [ "log" ]
|
||||
@@ -431,18 +432,12 @@
|
||||
}
|
||||
}
|
||||
|
@@ -1,98 +0,0 @@
|
||||
From e4d212302ed2e71c224ae67bdaf2a2816be34f21 Mon Sep 17 00:00:00 2001
|
||||
From: Mattias Buelens <mattias.buelens@gmail.com>
|
||||
Date: Tue, 26 Mar 2024 19:25:54 +0000
|
||||
Subject: [PATCH] streams: Fix gcc compatibility for
|
||||
ReadableStream::valuesForBinding()
|
||||
|
||||
The perfect forwarding technique we used turned out to be incompatible
|
||||
with gcc. Revert to something simpler.
|
||||
|
||||
Bug: 40612900
|
||||
Change-Id: I45f3588354fe96159c7f84d969ac222a935b1c1a
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5372645
|
||||
Reviewed-by: Adam Rice <ricea@chromium.org>
|
||||
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
|
||||
Commit-Queue: Adam Rice <ricea@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1278534}
|
||||
---
|
||||
.../bindings/core/v8/async_iterable.h | 32 +++++++++----------
|
||||
1 file changed, 16 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/bindings/core/v8/async_iterable.h b/third_party/blink/renderer/bindings/core/v8/async_iterable.h
|
||||
index 115ee5303414c..8a0d085b8174e 100644
|
||||
--- a/third_party/blink/renderer/bindings/core/v8/async_iterable.h
|
||||
+++ b/third_party/blink/renderer/bindings/core/v8/async_iterable.h
|
||||
@@ -200,42 +200,42 @@ class PairAsyncIterable {
|
||||
PairAsyncIterable(const PairAsyncIterable&) = delete;
|
||||
PairAsyncIterable& operator=(const PairAsyncIterable&) = delete;
|
||||
|
||||
+ template <typename... ArgsAndExceptionState>
|
||||
AsyncIteratorType* keysForBinding(
|
||||
ScriptState* script_state,
|
||||
- std::convertible_to<InitArgs> auto&&... args,
|
||||
- ExceptionState& exception_state) {
|
||||
+ ArgsAndExceptionState&&... args_and_exception_state) {
|
||||
const auto kind = IterationSource::Kind::kKey;
|
||||
IterationSource* source = CreateIterationSource(
|
||||
- script_state, kind, std::forward<decltype(args)>(args)...,
|
||||
- exception_state);
|
||||
+ script_state, kind,
|
||||
+ std::forward<ArgsAndExceptionState>(args_and_exception_state)...);
|
||||
if (!source) {
|
||||
return nullptr;
|
||||
}
|
||||
return MakeGarbageCollected<AsyncIteratorType>(source);
|
||||
}
|
||||
|
||||
+ template <typename... ArgsAndExceptionState>
|
||||
AsyncIteratorType* valuesForBinding(
|
||||
ScriptState* script_state,
|
||||
- std::convertible_to<InitArgs> auto&&... args,
|
||||
- ExceptionState& exception_state) {
|
||||
+ ArgsAndExceptionState&&... args_and_exception_state) {
|
||||
const auto kind = IterationSource::Kind::kValue;
|
||||
IterationSource* source = CreateIterationSource(
|
||||
- script_state, kind, std::forward<decltype(args)>(args)...,
|
||||
- exception_state);
|
||||
+ script_state, kind,
|
||||
+ std::forward<ArgsAndExceptionState>(args_and_exception_state)...);
|
||||
if (!source) {
|
||||
return nullptr;
|
||||
}
|
||||
return MakeGarbageCollected<AsyncIteratorType>(source);
|
||||
}
|
||||
|
||||
+ template <typename... ArgsAndExceptionState>
|
||||
AsyncIteratorType* entriesForBinding(
|
||||
ScriptState* script_state,
|
||||
- std::convertible_to<InitArgs> auto&&... args,
|
||||
- ExceptionState& exception_state) {
|
||||
+ ArgsAndExceptionState&&... args_and_exception_state) {
|
||||
const auto kind = IterationSource::Kind::kKeyValue;
|
||||
IterationSource* source = CreateIterationSource(
|
||||
- script_state, kind, std::forward<decltype(args)>(args)...,
|
||||
- exception_state);
|
||||
+ script_state, kind,
|
||||
+ std::forward<ArgsAndExceptionState>(args_and_exception_state)...);
|
||||
if (!source) {
|
||||
return nullptr;
|
||||
}
|
||||
@@ -274,14 +274,14 @@ class ValueAsyncIterable {
|
||||
ValueAsyncIterable(const ValueAsyncIterable&) = delete;
|
||||
ValueAsyncIterable& operator=(const ValueAsyncIterable&) = delete;
|
||||
|
||||
+ template <typename... ArgsAndExceptionState>
|
||||
AsyncIteratorType* valuesForBinding(
|
||||
ScriptState* script_state,
|
||||
- std::convertible_to<InitArgs> auto&&... args,
|
||||
- ExceptionState& exception_state) {
|
||||
+ ArgsAndExceptionState&&... args_and_exception_state) {
|
||||
const auto kind = IterationSource::Kind::kValue;
|
||||
IterationSource* source = CreateIterationSource(
|
||||
- script_state, kind, std::forward<decltype(args)>(args)...,
|
||||
- exception_state);
|
||||
+ script_state, kind,
|
||||
+ std::forward<ArgsAndExceptionState>(args_and_exception_state)...);
|
||||
if (!source) {
|
||||
return nullptr;
|
||||
}
|
12
ax_platform_node_id-fpermissive.patch
Normal file
12
ax_platform_node_id-fpermissive.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
--- src/ui/accessibility/platform/ax_platform_node_id.h.orig 2025-04-16 14:36:44.316067879 +0200
|
||||
+++ src/ui/accessibility/platform/ax_platform_node_id.h 2025-04-17 12:14:07.150992641 +0200
|
||||
@@ -55,9 +55,7 @@ class AXPlatformNodeId
|
||||
|
||||
} // namespace ui
|
||||
|
||||
-namespace std {
|
||||
template <>
|
||||
struct std::hash<ui::AXPlatformNodeId>
|
||||
: std::hash<base::StrongAlias<class ui::AXPlatformNodeIdTag, int32_t>> {};
|
||||
-} // namespace std
|
||||
#endif // UI_ACCESSIBILITY_PLATFORM_AX_PLATFORM_NODE_ID_H_
|
@@ -1,250 +0,0 @@
|
||||
Revert the following commit:
|
||||
|
||||
commit 886c849ee96e3026d28d7615cdd5af9628a2e5c8
|
||||
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Date: Tue Feb 20 18:18:04 2024 +0000
|
||||
|
||||
[gc] Make UnicodeRangeSet gc'd.
|
||||
|
||||
There should be no user-visible behaviour change.
|
||||
|
||||
Bug: 41490008
|
||||
Change-Id: I7f0003b7ff7c464d4ee36442bcff8c63da79b20c
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5302778
|
||||
Reviewed-by: Dominik Röttsches <drott@chromium.org>
|
||||
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1262789}
|
||||
|
||||
--- a/third_party/blink/renderer/core/css/css_font_face.cc
|
||||
+++ b/third_party/blink/renderer/core/css/css_font_face.cc
|
||||
@@ -291,7 +291,6 @@ bool CSSFontFace::UpdatePeriod() {
|
||||
void CSSFontFace::Trace(Visitor* visitor) const {
|
||||
visitor->Trace(segmented_font_faces_);
|
||||
visitor->Trace(sources_);
|
||||
- visitor->Trace(ranges_);
|
||||
visitor->Trace(font_face_);
|
||||
}
|
||||
|
||||
--- a/third_party/blink/renderer/core/css/css_font_face.h
|
||||
+++ b/third_party/blink/renderer/core/css/css_font_face.h
|
||||
@@ -47,8 +47,8 @@ class SimpleFontData;
|
||||
|
||||
class CORE_EXPORT CSSFontFace final : public GarbageCollected<CSSFontFace> {
|
||||
public:
|
||||
- CSSFontFace(FontFace* font_face, HeapVector<UnicodeRange>&& ranges)
|
||||
- : ranges_(MakeGarbageCollected<UnicodeRangeSet>(std::move(ranges))),
|
||||
+ CSSFontFace(FontFace* font_face, Vector<UnicodeRange>& ranges)
|
||||
+ : ranges_(base::AdoptRef(new UnicodeRangeSet(ranges))),
|
||||
font_face_(font_face) {
|
||||
DCHECK(font_face_);
|
||||
}
|
||||
@@ -61,7 +61,7 @@ class CORE_EXPORT CSSFontFace final : pu
|
||||
}
|
||||
FontFace* GetFontFace() const { return font_face_.Get(); }
|
||||
|
||||
- const UnicodeRangeSet* Ranges() { return ranges_.Get(); }
|
||||
+ scoped_refptr<UnicodeRangeSet> Ranges() { return ranges_; }
|
||||
|
||||
void AddSegmentedFontFace(CSSSegmentedFontFace*);
|
||||
void RemoveSegmentedFontFace(CSSSegmentedFontFace*);
|
||||
@@ -98,9 +98,9 @@ class CORE_EXPORT CSSFontFace final : pu
|
||||
private:
|
||||
void SetLoadStatus(FontFace::LoadStatusType);
|
||||
|
||||
+ scoped_refptr<UnicodeRangeSet> ranges_;
|
||||
HeapHashSet<Member<CSSSegmentedFontFace>> segmented_font_faces_;
|
||||
HeapDeque<Member<CSSFontFaceSource>> sources_;
|
||||
- Member<const UnicodeRangeSet> ranges_;
|
||||
Member<FontFace> font_face_;
|
||||
};
|
||||
|
||||
--- a/third_party/blink/renderer/core/css/font_face.cc
|
||||
+++ b/third_party/blink/renderer/core/css/font_face.cc
|
||||
@@ -90,7 +90,7 @@ const CSSValue* ParseCSSValue(const Exec
|
||||
|
||||
CSSFontFace* CreateCSSFontFace(FontFace* font_face,
|
||||
const CSSValue* unicode_range) {
|
||||
- HeapVector<UnicodeRange> ranges;
|
||||
+ Vector<UnicodeRange> ranges;
|
||||
if (const auto* range_list = To<CSSValueList>(unicode_range)) {
|
||||
unsigned num_ranges = range_list->length();
|
||||
for (unsigned i = 0; i < num_ranges; i++) {
|
||||
@@ -100,7 +100,7 @@ CSSFontFace* CreateCSSFontFace(FontFace*
|
||||
}
|
||||
}
|
||||
|
||||
- return MakeGarbageCollected<CSSFontFace>(font_face, std::move(ranges));
|
||||
+ return MakeGarbageCollected<CSSFontFace>(font_face, ranges);
|
||||
}
|
||||
|
||||
const CSSValue* ConvertFontMetricOverrideValue(const CSSValue* parsed_value) {
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_data_for_range_set.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_data_for_range_set.h
|
||||
@@ -39,18 +39,16 @@ class SimpleFontData;
|
||||
class PLATFORM_EXPORT FontDataForRangeSet
|
||||
: public GarbageCollected<FontDataForRangeSet> {
|
||||
public:
|
||||
- explicit FontDataForRangeSet(const SimpleFontData* font_data = nullptr,
|
||||
- const UnicodeRangeSet* range_set = nullptr)
|
||||
- : font_data_(font_data), range_set_(range_set) {}
|
||||
+ explicit FontDataForRangeSet(
|
||||
+ const SimpleFontData* font_data = nullptr,
|
||||
+ scoped_refptr<UnicodeRangeSet> range_set = nullptr)
|
||||
+ : font_data_(font_data), range_set_(std::move(range_set)) {}
|
||||
|
||||
FontDataForRangeSet(const FontDataForRangeSet& other);
|
||||
|
||||
virtual ~FontDataForRangeSet() = default;
|
||||
|
||||
- void Trace(Visitor* visitor) const {
|
||||
- visitor->Trace(font_data_);
|
||||
- visitor->Trace(range_set_);
|
||||
- }
|
||||
+ void Trace(Visitor* visitor) const { visitor->Trace(font_data_); }
|
||||
|
||||
bool Contains(UChar32 test_char) const {
|
||||
return !range_set_ || range_set_->Contains(test_char);
|
||||
@@ -58,7 +56,7 @@ class PLATFORM_EXPORT FontDataForRangeSe
|
||||
bool IsEntireRange() const {
|
||||
return !range_set_ || range_set_->IsEntireRange();
|
||||
}
|
||||
- const UnicodeRangeSet* Ranges() const { return range_set_.Get(); }
|
||||
+ UnicodeRangeSet* Ranges() const { return range_set_.get(); }
|
||||
bool HasFontData() const { return font_data_; }
|
||||
const SimpleFontData* FontData() const { return font_data_.Get(); }
|
||||
|
||||
@@ -74,7 +72,7 @@ class PLATFORM_EXPORT FontDataForRangeSe
|
||||
|
||||
protected:
|
||||
Member<const SimpleFontData> font_data_;
|
||||
- Member<const UnicodeRangeSet> range_set_;
|
||||
+ scoped_refptr<UnicodeRangeSet> range_set_;
|
||||
};
|
||||
|
||||
} // namespace blink
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
||||
@@ -508,10 +508,10 @@ const OpenTypeVerticalData& HarfBuzzFace
|
||||
return *harfbuzz_font_data_->VerticalData();
|
||||
}
|
||||
|
||||
-hb_font_t* HarfBuzzFace::GetScaledFont(const UnicodeRangeSet* range_set,
|
||||
+hb_font_t* HarfBuzzFace::GetScaledFont(scoped_refptr<UnicodeRangeSet> range_set,
|
||||
VerticalLayoutCallbacks vertical_layout,
|
||||
float specified_size) const {
|
||||
- harfbuzz_font_data_->range_set_ = range_set;
|
||||
+ harfbuzz_font_data_->range_set_ = std::move(range_set);
|
||||
harfbuzz_font_data_->UpdateFallbackMetricsAndScale(*platform_data_,
|
||||
vertical_layout);
|
||||
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
|
||||
@@ -66,7 +66,7 @@ class HarfBuzzFace final : public Garbag
|
||||
// Passing in specified_size in order to control selecting the right value
|
||||
// from the trak table. If not set, the size of the internal FontPlatformData
|
||||
// object will be used.
|
||||
- hb_font_t* GetScaledFont(const UnicodeRangeSet*,
|
||||
+ hb_font_t* GetScaledFont(scoped_refptr<UnicodeRangeSet>,
|
||||
VerticalLayoutCallbacks,
|
||||
float specified_size) const;
|
||||
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
|
||||
@@ -32,7 +32,7 @@ struct HarfBuzzFontData final : public G
|
||||
HarfBuzzFontData(const HarfBuzzFontData&) = delete;
|
||||
HarfBuzzFontData& operator=(const HarfBuzzFontData&) = delete;
|
||||
|
||||
- void Trace(Visitor* visitor) const { visitor->Trace(range_set_); }
|
||||
+ void Trace(Visitor*) const {}
|
||||
|
||||
// The vertical origin and vertical advance functions in HarfBuzzFace require
|
||||
// the ascent and height metrics as fallback in case no specific vertical
|
||||
@@ -98,7 +98,7 @@ struct HarfBuzzFontData final : public G
|
||||
SpaceGlyphInOpenTypeTables::kUnknown;
|
||||
|
||||
scoped_refptr<OpenTypeVerticalData> vertical_data_;
|
||||
- Member<const UnicodeRangeSet> range_set_;
|
||||
+ scoped_refptr<UnicodeRangeSet> range_set_;
|
||||
};
|
||||
|
||||
} // namespace blink
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.cc
|
||||
@@ -289,7 +289,7 @@ void RoundHarfBuzzBufferPositions(hb_buf
|
||||
inline bool ShapeRange(hb_buffer_t* buffer,
|
||||
const FontFeatures& font_features,
|
||||
const SimpleFontData* current_font,
|
||||
- const UnicodeRangeSet* current_font_range_set,
|
||||
+ scoped_refptr<UnicodeRangeSet> current_font_range_set,
|
||||
UScriptCode current_run_script,
|
||||
hb_direction_t direction,
|
||||
hb_language_t language,
|
||||
@@ -325,7 +325,7 @@ inline bool ShapeRange(hb_buffer_t* buff
|
||||
hb_buffer_set_direction(buffer, direction);
|
||||
|
||||
hb_font_t* hb_font =
|
||||
- face->GetScaledFont(current_font_range_set,
|
||||
+ face->GetScaledFont(std::move(current_font_range_set),
|
||||
HB_DIRECTION_IS_VERTICAL(direction)
|
||||
? HarfBuzzFace::kPrepareForVerticalLayout
|
||||
: HarfBuzzFace::kNoVerticalLayout,
|
||||
--- a/third_party/blink/renderer/platform/fonts/unicode_range_set.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/unicode_range_set.cc
|
||||
@@ -31,8 +31,8 @@
|
||||
|
||||
namespace blink {
|
||||
|
||||
-UnicodeRangeSet::UnicodeRangeSet(HeapVector<UnicodeRange>&& ranges)
|
||||
- : ranges_(std::move(ranges)) {
|
||||
+UnicodeRangeSet::UnicodeRangeSet(const Vector<UnicodeRange>& ranges)
|
||||
+ : ranges_(ranges) {
|
||||
if (ranges_.empty())
|
||||
return;
|
||||
|
||||
--- a/third_party/blink/renderer/platform/fonts/unicode_range_set.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/unicode_range_set.h
|
||||
@@ -26,12 +26,13 @@
|
||||
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_UNICODE_RANGE_SET_H_
|
||||
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_UNICODE_RANGE_SET_H_
|
||||
|
||||
-#include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
|
||||
-#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
|
||||
#include "third_party/blink/renderer/platform/platform_export.h"
|
||||
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/text/character_names.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/text/wtf_uchar.h"
|
||||
+#include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
|
||||
+#include "third_party/blink/renderer/platform/wtf/vector.h"
|
||||
|
||||
namespace blink {
|
||||
|
||||
@@ -55,14 +56,13 @@ struct PLATFORM_EXPORT UnicodeRange fina
|
||||
UChar32 to_;
|
||||
};
|
||||
|
||||
-class PLATFORM_EXPORT UnicodeRangeSet
|
||||
- : public GarbageCollected<UnicodeRangeSet> {
|
||||
+class PLATFORM_EXPORT UnicodeRangeSet : public RefCounted<UnicodeRangeSet> {
|
||||
+ USING_FAST_MALLOC(UnicodeRangeSet);
|
||||
+
|
||||
public:
|
||||
- explicit UnicodeRangeSet(HeapVector<UnicodeRange>&&);
|
||||
+ explicit UnicodeRangeSet(const Vector<UnicodeRange>&);
|
||||
UnicodeRangeSet() = default;
|
||||
|
||||
- void Trace(Visitor* visitor) const { visitor->Trace(ranges_); }
|
||||
-
|
||||
bool Contains(UChar32) const;
|
||||
bool IntersectsWith(const String&) const;
|
||||
bool IsEntireRange() const { return ranges_.empty(); }
|
||||
@@ -71,8 +71,7 @@ class PLATFORM_EXPORT UnicodeRangeSet
|
||||
bool operator==(const UnicodeRangeSet& other) const;
|
||||
|
||||
private:
|
||||
- HeapVector<UnicodeRange>
|
||||
- ranges_; // If empty, represents the whole code space.
|
||||
+ Vector<UnicodeRange> ranges_; // If empty, represents the whole code space.
|
||||
};
|
||||
|
||||
} // namespace blink
|
@@ -1,159 +0,0 @@
|
||||
Revert the following commit:
|
||||
|
||||
commit 59daae50fc3c47f7a8dbcc828446fdaa9f8c12c4
|
||||
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Date: Tue Feb 20 18:35:11 2024 +0000
|
||||
|
||||
[gc] Make OpenTypeVerticalData gc'd.
|
||||
|
||||
There should be no user-visible behaviour change.
|
||||
|
||||
Bug: 41490008
|
||||
Change-Id: Id93c85a7beb710944e07cff614cff2409c818436
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5302893
|
||||
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Reviewed-by: Dominik Röttsches <drott@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1262805}
|
||||
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_platform_data.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_platform_data.cc
|
||||
@@ -308,6 +308,11 @@ SkFont FontPlatformData::CreateSkFont(co
|
||||
}
|
||||
#endif // !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_IOS)
|
||||
|
||||
+scoped_refptr<OpenTypeVerticalData> FontPlatformData::CreateVerticalData()
|
||||
+ const {
|
||||
+ return OpenTypeVerticalData::CreateUnscaled(typeface_);
|
||||
+}
|
||||
+
|
||||
IdentifiableToken FontPlatformData::ComputeTypefaceDigest() const {
|
||||
DCHECK(typeface_);
|
||||
int table_count = typeface_->countTables();
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_platform_data.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_platform_data.h
|
||||
@@ -59,6 +59,7 @@ typedef const struct __CTFont* CTFontRef
|
||||
namespace blink {
|
||||
|
||||
class HarfBuzzFace;
|
||||
+class OpenTypeVerticalData;
|
||||
|
||||
class PLATFORM_EXPORT FontPlatformData
|
||||
: public GarbageCollected<FontPlatformData> {
|
||||
@@ -137,6 +138,8 @@ class PLATFORM_EXPORT FontPlatformData
|
||||
|
||||
SkFont CreateSkFont(const FontDescription* = nullptr) const;
|
||||
|
||||
+ scoped_refptr<OpenTypeVerticalData> CreateVerticalData() const;
|
||||
+
|
||||
// Computes a digest from the typeface. The digest only depends on the
|
||||
// underlying font itself, and does not vary by the style (size, weight,
|
||||
// italics, etc). This is aimed at discovering the fingerprinting information
|
||||
--- a/third_party/blink/renderer/platform/fonts/opentype/open_type_vertical_data.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/opentype/open_type_vertical_data.h
|
||||
@@ -27,10 +27,10 @@
|
||||
|
||||
#include "base/memory/scoped_refptr.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/glyph.h"
|
||||
-#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
|
||||
#include "third_party/blink/renderer/platform/platform_export.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/hash_map.h"
|
||||
+#include "third_party/blink/renderer/platform/wtf/ref_counted.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/vector.h"
|
||||
#include "third_party/skia/include/core/SkRefCnt.h"
|
||||
#include "third_party/skia/include/core/SkTypeface.h"
|
||||
@@ -40,11 +40,14 @@ class SkFont;
|
||||
namespace blink {
|
||||
|
||||
class PLATFORM_EXPORT OpenTypeVerticalData
|
||||
- : public GarbageCollected<OpenTypeVerticalData> {
|
||||
- public:
|
||||
- explicit OpenTypeVerticalData(sk_sp<SkTypeface>);
|
||||
+ : public RefCounted<OpenTypeVerticalData> {
|
||||
+ USING_FAST_MALLOC(OpenTypeVerticalData);
|
||||
|
||||
- void Trace(Visitor*) const {}
|
||||
+ public:
|
||||
+ static scoped_refptr<OpenTypeVerticalData> CreateUnscaled(
|
||||
+ sk_sp<SkTypeface> typeface) {
|
||||
+ return base::AdoptRef(new OpenTypeVerticalData(typeface));
|
||||
+ }
|
||||
|
||||
void SetScaleAndFallbackMetrics(float size_per_unit,
|
||||
float ascent,
|
||||
@@ -60,6 +63,8 @@ class PLATFORM_EXPORT OpenTypeVerticalDa
|
||||
float* out_xy_array) const;
|
||||
|
||||
private:
|
||||
+ explicit OpenTypeVerticalData(sk_sp<SkTypeface>);
|
||||
+
|
||||
void LoadMetrics(sk_sp<SkTypeface>);
|
||||
bool HasVORG() const { return !vert_origin_y_.empty(); }
|
||||
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
||||
@@ -167,7 +167,8 @@ static hb_bool_t HarfBuzzGetGlyphVertica
|
||||
void* user_data) {
|
||||
HarfBuzzFontData* hb_font_data =
|
||||
reinterpret_cast<HarfBuzzFontData*>(font_data);
|
||||
- OpenTypeVerticalData* vertical_data = hb_font_data->VerticalData();
|
||||
+ scoped_refptr<OpenTypeVerticalData> vertical_data =
|
||||
+ hb_font_data->VerticalData();
|
||||
if (!vertical_data)
|
||||
return false;
|
||||
|
||||
@@ -186,7 +187,8 @@ static hb_position_t HarfBuzzGetGlyphVer
|
||||
void* user_data) {
|
||||
HarfBuzzFontData* hb_font_data =
|
||||
reinterpret_cast<HarfBuzzFontData*>(font_data);
|
||||
- OpenTypeVerticalData* vertical_data = hb_font_data->VerticalData();
|
||||
+ scoped_refptr<OpenTypeVerticalData> vertical_data =
|
||||
+ hb_font_data->VerticalData();
|
||||
if (!vertical_data) {
|
||||
return SkiaScalarToHarfBuzzPosition(hb_font_data->height_fallback_);
|
||||
}
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
|
||||
@@ -32,10 +32,7 @@ struct HarfBuzzFontData final : public G
|
||||
HarfBuzzFontData(const HarfBuzzFontData&) = delete;
|
||||
HarfBuzzFontData& operator=(const HarfBuzzFontData&) = delete;
|
||||
|
||||
- void Trace(Visitor* visitor) const {
|
||||
- visitor->Trace(vertical_data_);
|
||||
- visitor->Trace(range_set_);
|
||||
- }
|
||||
+ void Trace(Visitor* visitor) const { visitor->Trace(range_set_); }
|
||||
|
||||
// The vertical origin and vertical advance functions in HarfBuzzFace require
|
||||
// the ascent and height metrics as fallback in case no specific vertical
|
||||
@@ -70,18 +67,18 @@ struct HarfBuzzFontData final : public G
|
||||
}
|
||||
}
|
||||
|
||||
- OpenTypeVerticalData* VerticalData() {
|
||||
+ scoped_refptr<OpenTypeVerticalData> VerticalData() {
|
||||
if (!vertical_data_) {
|
||||
DCHECK_NE(ascent_fallback_, kInvalidFallbackMetricsValue);
|
||||
DCHECK_NE(height_fallback_, kInvalidFallbackMetricsValue);
|
||||
DCHECK_NE(size_per_unit_, kInvalidFallbackMetricsValue);
|
||||
|
||||
vertical_data_ =
|
||||
- MakeGarbageCollected<OpenTypeVerticalData>(font_.refTypeface());
|
||||
+ OpenTypeVerticalData::CreateUnscaled(font_.refTypeface());
|
||||
}
|
||||
vertical_data_->SetScaleAndFallbackMetrics(size_per_unit_, ascent_fallback_,
|
||||
height_fallback_);
|
||||
- return vertical_data_.Get();
|
||||
+ return vertical_data_;
|
||||
}
|
||||
|
||||
const hb::unique_ptr<hb_font_t> unscaled_font_;
|
||||
@@ -100,7 +97,7 @@ struct HarfBuzzFontData final : public G
|
||||
SpaceGlyphInOpenTypeTables space_in_gsub_ =
|
||||
SpaceGlyphInOpenTypeTables::kUnknown;
|
||||
|
||||
- Member<OpenTypeVerticalData> vertical_data_;
|
||||
+ scoped_refptr<OpenTypeVerticalData> vertical_data_;
|
||||
Member<const UnicodeRangeSet> range_set_;
|
||||
};
|
||||
|
@@ -1,107 +0,0 @@
|
||||
Revert the following commit:
|
||||
|
||||
commit 5ffa0446f51e34d06dc0539810a8a5d35ec9e3fc
|
||||
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Date: Thu Feb 22 17:08:22 2024 +0000
|
||||
|
||||
[fonts][perf] Explicitly leak SimpleFontDatas via a LRU cache.
|
||||
|
||||
This adds a strong LRU cache to FontDataCache to retain the most
|
||||
recently used fonts.
|
||||
|
||||
This covers the case where a large amount of DOM is destroyed, and
|
||||
previously we'd release all the font related objects if the GC kicked
|
||||
in.
|
||||
|
||||
Speedometer3 appears to peak at ~75 objects in the cache.
|
||||
|
||||
Results for different cache sizes:
|
||||
|
||||
Cache size: 64 | 32 | 16
|
||||
Speedometer3: +0.9% | +0.5% | +0%
|
||||
|
||||
Bug: 41490008
|
||||
Change-Id: I131b6a79f246e61e13a7d44dddbc1f9e625ed44a
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5314842
|
||||
Reviewed-by: Dominik Röttsches <drott@chromium.org>
|
||||
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1264027}
|
||||
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_data_cache.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_data_cache.cc
|
||||
@@ -36,15 +36,6 @@
|
||||
|
||||
namespace blink {
|
||||
|
||||
-namespace {
|
||||
-
|
||||
-// The maximum number of strong references to retain via the LRU.
|
||||
-// This explicitly leaks fonts (and related objects) unless under extreme
|
||||
-// memory pressure where it will be cleared. DO NOT increase unnecessarily.
|
||||
-const wtf_size_t kMaxSize = 64;
|
||||
-
|
||||
-} // namespace
|
||||
-
|
||||
const SimpleFontData* FontDataCache::Get(const FontPlatformData* platform_data,
|
||||
bool subpixel_ascent_descent) {
|
||||
if (!platform_data)
|
||||
@@ -64,16 +55,7 @@ const SimpleFontData* FontDataCache::Get
|
||||
add_result.stored_value->value = MakeGarbageCollected<SimpleFontData>(
|
||||
platform_data, nullptr, subpixel_ascent_descent);
|
||||
}
|
||||
-
|
||||
- const SimpleFontData* result = add_result.stored_value->value;
|
||||
-
|
||||
- // Update our LRU to keep a strong reference to `result`.
|
||||
- strong_reference_lru_.PrependOrMoveToFirst(result);
|
||||
- while (strong_reference_lru_.size() > kMaxSize) {
|
||||
- strong_reference_lru_.pop_back();
|
||||
- }
|
||||
-
|
||||
- return result;
|
||||
+ return add_result.stored_value->value;
|
||||
}
|
||||
|
||||
} // namespace blink
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_data_cache.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_data_cache.h
|
||||
@@ -34,7 +34,6 @@
|
||||
#include "third_party/blink/renderer/platform/fonts/font_platform_data.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/simple_font_data.h"
|
||||
#include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
|
||||
-#include "third_party/blink/renderer/platform/heap/collection_support/heap_linked_hash_set.h"
|
||||
|
||||
namespace blink {
|
||||
|
||||
@@ -59,29 +58,17 @@ class FontDataCache final {
|
||||
FontDataCache(const FontDataCache&) = delete;
|
||||
FontDataCache& operator=(const FontDataCache&) = delete;
|
||||
|
||||
- void Trace(Visitor* visitor) const {
|
||||
- visitor->Trace(cache_);
|
||||
- visitor->Trace(strong_reference_lru_);
|
||||
- }
|
||||
+ void Trace(Visitor* visitor) const { visitor->Trace(cache_); }
|
||||
|
||||
const SimpleFontData* Get(const FontPlatformData*,
|
||||
bool subpixel_ascent_descent = false);
|
||||
- void Clear() {
|
||||
- cache_.clear();
|
||||
- strong_reference_lru_.clear();
|
||||
- }
|
||||
+ void Clear() { cache_.clear(); }
|
||||
|
||||
private:
|
||||
HeapHashMap<Member<const FontPlatformData>,
|
||||
WeakMember<const SimpleFontData>,
|
||||
FontDataCacheKeyHashTraits>
|
||||
cache_;
|
||||
-
|
||||
- // The above `cache_` is weak, meaning its entries will potentially be
|
||||
- // cleared if no other references exist.
|
||||
- // This LRU keeps a small (limited) number of strong references alive so they
|
||||
- // won't be cleared in the above cache for performance reasons.
|
||||
- HeapLinkedHashSet<Member<const SimpleFontData>> strong_reference_lru_;
|
||||
};
|
||||
|
||||
} // namespace blink
|
@@ -1,425 +0,0 @@
|
||||
Revert the following commit:
|
||||
|
||||
|
||||
commit cc6c0b2a9e1dbc96f3ebed713dc71960a29dc4f1
|
||||
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Date: Tue Mar 5 20:27:13 2024 +0000
|
||||
|
||||
Reland "[gc] Make FontFamily immutable."
|
||||
|
||||
This reverts commit 748ed11510ec5bb09cc8b92f67f1f62964f023fa.
|
||||
|
||||
Reason for revert: Previous patch which caused MSAN issue was reapplied.
|
||||
|
||||
Original change's description:
|
||||
> Revert "[gc] Make FontFamily immutable."
|
||||
>
|
||||
> This reverts commit ca3d3085d8b01fc74623d639c615fc57842cd26d.
|
||||
>
|
||||
> Reason for revert: crrev.com/c/5328767 is the reason for failure on some tests on MSAN. Please see crbug.com/327969288 for more details.
|
||||
>
|
||||
> Original change's description:
|
||||
> > [gc] Make FontFamily immutable.
|
||||
> >
|
||||
> > Previously we'd build up font-family lists front to back, but would
|
||||
> > need to mutate them to do so. Instead just build them backwards.
|
||||
> >
|
||||
> > This removes a bunch of problematic APIs (like AppendFamily - which
|
||||
> > doesn't append), and simplifies the code.
|
||||
> >
|
||||
> > This will help avoid atomic write barriers once converted to oilpan.
|
||||
> >
|
||||
> > Bug: 41490008
|
||||
> > Change-Id: Icfcec2d0a1716585cf42985616c02b42b6647943
|
||||
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5322929
|
||||
> > Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
> > Reviewed-by: Dominik Röttsches <drott@chromium.org>
|
||||
> > Cr-Commit-Position: refs/heads/main@{#1267168}
|
||||
>
|
||||
> Bug: 41490008, 327969288
|
||||
> Change-Id: Ic69a5707d00cc98b97dcae3f4b8207b452ce5cbd
|
||||
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5333950
|
||||
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
||||
> Commit-Queue: Taiyo Mizuhashi <taiyo@chromium.org>
|
||||
> Owners-Override: Taiyo Mizuhashi <taiyo@chromium.org>
|
||||
> Cr-Commit-Position: refs/heads/main@{#1267674}
|
||||
|
||||
Bug: 41490008, 327969288
|
||||
Change-Id: If1d395e324b0be15488ef5410e9bcdb219bb19c6
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5344844
|
||||
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
||||
Cr-Commit-Position: refs/heads/main@{#1268654}
|
||||
|
||||
--- a/third_party/blink/renderer/core/css/css_font_face.cc
|
||||
+++ b/third_party/blink/renderer/core/css/css_font_face.cc
|
||||
@@ -216,8 +216,9 @@ bool CSSFontFace::MaybeLoadFont(const Fo
|
||||
|
||||
void CSSFontFace::Load() {
|
||||
FontDescription font_description;
|
||||
- font_description.SetFamily(
|
||||
- FontFamily(font_face_->family(), FontFamily::Type::kFamilyName));
|
||||
+ FontFamily font_family;
|
||||
+ font_family.SetFamily(font_face_->family(), FontFamily::Type::kFamilyName);
|
||||
+ font_description.SetFamily(font_family);
|
||||
Load(font_description);
|
||||
}
|
||||
|
||||
--- a/third_party/blink/renderer/core/css/font_face_set_document.cc
|
||||
+++ b/third_party/blink/renderer/core/css/font_face_set_document.cc
|
||||
@@ -195,10 +195,13 @@ bool FontFaceSetDocument::ResolveFontSty
|
||||
ComputedStyleBuilder builder =
|
||||
GetDocument()->GetStyleResolver().CreateComputedStyleBuilder();
|
||||
|
||||
- FontDescription default_font_description;
|
||||
- default_font_description.SetFamily(FontFamily(
|
||||
+ FontFamily font_family;
|
||||
+ font_family.SetFamily(
|
||||
FontFaceSet::DefaultFontFamily(),
|
||||
- FontFamily::InferredTypeFor(FontFaceSet::DefaultFontFamily())));
|
||||
+ FontFamily::InferredTypeFor(FontFaceSet::DefaultFontFamily()));
|
||||
+
|
||||
+ FontDescription default_font_description;
|
||||
+ default_font_description.SetFamily(font_family);
|
||||
default_font_description.SetSpecifiedSize(FontFaceSet::kDefaultFontSize);
|
||||
default_font_description.SetComputedSize(FontFaceSet::kDefaultFontSize);
|
||||
|
||||
--- a/third_party/blink/renderer/core/css/font_face_set_worker.cc
|
||||
+++ b/third_party/blink/renderer/core/css/font_face_set_worker.cc
|
||||
@@ -84,10 +84,13 @@ bool FontFaceSetWorker::ResolveFontStyle
|
||||
return false;
|
||||
}
|
||||
|
||||
- FontDescription default_font_description;
|
||||
- default_font_description.SetFamily(FontFamily(
|
||||
+ FontFamily font_family;
|
||||
+ font_family.SetFamily(
|
||||
FontFaceSet::DefaultFontFamily(),
|
||||
- FontFamily::InferredTypeFor(FontFaceSet::DefaultFontFamily())));
|
||||
+ FontFamily::InferredTypeFor(FontFaceSet::DefaultFontFamily()));
|
||||
+
|
||||
+ FontDescription default_font_description;
|
||||
+ default_font_description.SetFamily(font_family);
|
||||
default_font_description.SetSpecifiedSize(FontFaceSet::kDefaultFontSize);
|
||||
default_font_description.SetComputedSize(FontFaceSet::kDefaultFontSize);
|
||||
|
||||
--- a/third_party/blink/renderer/core/css/resolver/font_builder.cc
|
||||
+++ b/third_party/blink/renderer/core/css/resolver/font_builder.cc
|
||||
@@ -54,9 +54,11 @@ void FontBuilder::DidChangeWritingMode()
|
||||
}
|
||||
|
||||
FontFamily FontBuilder::StandardFontFamily() const {
|
||||
+ FontFamily family;
|
||||
const AtomicString& standard_font_family = StandardFontFamilyName();
|
||||
- return FontFamily(standard_font_family,
|
||||
- FontFamily::InferredTypeFor(standard_font_family));
|
||||
+ family.SetFamily(standard_font_family,
|
||||
+ FontFamily::InferredTypeFor(standard_font_family));
|
||||
+ return family;
|
||||
}
|
||||
|
||||
AtomicString FontBuilder::StandardFontFamilyName() const {
|
||||
--- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
|
||||
+++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
|
||||
@@ -379,8 +379,8 @@ FontDescription::FamilyDescription Style
|
||||
|
||||
if (const auto* system_font =
|
||||
DynamicTo<cssvalue::CSSPendingSystemFontValue>(value)) {
|
||||
- desc.family = FontFamily(system_font->ResolveFontFamily(),
|
||||
- FontFamily::Type::kFamilyName);
|
||||
+ desc.family.SetFamily(system_font->ResolveFontFamily(),
|
||||
+ FontFamily::Type::kFamilyName);
|
||||
return desc;
|
||||
}
|
||||
|
||||
@@ -410,8 +410,10 @@ FontDescription::FamilyDescription Style
|
||||
// Take the previous value and wrap it in a `SharedFontFamily` adding to
|
||||
// the linked list.
|
||||
if (has_value) {
|
||||
- next =
|
||||
- SharedFontFamily::Create(family_name, family_type, std::move(next));
|
||||
+ scoped_refptr<SharedFontFamily> shared = SharedFontFamily::Create();
|
||||
+ shared->SetFamily(family_name, family_type);
|
||||
+ shared->AppendFamily(next);
|
||||
+ next = shared;
|
||||
}
|
||||
family_name = next_family_name;
|
||||
family_type = is_generic ? FontFamily::Type::kGenericFamily
|
||||
@@ -442,7 +444,8 @@ FontDescription::FamilyDescription Style
|
||||
}
|
||||
#endif
|
||||
|
||||
- desc.family = FontFamily(family_name, family_type, std::move(next));
|
||||
+ desc.family.SetFamily(family_name, family_type);
|
||||
+ desc.family.AppendFamily(next);
|
||||
return desc;
|
||||
}
|
||||
|
||||
--- a/third_party/blink/renderer/core/html/canvas/canvas_font_cache.cc
|
||||
+++ b/third_party/blink/renderer/core/html/canvas/canvas_font_cache.cc
|
||||
@@ -29,9 +29,11 @@ const int defaultFontSize = 10;
|
||||
|
||||
const ComputedStyle* CreateDefaultFontStyle(const Document& document) {
|
||||
const AtomicString& default_font_family = font_family_names::kSansSerif;
|
||||
+ FontFamily font_family;
|
||||
+ font_family.SetFamily(default_font_family,
|
||||
+ FontFamily::InferredTypeFor(default_font_family));
|
||||
FontDescription default_font_description;
|
||||
- default_font_description.SetFamily(FontFamily(
|
||||
- default_font_family, FontFamily::InferredTypeFor(default_font_family)));
|
||||
+ default_font_description.SetFamily(font_family);
|
||||
default_font_description.SetSpecifiedSize(defaultFontSize);
|
||||
default_font_description.SetComputedSize(defaultFontSize);
|
||||
ComputedStyleBuilder builder =
|
||||
--- a/third_party/blink/renderer/core/page/drag_image.cc
|
||||
+++ b/third_party/blink/renderer/core/page/drag_image.cc
|
||||
@@ -127,9 +127,11 @@ static Font DeriveDragLabelFont(int size
|
||||
const AtomicString& family =
|
||||
LayoutThemeFontProvider::SystemFontFamily(CSSValueID::kNone);
|
||||
|
||||
+ FontFamily font_family;
|
||||
+ font_family.SetFamily(family, FontFamily::InferredTypeFor(family));
|
||||
+
|
||||
FontDescription description;
|
||||
- description.SetFamily(
|
||||
- FontFamily(family, FontFamily::InferredTypeFor(family)));
|
||||
+ description.SetFamily(font_family);
|
||||
description.SetWeight(font_weight);
|
||||
description.SetSpecifiedSize(size);
|
||||
description.SetComputedSize(size);
|
||||
--- a/third_party/blink/renderer/core/paint/embedded_object_painter.cc
|
||||
+++ b/third_party/blink/renderer/core/paint/embedded_object_painter.cc
|
||||
@@ -32,9 +32,11 @@ static Font ReplacementTextFont(const Do
|
||||
const float size = LayoutThemeFontProvider::SystemFontSize(
|
||||
CSSValueID::kWebkitSmallControl, document);
|
||||
|
||||
+ FontFamily font_family;
|
||||
+ font_family.SetFamily(family, FontFamily::InferredTypeFor(family));
|
||||
+
|
||||
FontDescription font_description;
|
||||
- font_description.SetFamily(
|
||||
- FontFamily(family, FontFamily::InferredTypeFor(family)));
|
||||
+ font_description.SetFamily(font_family);
|
||||
font_description.SetWeight(kBoldWeightValue);
|
||||
font_description.SetSpecifiedSize(size);
|
||||
font_description.SetComputedSize(size);
|
||||
--- a/third_party/blink/renderer/platform/exported/web_font_description.cc
|
||||
+++ b/third_party/blink/renderer/platform/exported/web_font_description.cc
|
||||
@@ -49,10 +49,13 @@ WebFontDescription::WebFontDescription(c
|
||||
}
|
||||
|
||||
WebFontDescription::operator FontDescription() const {
|
||||
+ FontFamily font_family;
|
||||
+ font_family.SetFamily(family, family_is_generic
|
||||
+ ? FontFamily::Type::kGenericFamily
|
||||
+ : FontFamily::Type::kFamilyName);
|
||||
+
|
||||
FontDescription desc;
|
||||
- desc.SetFamily(FontFamily(family, family_is_generic
|
||||
- ? FontFamily::Type::kGenericFamily
|
||||
- : FontFamily::Type::kFamilyName));
|
||||
+ desc.SetFamily(font_family);
|
||||
desc.SetGenericFamily(
|
||||
static_cast<FontDescription::GenericFamilyType>(generic_family));
|
||||
desc.SetSpecifiedSize(size);
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_description.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_description.h
|
||||
@@ -195,6 +195,7 @@ class PLATFORM_EXPORT FontDescription {
|
||||
FamilyDescription GetFamilyDescription() const {
|
||||
return FamilyDescription(GenericFamily(), Family());
|
||||
}
|
||||
+ FontFamily& FirstFamily() { return family_list_; }
|
||||
const FontFamily& FirstFamily() const { return family_list_; }
|
||||
Size GetSize() const {
|
||||
return Size(KeywordSize(), SpecifiedSize(), IsAbsoluteSize());
|
||||
@@ -450,6 +451,10 @@ class PLATFORM_EXPORT FontDescription {
|
||||
return fields_.subpixel_ascent_descent_;
|
||||
}
|
||||
|
||||
+ void SetHashCategory(HashCategory category) {
|
||||
+ fields_.hash_category_ = category;
|
||||
+ }
|
||||
+
|
||||
HashCategory GetHashCategory() const {
|
||||
return static_cast<HashCategory>(fields_.hash_category_);
|
||||
}
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_fallback_list.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_fallback_list.cc
|
||||
@@ -178,8 +178,9 @@ const FontData* FontFallbackList::GetFon
|
||||
|
||||
if (font_selector_) {
|
||||
// Try the user's preferred standard font.
|
||||
- FontFamily font_family(font_family_names::kWebkitStandard,
|
||||
- FontFamily::Type::kGenericFamily);
|
||||
+ FontFamily font_family;
|
||||
+ font_family.SetFamily(font_family_names::kWebkitStandard,
|
||||
+ FontFamily::Type::kGenericFamily);
|
||||
if (const FontData* data =
|
||||
font_selector_->GetFontData(font_description, font_family)) {
|
||||
return data;
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_family.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_family.cc
|
||||
@@ -49,6 +49,20 @@ bool operator==(const FontFamily& a, con
|
||||
return true;
|
||||
}
|
||||
|
||||
+wtf_size_t FontFamily::CountNames() const {
|
||||
+ wtf_size_t count = 0;
|
||||
+ for (const FontFamily* font_family = this; font_family;
|
||||
+ font_family = font_family->Next())
|
||||
+ ++count;
|
||||
+ return count;
|
||||
+}
|
||||
+
|
||||
+void FontFamily::AppendFamily(AtomicString family_name, Type family_type) {
|
||||
+ scoped_refptr<SharedFontFamily> appended_family = SharedFontFamily::Create();
|
||||
+ appended_family->SetFamily(family_name, family_type);
|
||||
+ AppendFamily(appended_family);
|
||||
+}
|
||||
+
|
||||
String FontFamily::ToString() const {
|
||||
StringBuilder builder;
|
||||
builder.Append(family_name_);
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_family.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_family.h
|
||||
@@ -39,18 +39,16 @@ class PLATFORM_EXPORT FontFamily {
|
||||
DISALLOW_NEW();
|
||||
|
||||
public:
|
||||
- // https://drafts.csswg.org/css-fonts/#font-family-prop
|
||||
- enum class Type : uint8_t { kFamilyName, kGenericFamily };
|
||||
-
|
||||
- FontFamily(const AtomicString& family_name,
|
||||
- Type family_type,
|
||||
- scoped_refptr<SharedFontFamily> next = nullptr)
|
||||
- : family_name_(family_name),
|
||||
- next_(std::move(next)),
|
||||
- family_type_(family_type) {}
|
||||
FontFamily() = default;
|
||||
~FontFamily();
|
||||
|
||||
+ // https://drafts.csswg.org/css-fonts/#font-family-prop
|
||||
+ enum class Type : uint8_t { kFamilyName, kGenericFamily };
|
||||
+
|
||||
+ void SetFamily(const AtomicString& family_name, Type family_type) {
|
||||
+ family_name_ = family_name;
|
||||
+ family_type_ = family_type;
|
||||
+ }
|
||||
// Return this font family's name. Note that it is never quoted nor escaped.
|
||||
// For web-exposed serialization, please rely instead on the functions
|
||||
// ComputedStyleUtils::ValueForFontFamily(const FontFamily&) and
|
||||
@@ -59,8 +57,13 @@ class PLATFORM_EXPORT FontFamily {
|
||||
const AtomicString& FamilyName() const { return family_name_; }
|
||||
bool FamilyIsGeneric() const { return family_type_ == Type::kGenericFamily; }
|
||||
|
||||
+ // Returns number of linked `FontFamily` including `this`, so return value is
|
||||
+ // greater than or equal to 1. When `Next()` is `nullptr`, return value is 1.
|
||||
+ wtf_size_t CountNames() const;
|
||||
const FontFamily* Next() const;
|
||||
|
||||
+ void AppendFamily(scoped_refptr<SharedFontFamily>);
|
||||
+ void AppendFamily(AtomicString family_name, Type family_type);
|
||||
scoped_refptr<SharedFontFamily> ReleaseNext();
|
||||
|
||||
bool IsPrewarmed() const { return is_prewarmed_; }
|
||||
@@ -93,19 +96,12 @@ class PLATFORM_EXPORT SharedFontFamily :
|
||||
SharedFontFamily(const SharedFontFamily&) = delete;
|
||||
SharedFontFamily& operator=(const SharedFontFamily&) = delete;
|
||||
|
||||
- static scoped_refptr<SharedFontFamily> Create(
|
||||
- const AtomicString& family_name,
|
||||
- Type family_type,
|
||||
- scoped_refptr<SharedFontFamily> next = nullptr) {
|
||||
- return base::AdoptRef(
|
||||
- new SharedFontFamily(family_name, family_type, std::move(next)));
|
||||
+ static scoped_refptr<SharedFontFamily> Create() {
|
||||
+ return base::AdoptRef(new SharedFontFamily);
|
||||
}
|
||||
|
||||
private:
|
||||
- SharedFontFamily(const AtomicString& family_name,
|
||||
- Type family_type,
|
||||
- scoped_refptr<SharedFontFamily> next)
|
||||
- : FontFamily(family_name, family_type, std::move(next)) {}
|
||||
+ SharedFontFamily() = default;
|
||||
};
|
||||
|
||||
PLATFORM_EXPORT bool operator==(const FontFamily&, const FontFamily&);
|
||||
@@ -125,6 +121,10 @@ inline const FontFamily* FontFamily::Nex
|
||||
return next_.get();
|
||||
}
|
||||
|
||||
+inline void FontFamily::AppendFamily(scoped_refptr<SharedFontFamily> family) {
|
||||
+ next_ = std::move(family);
|
||||
+}
|
||||
+
|
||||
inline scoped_refptr<SharedFontFamily> FontFamily::ReleaseNext() {
|
||||
return std::move(next_);
|
||||
}
|
||||
--- a/third_party/blink/renderer/platform/graphics/placeholder_image.cc
|
||||
+++ b/third_party/blink/renderer/platform/graphics/placeholder_image.cc
|
||||
@@ -85,18 +85,23 @@ void DrawCenteredIcon(cc::PaintCanvas* c
|
||||
}
|
||||
|
||||
FontDescription CreatePlaceholderFontDescription(float scale_factor) {
|
||||
- scoped_refptr<SharedFontFamily> arial = SharedFontFamily::Create(
|
||||
- font_family_names::kArial, FontFamily::Type::kFamilyName);
|
||||
- scoped_refptr<SharedFontFamily> helvetica = SharedFontFamily::Create(
|
||||
- font_family_names::kHelvetica, FontFamily::Type::kFamilyName, arial);
|
||||
- scoped_refptr<SharedFontFamily> helvetica_neue =
|
||||
- SharedFontFamily::Create(font_family_names::kHelveticaNeue,
|
||||
- FontFamily::Type::kFamilyName, helvetica);
|
||||
- FontFamily roboto(font_family_names::kRoboto, FontFamily::Type::kFamilyName,
|
||||
- helvetica_neue);
|
||||
-
|
||||
FontDescription description;
|
||||
- description.SetFamily(roboto);
|
||||
+ description.FirstFamily().SetFamily(font_family_names::kRoboto,
|
||||
+ FontFamily::Type::kFamilyName);
|
||||
+
|
||||
+ scoped_refptr<SharedFontFamily> helvetica_neue = SharedFontFamily::Create();
|
||||
+ helvetica_neue->SetFamily(font_family_names::kHelveticaNeue,
|
||||
+ FontFamily::Type::kFamilyName);
|
||||
+ scoped_refptr<SharedFontFamily> helvetica = SharedFontFamily::Create();
|
||||
+ helvetica->SetFamily(font_family_names::kHelvetica,
|
||||
+ FontFamily::Type::kFamilyName);
|
||||
+ scoped_refptr<SharedFontFamily> arial = SharedFontFamily::Create();
|
||||
+ arial->SetFamily(font_family_names::kArial, FontFamily::Type::kFamilyName);
|
||||
+
|
||||
+ helvetica->AppendFamily(std::move(arial));
|
||||
+ helvetica_neue->AppendFamily(std::move(helvetica));
|
||||
+ description.FirstFamily().AppendFamily(std::move(helvetica_neue));
|
||||
+
|
||||
description.SetGenericFamily(FontDescription::kSansSerifFamily);
|
||||
description.SetComputedSize(scale_factor * kFontSize);
|
||||
description.SetWeight(FontSelectionValue(500));
|
||||
--- a/third_party/blink/renderer/platform/testing/font_test_helpers.cc
|
||||
+++ b/third_party/blink/renderer/platform/testing/font_test_helpers.cc
|
||||
@@ -127,9 +127,11 @@ Font CreateTestFont(const AtomicString&
|
||||
size_t data_size,
|
||||
float size,
|
||||
const FontDescription::VariantLigatures* ligatures) {
|
||||
+ FontFamily family;
|
||||
+ family.SetFamily(family_name, FontFamily::Type::kFamilyName);
|
||||
+
|
||||
FontDescription font_description;
|
||||
- font_description.SetFamily(
|
||||
- FontFamily(family_name, FontFamily::Type::kFamilyName));
|
||||
+ font_description.SetFamily(family);
|
||||
font_description.SetSpecifiedSize(size);
|
||||
font_description.SetComputedSize(size);
|
||||
if (ligatures)
|
||||
@@ -143,9 +145,11 @@ Font CreateTestFont(const AtomicString&
|
||||
float size,
|
||||
const FontDescription::VariantLigatures* ligatures,
|
||||
void (*init_font_description)(FontDescription*)) {
|
||||
+ FontFamily family;
|
||||
+ family.SetFamily(family_name, FontFamily::Type::kFamilyName);
|
||||
+
|
||||
FontDescription font_description;
|
||||
- font_description.SetFamily(
|
||||
- FontFamily(family_name, FontFamily::Type::kFamilyName));
|
||||
+ font_description.SetFamily(family);
|
||||
font_description.SetSpecifiedSize(size);
|
||||
font_description.SetComputedSize(size);
|
||||
if (ligatures)
|
@@ -1,258 +0,0 @@
|
||||
This is a revert of the commit below. While it doesn't strictly fix any
|
||||
bugs, it's needed to support bad-font-gc2.patch building.
|
||||
|
||||
commit 9a8fc2e22363c954af239c06798bf85a9c928295
|
||||
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Date: Wed Feb 14 19:35:11 2024 +0000
|
||||
|
||||
[gc] Make FontCustomPlatformData gc'd.
|
||||
|
||||
There should be no user-visible behaviour change.
|
||||
|
||||
Bug: 41490008
|
||||
Change-Id: I6364bf4c5b5dce9f99d8e2d7e1f84537c5493c33
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5293060
|
||||
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Reviewed-by: Dominik Röttsches <drott@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1260637}
|
||||
|
||||
--- a/third_party/blink/renderer/core/css/binary_data_font_face_source.cc
|
||||
+++ b/third_party/blink/renderer/core/css/binary_data_font_face_source.cc
|
||||
@@ -27,16 +27,13 @@ BinaryDataFontFaceSource::BinaryDataFont
|
||||
return;
|
||||
}
|
||||
probe::FontsUpdated(context, font_face, String(),
|
||||
- custom_platform_data_.Get());
|
||||
+ custom_platform_data_.get());
|
||||
}
|
||||
|
||||
-void BinaryDataFontFaceSource::Trace(Visitor* visitor) const {
|
||||
- visitor->Trace(custom_platform_data_);
|
||||
- CSSFontFaceSource::Trace(visitor);
|
||||
-}
|
||||
+BinaryDataFontFaceSource::~BinaryDataFontFaceSource() = default;
|
||||
|
||||
bool BinaryDataFontFaceSource::IsValid() const {
|
||||
- return custom_platform_data_;
|
||||
+ return custom_platform_data_.get();
|
||||
}
|
||||
|
||||
SimpleFontData* BinaryDataFontFaceSource::CreateFontData(
|
||||
--- a/third_party/blink/renderer/core/css/binary_data_font_face_source.h
|
||||
+++ b/third_party/blink/renderer/core/css/binary_data_font_face_source.h
|
||||
@@ -16,14 +16,14 @@ class FontCustomPlatformData;
|
||||
class BinaryDataFontFaceSource final : public CSSFontFaceSource {
|
||||
public:
|
||||
BinaryDataFontFaceSource(CSSFontFace*, SharedBuffer*, String&);
|
||||
- void Trace(Visitor*) const override;
|
||||
+ ~BinaryDataFontFaceSource() override;
|
||||
bool IsValid() const override;
|
||||
|
||||
private:
|
||||
SimpleFontData* CreateFontData(const FontDescription&,
|
||||
const FontSelectionCapabilities&) override;
|
||||
|
||||
- Member<const FontCustomPlatformData> custom_platform_data_;
|
||||
+ scoped_refptr<FontCustomPlatformData> custom_platform_data_;
|
||||
};
|
||||
|
||||
} // namespace blink
|
||||
--- a/third_party/blink/renderer/core/css/remote_font_face_source.cc
|
||||
+++ b/third_party/blink/renderer/core/css/remote_font_face_source.cc
|
||||
@@ -262,7 +262,7 @@ void RemoteFontFaceSource::NotifyFinishe
|
||||
FontInvalidationReason::kFontFaceLoaded);
|
||||
if (custom_font_data_) {
|
||||
probe::FontsUpdated(execution_context, face_->GetFontFace(),
|
||||
- resource->Url().GetString(), custom_font_data_.Get());
|
||||
+ resource->Url().GetString(), custom_font_data_.get());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -456,7 +456,6 @@ void RemoteFontFaceSource::BeginLoadIfNe
|
||||
void RemoteFontFaceSource::Trace(Visitor* visitor) const {
|
||||
visitor->Trace(face_);
|
||||
visitor->Trace(font_selector_);
|
||||
- visitor->Trace(custom_font_data_);
|
||||
CSSFontFaceSource::Trace(visitor);
|
||||
FontResourceClient::Trace(visitor);
|
||||
}
|
||||
--- a/third_party/blink/renderer/core/css/remote_font_face_source.h
|
||||
+++ b/third_party/blink/renderer/core/css/remote_font_face_source.h
|
||||
@@ -43,7 +43,7 @@ class RemoteFontFaceSource final : publi
|
||||
bool IsPendingDataUrl() const override;
|
||||
|
||||
const FontCustomPlatformData* GetCustomPlaftormData() const override {
|
||||
- return custom_font_data_.Get();
|
||||
+ return custom_font_data_.get();
|
||||
}
|
||||
|
||||
void BeginLoadIfNeeded() override;
|
||||
@@ -157,7 +157,7 @@ class RemoteFontFaceSource final : publi
|
||||
Member<FontSelector> font_selector_;
|
||||
|
||||
// |nullptr| if font is not loaded or failed to decode.
|
||||
- Member<const FontCustomPlatformData> custom_font_data_;
|
||||
+ scoped_refptr<FontCustomPlatformData> custom_font_data_;
|
||||
// |nullptr| if font is not loaded or failed to decode.
|
||||
String url_;
|
||||
|
||||
--- a/third_party/blink/renderer/core/loader/resource/font_resource.cc
|
||||
+++ b/third_party/blink/renderer/core/loader/resource/font_resource.cc
|
||||
@@ -112,7 +112,7 @@ void FontResource::StartLoadLimitTimersI
|
||||
kFontLoadWaitLong);
|
||||
}
|
||||
|
||||
-const FontCustomPlatformData* FontResource::GetCustomFontData() {
|
||||
+scoped_refptr<FontCustomPlatformData> FontResource::GetCustomFontData() {
|
||||
if (!font_data_ && !ErrorOccurred() && !IsLoading()) {
|
||||
if (Data()) {
|
||||
auto decode_start_time = base::TimeTicks::Now();
|
||||
@@ -225,7 +225,6 @@ void FontResource::AddClearDataObserver(
|
||||
}
|
||||
|
||||
void FontResource::Trace(Visitor* visitor) const {
|
||||
- visitor->Trace(font_data_);
|
||||
visitor->Trace(clear_data_observers_);
|
||||
Resource::Trace(visitor);
|
||||
}
|
||||
--- a/third_party/blink/renderer/core/loader/resource/font_resource.h
|
||||
+++ b/third_party/blink/renderer/core/loader/resource/font_resource.h
|
||||
@@ -72,7 +72,7 @@ class CORE_EXPORT FontResource final : p
|
||||
|
||||
String OtsParsingMessage() const { return ots_parsing_message_; }
|
||||
|
||||
- const FontCustomPlatformData* GetCustomFontData();
|
||||
+ scoped_refptr<FontCustomPlatformData> GetCustomFontData();
|
||||
|
||||
// Returns true if the loading priority of the remote font resource can be
|
||||
// lowered. The loading priority of the font can be lowered only if the
|
||||
@@ -112,7 +112,7 @@ class CORE_EXPORT FontResource final : p
|
||||
kMaxValue = kLongLimitExceeded,
|
||||
};
|
||||
|
||||
- Member<FontCustomPlatformData> font_data_;
|
||||
+ scoped_refptr<FontCustomPlatformData> font_data_;
|
||||
String ots_parsing_message_;
|
||||
LoadLimitState load_limit_state_;
|
||||
bool cors_failed_;
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_custom_platform_data.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_custom_platform_data.cc
|
||||
@@ -115,7 +115,7 @@ const FontPlatformData* FontCustomPlatfo
|
||||
const ResolvedFontFeatures& resolved_font_features,
|
||||
FontOrientation orientation,
|
||||
const FontVariationSettings* variation_settings,
|
||||
- const FontPalette* palette) const {
|
||||
+ const FontPalette* palette) {
|
||||
DCHECK(base_typeface_);
|
||||
|
||||
sk_sp<SkTypeface> return_typeface = base_typeface_;
|
||||
@@ -304,7 +304,7 @@ String FontCustomPlatformData::FamilyNam
|
||||
localized_string.fString.size());
|
||||
}
|
||||
|
||||
-FontCustomPlatformData* FontCustomPlatformData::Create(
|
||||
+scoped_refptr<FontCustomPlatformData> FontCustomPlatformData::Create(
|
||||
SharedBuffer* buffer,
|
||||
String& ots_parse_message) {
|
||||
DCHECK(buffer);
|
||||
@@ -321,8 +321,8 @@ FontCustomPlatformData* FontCustomPlatfo
|
||||
if (v8::Isolate* isolate = v8::Isolate::TryGetCurrent()) {
|
||||
isolate->AdjustAmountOfExternalAllocatedMemory(data_size);
|
||||
}
|
||||
- return MakeGarbageCollected<FontCustomPlatformData>(std::move(typeface),
|
||||
- data_size);
|
||||
+ return base::AdoptRef(
|
||||
+ new FontCustomPlatformData(std::move(typeface), data_size));
|
||||
}
|
||||
|
||||
bool FontCustomPlatformData::MayBeIconFont() const {
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_custom_platform_data.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_custom_platform_data.h
|
||||
@@ -39,7 +39,6 @@
|
||||
#include "third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/resolved_font_features.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/text_rendering_mode.h"
|
||||
-#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
|
||||
#include "third_party/blink/renderer/platform/platform_export.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/forward.h"
|
||||
@@ -55,17 +54,16 @@ class FontPlatformData;
|
||||
class FontVariationSettings;
|
||||
|
||||
class PLATFORM_EXPORT FontCustomPlatformData
|
||||
- : public GarbageCollected<FontCustomPlatformData> {
|
||||
+ : public RefCounted<FontCustomPlatformData> {
|
||||
+ USING_FAST_MALLOC(FontCustomPlatformData);
|
||||
+
|
||||
public:
|
||||
- static FontCustomPlatformData* Create(SharedBuffer*,
|
||||
- String& ots_parse_message);
|
||||
- FontCustomPlatformData(sk_sp<SkTypeface>, size_t data_size);
|
||||
+ static scoped_refptr<FontCustomPlatformData> Create(SharedBuffer*,
|
||||
+ String& ots_parse_message);
|
||||
FontCustomPlatformData(const FontCustomPlatformData&) = delete;
|
||||
FontCustomPlatformData& operator=(const FontCustomPlatformData&) = delete;
|
||||
~FontCustomPlatformData();
|
||||
|
||||
- void Trace(Visitor*) const {}
|
||||
-
|
||||
// The size argument should come from EffectiveFontSize() and
|
||||
// adjusted_specified_size should come from AdjustedSpecifiedSize() of
|
||||
// FontDescription. The latter is needed for correctly applying
|
||||
@@ -82,7 +80,7 @@ class PLATFORM_EXPORT FontCustomPlatform
|
||||
const ResolvedFontFeatures& resolved_font_features,
|
||||
FontOrientation = FontOrientation::kHorizontal,
|
||||
const FontVariationSettings* = nullptr,
|
||||
- const FontPalette* = nullptr) const;
|
||||
+ const FontPalette* = nullptr);
|
||||
|
||||
String FamilyNameForInspector() const;
|
||||
|
||||
@@ -93,6 +91,7 @@ class PLATFORM_EXPORT FontCustomPlatform
|
||||
bool MayBeIconFont() const;
|
||||
|
||||
private:
|
||||
+ FontCustomPlatformData(sk_sp<SkTypeface>, size_t data_size);
|
||||
sk_sp<SkTypeface> base_typeface_;
|
||||
size_t data_size_;
|
||||
|
||||
--- a/third_party/blink/renderer/platform/testing/font_test_helpers.cc
|
||||
+++ b/third_party/blink/renderer/platform/testing/font_test_helpers.cc
|
||||
@@ -29,7 +29,7 @@ class TestFontSelector : public FontSele
|
||||
static TestFontSelector* Create(const uint8_t* data, size_t size) {
|
||||
scoped_refptr<SharedBuffer> font_buffer = SharedBuffer::Create(data, size);
|
||||
String ots_parse_message;
|
||||
- FontCustomPlatformData* font_custom_platform_data =
|
||||
+ scoped_refptr<FontCustomPlatformData> font_custom_platform_data =
|
||||
FontCustomPlatformData::Create(font_buffer.get(), ots_parse_message);
|
||||
if (!font_custom_platform_data)
|
||||
return nullptr;
|
||||
@@ -37,17 +37,12 @@ class TestFontSelector : public FontSele
|
||||
std::move(font_custom_platform_data));
|
||||
}
|
||||
|
||||
- TestFontSelector(FontCustomPlatformData* custom_platform_data)
|
||||
- : custom_platform_data_(custom_platform_data) {
|
||||
+ TestFontSelector(scoped_refptr<FontCustomPlatformData> custom_platform_data)
|
||||
+ : custom_platform_data_(std::move(custom_platform_data)) {
|
||||
DCHECK(custom_platform_data_);
|
||||
}
|
||||
~TestFontSelector() override = default;
|
||||
|
||||
- void Trace(Visitor* visitor) const override {
|
||||
- visitor->Trace(custom_platform_data_);
|
||||
- FontSelector::Trace(visitor);
|
||||
- }
|
||||
-
|
||||
FontData* GetFontData(const FontDescription& font_description,
|
||||
const FontFamily&) override {
|
||||
FontSelectionCapabilities normal_capabilities(
|
||||
@@ -117,7 +112,7 @@ class TestFontSelector : public FontSele
|
||||
}
|
||||
|
||||
private:
|
||||
- Member<FontCustomPlatformData> custom_platform_data_;
|
||||
+ scoped_refptr<FontCustomPlatformData> custom_platform_data_;
|
||||
};
|
||||
|
||||
} // namespace
|
@@ -1,411 +0,0 @@
|
||||
Revert the following commit:
|
||||
|
||||
commit 2eefeabb12fb7e92f2508116a5ed959c57659be1
|
||||
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Date: Tue Feb 20 17:40:39 2024 +0000
|
||||
|
||||
[gc] Make HarfBuzzFontData & friends gc'd.
|
||||
|
||||
Previously we had a HbFontCacheEntry which was used to hold onto the
|
||||
HarfBuzzFontData, and a hb_font_t.
|
||||
|
||||
HarfBuzzFontData is used for holding data specific for various
|
||||
harfbuzz callbacks, but we can also hold onto the hb_font_t there.
|
||||
|
||||
There should be no user-visible behaviour change.
|
||||
|
||||
Bug: 41490008
|
||||
Change-Id: Icaa7ad3b2f75e9807b88014a9a15406cb76eb52e
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5302175
|
||||
Reviewed-by: Dominik Röttsches <drott@chromium.org>
|
||||
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1262752}
|
||||
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_global_context.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_global_context.cc
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "third_party/blink/renderer/platform/fonts/font_cache.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/font_unique_name_lookup.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h"
|
||||
+#include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h"
|
||||
#include "third_party/blink/renderer/platform/privacy_budget/identifiability_digest_helpers.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/thread_specific.h"
|
||||
|
||||
@@ -50,6 +51,15 @@ FontUniqueNameLookup* FontGlobalContext:
|
||||
return Get().font_unique_name_lookup_.get();
|
||||
}
|
||||
|
||||
+HarfBuzzFontCache& FontGlobalContext::GetHarfBuzzFontCache() {
|
||||
+ std::unique_ptr<HarfBuzzFontCache>& global_context_harfbuzz_font_cache =
|
||||
+ Get().harfbuzz_font_cache_;
|
||||
+ if (!global_context_harfbuzz_font_cache) {
|
||||
+ global_context_harfbuzz_font_cache = std::make_unique<HarfBuzzFontCache>();
|
||||
+ }
|
||||
+ return *global_context_harfbuzz_font_cache;
|
||||
+}
|
||||
+
|
||||
IdentifiableToken FontGlobalContext::GetOrComputeTypefaceDigest(
|
||||
const FontPlatformData& source) {
|
||||
SkTypeface* typeface = source.Typeface();
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_global_context.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_global_context.h
|
||||
@@ -9,7 +9,6 @@
|
||||
#include "base/types/pass_key.h"
|
||||
#include "third_party/blink/public/common/privacy_budget/identifiable_token.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/font_cache.h"
|
||||
-#include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h"
|
||||
#include "third_party/blink/renderer/platform/platform_export.h"
|
||||
#include "third_party/blink/renderer/platform/text/layout_locale.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
|
||||
@@ -34,19 +33,14 @@ class PLATFORM_EXPORT FontGlobalContext
|
||||
static FontGlobalContext& Get();
|
||||
static FontGlobalContext* TryGet();
|
||||
|
||||
- void Trace(Visitor* visitor) const {
|
||||
- visitor->Trace(font_cache_);
|
||||
- visitor->Trace(harfbuzz_font_cache_);
|
||||
- }
|
||||
+ void Trace(Visitor* visitor) const { visitor->Trace(font_cache_); }
|
||||
|
||||
FontGlobalContext(const FontGlobalContext&) = delete;
|
||||
FontGlobalContext& operator=(const FontGlobalContext&) = delete;
|
||||
|
||||
static inline FontCache& GetFontCache() { return Get().font_cache_; }
|
||||
|
||||
- static HarfBuzzFontCache& GetHarfBuzzFontCache() {
|
||||
- return Get().harfbuzz_font_cache_;
|
||||
- }
|
||||
+ static HarfBuzzFontCache& GetHarfBuzzFontCache();
|
||||
|
||||
static FontUniqueNameLookup* GetFontUniqueNameLookup();
|
||||
|
||||
@@ -62,7 +56,7 @@ class PLATFORM_EXPORT FontGlobalContext
|
||||
|
||||
private:
|
||||
FontCache font_cache_;
|
||||
- HarfBuzzFontCache harfbuzz_font_cache_;
|
||||
+ std::unique_ptr<HarfBuzzFontCache> harfbuzz_font_cache_;
|
||||
std::unique_ptr<FontUniqueNameLookup> font_unique_name_lookup_;
|
||||
base::HashingLRUCache<SkTypefaceID, IdentifiableToken> typeface_digest_cache_;
|
||||
base::HashingLRUCache<SkTypefaceID, IdentifiableToken>
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
||||
@@ -64,14 +64,20 @@ namespace blink {
|
||||
|
||||
HarfBuzzFace::HarfBuzzFace(const FontPlatformData* platform_data,
|
||||
uint64_t unique_id)
|
||||
- : platform_data_(platform_data),
|
||||
- harfbuzz_font_data_(FontGlobalContext::GetHarfBuzzFontCache().GetOrCreate(
|
||||
- unique_id,
|
||||
- platform_data)) {}
|
||||
+ : platform_data_(platform_data), unique_id_(unique_id) {
|
||||
+ HbFontCacheEntry* const cache_entry =
|
||||
+ FontGlobalContext::GetHarfBuzzFontCache().RefOrNew(unique_id_,
|
||||
+ platform_data);
|
||||
+ unscaled_font_ = cache_entry->HbFont();
|
||||
+ harfbuzz_font_data_ = cache_entry->HbFontData();
|
||||
+}
|
||||
+
|
||||
+HarfBuzzFace::~HarfBuzzFace() {
|
||||
+ FontGlobalContext::GetHarfBuzzFontCache().Remove(unique_id_);
|
||||
+}
|
||||
|
||||
void HarfBuzzFace::Trace(Visitor* visitor) const {
|
||||
visitor->Trace(platform_data_);
|
||||
- visitor->Trace(harfbuzz_font_data_);
|
||||
}
|
||||
|
||||
static hb_bool_t HarfBuzzGetGlyph(hb_font_t* hb_font,
|
||||
@@ -234,17 +240,14 @@ bool HarfBuzzFace::HasSpaceInLigaturesOr
|
||||
|
||||
hb::unique_ptr<hb_set_t> glyphs(hb_set_create());
|
||||
|
||||
- hb_font_t* unscaled_font = harfbuzz_font_data_->unscaled_font_.get();
|
||||
-
|
||||
// Check whether computing is needed and compute for gpos/gsub.
|
||||
if (features & kKerning &&
|
||||
harfbuzz_font_data_->space_in_gpos_ ==
|
||||
HarfBuzzFontData::SpaceGlyphInOpenTypeTables::kUnknown) {
|
||||
- if (space == kInvalidCodepoint && !GetSpaceGlyph(unscaled_font, space)) {
|
||||
+ if (space == kInvalidCodepoint && !GetSpaceGlyph(unscaled_font_, space))
|
||||
return false;
|
||||
- }
|
||||
// Compute for gpos.
|
||||
- hb_face_t* face = hb_font_get_face(unscaled_font);
|
||||
+ hb_face_t* face = hb_font_get_face(unscaled_font_);
|
||||
DCHECK(face);
|
||||
harfbuzz_font_data_->space_in_gpos_ =
|
||||
hb_ot_layout_has_positioning(face) &&
|
||||
@@ -258,11 +261,10 @@ bool HarfBuzzFace::HasSpaceInLigaturesOr
|
||||
if (features & kLigatures &&
|
||||
harfbuzz_font_data_->space_in_gsub_ ==
|
||||
HarfBuzzFontData::SpaceGlyphInOpenTypeTables::kUnknown) {
|
||||
- if (space == kInvalidCodepoint && !GetSpaceGlyph(unscaled_font, space)) {
|
||||
+ if (space == kInvalidCodepoint && !GetSpaceGlyph(unscaled_font_, space))
|
||||
return false;
|
||||
- }
|
||||
// Compute for gpos.
|
||||
- hb_face_t* face = hb_font_get_face(unscaled_font);
|
||||
+ hb_face_t* face = hb_font_get_face(unscaled_font_);
|
||||
DCHECK(face);
|
||||
harfbuzz_font_data_->space_in_gsub_ =
|
||||
hb_ot_layout_has_substitution(face) &&
|
||||
@@ -280,14 +282,14 @@ bool HarfBuzzFace::HasSpaceInLigaturesOr
|
||||
}
|
||||
|
||||
unsigned HarfBuzzFace::UnitsPerEmFromHeadTable() {
|
||||
- hb_face_t* face = hb_font_get_face(harfbuzz_font_data_->unscaled_font_.get());
|
||||
+ hb_face_t* face = hb_font_get_face(unscaled_font_);
|
||||
return hb_face_get_upem(face);
|
||||
}
|
||||
|
||||
Glyph HarfBuzzFace::HbGlyphForCharacter(UChar32 character) {
|
||||
hb_codepoint_t glyph = 0;
|
||||
- HarfBuzzGetNominalGlyph(harfbuzz_font_data_->unscaled_font_.get(),
|
||||
- harfbuzz_font_data_, character, &glyph, nullptr);
|
||||
+ HarfBuzzGetNominalGlyph(unscaled_font_, harfbuzz_font_data_, character,
|
||||
+ &glyph, nullptr);
|
||||
return glyph;
|
||||
}
|
||||
|
||||
@@ -444,10 +446,9 @@ static hb::unique_ptr<hb_face_t> CreateF
|
||||
return face;
|
||||
}
|
||||
|
||||
-namespace {
|
||||
-
|
||||
-HarfBuzzFontData* CreateHarfBuzzFontData(hb_face_t* face,
|
||||
- SkTypeface* typeface) {
|
||||
+static scoped_refptr<HbFontCacheEntry> CreateHbFontCacheEntry(
|
||||
+ hb_face_t* face,
|
||||
+ SkTypeface* typeface) {
|
||||
hb::unique_ptr<hb_font_t> ot_font(hb_font_create(face));
|
||||
hb_ot_font_set_funcs(ot_font.get());
|
||||
|
||||
@@ -466,26 +467,25 @@ HarfBuzzFontData* CreateHarfBuzzFontData
|
||||
// Creating a sub font means that non-available functions
|
||||
// are found from the parent.
|
||||
hb_font_t* const unscaled_font = hb_font_create_sub_font(ot_font.get());
|
||||
- HarfBuzzFontData* data =
|
||||
- MakeGarbageCollected<HarfBuzzFontData>(unscaled_font);
|
||||
+ scoped_refptr<HbFontCacheEntry> cache_entry =
|
||||
+ HbFontCacheEntry::Create(unscaled_font);
|
||||
hb_font_set_funcs(unscaled_font,
|
||||
- HarfBuzzSkiaFontFuncs::Get().GetFunctions(typeface), data,
|
||||
- nullptr);
|
||||
- return data;
|
||||
+ HarfBuzzSkiaFontFuncs::Get().GetFunctions(typeface),
|
||||
+ cache_entry->HbFontData(), nullptr);
|
||||
+ return cache_entry;
|
||||
}
|
||||
|
||||
-} // namespace
|
||||
-
|
||||
-HarfBuzzFontData* HarfBuzzFontCache::GetOrCreate(
|
||||
+HbFontCacheEntry* HarfBuzzFontCache::RefOrNew(
|
||||
uint64_t unique_id,
|
||||
const FontPlatformData* platform_data) {
|
||||
const auto& result = font_map_.insert(unique_id, nullptr);
|
||||
if (result.is_new_entry) {
|
||||
hb::unique_ptr<hb_face_t> face = CreateFace(platform_data);
|
||||
result.stored_value->value =
|
||||
- CreateHarfBuzzFontData(face.get(), platform_data->Typeface());
|
||||
+ CreateHbFontCacheEntry(face.get(), platform_data->Typeface());
|
||||
}
|
||||
- return result.stored_value->value.Get();
|
||||
+ result.stored_value->value->AddRef();
|
||||
+ return result.stored_value->value.get();
|
||||
}
|
||||
|
||||
static_assert(
|
||||
@@ -516,18 +516,17 @@ hb_font_t* HarfBuzzFace::GetScaledFont(s
|
||||
vertical_layout);
|
||||
|
||||
int scale = SkiaScalarToHarfBuzzPosition(platform_data_->size());
|
||||
- hb_font_t* unscaled_font = harfbuzz_font_data_->unscaled_font_.get();
|
||||
- hb_font_set_scale(unscaled_font, scale, scale);
|
||||
+ hb_font_set_scale(unscaled_font_, scale, scale);
|
||||
// See contended discussion in https://github.com/harfbuzz/harfbuzz/pull/1484
|
||||
// Setting ptem here is critical for HarfBuzz to know where to lookup spacing
|
||||
// offset in the AAT trak table, the unit pt in ptem here means "CoreText"
|
||||
// points. After discussion on the pull request and with Apple developers, the
|
||||
// meaning of HarfBuzz' hb_font_set_ptem API was changed to expect the
|
||||
// equivalent of CSS pixels here.
|
||||
- hb_font_set_ptem(unscaled_font, specified_size > 0 ? specified_size
|
||||
- : platform_data_->size());
|
||||
+ hb_font_set_ptem(unscaled_font_, specified_size > 0 ? specified_size
|
||||
+ : platform_data_->size());
|
||||
|
||||
- return unscaled_font;
|
||||
+ return unscaled_font_;
|
||||
}
|
||||
|
||||
hb_font_t* HarfBuzzFace::GetScaledFont() const {
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
|
||||
@@ -55,6 +55,7 @@ class HarfBuzzFace final : public Garbag
|
||||
HarfBuzzFace(const FontPlatformData* platform_data, uint64_t);
|
||||
HarfBuzzFace(const HarfBuzzFace&) = delete;
|
||||
HarfBuzzFace& operator=(const HarfBuzzFace&) = delete;
|
||||
+ ~HarfBuzzFace();
|
||||
|
||||
void Trace(Visitor*) const;
|
||||
|
||||
@@ -90,7 +91,11 @@ class HarfBuzzFace final : public Garbag
|
||||
void PrepareHarfBuzzFontData();
|
||||
|
||||
Member<const FontPlatformData> platform_data_;
|
||||
- Member<HarfBuzzFontData> harfbuzz_font_data_;
|
||||
+ const uint64_t unique_id_;
|
||||
+ // TODO(crbug.com/1489080): When briefly given MiraclePtr protection,
|
||||
+ // these members were both found dangling.
|
||||
+ hb_font_t* unscaled_font_;
|
||||
+ HarfBuzzFontData* harfbuzz_font_data_;
|
||||
};
|
||||
|
||||
} // namespace blink
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc
|
||||
@@ -8,8 +8,38 @@
|
||||
|
||||
namespace blink {
|
||||
|
||||
-void HarfBuzzFontCache::Trace(Visitor* visitor) const {
|
||||
- visitor->Trace(font_map_);
|
||||
+HbFontCacheEntry::HbFontCacheEntry(hb_font_t* font)
|
||||
+ : hb_font_(hb::unique_ptr<hb_font_t>(font)),
|
||||
+ hb_font_data_(std::make_unique<HarfBuzzFontData>()) {}
|
||||
+
|
||||
+HbFontCacheEntry::~HbFontCacheEntry() = default;
|
||||
+
|
||||
+scoped_refptr<HbFontCacheEntry> HbFontCacheEntry::Create(hb_font_t* hb_font) {
|
||||
+ DCHECK(hb_font);
|
||||
+ return base::AdoptRef(new HbFontCacheEntry(hb_font));
|
||||
+}
|
||||
+
|
||||
+HarfBuzzFontCache::HarfBuzzFontCache() = default;
|
||||
+HarfBuzzFontCache::~HarfBuzzFontCache() = default;
|
||||
+
|
||||
+// See "harfbuzz_face.cc" for |HarfBuzzFontCache::GetOrCreateFontData()|
|
||||
+// implementation.
|
||||
+
|
||||
+void HarfBuzzFontCache::Remove(uint64_t unique_id) {
|
||||
+ auto it = font_map_.find(unique_id);
|
||||
+ // TODO(https://crbug.com/1417160): In tests such as FontObjectThreadedTest
|
||||
+ // that test taking down FontGlobalContext an object may not be found due to
|
||||
+ // existing issues with refcounting of font objects at thread destruction
|
||||
+ // time.
|
||||
+ if (it == font_map_.end()) {
|
||||
+ return;
|
||||
+ }
|
||||
+ DCHECK(!it.Get()->value->HasOneRef());
|
||||
+ it.Get()->value->Release();
|
||||
+ if (!it.Get()->value->HasOneRef()) {
|
||||
+ return;
|
||||
+ }
|
||||
+ font_map_.erase(it);
|
||||
}
|
||||
|
||||
} // namespace blink
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h
|
||||
@@ -6,9 +6,12 @@
|
||||
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_HARFBUZZ_FONT_CACHE_H_
|
||||
|
||||
#include "third_party/blink/renderer/platform/fonts/font_metrics.h"
|
||||
-#include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h"
|
||||
-#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
|
||||
-#include "third_party/blink/renderer/platform/heap/member.h"
|
||||
+#include "third_party/blink/renderer/platform/fonts/unicode_range_set.h"
|
||||
+
|
||||
+#include <hb.h>
|
||||
+#include <hb-cplusplus.hh>
|
||||
+
|
||||
+#include <memory>
|
||||
|
||||
namespace blink {
|
||||
|
||||
@@ -22,21 +25,39 @@ struct HarfBuzzFontData;
|
||||
// FIXME, crbug.com/609099: We should fix the FontCache to only keep one
|
||||
// FontPlatformData object independent of size, then consider using this here.
|
||||
|
||||
-class HarfBuzzFontCache final {
|
||||
- DISALLOW_NEW();
|
||||
+class HbFontCacheEntry : public RefCounted<HbFontCacheEntry> {
|
||||
+ USING_FAST_MALLOC(HbFontCacheEntry);
|
||||
+
|
||||
+ public:
|
||||
+ static scoped_refptr<HbFontCacheEntry> Create(hb_font_t* hb_font);
|
||||
+
|
||||
+ hb_font_t* HbFont() { return hb_font_.get(); }
|
||||
+ HarfBuzzFontData* HbFontData() { return hb_font_data_.get(); }
|
||||
+
|
||||
+ ~HbFontCacheEntry();
|
||||
|
||||
+ private:
|
||||
+ explicit HbFontCacheEntry(hb_font_t* font);
|
||||
+
|
||||
+ hb::unique_ptr<hb_font_t> hb_font_;
|
||||
+ std::unique_ptr<HarfBuzzFontData> hb_font_data_;
|
||||
+};
|
||||
+
|
||||
+class HarfBuzzFontCache final {
|
||||
public:
|
||||
- void Trace(Visitor* visitor) const;
|
||||
- // See "harfbuzz_face.cc" for |HarfBuzzFontCache::GetOrCreateFontData()|
|
||||
- // implementation.
|
||||
- HarfBuzzFontData* GetOrCreate(uint64_t unique_id,
|
||||
- const FontPlatformData* platform_data);
|
||||
+ HarfBuzzFontCache();
|
||||
+ ~HarfBuzzFontCache();
|
||||
+
|
||||
+ HbFontCacheEntry* RefOrNew(uint64_t unique_id,
|
||||
+ const FontPlatformData* platform_data);
|
||||
+ void Remove(uint64_t unique_id);
|
||||
|
||||
private:
|
||||
- HeapHashMap<uint64_t,
|
||||
- WeakMember<HarfBuzzFontData>,
|
||||
- IntWithZeroKeyHashTraits<uint64_t>>
|
||||
- font_map_;
|
||||
+ using HbFontDataMap = HashMap<uint64_t,
|
||||
+ scoped_refptr<HbFontCacheEntry>,
|
||||
+ IntWithZeroKeyHashTraits<uint64_t>>;
|
||||
+
|
||||
+ HbFontDataMap font_map_;
|
||||
};
|
||||
|
||||
} // namespace blink
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
|
||||
@@ -22,18 +22,15 @@ const unsigned kInvalidFallbackMetricsVa
|
||||
// The HarfBuzzFontData struct carries user-pointer data for
|
||||
// |hb_font_t| callback functions/operations. It contains metrics and OpenType
|
||||
// layout information related to a font scaled to a particular size.
|
||||
-struct HarfBuzzFontData final : public GarbageCollected<HarfBuzzFontData> {
|
||||
+struct HarfBuzzFontData final {
|
||||
+ USING_FAST_MALLOC(HarfBuzzFontData);
|
||||
+
|
||||
public:
|
||||
- explicit HarfBuzzFontData(hb_font_t* unscaled_font)
|
||||
- : unscaled_font_(hb::unique_ptr<hb_font_t>(unscaled_font)),
|
||||
- vertical_data_(nullptr),
|
||||
- range_set_(nullptr) {}
|
||||
+ HarfBuzzFontData() : vertical_data_(nullptr), range_set_(nullptr) {}
|
||||
|
||||
HarfBuzzFontData(const HarfBuzzFontData&) = delete;
|
||||
HarfBuzzFontData& operator=(const HarfBuzzFontData&) = delete;
|
||||
|
||||
- void Trace(Visitor*) const {}
|
||||
-
|
||||
// The vertical origin and vertical advance functions in HarfBuzzFace require
|
||||
// the ascent and height metrics as fallback in case no specific vertical
|
||||
// layout information is found from the font.
|
||||
@@ -81,7 +78,6 @@ struct HarfBuzzFontData final : public G
|
||||
return vertical_data_;
|
||||
}
|
||||
|
||||
- const hb::unique_ptr<hb_font_t> unscaled_font_;
|
||||
SkFont font_;
|
||||
|
||||
// Capture these scaled fallback metrics from FontPlatformData so that a
|
3715
bad-font-gc2.patch
3715
bad-font-gc2.patch
File diff suppressed because it is too large
Load Diff
@@ -1,38 +0,0 @@
|
||||
Revert the following commit (to support bad-font-gc2.patch):
|
||||
|
||||
commit d4806d20fda56e9bac259fddf10b7439ce749add
|
||||
Author: Hao Liu <haoliuk@chromium.org>
|
||||
Date: Mon Mar 18 22:56:31 2024 +0000
|
||||
|
||||
Cleanup leftover non-used custom_font_data methods
|
||||
|
||||
This is to clean up non-used custom_font_data methods. Their usage has
|
||||
been deleted in a previous CL.
|
||||
https://chromium-review.googlesource.com/c/chromium/src/+/5262982/29/third_party/blink/renderer/core/css/css_font_face_source.cc#b95
|
||||
|
||||
Change-Id: I90c3ae794a6caf71526c81a56795e95c23cc3fb5
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5368244
|
||||
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1274525}
|
||||
|
||||
--- a/third_party/blink/renderer/core/css/css_custom_font_data.h
|
||||
+++ b/third_party/blink/renderer/core/css/css_custom_font_data.h
|
||||
@@ -55,6 +55,7 @@ class CSSCustomFontData final : public C
|
||||
|
||||
bool IsLoading() const override { return is_loading_; }
|
||||
bool IsLoadingFallback() const override { return true; }
|
||||
+ void ClearFontFaceSource() override { font_face_source_ = nullptr; }
|
||||
|
||||
bool IsPendingDataUrl() const override {
|
||||
return font_face_source_ && font_face_source_->IsPendingDataUrl();
|
||||
--- a/third_party/blink/renderer/platform/fonts/custom_font_data.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/custom_font_data.h
|
||||
@@ -46,6 +46,7 @@ class PLATFORM_EXPORT CustomFontData : p
|
||||
virtual bool IsLoading() const { return false; }
|
||||
virtual bool IsLoadingFallback() const { return false; }
|
||||
virtual bool ShouldSkipDrawing() const { return false; }
|
||||
+ virtual void ClearFontFaceSource() {}
|
||||
virtual bool IsPendingDataUrl() const { return false; }
|
||||
|
||||
protected:
|
@@ -9,8 +9,8 @@
|
||||
#include "base/time/time_override.h"
|
||||
#include "build/build_config.h"
|
||||
|
||||
--- a/base/BUILD.gn 2022-06-30 13:13:20.315537859 +0200
|
||||
+++ b/base/BUILD.gn 2022-06-30 13:25:39.947410797 +0200
|
||||
--- src/base/BUILD.gn.orig 2025-04-11 12:12:20.504331178 +0200
|
||||
+++ src/base/BUILD.gn 2025-04-11 20:49:30.979616277 +0200
|
||||
@@ -1,3 +1,8 @@
|
||||
+import("//build/config/linux/pkg_config.gni")
|
||||
+
|
||||
@@ -20,19 +20,19 @@
|
||||
# Copyright 2013 The Chromium Authors
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
@@ -826,8 +831,6 @@
|
||||
"third_party/cityhash_v103/src/city_v103.cc",
|
||||
"third_party/cityhash_v103/src/city_v103.h",
|
||||
"third_party/icu/icu_utf.h",
|
||||
@@ -797,8 +802,6 @@ component("base") {
|
||||
"task/updateable_sequenced_task_runner.h",
|
||||
"test/scoped_logging_settings.h",
|
||||
"test/spin_wait.h",
|
||||
- "third_party/nspr/prtime.cc",
|
||||
- "third_party/nspr/prtime.h",
|
||||
"third_party/superfasthash/superfasthash.c",
|
||||
"thread_annotations.h",
|
||||
"threading/hang_watcher.cc",
|
||||
@@ -1414,6 +1417,7 @@
|
||||
"threading/hang_watcher.h",
|
||||
@@ -1014,6 +1017,7 @@ component("base") {
|
||||
"//build/config/compiler:prevent_unsafe_narrowing",
|
||||
"//build/config/compiler:wexit_time_destructors",
|
||||
"//build/config/compiler:wglobal_constructors",
|
||||
"//electron/build/config:mas_build",
|
||||
+ ":system_nspr",
|
||||
]
|
||||
|
||||
|
@@ -1,46 +0,0 @@
|
||||
From df291ec5472fa14e828633378b8c97a8c7a2e7de Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jdapena@igalia.com>
|
||||
Date: Wed, 20 Mar 2024 12:38:04 +0000
|
||||
Subject: [PATCH] IWYU: missing includes in ukm::BitSet
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Usage of uint8_t and std::memcpy require includes.
|
||||
|
||||
Bug: 41455655
|
||||
Change-Id: Ib96b3c3595660fc05d37d61ba9ec36add18eba57
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5370063
|
||||
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
|
||||
Reviewed-by: Cait Phillips <caitkp@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1275509}
|
||||
---
|
||||
components/ukm/bitset.cc | 2 ++
|
||||
components/ukm/bitset.h | 1 +
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/components/ukm/bitset.cc b/components/ukm/bitset.cc
|
||||
index 0c4faff95ed29..da83c35aa5c58 100644
|
||||
--- a/components/ukm/bitset.cc
|
||||
+++ b/components/ukm/bitset.cc
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
#include "components/ukm/bitset.h"
|
||||
|
||||
+#include <cstring>
|
||||
+
|
||||
#include "base/check_op.h"
|
||||
|
||||
namespace ukm {
|
||||
diff --git a/components/ukm/bitset.h b/components/ukm/bitset.h
|
||||
index 9b1f88c844ef6..005ce6e329db2 100644
|
||||
--- a/components/ukm/bitset.h
|
||||
+++ b/components/ukm/bitset.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef COMPONENTS_UKM_BITSET_H_
|
||||
#define COMPONENTS_UKM_BITSET_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
16
blink-shape_result-highway.patch
Normal file
16
blink-shape_result-highway.patch
Normal file
@@ -0,0 +1,16 @@
|
||||
--- src/third_party/blink/renderer/platform/fonts/shaping/shape_result.h.orig 2025-04-23 20:35:41.224982139 +0200
|
||||
+++ src/third_party/blink/renderer/platform/fonts/shaping/shape_result.h 2025-04-23 21:44:29.556139260 +0200
|
||||
@@ -54,9 +54,13 @@
|
||||
#include "ui/gfx/geometry/rect_f.h"
|
||||
#include "ui/gfx/geometry/vector2d_f.h"
|
||||
|
||||
+#include <hwy/base.h>
|
||||
+
|
||||
#if defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM64)
|
||||
+#if HWY_MAJOR > 1 || (HWY_MAJOR == 1 && HWY_MINOR >= 1)
|
||||
#define USE_SIMD_FOR_COMPUTING_GLYPH_BOUNDS 1
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
struct hb_buffer_t;
|
||||
|
@@ -1,60 +0,0 @@
|
||||
--- webrtc-6261b/third_party/boringssl/src/crypto/internal.h.orig 2024-03-13 22:27:36.595241500 +0000
|
||||
+++ webrtc-6261b/third_party/boringssl/src/crypto/internal.h 2024-03-14 19:45:48.047485200 +0000
|
||||
@@ -1146,11 +1146,28 @@ static inline uint64_t CRYPTO_rotr_u64(u
|
||||
// bit. |carry| must be zero or one.
|
||||
#if OPENSSL_HAS_BUILTIN(__builtin_addc)
|
||||
|
||||
+#ifdef __cplusplus
|
||||
+extern "C++" {
|
||||
+static constexpr unsigned CRYPTO_GENERIC_ADDC(unsigned x, unsigned y,
|
||||
+ unsigned carry, unsigned *out_carry){
|
||||
+ return __builtin_addc(x, y, carry, out_carry);
|
||||
+}
|
||||
+static constexpr unsigned long CRYPTO_GENERIC_ADDC(unsigned long x, unsigned long y,
|
||||
+ unsigned long carry, unsigned long *out_carry){
|
||||
+ return __builtin_addcl(x, y, carry, out_carry);
|
||||
+}
|
||||
+static constexpr unsigned long long CRYPTO_GENERIC_ADDC(unsigned long long x, unsigned long long y,
|
||||
+ unsigned long long carry, unsigned long long *out_carry){
|
||||
+ return __builtin_addcll(x, y, carry, out_carry);
|
||||
+}
|
||||
+}
|
||||
+#else
|
||||
#define CRYPTO_GENERIC_ADDC(x, y, carry, out_carry) \
|
||||
(_Generic((x), \
|
||||
unsigned: __builtin_addc, \
|
||||
unsigned long: __builtin_addcl, \
|
||||
unsigned long long: __builtin_addcll))((x), (y), (carry), (out_carry))
|
||||
+#endif
|
||||
|
||||
static inline uint32_t CRYPTO_addc_u32(uint32_t x, uint32_t y, uint32_t carry,
|
||||
uint32_t *out_carry) {
|
||||
@@ -1198,11 +1215,28 @@ static inline uint64_t CRYPTO_addc_u64(u
|
||||
// bit. |borrow| must be zero or one.
|
||||
#if OPENSSL_HAS_BUILTIN(__builtin_subc)
|
||||
|
||||
+#ifdef __cplusplus
|
||||
+extern "C++" {
|
||||
+static constexpr unsigned CRYPTO_GENERIC_SUBC(unsigned x, unsigned y,
|
||||
+ unsigned borrow, unsigned *out_borrow){
|
||||
+ return __builtin_subc(x, y, borrow, out_borrow);
|
||||
+}
|
||||
+static constexpr unsigned long CRYPTO_GENERIC_SUBC(unsigned long x, unsigned long y,
|
||||
+ unsigned long borrow, unsigned long *out_borrow){
|
||||
+ return __builtin_subcl(x, y, borrow, out_borrow);
|
||||
+}
|
||||
+static constexpr unsigned long long CRYPTO_GENERIC_SUBC(unsigned long long x, unsigned long long y,
|
||||
+ unsigned long long borrow, unsigned long long *out_borrow){
|
||||
+ return __builtin_subcll(x, y, borrow, out_borrow);
|
||||
+}
|
||||
+}
|
||||
+#else
|
||||
#define CRYPTO_GENERIC_SUBC(x, y, borrow, out_borrow) \
|
||||
(_Generic((x), \
|
||||
unsigned: __builtin_subc, \
|
||||
unsigned long: __builtin_subcl, \
|
||||
unsigned long long: __builtin_subcll))((x), (y), (borrow), (out_borrow))
|
||||
+#endif
|
||||
|
||||
static inline uint32_t CRYPTO_subc_u32(uint32_t x, uint32_t y, uint32_t borrow,
|
||||
uint32_t *out_borrow) {
|
@@ -2,28 +2,28 @@ Partially revert https://github.com/chromium/chromium/commit/c1dc375391403442935
|
||||
and disable dependent code. This removes `brs` from Accept-Encoding list.
|
||||
This feature does not build with brotli < 1.1
|
||||
|
||||
--- src/net/filter/brotli_source_stream.cc.orig 2023-10-12 17:25:42.094020700 +0200
|
||||
+++ src/net/filter/brotli_source_stream.cc 2023-10-12 22:43:53.790708700 +0200
|
||||
@@ -13,7 +11,6 @@
|
||||
#include "base/metrics/histogram_macros.h"
|
||||
--- src/net/filter/brotli_source_stream.cc.orig 2025-08-21 17:44:48.616409315 +0200
|
||||
+++ src/net/filter/brotli_source_stream.cc 2025-08-22 18:23:03.535047458 +0200
|
||||
@@ -18,7 +18,6 @@
|
||||
#include "net/base/io_buffer.h"
|
||||
#include "net/filter/source_stream_type.h"
|
||||
#include "third_party/brotli/include/brotli/decode.h"
|
||||
-#include "third_party/brotli/include/brotli/shared_dictionary.h"
|
||||
|
||||
namespace net {
|
||||
|
||||
@@ -25,21 +22,11 @@ const char kBrotli[] = "BROTLI";
|
||||
@@ -30,21 +29,11 @@ const char kBrotli[] = "BROTLI";
|
||||
// Brotli format specification: http://www.ietf.org/id/draft-alakuijala-brotli.
|
||||
class BrotliSourceStream : public FilterSourceStream {
|
||||
public:
|
||||
- explicit BrotliSourceStream(std::unique_ptr<SourceStream> upstream,
|
||||
- scoped_refptr<IOBuffer> dictionary = nullptr,
|
||||
- size_t dictionary_size = 0u)
|
||||
- : FilterSourceStream(SourceStream::TYPE_BROTLI, std::move(upstream)),
|
||||
- : FilterSourceStream(SourceStreamType::kBrotli, std::move(upstream)),
|
||||
- dictionary_(std::move(dictionary)),
|
||||
- dictionary_size_(dictionary_size) {
|
||||
+ explicit BrotliSourceStream(std::unique_ptr<SourceStream> upstream)
|
||||
+ : FilterSourceStream(SourceStream::TYPE_BROTLI, std::move(upstream)) {
|
||||
+ : FilterSourceStream(SourceStreamType::kBrotli, std::move(upstream)) {
|
||||
brotli_state_ =
|
||||
BrotliDecoderCreateInstance(AllocateMemory, FreeMemory, this);
|
||||
CHECK(brotli_state_);
|
||||
@@ -36,17 +36,17 @@ This feature does not build with brotli < 1.1
|
||||
}
|
||||
|
||||
BrotliSourceStream(const BrotliSourceStream&) = delete;
|
||||
@@ -176,9 +163,6 @@ class BrotliSourceStream : public Filter
|
||||
@@ -180,9 +169,6 @@ class BrotliSourceStream : public Filter
|
||||
free(&array[-1]);
|
||||
}
|
||||
|
||||
- const scoped_refptr<IOBuffer> dictionary_;
|
||||
- const size_t dictionary_size_;
|
||||
-
|
||||
raw_ptr<BrotliDecoderState, DanglingUntriaged> brotli_state_;
|
||||
raw_ptr<BrotliDecoderState> brotli_state_;
|
||||
|
||||
DecodingStatus decoding_status_ = DecodingStatus::DECODING_IN_PROGRESS;
|
||||
@@ -200,8 +184,7 @@ std::unique_ptr<FilterSourceStream> Crea
|
||||
@@ -204,8 +190,7 @@ std::unique_ptr<FilterSourceStream> Crea
|
||||
std::unique_ptr<SourceStream> previous,
|
||||
scoped_refptr<IOBuffer> dictionary,
|
||||
size_t dictionary_size) {
|
||||
|
45
browser_process_impl-fix-safe_browsing_mode-0.patch
Normal file
45
browser_process_impl-fix-safe_browsing_mode-0.patch
Normal file
@@ -0,0 +1,45 @@
|
||||
--- src/electron/shell/browser/browser_process_impl.h.orig 2025-04-16 14:34:09.211257279 +0200
|
||||
+++ src/electron/shell/browser/browser_process_impl.h 2025-04-18 21:20:48.780761049 +0200
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "components/embedder_support/origin_trials/origin_trials_settings_storage.h"
|
||||
#include "components/prefs/value_map_pref_store.h"
|
||||
+#include "components/safe_browsing/buildflags.h"
|
||||
#include "printing/buildflags/buildflags.h"
|
||||
#include "services/network/public/cpp/network_quality_tracker.h"
|
||||
#include "services/network/public/cpp/shared_url_loader_factory.h"
|
||||
@@ -104,7 +105,9 @@ class BrowserProcessImpl : public Browse
|
||||
DownloadRequestLimiter* download_request_limiter() override;
|
||||
BackgroundModeManager* background_mode_manager() override;
|
||||
StatusTray* status_tray() override;
|
||||
+#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
|
||||
safe_browsing::SafeBrowsingService* safe_browsing_service() override;
|
||||
+#endif
|
||||
subresource_filter::RulesetService* subresource_filter_ruleset_service()
|
||||
override;
|
||||
component_updater::ComponentUpdateService* component_updater() override;
|
||||
--- src/electron/BUILD.gn.orig 2025-04-16 14:34:09.140868383 +0200
|
||||
+++ src/electron/BUILD.gn 2025-04-18 21:29:07.278572174 +0200
|
||||
@@ -465,6 +465,7 @@ source_set("electron_lib") {
|
||||
"//components/os_crypt/sync",
|
||||
"//components/pref_registry",
|
||||
"//components/prefs",
|
||||
+ "//components/safe_browsing:buildflags",
|
||||
"//components/security_state/content",
|
||||
"//components/upload_list",
|
||||
"//components/user_prefs",
|
||||
--- src/electron/shell/browser/browser_process_impl.cc.orig 2025-04-16 14:34:09.211257279 +0200
|
||||
+++ src/electron/shell/browser/browser_process_impl.cc 2025-04-18 21:32:53.957517063 +0200
|
||||
@@ -257,10 +257,12 @@ StatusTray* BrowserProcessImpl::status_t
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
+#if BUILDFLAG(SAFE_BROWSING_AVAILABLE)
|
||||
safe_browsing::SafeBrowsingService*
|
||||
BrowserProcessImpl::safe_browsing_service() {
|
||||
return nullptr;
|
||||
}
|
||||
+#endif
|
||||
|
||||
subresource_filter::RulesetService*
|
||||
BrowserProcessImpl::subresource_filter_ruleset_service() {
|
422
bsc1224178-font-gc.patch
Normal file
422
bsc1224178-font-gc.patch
Normal file
@@ -0,0 +1,422 @@
|
||||
Example stack trace for this crash:
|
||||
#0 0x000055f451cdf761 in partition_alloc::PartitionRoot::FreeNoHooksImmediate(void*, partition_alloc::internal::SlotSpanMetadata<(partition_alloc::internal::MetadataKind)1>*, unsigned long)::{lambda()#1}::operator()() const (__closure=<optimized out>,
|
||||
__closure=<optimized out>) at ../../base/allocator/partition_allocator/src/partition_alloc/partition_root.h:1531
|
||||
#1 partition_alloc::PartitionRoot::FreeNoHooksImmediate (this=<optimized out>, object=<optimized out>, slot_span=<optimized out>, slot_start=<optimized out>, this=<optimized out>, object=<optimized out>, slot_span=<optimized out>, slot_start=<optimized out>)
|
||||
at ../../base/allocator/partition_allocator/src/partition_alloc/partition_root.h:1531
|
||||
#2 partition_alloc::PartitionRoot::FreeInline<(partition_alloc::internal::FreeFlags)2> (this=<optimized out>, object=<optimized out>, this=<optimized out>, object=<optimized out>) at ../../base/allocator/partition_allocator/src/partition_alloc/partition_root.h:1513
|
||||
#3 partition_alloc::PartitionRoot::FreeInlineInUnknownRoot<(partition_alloc::internal::FreeFlags)2> (object=0x316400f16770) at ../../base/allocator/partition_allocator/src/partition_alloc/partition_root.h:1432
|
||||
#4 allocator_shim::internal::PartitionFreeInternal<(partition_alloc::internal::FreeFlags)2> (object=0x316400f16770, context=0x0) at ../../base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:407
|
||||
#5 allocator_shim::internal::PartitionFree (object=0x316400f16770, context=0x0) at ../../base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc:411
|
||||
#6 0x000055f44ef26567 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign (this=0x316401a361c8, __str="/usr/share/fonts/truetype/NimbusSans-Regular.otf") at /usr/include/c++/14/bits/basic_string.tcc:289
|
||||
#7 0x000055f4563f3d34 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign (this=<optimized out>, __str=...) at /usr/include/c++/14/bits/basic_string.h:1619
|
||||
#8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator= (this=<optimized out>, __str=...) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:141021183
|
||||
#9 blink::FontFaceCreationParams::operator= () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:141021183
|
||||
#10 blink::FontCacheKey::operator=(blink::FontCacheKey const&) [clone .isra.0] () at ../../third_party/blink/renderer/platform/fonts/font_cache_key.h:55
|
||||
#11 0x000055f4564c44d9 in WTF::HashMapTranslator<WTF::HashTraits<blink::FontCacheKey>, WTF::HashMapValueTraits<WTF::HashTraits<blink::FontCacheKey>, WTF::HashTraits<cppgc::internal::BasicMember<blink::FontPlatformData const, cppgc::internal::WeakMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer> > > >::Store<WTF::KeyValuePair<blink::FontCacheKey, cppgc::internal::BasicMember<blink::FontPlatformData const, cppgc::internal::WeakMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer> >, blink::FontCacheKey&, blink::FontPlatformData const*&> () at ../../third_party/blink/renderer/platform/wtf/hash_map.h:340
|
||||
#12 WTF::HashTable<blink::FontCacheKey, WTF::KeyValuePair<blink::FontCacheKey, cppgc::internal::BasicMember<blink::FontPlatformData const, cppgc::internal::WeakMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer> >, WTF::KeyValuePairExtractor, WTF::HashMapValueTraits<WTF::HashTraits<blink::FontCacheKey>, WTF::HashTraits<cppgc::internal::BasicMember<blink::FontPlatformData const, cppgc::internal::WeakMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer> > >, WTF::HashTraits<blink::FontCacheKey>, blink::HeapAllocator>::insert<WTF::HashMapTranslator<WTF::HashTraits<blink::FontCacheKey>, WTF::HashMapValueTraits<WTF::HashTraits<blink::FontCacheKey>, WTF::HashTraits<cppgc::internal::BasicMember<blink::FontPlatformData const, cppgc::internal::WeakMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer> > > >, blink::FontCacheKey&, blink::FontPlatformData const*&>(blink::FontCacheKey&, blink::FontPlatformData const*&) [clone .isra.0] () at ../../third_party/blink/renderer/platform/wtf/hash_table.h:1291
|
||||
#13 0x000055f4543111b1 in WTF::HashMap<blink::FontCacheKey, cppgc::internal::BasicMember<blink::FontPlatformData const, cppgc::internal::WeakMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer>, WTF::HashTraits<blink::FontCacheKey>, WTF::HashTraits<cppgc::internal::BasicMember<blink::FontPlatformData const, cppgc::internal::WeakMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer> >, blink::HeapAllocator>::InlineAdd<blink::FontCacheKey&, blink::FontPlatformData const*&> () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:141870345
|
||||
#14 WTF::HashMap<blink::FontCacheKey, cppgc::internal::BasicMember<blink::FontPlatformData const, cppgc::internal::WeakMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer>, WTF::HashTraits<blink::FontCacheKey>, WTF::HashTraits<cppgc::internal::BasicMember<blink::FontPlatformData const, cppgc::internal::WeakMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer> >, blink::HeapAllocator>::insert<blink::FontCacheKey&, blink::FontPlatformData const*&> () at ../../third_party/blink/renderer/platform/wtf/hash_map.h:475
|
||||
#15 blink::FontPlatformDataCache::GetOrCreateFontPlatformData (this=this@entry=0x316400141880, font_cache=font_cache@entry=0x316400141850, font_description=..., creation_params=..., alternate_font_name=alternate_font_name@entry=0)
|
||||
at ../../third_party/blink/renderer/platform/fonts/font_platform_data_cache.cc:68
|
||||
#16 0x000055f454311a0a in blink::FontCache::GetFontPlatformData (this=0x316400141850, font_description=..., creation_params=..., alternate_font_name=0) at ../../third_party/blink/renderer/platform/fonts/font_cache.cc:164
|
||||
#17 0x000055f4564bbc7d in blink::FontCache::PlatformFallbackFontForCharacter () at ../../third_party/blink/renderer/platform/fonts/linux/font_cache_linux.cc:143
|
||||
#18 0x000055f4564bcc2b in blink::FontCache::FallbackFontForCharacter(blink::FontDescription const&, int, blink::SimpleFontData const*, blink::FontFallbackPriority) [clone .isra.0] () at ../../third_party/blink/renderer/platform/fonts/font_cache.cc:251
|
||||
#19 0x000055f45443653f in blink::FontFallbackIterator::UniqueSystemFontForHintList () at ../../third_party/blink/renderer/platform/fonts/font_fallback_iterator.cc:303
|
||||
#20 blink::FontFallbackIterator::Next (this=0x7ffefa904bf0, hint_list=...) at ../../third_party/blink/renderer/platform/fonts/font_fallback_iterator.cc:152
|
||||
#21 0x000055f45431a4b6 in blink::HarfBuzzShaper::ShapeSegment (this=<optimized out>, range_data=<optimized out>, segment=..., result=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:158192637
|
||||
#22 0x000055f453953f86 in blink::HarfBuzzShaper::Shape () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:145662151
|
||||
#23 Reshape (this=0x7ffefa9050d0, start_item=..., font=..., start_offset=<optimized out>, end_offset=end_offset@entry=43) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:145662155
|
||||
#24 0x000055f4539542f0 in ShapeWithoutCache (this=this@entry=0x7ffefa9050d0, start_item=..., font=..., end_offset=end_offset@entry=43) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:145662155
|
||||
#25 0x000055f4539b5ab9 in operator() () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:147940603
|
||||
#26 Shape () at ../../third_party/blink/renderer/core/layout/inline/inline_node.cc:177
|
||||
#27 blink::InlineNode::ShapeText (this=this@entry=0x7ffefa9057a8, data=data@entry=0x316403e7e958, previous_text=previous_text@entry=0x0, previous_items=previous_items@entry=0x0, override_font=override_font@entry=0x0)
|
||||
at ../../third_party/blink/renderer/core/layout/inline/inline_node.cc:1512
|
||||
#28 0x000055f4539b9692 in blink::InlineNode::ShapeTextIncludingFirstLine () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:147941159
|
||||
#29 blink::InlineNode::PrepareLayout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:145662744
|
||||
#30 blink::InlineNode::PrepareLayoutIfNeeded (this=<optimized out>) at ../../third_party/blink/renderer/core/layout/inline/inline_node.cc:598
|
||||
#31 0x000055f45400a06d in blink::InlineNode::EnsureData () at ../../third_party/blink/renderer/core/layout/inline/inline_node.cc:978
|
||||
#32 blink::InlineNode::IsBlockLevel () at ../../third_party/blink/renderer/core/layout/inline/inline_node.h:102
|
||||
#33 blink::BlockNode::FirstChild (this=this@entry=0x7ffefa905860) at ../../third_party/blink/renderer/core/layout/block_node.cc:1121
|
||||
#34 0x000055f45400a200 in blink::BlockNode::IsInlineFormattingContextRoot (this=0x7ffefa905860, first_child_out=0x7ffefa905830) at ../../third_party/blink/renderer/core/layout/block_node.cc:1466
|
||||
#35 0x000055f45423975b in blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa905860) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:546
|
||||
#36 0x000055f45400cb43 in operator()<blink::BlockLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#37 CreateAlgorithmAndRun<blink::BlockLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#38 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#39 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#40 0x000055f454237e4f in LayoutBlockChild () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:142324341
|
||||
#41 LayoutInflow () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:129
|
||||
#42 LayoutInflow () at gen/third_party/blink/public/mojom/frame/frame.mojom.cc:44270740
|
||||
#43 blink::BlockLayoutAlgorithm::HandleInflow () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:2139
|
||||
#44 blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa9063b0, inline_child_layout_context=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:993
|
||||
#45 0x000055f4542397a2 in blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa9063b0) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:549
|
||||
#46 0x000055f45400cb43 in operator()<blink::BlockLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#47 CreateAlgorithmAndRun<blink::BlockLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#48 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#49 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#50 0x000055f4562235f2 in blink::FlexLayoutAlgorithm::PlaceFlexItems(blink::HeapVector<blink::NGFlexLine, 0u>*, blink::HeapVector<cppgc::internal::BasicMember<blink::LayoutBox, cppgc::internal::StrongMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer>, 0u>*, bool) [clone .constprop.0] () at ../../third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc:1253
|
||||
#51 0x000055f45402e6c6 in blink::FlexLayoutAlgorithm::LayoutInternal () at ../../third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc:1043
|
||||
#52 blink::FlexLayoutAlgorithm::Layout (this=this@entry=0x7ffefa9070e0) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883768
|
||||
#53 0x000055f454032076 in operator()<blink::FlexLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#54 CreateAlgorithmAndRun<blink::FlexLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#55 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#56 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#57 0x000055f4562235f2 in blink::FlexLayoutAlgorithm::PlaceFlexItems(blink::HeapVector<blink::NGFlexLine, 0u>*, blink::HeapVector<cppgc::internal::BasicMember<blink::LayoutBox, cppgc::internal::StrongMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer>, 0u>*, bool) [clone .constprop.0] () at ../../third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc:1253
|
||||
#58 0x000055f45402e6c6 in blink::FlexLayoutAlgorithm::LayoutInternal () at ../../third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc:1043
|
||||
#59 blink::FlexLayoutAlgorithm::Layout (this=this@entry=0x7ffefa9081a0) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883768
|
||||
#60 0x000055f454032076 in operator()<blink::FlexLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#61 CreateAlgorithmAndRun<blink::FlexLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#62 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#63 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#64 0x000055f4562235f2 in blink::FlexLayoutAlgorithm::PlaceFlexItems(blink::HeapVector<blink::NGFlexLine, 0u>*, blink::HeapVector<cppgc::internal::BasicMember<blink::LayoutBox, cppgc::internal::StrongMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer>, 0u>*, bool) [clone .constprop.0] () at ../../third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc:1253
|
||||
#65 0x000055f45402e6c6 in blink::FlexLayoutAlgorithm::LayoutInternal () at ../../third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc:1043
|
||||
#66 blink::FlexLayoutAlgorithm::Layout (this=this@entry=0x7ffefa909260) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883768
|
||||
#67 0x000055f454032076 in operator()<blink::FlexLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#68 CreateAlgorithmAndRun<blink::FlexLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#69 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#70 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#71 0x000055f454230b9a in LayoutBlockChild () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:114
|
||||
#72 blink::BlockLayoutAlgorithm::LayoutNewFormattingContext (this=this@entry=0x7ffefa90a330, child=..., child_break_token=child_break_token@entry=0x0, child_data=..., origin_offset=..., abort_if_cleared=false, out_child_bfc_offset=0x7ffefa90a19c,
|
||||
out_resolved_margins=0x7ffefa90a1d0) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:1953
|
||||
#73 0x000055f454237063 in blink::BlockLayoutAlgorithm::HandleNewFormattingContext () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:142324366
|
||||
#74 blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90a330, inline_child_layout_context=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:988
|
||||
#75 0x000055f4542397a2 in blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90a330) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:549
|
||||
#76 0x000055f45400cb43 in operator()<blink::BlockLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#77 CreateAlgorithmAndRun<blink::BlockLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#78 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#79 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#80 0x000055f4540d6105 in blink::OutOfFlowLayoutPart::GenerateFragment () at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:2546
|
||||
#81 blink::OutOfFlowLayoutPart::Layout (this=this@entry=0x7ffefa90b1b0, oof_node_to_layout=..., fragmentainer_constraint_space=fragmentainer_constraint_space@entry=0x0, is_last_fragmentainer_so_far=is_last_fragmentainer_so_far@entry=false)
|
||||
at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:158917333
|
||||
#82 0x000055f4540e5174 in blink::OutOfFlowLayoutPart::LayoutOOFNode (this=this@entry=0x7ffefa90b1b0, oof_node_to_layout=..., fragmentainer_constraint_space=fragmentainer_constraint_space@entry=0x0,
|
||||
is_last_fragmentainer_so_far=is_last_fragmentainer_so_far@entry=false) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:158917453
|
||||
#83 0x000055f4540e5b85 in blink::OutOfFlowLayoutPart::LayoutCandidates (this=this@entry=0x7ffefa90b1b0, candidates=candidates@entry=0x7ffefa90b110) at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:1111
|
||||
#84 0x000055f4540f2b9e in blink::OutOfFlowLayoutPart::Run (this=0x7ffefa90b1b0) at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:523
|
||||
#85 0x000055f45423444d in blink::BoxFragmentBuilder::HandleOofsAndSpecialDescendants (this=this@entry=0x7ffefa90b550) at ../../third_party/blink/renderer/core/layout/box_fragment_builder.cc:547
|
||||
#86 0x000055f4542367d0 in blink::BlockLayoutAlgorithm::FinishLayout () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:1357
|
||||
#87 blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90b540, inline_child_layout_context=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:156517574
|
||||
#88 0x000055f4542397a2 in blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90b540) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:549
|
||||
#89 0x000055f45400cb43 in operator()<blink::BlockLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#90 CreateAlgorithmAndRun<blink::BlockLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#91 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#92 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#93 0x000055f454230b9a in LayoutBlockChild () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:114
|
||||
#94 blink::BlockLayoutAlgorithm::LayoutNewFormattingContext (this=this@entry=0x7ffefa90c280, child=..., child_break_token=child_break_token@entry=0x0, child_data=..., origin_offset=..., abort_if_cleared=false, out_child_bfc_offset=0x7ffefa90c0ec,
|
||||
out_resolved_margins=0x7ffefa90c120) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:1953
|
||||
#95 0x000055f454237063 in blink::BlockLayoutAlgorithm::HandleNewFormattingContext () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:142324366
|
||||
#96 blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90c280, inline_child_layout_context=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:988
|
||||
#97 0x000055f4542397a2 in blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90c280) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:549
|
||||
#98 0x000055f45400cb43 in operator()<blink::BlockLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#99 CreateAlgorithmAndRun<blink::BlockLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#100 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#101 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#102 0x000055f454230b9a in LayoutBlockChild () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:114
|
||||
#103 blink::BlockLayoutAlgorithm::LayoutNewFormattingContext (this=this@entry=0x7ffefa90cfc0, child=..., child_break_token=child_break_token@entry=0x0, child_data=..., origin_offset=..., abort_if_cleared=false, out_child_bfc_offset=0x7ffefa90ce2c,
|
||||
out_resolved_margins=0x7ffefa90ce60) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:1953
|
||||
#104 0x000055f454237063 in blink::BlockLayoutAlgorithm::HandleNewFormattingContext () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:142324366
|
||||
#105 blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90cfc0, inline_child_layout_context=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:988
|
||||
#106 0x000055f4542397a2 in blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90cfc0) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:549
|
||||
#107 0x000055f45400cb43 in operator()<blink::BlockLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#108 CreateAlgorithmAndRun<blink::BlockLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#109 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#110 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#111 0x000055f454237e4f in LayoutBlockChild () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:142324341
|
||||
#112 LayoutInflow () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:129
|
||||
#113 LayoutInflow () at gen/third_party/blink/public/mojom/frame/frame.mojom.cc:44270740
|
||||
#114 blink::BlockLayoutAlgorithm::HandleInflow () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:2139
|
||||
#115 blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90db10, inline_child_layout_context=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:993
|
||||
#116 0x000055f4542397a2 in blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90db10) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:549
|
||||
#117 0x000055f45400cb43 in operator()<blink::BlockLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#118 CreateAlgorithmAndRun<blink::BlockLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#119 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#120 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#121 0x000055f454237e4f in LayoutBlockChild () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:142324341
|
||||
#122 LayoutInflow () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:129
|
||||
#123 LayoutInflow () at gen/third_party/blink/public/mojom/frame/frame.mojom.cc:44270740
|
||||
#124 blink::BlockLayoutAlgorithm::HandleInflow () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:2139
|
||||
#125 blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90e660, inline_child_layout_context=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:993
|
||||
#126 0x000055f4542397a2 in blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90e660) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:549
|
||||
#127 0x000055f45400cb43 in operator()<blink::BlockLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#128 CreateAlgorithmAndRun<blink::BlockLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#129 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#130 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#131 0x000055f454237e4f in LayoutBlockChild () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:142324341
|
||||
#132 LayoutInflow () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:129
|
||||
#133 LayoutInflow () at gen/third_party/blink/public/mojom/frame/frame.mojom.cc:44270740
|
||||
#134 blink::BlockLayoutAlgorithm::HandleInflow () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:2139
|
||||
#135 blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90f1b0, inline_child_layout_context=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:993
|
||||
#136 0x000055f4542397a2 in blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa90f1b0) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:549
|
||||
#137 0x000055f45400cb43 in operator()<blink::BlockLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#138 CreateAlgorithmAndRun<blink::BlockLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#139 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#140 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#141 0x000055f4562235f2 in blink::FlexLayoutAlgorithm::PlaceFlexItems(blink::HeapVector<blink::NGFlexLine, 0u>*, blink::HeapVector<cppgc::internal::BasicMember<blink::LayoutBox, cppgc::internal::StrongMemberTag, cppgc::internal::DijkstraWriteBarrierPolicy, cppgc::internal::DisabledCheckingPolicy, cppgc::internal::CompressedPointer>, 0u>*, bool) [clone .constprop.0] () at ../../third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc:1253
|
||||
#142 0x000055f45402e6c6 in blink::FlexLayoutAlgorithm::LayoutInternal () at ../../third_party/blink/renderer/core/layout/flex/flex_layout_algorithm.cc:1043
|
||||
#143 blink::FlexLayoutAlgorithm::Layout (this=this@entry=0x7ffefa90fee0) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883768
|
||||
#144 0x000055f454032076 in operator()<blink::FlexLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#145 CreateAlgorithmAndRun<blink::FlexLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#146 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#147 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#148 0x000055f454230b9a in LayoutBlockChild () at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:114
|
||||
#149 blink::BlockLayoutAlgorithm::LayoutNewFormattingContext (this=this@entry=0x7ffefa910fb0, child=..., child_break_token=child_break_token@entry=0x0, child_data=..., origin_offset=..., abort_if_cleared=false, out_child_bfc_offset=0x7ffefa910e1c,
|
||||
out_resolved_margins=0x7ffefa910e50) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:1953
|
||||
#150 0x000055f454237063 in blink::BlockLayoutAlgorithm::HandleNewFormattingContext () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:142324366
|
||||
#151 blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa910fb0, inline_child_layout_context=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:988
|
||||
#152 0x000055f4542397a2 in blink::BlockLayoutAlgorithm::Layout (this=0x7ffefa910fb0) at ../../third_party/blink/renderer/core/layout/block_layout_algorithm.cc:549
|
||||
#153 0x000055f45400cb43 in operator()<blink::BlockLayoutAlgorithm> () at ../../third_party/blink/renderer/core/layout/block_node.cc:214
|
||||
#154 CreateAlgorithmAndRun<blink::BlockLayoutAlgorithm, blink::(anonymous namespace)::LayoutWithAlgorithm(const blink::LayoutAlgorithmParams&)::<lambda(Algorithm*)> >(const blink::LayoutAlgorithmParams &, const struct {...} &) (params=..., callback=...)
|
||||
at ../../third_party/blink/renderer/core/layout/block_node.cc:120
|
||||
#155 0x000055f45401ae3e in LayoutWithAlgorithm () at ../../third_party/blink/renderer/core/layout/block_node.cc:212
|
||||
#156 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/layout/block_node.cc:523
|
||||
#157 0x000055f4540d6105 in blink::OutOfFlowLayoutPart::GenerateFragment () at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:2546
|
||||
#158 blink::OutOfFlowLayoutPart::Layout (this=this@entry=0x7ffefa911e30, oof_node_to_layout=..., fragmentainer_constraint_space=fragmentainer_constraint_space@entry=0x0, is_last_fragmentainer_so_far=is_last_fragmentainer_so_far@entry=false)
|
||||
at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:158917333
|
||||
#159 0x000055f4540e5174 in blink::OutOfFlowLayoutPart::LayoutOOFNode (this=this@entry=0x7ffefa911e30, oof_node_to_layout=..., fragmentainer_constraint_space=fragmentainer_constraint_space@entry=0x0,
|
||||
is_last_fragmentainer_so_far=is_last_fragmentainer_so_far@entry=false) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:158917453
|
||||
#160 0x000055f4540e5b85 in blink::OutOfFlowLayoutPart::LayoutCandidates (this=this@entry=0x7ffefa911e30, candidates=candidates@entry=0x7ffefa911d90) at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:1111
|
||||
#161 0x000055f4540f2b9e in blink::OutOfFlowLayoutPart::Run (this=0x7ffefa911e30) at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:523
|
||||
#162 0x000055f45423444d in blink::BoxFragmentBuilder::HandleOofsAndSpecialDescendants (this=0x7ffefa9121e0) at ../../third_party/blink/renderer/core/layout/box_fragment_builder.cc:547
|
||||
#163 0x000055f4540f3540 in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:302
|
||||
#164 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#165 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#166 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#167 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#168 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#169 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#170 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#171 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#172 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#173 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#174 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#175 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#176 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#177 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#178 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#179 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#180 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#181 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#182 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#183 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#184 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#185 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#186 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#187 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#188 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#189 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#190 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#191 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#192 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#193 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#194 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#195 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#196 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#197 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#198 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#199 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#200 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#201 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#202 0x000055f4540d6105 in blink::OutOfFlowLayoutPart::GenerateFragment () at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:2546
|
||||
#203 blink::OutOfFlowLayoutPart::Layout (this=this@entry=0x7ffefa9154f0, oof_node_to_layout=..., fragmentainer_constraint_space=fragmentainer_constraint_space@entry=0x0, is_last_fragmentainer_so_far=is_last_fragmentainer_so_far@entry=false)
|
||||
at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:158917333
|
||||
#204 0x000055f4540e5174 in blink::OutOfFlowLayoutPart::LayoutOOFNode (this=this@entry=0x7ffefa9154f0, oof_node_to_layout=..., fragmentainer_constraint_space=fragmentainer_constraint_space@entry=0x0,
|
||||
is_last_fragmentainer_so_far=is_last_fragmentainer_so_far@entry=false) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:158917453
|
||||
#205 0x000055f4540e5b85 in blink::OutOfFlowLayoutPart::LayoutCandidates (this=this@entry=0x7ffefa9154f0, candidates=candidates@entry=0x7ffefa915450) at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:1111
|
||||
#206 0x000055f4540f2b9e in blink::OutOfFlowLayoutPart::Run (this=0x7ffefa9154f0) at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:523
|
||||
#207 0x000055f45423444d in blink::BoxFragmentBuilder::HandleOofsAndSpecialDescendants (this=0x7ffefa9158a0) at ../../third_party/blink/renderer/core/layout/box_fragment_builder.cc:547
|
||||
#208 0x000055f4540f3540 in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:302
|
||||
#209 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#210 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#211 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#212 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#213 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#214 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#215 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#216 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#217 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#218 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#219 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#220 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#221 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#222 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#223 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#224 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#225 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#226 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#227 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#228 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#229 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#230 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#231 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#232 0x000055f4540d6105 in blink::OutOfFlowLayoutPart::GenerateFragment () at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:2546
|
||||
#233 blink::OutOfFlowLayoutPart::Layout (this=this@entry=0x7ffefa9179b0, oof_node_to_layout=..., fragmentainer_constraint_space=fragmentainer_constraint_space@entry=0x0, is_last_fragmentainer_so_far=is_last_fragmentainer_so_far@entry=false)
|
||||
at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:158917333
|
||||
#234 0x000055f4540e5174 in blink::OutOfFlowLayoutPart::LayoutOOFNode (this=this@entry=0x7ffefa9179b0, oof_node_to_layout=..., fragmentainer_constraint_space=fragmentainer_constraint_space@entry=0x0,
|
||||
is_last_fragmentainer_so_far=is_last_fragmentainer_so_far@entry=false) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:158917453
|
||||
#235 0x000055f4540e5b85 in blink::OutOfFlowLayoutPart::LayoutCandidates (this=this@entry=0x7ffefa9179b0, candidates=candidates@entry=0x7ffefa917910) at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:1111
|
||||
#236 0x000055f4540f2b9e in blink::OutOfFlowLayoutPart::Run (this=0x7ffefa9179b0) at ../../third_party/blink/renderer/core/layout/out_of_flow_layout_part.cc:523
|
||||
#237 0x000055f45423444d in blink::BoxFragmentBuilder::HandleOofsAndSpecialDescendants (this=0x7ffefa917d60) at ../../third_party/blink/renderer/core/layout/box_fragment_builder.cc:547
|
||||
#238 0x000055f4540f3540 in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:302
|
||||
#239 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#240 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#241 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#242 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#243 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#244 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#245 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#246 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#247 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#248 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#249 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#250 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#251 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#252 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#253 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#254 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#255 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#256 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#257 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#258 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#259 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#260 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#261 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#262 0x000055f4540f303c in blink::BlockNode::SimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:653
|
||||
#263 blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/layout/simplified_layout_algorithm.cc:237
|
||||
#264 0x000055f45401a28a in blink::SimplifiedLayoutAlgorithm::Layout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:157234584
|
||||
#265 blink::BlockNode::RunSimplifiedLayout () at ../../third_party/blink/renderer/core/layout/block_node.cc:1705
|
||||
#266 blink::BlockNode::Layout (this=<optimized out>, constraint_space=..., break_token=<optimized out>, early_break=<optimized out>, column_spanner_path=<optimized out>) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:146883682
|
||||
#267 0x000055f4537e965e in blink::LayoutBox::LayoutSubtreeRoot () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:143013582
|
||||
#268 blink::LayoutBox::LayoutSubtreeRoot () at gen/third_party/blink/renderer/core/html_names.cc:85762220
|
||||
#269 blink::LocalFrameView::LayoutFromRootObject () at ../../third_party/blink/renderer/core/frame/local_frame_view.cc:666
|
||||
#270 blink::LocalFrameView::LayoutFromRootObject () at gen/third_party/blink/renderer/core/html_names.cc:85758991
|
||||
#271 blink::LocalFrameView::PerformLayout (this=this@entry=0x316400158c00) at ../../third_party/blink/renderer/core/frame/local_frame_view.cc:761
|
||||
#272 0x000055f4537eb0bb in blink::LocalFrameView::UpdateLayout () at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:143013984
|
||||
#273 blink::LocalFrameView::UpdateStyleAndLayoutInternal (this=this@entry=0x316400158c00) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:143013762
|
||||
#274 0x000055f4537ecb9b in blink::LocalFrameView::UpdateStyleAndLayout (this=0x316400158c00) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:143671655
|
||||
#275 0x000055f4544b9cd2 in blink::Document::UpdateStyleAndLayout (this=0x3164001e2530, reason=26) at ../../third_party/blink/renderer/core/dom/document.cc:2784
|
||||
#276 0x000055f455fc4492 in blink::FrameSelection::ComputeAbsoluteBounds(gfx::Rect&, gfx::Rect&) const [clone .constprop.0] () at ../../third_party/blink/renderer/core/editing/frame_selection.cc:656
|
||||
#277 0x000055f453827206 in blink::WebFrameWidgetImpl::CalculateSelectionBounds (this=this@entry=0x316400156138, anchor_root_frame=..., focus_root_frame=..., bounding_box_in_root_frame=bounding_box_in_root_frame@entry=0x7ffefa91a820)
|
||||
at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:132558908
|
||||
#278 0x000055f4538296b2 in blink::WebFrameWidgetImpl::GetSelectionBoundsInWindow (this=0x316400156138, focus=0x4140017b980, anchor=0x4140017b990, bounding_box=0x4140017b9a0, focus_dir=0x7ffefa91a8d0, anchor_dir=0x7ffefa91a8c8, is_anchor_first=0x7ffefa91a8c7)
|
||||
at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:78747162
|
||||
#279 0x000055f454433e25 in blink::WidgetBase::UpdateSelectionBounds (this=this@entry=0x4140017b800) at ../../third_party/blink/renderer/platform/widget/widget_base.cc:1468
|
||||
#280 0x000055f454433f8f in blink::WidgetBase::WillBeginMainFrame (this=0x4140017b800) at ../../third_party/blink/renderer/platform/widget/widget_base.cc:967
|
||||
#281 0x000055f4529a093c in cc::LayerTreeHost::WillBeginMainFrame (this=0x414000ed500) at ../../cc/trees/layer_tree_host.cc:354
|
||||
#282 0x000055f452a2f399 in cc::ProxyMain::BeginMainFrame (this=<optimized out>, begin_main_frame_state=std::unique_ptr<cc::BeginMainFrameAndCommitState> = {...}) at ../../base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h:1002
|
||||
#283 0x000055f452a8b781 in base::internal::DecayedFunctorTraits<void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), base::WeakPtr<cc::ProxyMain>&&, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >&&>::Invoke<void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), base::WeakPtr<cc::ProxyMain> const&, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> > > (method=<optimized out>, receiver_ptr=...) at /usr/include/c++/14/bits/unique_ptr.h:191
|
||||
#284 base::internal::InvokeHelper<true, base::internal::FunctorTraits<void (cc::ProxyMain::*&&)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), base::WeakPtr<cc::ProxyMain>&&, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >&&>, void, 0ul, 1ul>::MakeItSo<void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), std::tuple<base::WeakPtr<cc::ProxyMain>, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> > >>(void (cc::ProxyMain::*&&)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), std::tuple<base::WeakPtr<cc::ProxyMain>, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> > >&&) (
|
||||
functor=@0x41400589d30: (void (cc::ProxyMain::*)(cc::ProxyMain * const, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >)) 0x55f452a2ef80 <cc::ProxyMain::BeginMainFrame(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >)>, bound=...) at ../../base/functional/bind_internal.h:954
|
||||
#285 base::internal::Invoker<base::internal::FunctorTraits<void (cc::ProxyMain::*&&)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), base::WeakPtr<cc::ProxyMain>&&, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >&&>, base::internal::BindState<true, true, false, void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), base::WeakPtr<cc::ProxyMain>, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> > >, void ()>::RunImpl<void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), std::tuple<base::WeakPtr<cc::ProxyMain>, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> > >, 0ul, 1ul>(void (cc::ProxyMain::*&&)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), std::tuple<base::WeakPtr<cc::ProxyMain>, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> > >&&, std::integer_sequence<unsigned long, 0ul, 1ul>) (
|
||||
functor=@0x41400589d30: (void (cc::ProxyMain::*)(cc::ProxyMain * const, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >)) 0x55f452a2ef80 <cc::ProxyMain::BeginMainFrame(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >)>, bound=...) at ../../base/functional/bind_internal.h:1067
|
||||
#286 base::internal::Invoker<base::internal::FunctorTraits<void (cc::ProxyMain::*&&)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), base::WeakPtr<cc::ProxyMain>&&, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >&&>, base::internal::BindState<true, true, false, void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), base::WeakPtr<cc::ProxyMain>, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> > >, void ()>::RunOnce(base::internal::BindStateBase*) (base=0x41400589d10) at ../../base/functional/bind_internal.h:980
|
||||
#287 0x000055f4565b518d in base::OnceCallback<void ()>::Run() && (this=0x41400018678) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:200122192
|
||||
#288 base::TaskAnnotator::RunTaskImpl(base::PendingTask&) [clone .isra.0] (pending_task=..., this=<optimized out>) at ../../base/task/common/task_annotator.cc:203
|
||||
#289 0x000055f451ca3130 in base::TaskAnnotator::RunTask<base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow*)::<lambda(perfetto::EventContext&)> > (this=0x4140004c200, event_name=..., pending_task=...)
|
||||
at ../../base/task/common/task_annotator.h:90
|
||||
#290 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl (this=<optimized out>, continuation_lazy_now=0x7ffefa91af40) at ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:470
|
||||
#291 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork (this=<optimized out>) at ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:332
|
||||
#292 0x000055f451ca5027 in base::MessagePumpDefault::Run (this=0x414000040c0, delegate=0x4140004c0f8) at ../../base/message_loop/message_pump_default.cc:40
|
||||
#293 0x000055f451ca14e9 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run (this=0x4140004c000, application_tasks_allowed=true, timeout=...) at ../../base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:640
|
||||
#294 0x000055f451ca18b2 in base::RunLoop::Run (this=0x7ffefa91b550, location=...) at ../../base/run_loop.cc:134
|
||||
#295 base::RunLoop::Run (this=<optimized out>, location=...) at ../../base/run_loop.cc:106
|
||||
#296 0x000055f4535391b5 in content::RendererMain (parameters=...) at ../../content/renderer/renderer_main.cc:361
|
||||
#297 0x000055f44f2d48af in content::RunZygote (delegate=delegate@entry=0x7ffefa91c040) at /usr/include/c++/14/bits/unique_ptr.h:191
|
||||
#298 0x000055f44f2d8b18 in content::RunOtherNamedProcessTypeMain (process_type="zygote", main_function_params=..., delegate=0x7ffefa91c040) at ../../content/app/content_main_runner_impl.cc:807
|
||||
#299 content::ContentMainRunnerImpl::Run (this=<optimized out>) at ../../content/app/content_main_runner_impl.cc:1167
|
||||
#300 0x000055f44eeb846c in content::RunContentProcess (params=..., content_main_runner=0x4100006d880) at ../../content/app/content_main.cc:354
|
||||
#301 content::ContentMain (params=...) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:166189489
|
||||
#302 main (argc=argc@entry=2, argv=argv@entry=0x7ffefa91c5d8) at ../../third_party/blink/renderer/core/frame/local_dom_window.cc:166189474
|
||||
#303 0x00007ffa48c2a2ae in __libc_start_call_main (main=main@entry=0x55f44eeb80a0 <main(int, char**)>, argc=argc@entry=2, argv=argv@entry=0x7ffefa91c5d8) at ../sysdeps/nptl/libc_start_call_main.h:58
|
||||
#304 0x00007ffa48c2a379 in __libc_start_main_impl (main=0x55f44eeb80a0 <main(int, char**)>, argc=2, argv=0x7ffefa91c5d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffefa91c5c8) at ../csu/libc-start.c:360
|
||||
#305 0x000055f44eee5b45 in _start () at ../sysdeps/x86_64/start.S:115
|
||||
|
||||
From 3c55b5cb524b2f304a623bd0ddd8321f8fa2e37e Mon Sep 17 00:00:00 2001
|
||||
From: Martin Negyokru <negyokru@inf.u-szeged.hu>
|
||||
Date: Thu, 19 Sep 2024 16:55:22 +0200
|
||||
Subject: Fix UAF in FontCache
|
||||
|
||||
Fixes a rare crash related to font caching.
|
||||
Upstream issue: https://issues.chromium.org/issues/342778288
|
||||
Its been only fixed for ASAN builds for some reason.
|
||||
|
||||
This change backports the fix: https://crrev.com/c/5629253
|
||||
and extends the ASAN guards with IS_QTWEBENGINE.
|
||||
|
||||
Change-Id: I0fb7348ef97882fed199d1432b3a2543804e8de5
|
||||
Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/592190
|
||||
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
|
||||
---
|
||||
.../renderer/platform/fonts/font_face_creation_params.h | 12 +++++++-----
|
||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/chromium/third_party/blink/renderer/platform/fonts/font_face_creation_params.h b/chromium/third_party/blink/renderer/platform/fonts/font_face_creation_params.h
|
||||
index 8f0aa2f1c14..9d4c07637fc 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/font_face_creation_params.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/font_face_creation_params.h
|
||||
@@ -38,6 +38,8 @@
|
||||
#include "third_party/blink/renderer/platform/wtf/text/case_folding_hash.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/text/string_hasher.h"
|
||||
|
||||
+#include <optional>
|
||||
+
|
||||
namespace blink {
|
||||
|
||||
enum FontFaceCreationType {
|
||||
@@ -79,7 +81,7 @@ class FontFaceCreationParams {
|
||||
}
|
||||
const std::string& Filename() const {
|
||||
DCHECK_EQ(creation_type_, kCreateFontByFciIdAndTtcIndex);
|
||||
-#if defined(ADDRESS_SANITIZER)
|
||||
+#if 1
|
||||
DCHECK(filename_.has_value());
|
||||
return *filename_;
|
||||
#else
|
||||
@@ -126,7 +128,7 @@ class FontFaceCreationParams {
|
||||
AtomicString family_;
|
||||
|
||||
void SetFilename(std::string& filename) {
|
||||
-#if defined(ADDRESS_SANITIZER)
|
||||
+#if 1
|
||||
*filename_ = filename;
|
||||
#else
|
||||
filename_ = filename;
|
||||
@@ -134,7 +136,7 @@ class FontFaceCreationParams {
|
||||
}
|
||||
|
||||
bool FilenameEqual(const FontFaceCreationParams& other) const {
|
||||
-#if defined(ADDRESS_SANITIZER)
|
||||
+#if 1
|
||||
if (!filename_.has_value() || !other.filename_.has_value()) {
|
||||
return filename_.has_value() == other.filename_.has_value();
|
||||
}
|
||||
@@ -145,14 +147,14 @@ class FontFaceCreationParams {
|
||||
}
|
||||
|
||||
bool HasFilename() const {
|
||||
-#if defined(ADDRESS_SANITIZER)
|
||||
+#if 1
|
||||
return filename_.has_value();
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
-#if defined(ADDRESS_SANITIZER)
|
||||
+#if 1
|
||||
// We put the `std::string` behind an optional as ASAN counter checks require
|
||||
// that we properly call constructors and destructors for all strings. This is
|
||||
// not the case when `FontFaceCreationParams` is used in `WTF::HashMap` as key
|
||||
--
|
||||
cgit v1.2.3
|
||||
|
@@ -1,29 +1,60 @@
|
||||
Work around this linker error:
|
||||
|
||||
[ 9463s] /usr/lib64/gcc/x86_64-suse-linux/12/../../../../x86_64-suse-linux/bin/ld: obj/electron/chromium_src/chrome/extension_navigation_ui_data.o: warning: relocation against `_ZN10extensions12WebViewGuest4TypeE' in read-only section `.text'
|
||||
[ 9463s] /usr/lib64/gcc/x86_64-suse-linux/12/../../../../x86_64-suse-linux/bin/ld: obj/electron/chromium_src/chrome/extension_navigation_ui_data.o: in function `guest_view::GuestView<extensions::WebViewGuest>::AsDerivedGuest(guest_view::GuestViewBase*)':
|
||||
[ 9463s] /home/abuild/rpmbuild/BUILD/src/out/Release/../../components/guest_view/browser/guest_view.h:67:(.text+0xdd): undefined reference to `extensions::WebViewGuest::Type'
|
||||
|
||||
This is not upstreamable as the problem is due to Electron changes to chromium, and is in dead code that would be removed in LTO builds.
|
||||
|
||||
--- src/extensions/browser/guest_view/web_view/web_view_guest.cc.old 2023-09-28 10:14:03.660044621 +0200
|
||||
+++ src/extensions/browser/guest_view/web_view/web_view_guest.cc 2023-09-29 08:05:41.827245244 +0200
|
||||
@@ -285,7 +285,6 @@ std::string WebViewGuest::GetPartitionID
|
||||
}
|
||||
|
||||
// static
|
||||
-const char WebViewGuest::Type[] = "webview";
|
||||
const guest_view::GuestViewHistogramValue WebViewGuest::HistogramValue =
|
||||
guest_view::GuestViewHistogramValue::kWebView;
|
||||
|
||||
--- src/extensions/browser/guest_view/web_view/web_view_guest.h.old 2023-09-28 10:14:03.660044621 +0200
|
||||
+++ src/extensions/browser/guest_view/web_view/web_view_guest.h 2023-09-29 08:06:13.200529820 +0200
|
||||
@@ -49,7 +49,7 @@ class WebViewGuest : public guest_view::
|
||||
int embedder_process_id,
|
||||
int view_instance_id);
|
||||
|
||||
- static const char Type[];
|
||||
+ constexpr static const char Type[] = "webview";
|
||||
static const guest_view::GuestViewHistogramValue HistogramValue;
|
||||
|
||||
// Returns the WebView partition ID associated with the render process
|
||||
--- src/extensions/common/BUILD.gn.orig 2025-05-22 20:15:08.686176429 +0200
|
||||
+++ src/extensions/common/BUILD.gn 2025-05-24 11:58:30.839954172 +0200
|
||||
@@ -243,10 +243,6 @@ static_library("common") {
|
||||
"api/commands/commands_handler.h",
|
||||
"api/declarative/declarative_constants.cc",
|
||||
"api/declarative/declarative_constants.h",
|
||||
- "api/declarative/declarative_manifest_data.cc",
|
||||
- "api/declarative/declarative_manifest_data.h",
|
||||
- "api/declarative/declarative_manifest_handler.cc",
|
||||
- "api/declarative/declarative_manifest_handler.h",
|
||||
"api/declarative_net_request/constants.cc",
|
||||
"api/declarative_net_request/constants.h",
|
||||
"api/declarative_net_request/dnr_manifest_data.cc",
|
||||
@@ -266,8 +262,6 @@ static_library("common") {
|
||||
"api/printer_provider/usb_printer_manifest_data.h",
|
||||
"api/printer_provider/usb_printer_manifest_handler.cc",
|
||||
"api/printer_provider/usb_printer_manifest_handler.h",
|
||||
- "api/scripts_internal/script_serialization.cc",
|
||||
- "api/scripts_internal/script_serialization.h",
|
||||
"api/sockets/sockets_manifest_data.cc",
|
||||
"api/sockets/sockets_manifest_data.h",
|
||||
"api/sockets/sockets_manifest_handler.cc",
|
||||
@@ -378,8 +372,6 @@ static_library("common") {
|
||||
"manifest_handlers/background_info.h",
|
||||
"manifest_handlers/content_capabilities_handler.cc",
|
||||
"manifest_handlers/content_capabilities_handler.h",
|
||||
- "manifest_handlers/content_scripts_handler.cc",
|
||||
- "manifest_handlers/content_scripts_handler.h",
|
||||
"manifest_handlers/cross_origin_isolation_info.cc",
|
||||
"manifest_handlers/cross_origin_isolation_info.h",
|
||||
"manifest_handlers/csp_info.cc",
|
||||
@@ -390,10 +382,6 @@ static_library("common") {
|
||||
"manifest_handlers/extension_action_handler.h",
|
||||
"manifest_handlers/externally_connectable.cc",
|
||||
"manifest_handlers/externally_connectable.h",
|
||||
- "manifest_handlers/file_handler_info.cc",
|
||||
- "manifest_handlers/file_handler_info.h",
|
||||
- "manifest_handlers/icon_variants_handler.cc",
|
||||
- "manifest_handlers/icon_variants_handler.h",
|
||||
"manifest_handlers/icons_handler.cc",
|
||||
"manifest_handlers/icons_handler.h",
|
||||
"manifest_handlers/incognito_info.cc",
|
||||
@@ -422,8 +410,6 @@ static_library("common") {
|
||||
"manifest_handlers/trial_tokens_handler.h",
|
||||
"manifest_handlers/web_accessible_resources_info.cc",
|
||||
"manifest_handlers/web_accessible_resources_info.h",
|
||||
- "manifest_handlers/web_file_handlers_info.cc",
|
||||
- "manifest_handlers/web_file_handlers_info.h",
|
||||
"manifest_handlers/webview_info.cc",
|
||||
"manifest_handlers/webview_info.h",
|
||||
"manifest_url_handlers.cc",
|
||||
@@ -481,8 +467,6 @@ static_library("common") {
|
||||
"user_scripts_availability.h",
|
||||
"utils/base_string.cc",
|
||||
"utils/base_string.h",
|
||||
- "utils/content_script_utils.cc",
|
||||
- "utils/content_script_utils.h",
|
||||
"utils/extension_types_utils.cc",
|
||||
"utils/extension_types_utils.h",
|
||||
"utils/extension_utils.cc",
|
||||
|
28
build-without-guest-view.patch
Normal file
28
build-without-guest-view.patch
Normal file
@@ -0,0 +1,28 @@
|
||||
--- src/components/permissions/permission_context_base.cc.orig 2025-05-22 20:15:04.346176805 +0200
|
||||
+++ src/components/permissions/permission_context_base.cc 2025-05-24 13:09:21.758872333 +0200
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "components/content_settings/core/common/content_settings_pattern.h"
|
||||
#include "components/content_settings/core/common/content_settings_types.h"
|
||||
#include "components/content_settings/core/common/features.h"
|
||||
+#include "components/guest_view/buildflags/buildflags.h"
|
||||
#include "components/permissions/features.h"
|
||||
#include "components/permissions/permission_context_base.h"
|
||||
#include "components/permissions/permission_decision_auto_blocker.h"
|
||||
@@ -46,7 +47,7 @@
|
||||
#include "services/network/public/mojom/permissions_policy/permissions_policy_feature.mojom.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
-#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
|
||||
+#if BUILDFLAG(ENABLE_GUEST_VIEW)
|
||||
#include "components/guest_view/browser/guest_view_base.h"
|
||||
#endif
|
||||
|
||||
@@ -316,7 +317,7 @@ content::PermissionResult PermissionCont
|
||||
}
|
||||
}
|
||||
|
||||
-#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
|
||||
+#if BUILDFLAG(ENABLE_GUEST_VIEW)
|
||||
guest_view::GuestViewBase* guest =
|
||||
guest_view::GuestViewBase::FromRenderFrameHost(render_frame_host);
|
||||
if (guest) {
|
10
build-without-mesage-center.patch
Normal file
10
build-without-mesage-center.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- src/components/global_media_controls/BUILD.gn 2025-04-16 14:36:27.043179983 +0200
|
||||
+++ /var/tmp/build-root/openSUSE_Tumbleweed-x86_64/home/abuild/rpmbuild/BUILD/nodejs-electron-35.1.5-build/src/components/global_media_controls/BUILD.gn 2025-04-18 14:41:32.341441955 +0200
|
||||
@@ -48,7 +48,6 @@ component("global_media_controls") {
|
||||
}
|
||||
|
||||
public_deps = [
|
||||
- "//components/media_message_center",
|
||||
"//services/media_session/public/cpp",
|
||||
"//services/media_session/public/mojom",
|
||||
"//ui/views",
|
@@ -1,43 +0,0 @@
|
||||
--- src/build/linux/unbundle/zlib.gn.orig 2024-02-21 20:06:19.015040200 +0000
|
||||
+++ src/build/linux/unbundle/zlib.gn 2024-02-23 18:40:02.635135600 +0000
|
||||
@@ -23,21 +23,27 @@ source_set("zlib") {
|
||||
public_configs = [ ":system_zlib" ]
|
||||
}
|
||||
|
||||
-shim_headers("minizip_shim") {
|
||||
- root_path = "contrib"
|
||||
- headers = [
|
||||
- "minizip/crypt.h",
|
||||
- "minizip/ioapi.h",
|
||||
- "minizip/iowin32.h",
|
||||
- "minizip/mztools.h",
|
||||
- "minizip/unzip.h",
|
||||
- "minizip/zip.h",
|
||||
+static_library("minizip") {
|
||||
+ include_dirs = [
|
||||
+ ".",
|
||||
+ "//third_party/zlib",
|
||||
]
|
||||
-}
|
||||
|
||||
-source_set("minizip") {
|
||||
- deps = [ ":minizip_shim" ]
|
||||
- libs = [ "minizip" ]
|
||||
+ sources = [
|
||||
+ "contrib/minizip/ioapi.c",
|
||||
+ "contrib/minizip/ioapi.h",
|
||||
+ "contrib/minizip/unzip.c",
|
||||
+ "contrib/minizip/unzip.h",
|
||||
+ "contrib/minizip/zip.c",
|
||||
+ "contrib/minizip/zip.h",
|
||||
+ ]
|
||||
+
|
||||
+ deps = [ ":zlib" ]
|
||||
+
|
||||
+ configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
+ configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
+
|
||||
+ public_configs = [ ":zlib_config" ]
|
||||
}
|
||||
|
||||
static_library("zip") {
|
@@ -21,11 +21,9 @@ Subject: [PATCH] Disable various compiler configs
|
||||
build/config/compiler/BUILD.gn | 114 +++++----------------------------
|
||||
1 file changed, 17 insertions(+), 97 deletions(-)
|
||||
|
||||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
index d40843b..b92f03b 100644
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -322,9 +322,7 @@ config("compiler") {
|
||||
--- src/build/config/compiler/BUILD.gn.orig 2025-07-19 11:32:29.581980058 +0200
|
||||
+++ src/build/config/compiler/BUILD.gn 2025-07-19 16:12:37.505818698 +0200
|
||||
@@ -310,9 +310,7 @@ config("compiler") {
|
||||
|
||||
configs += [
|
||||
# See the definitions below.
|
||||
@@ -34,8 +32,24 @@ index d40843b..b92f03b 100644
|
||||
- ":compiler_cpu_abi",
|
||||
":compiler_codegen",
|
||||
":compiler_deterministic",
|
||||
]
|
||||
@@ -353,7 +351,12 @@ config("compiler") {
|
||||
":clang_warning_suppression",
|
||||
@@ -338,7 +336,6 @@ config("compiler") {
|
||||
# See: https://gcc.gnu.org/PR97913
|
||||
# TODO(mpdenton): remove is_clang once GCC bug is fixed.
|
||||
if ((!is_nacl || is_nacl_saigo) && !is_ubsan && is_clang) {
|
||||
- cflags += [ "-fno-delete-null-pointer-checks" ]
|
||||
}
|
||||
|
||||
# Make signed overflow and pointer overflowdefined to wrap.
|
||||
@@ -348,7 +345,6 @@ config("compiler") {
|
||||
if (is_win) {
|
||||
cflags += [ "/clang:-fno-strict-overflow" ]
|
||||
} else {
|
||||
- cflags += [ "-fno-strict-overflow" ]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -364,7 +360,12 @@ config("compiler") {
|
||||
if (!is_win) {
|
||||
# Common POSIX compiler flags setup.
|
||||
# --------------------------------
|
||||
@@ -49,7 +63,7 @@ index d40843b..b92f03b 100644
|
||||
|
||||
# Stack protection. ShadowCallStack and Stack protector address the same
|
||||
# problems. Therefore, we only enable one or the other. Clang advertises SCS as
|
||||
@@ -494,10 +497,6 @@ config("compiler") {
|
||||
@@ -500,10 +501,6 @@ config("compiler") {
|
||||
# Linux/Android/Fuchsia common flags setup.
|
||||
# ---------------------------------
|
||||
if (is_linux || is_chromeos || is_android || is_fuchsia) {
|
||||
@@ -60,64 +74,8 @@ index d40843b..b92f03b 100644
|
||||
|
||||
if (!is_clang) {
|
||||
# Use pipes for communicating between sub-processes. Faster.
|
||||
@@ -590,55 +589,6 @@ config("compiler") {
|
||||
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
|
||||
}
|
||||
|
||||
- if (is_clang && !is_nacl && current_os != "zos") {
|
||||
- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
|
||||
- if (save_reproducers_on_lld_crash && use_lld) {
|
||||
- ldflags += [
|
||||
- "-fcrash-diagnostics=all",
|
||||
- "-fcrash-diagnostics-dir=" + clang_diagnostic_dir,
|
||||
- ]
|
||||
- }
|
||||
-
|
||||
- # TODO(hans): Remove this once Clang generates better optimized debug info
|
||||
- # by default. https://crbug.com/765793
|
||||
- cflags += [
|
||||
- "-mllvm",
|
||||
- "-instcombine-lower-dbg-declare=0",
|
||||
- ]
|
||||
- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
|
||||
- if (is_win) {
|
||||
- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
|
||||
- } else {
|
||||
- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- # TODO(crbug.com/1488374): This causes binary size growth and potentially
|
||||
- # other problems.
|
||||
- # TODO(crbug.com/1491036): This isn't supported by Cronet's mainline llvm version.
|
||||
- if (default_toolchain != "//build/toolchain/cros:target" &&
|
||||
- !llvm_android_mainline) {
|
||||
- cflags += [
|
||||
- "-mllvm",
|
||||
- "-split-threshold-for-reg-with-hint=0",
|
||||
- ]
|
||||
- if (use_thin_lto && is_a_target_toolchain) {
|
||||
- if (is_win) {
|
||||
- ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ]
|
||||
- } else {
|
||||
- ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- # TODO(crbug.com/1235145): Investigate why/if this should be needed.
|
||||
- if (is_win) {
|
||||
- cflags += [ "/clang:-ffp-contract=off" ]
|
||||
- } else {
|
||||
- cflags += [ "-ffp-contract=off" ]
|
||||
- }
|
||||
- }
|
||||
-
|
||||
# C11/C++11 compiler flags setup.
|
||||
# ---------------------------
|
||||
if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
|
||||
@@ -1070,11 +1020,6 @@ config("compiler") {
|
||||
defines += [ "_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE" ]
|
||||
@@ -1148,11 +1145,6 @@ config("libcxx_hardening") {
|
||||
defines = [ "_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE" ]
|
||||
}
|
||||
|
||||
- # Enable libstdc++ hardening lightweight assertions. Those have a low
|
||||
@@ -128,7 +86,7 @@ index d40843b..b92f03b 100644
|
||||
}
|
||||
|
||||
# The BUILDCONFIG file sets this config on targets by default, which means when
|
||||
@@ -1140,7 +1085,8 @@ config("thinlto_optimize_max") {
|
||||
@@ -1218,7 +1210,8 @@ config("thinlto_optimize_max") {
|
||||
# without using everything that "compiler" brings in. Options that
|
||||
# tweak code generation for a particular CPU do not belong here!
|
||||
# See "compiler_codegen", below.
|
||||
@@ -138,54 +96,7 @@ index d40843b..b92f03b 100644
|
||||
cflags = []
|
||||
ldflags = []
|
||||
defines = []
|
||||
@@ -1523,46 +1469,6 @@ config("compiler_deterministic") {
|
||||
}
|
||||
}
|
||||
|
||||
- # Makes builds independent of absolute file path.
|
||||
- if (is_clang && strip_absolute_paths_from_debug_symbols) {
|
||||
- # If debug option is given, clang includes $cwd in debug info by default.
|
||||
- # For such build, this flag generates reproducible obj files even we use
|
||||
- # different build directory like "out/feature_a" and "out/feature_b" if
|
||||
- # we build same files with same compile flag.
|
||||
- # Other paths are already given in relative, no need to normalize them.
|
||||
- if (is_nacl) {
|
||||
- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
|
||||
- cflags += [
|
||||
- "-Xclang",
|
||||
- "-fdebug-compilation-dir",
|
||||
- "-Xclang",
|
||||
- ".",
|
||||
- ]
|
||||
- } else {
|
||||
- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
|
||||
- # and -fcoverage-compilation-dir=.
|
||||
- cflags += [ "-ffile-compilation-dir=." ]
|
||||
- swiftflags += [ "-file-compilation-dir=." ]
|
||||
- }
|
||||
- if (!is_win) {
|
||||
- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
|
||||
- asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
|
||||
- }
|
||||
-
|
||||
- if (is_win && use_lld) {
|
||||
- if (symbol_level == 2 || (is_clang && using_sanitizer)) {
|
||||
- # Absolutize source file paths for PDB. Pass the real build directory
|
||||
- # if the pdb contains source-level debug information and if linker
|
||||
- # reproducibility is not critical.
|
||||
- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ]
|
||||
- } else {
|
||||
- # Use a fake fixed base directory for paths in the pdb to make the pdb
|
||||
- # output fully deterministic and independent of the build directory.
|
||||
- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ]
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
# Tells the compiler not to use absolute paths when passing the default
|
||||
# paths to the tools it invokes. We don't want this because we don't
|
||||
# really need it and it can mess up the goma cache entries.
|
||||
@@ -1739,7 +1645,8 @@ config("treat_warnings_as_errors") {
|
||||
@@ -1994,7 +1987,8 @@ config("tot_warnings") {
|
||||
# Collects all warning flags that are used by default. This is used as a
|
||||
# subconfig of both chromium_code and no_chromium_code. This way these
|
||||
# flags are guaranteed to appear on the compile command line after -Wall.
|
||||
@@ -193,9 +104,9 @@ index d40843b..b92f03b 100644
|
||||
+config("default_warnings") { }
|
||||
+config("xdefault_warnings") {
|
||||
cflags = []
|
||||
cflags_c = []
|
||||
cflags_cc = []
|
||||
@@ -1983,11 +1890,7 @@ config("chromium_code") {
|
||||
ldflags = []
|
||||
@@ -2262,11 +2256,7 @@ config("chromium_code") {
|
||||
defines = [ "_HAS_NODISCARD" ]
|
||||
}
|
||||
} else {
|
||||
@@ -208,7 +119,7 @@ index d40843b..b92f03b 100644
|
||||
|
||||
# In Chromium code, we define __STDC_foo_MACROS in order to get the
|
||||
# C99 macros on Mac and Linux.
|
||||
@@ -1996,24 +1899,6 @@ config("chromium_code") {
|
||||
@@ -2275,24 +2265,6 @@ config("chromium_code") {
|
||||
"__STDC_FORMAT_MACROS",
|
||||
]
|
||||
|
||||
@@ -233,15 +144,15 @@ index d40843b..b92f03b 100644
|
||||
if (is_apple) {
|
||||
cflags_objc = [ "-Wimplicit-retain-self" ]
|
||||
cflags_objcc = [ "-Wimplicit-retain-self" ]
|
||||
@@ -2159,7 +2044,6 @@ config("no_rtti") {
|
||||
@@ -2451,7 +2423,6 @@ config("no_rtti") {
|
||||
# to heap-allocated memory are passed over shared library boundaries.
|
||||
config("export_dynamic") {
|
||||
# TODO(crbug.com/1052397): Revisit after target_os flip is completed.
|
||||
if (is_linux || is_chromeos_lacros || export_libcxxabi_from_executables) {
|
||||
if (is_linux || export_libcxxabi_from_executables) {
|
||||
- ldflags = [ "-rdynamic" ]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2247,7 +2131,8 @@ config("wexit_time_destructors") {
|
||||
@@ -2550,7 +2521,8 @@ config("wexit_time_destructors") {
|
||||
# gcc 4.9 and earlier had no way of suppressing this warning without
|
||||
# suppressing the rest of them. Here we centralize the identification of
|
||||
# the gcc 4.9 toolchains.
|
||||
@@ -251,7 +162,7 @@ index d40843b..b92f03b 100644
|
||||
cflags = []
|
||||
if (is_clang) {
|
||||
cflags += [ "-Wno-incompatible-pointer-types" ]
|
||||
@@ -2362,7 +2247,8 @@ if (is_win) {
|
||||
@@ -2667,7 +2639,8 @@ if (is_win) {
|
||||
common_optimize_on_cflags += [ "-fno-math-errno" ]
|
||||
}
|
||||
|
||||
@@ -261,17 +172,17 @@ index d40843b..b92f03b 100644
|
||||
if (!is_win) {
|
||||
if (enable_frame_pointers) {
|
||||
cflags = [ "-fno-omit-frame-pointer" ]
|
||||
@@ -2389,7 +2275,8 @@ config("default_stack_frames") {
|
||||
}
|
||||
|
||||
# Default "optimization on" config.
|
||||
@@ -2708,7 +2681,8 @@ config("default_stack_frames") {
|
||||
# [0]: https://pinpoint-dot-chromeperf.appspot.com/job/147634a8be0000
|
||||
# [1]: https://pinpoint-dot-chromeperf.appspot.com/job/132bc772be0000
|
||||
# [2]: https://crrev.com/c/5447532
|
||||
-config("optimize") {
|
||||
+config("optimize") { }
|
||||
+config("xoptimize") {
|
||||
if (is_win) {
|
||||
cflags = [ "/O2" ] + common_optimize_on_cflags
|
||||
|
||||
@@ -2430,7 +2317,8 @@ config("optimize") {
|
||||
# clang-cl's /O2 corresponds to clang's -O3, and really want -O2 for
|
||||
# consistency with the other platforms.
|
||||
@@ -2757,7 +2731,8 @@ config("optimize") {
|
||||
}
|
||||
|
||||
# Turn off optimizations.
|
||||
@@ -281,19 +192,19 @@ index d40843b..b92f03b 100644
|
||||
if (is_win) {
|
||||
cflags = [
|
||||
"/Od", # Disable optimization.
|
||||
@@ -2470,7 +2358,8 @@ config("no_optimize") {
|
||||
# Turns up the optimization level. On Windows, this implies whole program
|
||||
# optimization and link-time code generation which is very expensive and should
|
||||
# be used sparingly.
|
||||
@@ -2792,7 +2767,8 @@ config("no_optimize") {
|
||||
# Turns up the optimization level. Used to explicitly enable -O2 instead of
|
||||
# -Os for select targets on platforms that use optimize_for_size. No-op
|
||||
# elsewhere.
|
||||
-config("optimize_max") {
|
||||
+config("optimize_max") { }
|
||||
+config("xoptimize_max") {
|
||||
if (is_nacl && is_nacl_irt) {
|
||||
# The NaCl IRT is a special case and always wants its own config.
|
||||
# Various components do:
|
||||
@@ -2503,7 +2392,8 @@ config("optimize_max") {
|
||||
@@ -2825,7 +2801,8 @@ config("optimize_max") {
|
||||
#
|
||||
# TODO(crbug.com/621335) - rework how all of these configs are related
|
||||
# TODO(crbug.com/41259697) - rework how all of these configs are related
|
||||
# so that we don't need this disclaimer.
|
||||
-config("optimize_speed") {
|
||||
+config("optimize_speed") { }
|
||||
@@ -301,7 +212,7 @@ index d40843b..b92f03b 100644
|
||||
if (is_nacl && is_nacl_irt) {
|
||||
# The NaCl IRT is a special case and always wants its own config.
|
||||
# Various components do:
|
||||
@@ -2529,7 +2419,8 @@ config("optimize_speed") {
|
||||
@@ -2854,7 +2831,8 @@ config("optimize_speed") {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -311,7 +222,7 @@ index d40843b..b92f03b 100644
|
||||
cflags = [ "-O1" ] + common_optimize_on_cflags
|
||||
rustflags = [ "-Copt-level=1" ]
|
||||
ldflags = common_optimize_on_ldflags
|
||||
@@ -2662,7 +2553,8 @@ config("win_pdbaltpath") {
|
||||
@@ -2985,7 +2963,8 @@ config("win_pdbaltpath") {
|
||||
}
|
||||
|
||||
# Full symbols.
|
||||
@@ -319,9 +230,9 @@ index d40843b..b92f03b 100644
|
||||
+config("symbols") { cflags = ["-g2"] }
|
||||
+config("xsymbols") {
|
||||
rustflags = []
|
||||
configs = []
|
||||
if (is_win) {
|
||||
if (is_clang) {
|
||||
@@ -2811,7 +2703,8 @@ config("symbols") {
|
||||
@@ -3159,7 +3138,8 @@ config("symbols") {
|
||||
# Minimal symbols.
|
||||
# This config guarantees to hold symbol for stack trace which are shown to user
|
||||
# when crash happens in unittests running on buildbot.
|
||||
@@ -331,7 +242,7 @@ index d40843b..b92f03b 100644
|
||||
rustflags = []
|
||||
if (is_win) {
|
||||
# Functions, files, and line tables only.
|
||||
@@ -2896,7 +2789,8 @@ config("minimal_symbols") {
|
||||
@@ -3244,7 +3224,8 @@ config("minimal_symbols") {
|
||||
# This configuration contains function names only. That is, the compiler is
|
||||
# told to not generate debug information and the linker then just puts function
|
||||
# names in the final debug information.
|
||||
|
@@ -1,32 +0,0 @@
|
||||
commit 04866680f4f9a8475ae3795ad6ed59649ba478d7
|
||||
Author: Jose Dapena Paz <jdapena@igalia.com>
|
||||
Date: Tue Jan 23 12:04:05 2024 +0000
|
||||
|
||||
libstdc++: fix static assertion in NodeUuidEquality
|
||||
|
||||
libstdc++ equality checks in static assertion that it is possible to
|
||||
compare for equality base::Uuid to BookmarkNode*. This was a missing
|
||||
operator in NodeUuidEquality that this changeset adds.
|
||||
|
||||
Bug: 957519
|
||||
Change-Id: Icc9809cb43d321f0b3e3394ef27ab55672aec5e7
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5227686
|
||||
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
|
||||
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
|
||||
Cr-Commit-Position: refs/heads/main@{#1250753}
|
||||
|
||||
diff --git a/components/bookmarks/browser/uuid_index.h b/components/bookmarks/browser/uuid_index.h
|
||||
index 77cb1a1a54dd9..639d6fefcd831 100644
|
||||
--- a/components/bookmarks/browser/uuid_index.h
|
||||
+++ b/components/bookmarks/browser/uuid_index.h
|
||||
@@ -23,6 +23,10 @@ class NodeUuidEquality {
|
||||
bool operator()(const BookmarkNode* n1, const base::Uuid& uuid2) const {
|
||||
return n1->uuid() == uuid2;
|
||||
}
|
||||
+
|
||||
+ bool operator()(const base::Uuid& uuid1, const BookmarkNode* n2) const {
|
||||
+ return uuid1 == n2->uuid();
|
||||
+ }
|
||||
};
|
||||
|
||||
// Used to hash BookmarkNode instances by UUID.
|
@@ -1,408 +0,0 @@
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_base.gn src/build/linux/unbundle/absl_base.gn
|
||||
--- src/build/linux/unbundle.old/absl_base.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_base.gn 2024-04-07 17:46:37.658214100 +0000
|
||||
@@ -13,6 +13,14 @@ pkg_config("system_absl_core_headers") {
|
||||
packages = [ "absl_core_headers" ]
|
||||
}
|
||||
|
||||
+pkg_config("system_absl_nullability") {
|
||||
+ packages = [ "absl_nullability" ]
|
||||
+}
|
||||
+
|
||||
+pkg_config("system_absl_prefetch") {
|
||||
+ packages = [ "absl_prefetch" ]
|
||||
+}
|
||||
+
|
||||
shim_headers("base_shim") {
|
||||
root_path = "."
|
||||
prefix = "absl/base/"
|
||||
@@ -60,8 +68,41 @@ source_set("core_headers") {
|
||||
public_configs = [ ":system_absl_core_headers" ]
|
||||
}
|
||||
|
||||
-source_set("config_test") {
|
||||
+shim_headers("nullability_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/base/"
|
||||
+ headers = [
|
||||
+ "nullability.h",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+source_set("nullability") {
|
||||
+ deps = [ ":nullability_shim" ]
|
||||
+ public_configs = [ ":system_absl_nullability" ]
|
||||
}
|
||||
|
||||
+shim_headers("prefetch_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/base/"
|
||||
+ headers = [
|
||||
+ "prefetch.h",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+source_set("prefetch") {
|
||||
+ deps = [ ":prefetch_shim" ]
|
||||
+ public_configs = [ ":system_absl_prefetch" ]
|
||||
+}
|
||||
+
|
||||
+source_set("no_destructor") {
|
||||
+ # Dummy — unavailable with abseil 202308 aand chromium 122 does not use it
|
||||
+}
|
||||
+
|
||||
+source_set("config_test") {
|
||||
+}
|
||||
+source_set("no_destructor_test") {
|
||||
+}
|
||||
+source_set("nullability_test") {
|
||||
+}
|
||||
source_set("prefetch_test") {
|
||||
}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_container.gn src/build/linux/unbundle/absl_container.gn
|
||||
--- src/build/linux/unbundle.old/absl_container.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_container.gn 2024-04-07 17:12:25.979311400 +0000
|
||||
@@ -111,9 +111,19 @@ source_set("node_hash_set") {
|
||||
|
||||
source_set("common_policy_traits_test") {
|
||||
}
|
||||
+source_set("fixed_array_test") {
|
||||
+}
|
||||
+source_set("flat_hash_map_test") {
|
||||
+}
|
||||
+source_set("flat_hash_set_test") {
|
||||
+}
|
||||
source_set("inlined_vector_test") {
|
||||
}
|
||||
source_set("node_slot_policy_test") {
|
||||
}
|
||||
+source_set("raw_hash_set_allocator_test") {
|
||||
+}
|
||||
+source_set("raw_hash_set_test") {
|
||||
+}
|
||||
source_set("sample_element_size_test") {
|
||||
}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_crc.gn src/build/linux/unbundle/absl_crc.gn
|
||||
--- src/build/linux/unbundle.old/absl_crc.gn 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ src/build/linux/unbundle/absl_crc.gn 2024-04-07 17:29:23.349823700 +0000
|
||||
@@ -0,0 +1,4 @@
|
||||
+source_set("crc32c_test") {}
|
||||
+source_set("crc_cord_state_test") {}
|
||||
+source_set("crc_memcpy_test") {}
|
||||
+source_set("non_temporal_memcpy_test") {}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_debugging.gn src/build/linux/unbundle/absl_debugging.gn
|
||||
--- src/build/linux/unbundle.old/absl_debugging.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_debugging.gn 2024-04-07 17:12:54.682550100 +0000
|
||||
@@ -45,3 +45,6 @@ source_set("symbolize") {
|
||||
deps = [ ":symbolize_shim" ]
|
||||
public_configs = [ ":system_absl_symbolize" ]
|
||||
}
|
||||
+
|
||||
+source_set("stacktrace_test") {
|
||||
+}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_flags.gn src/build/linux/unbundle/absl_flags.gn
|
||||
--- src/build/linux/unbundle.old/absl_flags.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_flags.gn 2024-04-07 17:14:21.789944600 +0000
|
||||
@@ -48,3 +48,5 @@ source_set("usage") {
|
||||
deps = [ ":usage_shim" ]
|
||||
public_configs = [ ":system_absl_flags_usage" ]
|
||||
}
|
||||
+
|
||||
+source_set("flag_test") {}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_functional.gn src/build/linux/unbundle/absl_functional.gn
|
||||
--- src/build/linux/unbundle.old/absl_functional.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_functional.gn 2024-04-07 17:14:18.081948700 +0000
|
||||
@@ -46,4 +46,10 @@ source_set("function_ref") {
|
||||
public_configs = [ ":system_absl_function_ref" ]
|
||||
}
|
||||
|
||||
+source_set("overload") {
|
||||
+ # Dummy — unavailable with abseil 202308 aand chromium 122 does not use it
|
||||
+}
|
||||
+
|
||||
source_set("any_invocable_test") {}
|
||||
+source_set("function_ref_test") {}
|
||||
+source_set("overload_test") {}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_hash.gn src/build/linux/unbundle/absl_hash.gn
|
||||
--- src/build/linux/unbundle.old/absl_hash.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_hash.gn 2024-04-07 17:19:44.496916100 +0000
|
||||
@@ -16,6 +16,8 @@ source_set("hash") {
|
||||
public_configs = [ ":system_absl_hash" ]
|
||||
}
|
||||
|
||||
+source_set("hash_instantiated_test") {
|
||||
+}
|
||||
source_set("hash_test") {
|
||||
}
|
||||
source_set("low_level_hash_test") {
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_log.gn src/build/linux/unbundle/absl_log.gn
|
||||
--- src/build/linux/unbundle.old/absl_log.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_log.gn 2024-04-07 17:45:56.568886800 +0000
|
||||
@@ -1,3 +1,67 @@
|
||||
+import("//build/config/linux/pkg_config.gni")
|
||||
+import("//build/shim_headers.gni")
|
||||
+
|
||||
+pkg_config("system_absl_absl_check") {
|
||||
+ packages = [ "absl_absl_check" ]
|
||||
+}
|
||||
+
|
||||
+pkg_config("system_absl_absl_log") {
|
||||
+ packages = [ "absl_absl_log" ]
|
||||
+}
|
||||
+
|
||||
+pkg_config("system_absl_die_if_null") {
|
||||
+ packages = [ "absl_die_if_null" ]
|
||||
+}
|
||||
+
|
||||
+pkg_config("system_absl_log") {
|
||||
+ packages = [ "absl_log" ]
|
||||
+}
|
||||
+shim_headers("absl_check_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/log/"
|
||||
+ headers = [ "absl_check.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("absl_check") {
|
||||
+ deps = [ ":absl_check_shim" ]
|
||||
+ public_configs = [ ":system_absl_absl_check" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("absl_log_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/log/"
|
||||
+ headers = [ "absl_log.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("absl_log") {
|
||||
+ deps = [ ":absl_log_shim" ]
|
||||
+ public_configs = [ ":system_absl_absl_log" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("die_if_null_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/log/"
|
||||
+ headers = [ "die_if_null.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("die_if_null") {
|
||||
+ deps = [ ":die_if_null_shim" ]
|
||||
+ public_configs = [ ":system_absl_die_if_null" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("log_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/log/"
|
||||
+ headers = [ "log.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("log") {
|
||||
+ deps = [ ":log_shim" ]
|
||||
+ public_configs = [ ":system_absl_log" ]
|
||||
+}
|
||||
+
|
||||
+source_set("absl_check_test") {}
|
||||
+source_set("absl_log_basic_test") {}
|
||||
source_set("basic_log_test") {}
|
||||
source_set("check_test") {}
|
||||
source_set("die_if_null_test") {}
|
||||
@@ -11,3 +75,4 @@ source_set("log_sink_test") {}
|
||||
source_set("log_streamer_test") {}
|
||||
source_set("scoped_mock_log_test") {}
|
||||
source_set("stripping_test") {}
|
||||
+source_set("vlog_is_on_test") {}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_log_internal.gn src/build/linux/unbundle/absl_log_internal.gn
|
||||
--- src/build/linux/unbundle.old/absl_log_internal.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_log_internal.gn 2024-04-07 17:19:34.195045600 +0000
|
||||
@@ -1 +1,2 @@
|
||||
+source_set("fnmatch_test") {}
|
||||
source_set("stderr_log_sink_test") {}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_numeric.gn src/build/linux/unbundle/absl_numeric.gn
|
||||
--- src/build/linux/unbundle.old/absl_numeric.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_numeric.gn 2024-04-07 17:20:05.380981000 +0000
|
||||
@@ -30,3 +30,5 @@ source_set("int128") {
|
||||
deps = [ ":int128_shim" ]
|
||||
public_configs = [ ":system_absl_int128" ]
|
||||
}
|
||||
+
|
||||
+source_set("int128_test") {}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_random.gn src/build/linux/unbundle/absl_random.gn
|
||||
--- src/build/linux/unbundle.old/absl_random.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_random.gn 2024-04-07 17:36:36.041139000 +0000
|
||||
@@ -1,6 +1,48 @@
|
||||
import("//build/config/linux/pkg_config.gni")
|
||||
import("//build/shim_headers.gni")
|
||||
|
||||
+pkg_config("system_absl_random_bit_gen_ref") {
|
||||
+ packages = [ "absl_random_bit_gen_ref" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("bit_gen_ref_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/random/"
|
||||
+ headers = [ "bit_gen_ref.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("bit_gen_ref") {
|
||||
+ deps = [ ":bit_gen_ref_shim" ]
|
||||
+ public_configs = [ ":system_absl_random_bit_gen_ref" ]
|
||||
+}
|
||||
+
|
||||
+pkg_config("system_absl_random_distributions") {
|
||||
+ packages = [ "absl_random_distributions" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("distributions_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/random/"
|
||||
+ headers = [
|
||||
+ "bernoulli_distribution.h",
|
||||
+ "beta_distribution.h",
|
||||
+ "discrete_distribution.h",
|
||||
+ "distributions.h",
|
||||
+ "exponential_distribution.h",
|
||||
+ "gaussian_distribution.h",
|
||||
+ "log_uniform_int_distribution.h",
|
||||
+ "poisson_distribution.h",
|
||||
+ "uniform_int_distribution.h",
|
||||
+ "uniform_real_distribution.h",
|
||||
+ "zipf_distribution.h",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+source_set("distributions") {
|
||||
+ deps = [ ":distributions_shim" ]
|
||||
+ public_configs = [ ":system_absl_random_distributions" ]
|
||||
+}
|
||||
+
|
||||
pkg_config("system_absl_random_random") {
|
||||
packages = [ "absl_random_random" ]
|
||||
}
|
||||
@@ -15,3 +57,4 @@ source_set("random") {
|
||||
deps = [ ":random_shim" ]
|
||||
public_configs = [ ":system_absl_random_random" ]
|
||||
}
|
||||
+
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_status.gn src/build/linux/unbundle/absl_status.gn
|
||||
--- src/build/linux/unbundle.old/absl_status.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_status.gn 2024-04-07 17:20:21.398873800 +0000
|
||||
@@ -34,5 +34,7 @@ source_set("statusor") {
|
||||
public_configs = [ ":system_absl_statusor" ]
|
||||
}
|
||||
|
||||
+source_set("status_test") {
|
||||
+}
|
||||
source_set("statusor_test") {
|
||||
}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_strings.gn src/build/linux/unbundle/absl_strings.gn
|
||||
--- src/build/linux/unbundle.old/absl_strings.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_strings.gn 2024-04-07 17:52:10.775957800 +0000
|
||||
@@ -9,6 +9,10 @@ pkg_config("system_absl_strings") {
|
||||
packages = [ "absl_strings" ]
|
||||
}
|
||||
|
||||
+pkg_config("system_absl_string_view") {
|
||||
+ packages = [ "absl_string_view" ]
|
||||
+}
|
||||
+
|
||||
pkg_config("system_absl_str_format") {
|
||||
packages = [ "absl_str_format" ]
|
||||
}
|
||||
@@ -59,8 +63,27 @@ source_set("str_format") {
|
||||
public_configs = [ ":system_absl_str_format" ]
|
||||
}
|
||||
|
||||
+shim_headers("string_view_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/strings/"
|
||||
+ headers = [ "string_view.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("string_view") {
|
||||
+ deps = [ ":string_view_shim" ]
|
||||
+ public_configs = [ ":system_absl_string_view" ]
|
||||
+}
|
||||
+
|
||||
+source_set("has_ostream_operator") {
|
||||
+ # Dummy — unavailable with abseil 202308 aand chromium 122 does not use it
|
||||
+}
|
||||
+
|
||||
source_set("ascii_test") {
|
||||
}
|
||||
+source_set("char_formatting_test") {
|
||||
+}
|
||||
+source_set("charset_test") {
|
||||
+}
|
||||
source_set("cord_buffer_test") {
|
||||
}
|
||||
source_set("cord_data_edge_test") {
|
||||
@@ -85,8 +108,30 @@ source_set("cordz_update_scope_test") {
|
||||
}
|
||||
source_set("cordz_update_tracker_test") {
|
||||
}
|
||||
+source_set("damerau_levenshtein_distance_test") {
|
||||
+}
|
||||
+source_set("has_absl_stringify_test") {
|
||||
+}
|
||||
+source_set("has_ostream_operator_test") {
|
||||
+}
|
||||
source_set("match_test") {
|
||||
}
|
||||
+source_set("str_format_arg_test") {
|
||||
+}
|
||||
+source_set("str_format_bind_test") {
|
||||
+}
|
||||
+source_set("str_format_checker_test") {
|
||||
+}
|
||||
+source_set("str_format_convert_test") {
|
||||
+}
|
||||
+source_set("str_format_extension_test") {
|
||||
+}
|
||||
+source_set("str_format_output_test") {
|
||||
+}
|
||||
+source_set("str_format_parser_test") {
|
||||
+}
|
||||
+source_set("str_format_test") {
|
||||
+}
|
||||
source_set("str_replace_test") {
|
||||
}
|
||||
source_set("string_view_test") {
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_synchronization.gn src/build/linux/unbundle/absl_synchronization.gn
|
||||
--- src/build/linux/unbundle.old/absl_synchronization.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_synchronization.gn 2024-04-07 17:26:28.412783500 +0000
|
||||
@@ -20,3 +20,6 @@ source_set("synchronization") {
|
||||
deps = [ ":synchronization_shim" ]
|
||||
public_configs = [ ":system_absl_synchronization" ]
|
||||
}
|
||||
+
|
||||
+source_set("kernel_timeout_internal_test") {}
|
||||
+source_set("waiter_test") {}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_time.gn src/build/linux/unbundle/absl_time.gn
|
||||
--- src/build/linux/unbundle.old/absl_time.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_time.gn 2024-04-07 17:26:42.305628700 +0000
|
||||
@@ -19,3 +19,5 @@ source_set("time") {
|
||||
deps = [ ":time_shim" ]
|
||||
public_configs = [ ":system_absl_time" ]
|
||||
}
|
||||
+
|
||||
+source_set("time_test") {}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/absl_utility.gn src/build/linux/unbundle/absl_utility.gn
|
||||
--- src/build/linux/unbundle.old/absl_utility.gn 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/absl_utility.gn 2024-04-07 17:26:54.834405600 +0000
|
||||
@@ -15,3 +15,5 @@ source_set("utility") {
|
||||
deps = [ ":utility_shim" ]
|
||||
public_configs = [ ":system_absl_utility" ]
|
||||
}
|
||||
+
|
||||
+source_set("if_constexpr_test") {}
|
||||
diff '--color=auto' -uprN src/build/linux/unbundle.old/replace_gn_files.py src/build/linux/unbundle/replace_gn_files.py
|
||||
--- src/build/linux/unbundle.old/replace_gn_files.py 2024-04-02 09:53:10.734295000 +0000
|
||||
+++ src/build/linux/unbundle/replace_gn_files.py 2024-04-07 17:29:53.274515100 +0000
|
||||
@@ -20,6 +20,7 @@ REPLACEMENTS = {
|
||||
'absl_base': 'third_party/abseil-cpp/absl/base/BUILD.gn',
|
||||
'absl_cleanup': 'third_party/abseil-cpp/absl/cleanup/BUILD.gn',
|
||||
'absl_container': 'third_party/abseil-cpp/absl/container/BUILD.gn',
|
||||
+ 'absl_crc': 'third_party/abseil-cpp/absl/crc/BUILD.gn',
|
||||
'absl_debugging': 'third_party/abseil-cpp/absl/debugging/BUILD.gn',
|
||||
'absl_flags': 'third_party/abseil-cpp/absl/flags/BUILD.gn',
|
||||
'absl_functional': 'third_party/abseil-cpp/absl/functional/BUILD.gn',
|
@@ -1,80 +0,0 @@
|
||||
diff --git a/base/types/to_address.h.new b/base/types/to_address.h.new
|
||||
new file mode 100644
|
||||
index 0000000..ac71b01
|
||||
--- /dev/null
|
||||
+++ b/base/types/to_address.h
|
||||
@@ -0,0 +1,40 @@
|
||||
+// Copyright 2024 The Chromium Authors
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+#ifndef BASE_TYPES_TO_ADDRESS_H_
|
||||
+#define BASE_TYPES_TO_ADDRESS_H_
|
||||
+
|
||||
+#include <memory>
|
||||
+#include <type_traits>
|
||||
+
|
||||
+// SFINAE-compatible wrapper for `std::to_address()`.
|
||||
+//
|
||||
+// The standard does not require `std::to_address()` to be SFINAE-compatible
|
||||
+// when code attempts instantiation with non-pointer-like types, and libstdc++'s
|
||||
+// implementation hard errors. For the sake of templated code that wants simple,
|
||||
+// unified handling, Chromium instead uses this wrapper, which provides that
|
||||
+// guarantee. This allows code to use "`to_address()` would be valid here" as a
|
||||
+// constraint to detect pointer-like types.
|
||||
+namespace base {
|
||||
+
|
||||
+// Note that calling `std::to_address()` with a function pointer renders the
|
||||
+// program ill-formed.
|
||||
+template <typename T>
|
||||
+ requires(!std::is_function_v<T>)
|
||||
+constexpr T* to_address(T* p) noexcept {
|
||||
+ return p;
|
||||
+}
|
||||
+
|
||||
+// These constraints cover the cases where `std::to_address()`'s fancy pointer
|
||||
+// overload is well-specified.
|
||||
+template <typename P>
|
||||
+ requires requires(const P& p) { std::pointer_traits<P>::to_address(p); } ||
|
||||
+ requires(const P& p) { p.operator->(); }
|
||||
+constexpr auto to_address(const P& p) noexcept {
|
||||
+ return std::to_address(p);
|
||||
+}
|
||||
+
|
||||
+} // namespace base
|
||||
+
|
||||
+#endif // BASE_TYPES_TO_ADDRESS_H_
|
||||
diff --git a/mojo/public/cpp/bindings/type_converter.h b/mojo/public/cpp/bindings/type_converter.h.new
|
||||
index 2eddbb0..317245f 100644
|
||||
--- a/mojo/public/cpp/bindings/type_converter.h
|
||||
+++ b/mojo/public/cpp/bindings/type_converter.h
|
||||
@@ -11,6 +11,8 @@
|
||||
#include <memory>
|
||||
#include <type_traits>
|
||||
|
||||
+#include "base/types/to_address.h"
|
||||
+
|
||||
namespace mojo {
|
||||
|
||||
// NOTE: When possible, please consider using StructTraits / UnionTraits /
|
||||
@@ -99,16 +99,16 @@
|
||||
|
||||
template <typename T, typename U>
|
||||
requires requires(const U& obj) {
|
||||
- not std::is_pointer_v<U>;
|
||||
- { mojo::ConvertTo<T>(std::to_address(obj)) } -> std::same_as<T>;
|
||||
+ !std::is_pointer_v<U>;
|
||||
+ { mojo::ConvertTo<T>(base::to_address(obj)) } -> std::same_as<T>;
|
||||
}
|
||||
inline T ConvertTo(const U& obj) {
|
||||
- return mojo::ConvertTo<T>(std::to_address(obj));
|
||||
+ return mojo::ConvertTo<T>(base::to_address(obj));
|
||||
}
|
||||
|
||||
template <typename T, typename U>
|
||||
requires requires(const U& obj) {
|
||||
- not std::is_pointer_v<U>;
|
||||
+ !std::is_pointer_v<U>;
|
||||
TypeConverter<T, U>::Convert(obj);
|
||||
}
|
||||
inline T ConvertTo(const U& obj) {
|
68
chromium-123-qrcode.patch
Normal file
68
chromium-123-qrcode.patch
Normal file
@@ -0,0 +1,68 @@
|
||||
--- a/components/qr_code_generator/BUILD.gn
|
||||
+++ b/components/qr_code_generator/BUILD.gn
|
||||
@@ -38,24 +38,11 @@
|
||||
"qr_code_generator.h",
|
||||
]
|
||||
deps = [
|
||||
- ":qr_code_generator_ffi_glue",
|
||||
"//base",
|
||||
]
|
||||
public_deps = [
|
||||
":error",
|
||||
"//base",
|
||||
- ]
|
||||
-}
|
||||
-
|
||||
-rust_static_library("qr_code_generator_ffi_glue") {
|
||||
- allow_unsafe = true # Needed for FFI that underpins the `cxx` crate.
|
||||
- crate_root = "qr_code_generator_ffi_glue.rs"
|
||||
- sources = [ "qr_code_generator_ffi_glue.rs" ]
|
||||
- cxx_bindings = [ "qr_code_generator_ffi_glue.rs" ]
|
||||
- visibility = [ ":qr_code_generator" ]
|
||||
- deps = [
|
||||
- ":error",
|
||||
- "//third_party/rust/qr_code/v2:lib",
|
||||
]
|
||||
}
|
||||
|
||||
--- a/components/qr_code_generator/qr_code_generator.cc
|
||||
+++ b/components/qr_code_generator/qr_code_generator.cc
|
||||
@@ -8,9 +8,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "base/check_op.h"
|
||||
-#include "base/containers/span_rust.h"
|
||||
#include "base/numerics/safe_conversions.h"
|
||||
-#include "components/qr_code_generator/qr_code_generator_ffi_glue.rs.h"
|
||||
|
||||
namespace qr_code_generator {
|
||||
|
||||
@@ -22,27 +20,7 @@
|
||||
base::expected<GeneratedCode, Error> GenerateCode(
|
||||
base::span<const uint8_t> in,
|
||||
std::optional<int> min_version) {
|
||||
- rust::Slice<const uint8_t> rs_in = base::SpanToRustSlice(in);
|
||||
-
|
||||
- // `min_version` might come from a fuzzer and therefore we use a lenient
|
||||
- // `saturated_cast` instead of a `checked_cast`.
|
||||
- int16_t rs_min_version =
|
||||
- base::saturated_cast<int16_t>(min_version.value_or(0));
|
||||
-
|
||||
- std::vector<uint8_t> result_pixels;
|
||||
- size_t result_width = 0;
|
||||
- Error result_error = Error::kUnknownError;
|
||||
- bool result_is_success = generate_qr_code_using_rust(
|
||||
- rs_in, rs_min_version, result_pixels, result_width, result_error);
|
||||
-
|
||||
- if (!result_is_success) {
|
||||
- return base::unexpected(result_error);
|
||||
- }
|
||||
- GeneratedCode code;
|
||||
- code.data = std::move(result_pixels);
|
||||
- code.qr_size = base::checked_cast<int>(result_width);
|
||||
- CHECK_EQ(code.data.size(), static_cast<size_t>(code.qr_size * code.qr_size));
|
||||
- return code;
|
||||
+ return base::unexpected(Error::kUnknownError);
|
||||
}
|
||||
|
||||
} // namespace qr_code_generator
|
@@ -1,215 +0,0 @@
|
||||
diff '--color=auto' -urp src/build/linux/unbundle.orig/absl_flags.gn src/build/linux/unbundle/absl_flags.gn
|
||||
--- src/build/linux/unbundle.orig/absl_flags.gn
|
||||
+++ src/build/linux/unbundle/absl_flags.gn
|
||||
@@ -5,14 +5,36 @@ pkg_config("system_absl_flags") {
|
||||
packages = [ "absl_flags" ]
|
||||
}
|
||||
|
||||
+pkg_config("absl_flags_config") {
|
||||
+ packages = [ "absl_flags_config" ]
|
||||
+}
|
||||
+
|
||||
pkg_config("system_absl_flags_parse") {
|
||||
packages = [ "absl_flags_parse" ]
|
||||
}
|
||||
|
||||
+pkg_config("system_absl_flags_reflection") {
|
||||
+ packages = [ "absl_flags_reflection" ]
|
||||
+}
|
||||
+
|
||||
pkg_config("system_absl_flags_usage") {
|
||||
packages = [ "absl_flags_usage" ]
|
||||
}
|
||||
|
||||
+shim_headers("flags_config_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/flags/"
|
||||
+ headers = [
|
||||
+ "config.h",
|
||||
+ "usage_config.h",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+source_set("config") {
|
||||
+ deps = [ ":flags_config_shim" ]
|
||||
+ public_configs = [ ":absl_flags_config" ]
|
||||
+}
|
||||
+
|
||||
shim_headers("flag_shim") {
|
||||
root_path = "."
|
||||
prefix = "absl/flags/"
|
||||
@@ -38,6 +60,20 @@ source_set("parse") {
|
||||
public_configs = [ ":system_absl_flags_parse" ]
|
||||
}
|
||||
|
||||
+shim_headers("flags_reflection_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/flags/"
|
||||
+ headers = [
|
||||
+ "internal/registry.h",
|
||||
+ "reflection.h",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+source_set("reflection") {
|
||||
+ deps = [ ":flags_reflection_shim" ]
|
||||
+ public_configs = [ ":system_absl_flags_reflection" ]
|
||||
+}
|
||||
+
|
||||
shim_headers("usage_shim") {
|
||||
root_path = "."
|
||||
prefix = "absl/flags/"
|
||||
diff '--color=auto' -urp src/build/linux/unbundle.orig/absl_log.gn src/build/linux/unbundle/absl_log.gn
|
||||
--- src/build/linux/unbundle.orig/absl_log.gn
|
||||
+++ src/build/linux/unbundle/absl_log.gn
|
||||
@@ -13,9 +13,22 @@ pkg_config("system_absl_die_if_null") {
|
||||
packages = [ "absl_die_if_null" ]
|
||||
}
|
||||
|
||||
+pkg_config("system_absl_check") {
|
||||
+ packages = [ "absl_check" ]
|
||||
+}
|
||||
+
|
||||
pkg_config("system_absl_log") {
|
||||
packages = [ "absl_log" ]
|
||||
}
|
||||
+
|
||||
+pkg_config("system_absl_log_globals") {
|
||||
+ packages = [ "absl_log_globals" ]
|
||||
+}
|
||||
+
|
||||
+pkg_config("system_absl_log_initialize") {
|
||||
+ packages = [ "absl_log_initialize" ]
|
||||
+}
|
||||
+
|
||||
shim_headers("absl_check_shim") {
|
||||
root_path = "."
|
||||
prefix = "absl/log/"
|
||||
@@ -49,6 +62,39 @@ source_set("die_if_null") {
|
||||
public_configs = [ ":system_absl_die_if_null" ]
|
||||
}
|
||||
|
||||
+shim_headers("check_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/log/"
|
||||
+ headers = [ "check.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("check") {
|
||||
+ deps = [ ":check_shim" ]
|
||||
+ public_configs = [ ":system_absl_check" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("globals_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/log/"
|
||||
+ headers = [ "globals.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("globals") {
|
||||
+ deps = [ ":globals_shim" ]
|
||||
+ public_configs = [ ":system_absl_log_globals" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("initialize_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/log/"
|
||||
+ headers = [ "initialize.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("initialize") {
|
||||
+ deps = [ ":initialize_shim" ]
|
||||
+ public_configs = [ ":system_absl_log_initialize" ]
|
||||
+}
|
||||
+
|
||||
shim_headers("log_shim") {
|
||||
root_path = "."
|
||||
prefix = "absl/log/"
|
||||
diff '--color=auto' -urp src/build/linux/unbundle.orig/libwebp.gn src/build/linux/unbundle/libwebp.gn
|
||||
--- src/build/linux/unbundle.orig/libwebp.gn
|
||||
+++ src/build/linux/unbundle/libwebp.gn
|
||||
@@ -33,3 +33,7 @@ source_set("libwebp_webp") {
|
||||
group("libwebp") {
|
||||
deps = [ ":libwebp_webp" ]
|
||||
}
|
||||
+
|
||||
+source_set("libwebp_sharpyuv") {
|
||||
+ # Unused in Chromium. Empty to enable building with old webp which does not have sharpyuv
|
||||
+}
|
||||
diff '--color=auto' -urp src/build/linux/unbundle.orig/re2.gn src/build/linux/unbundle/re2.gn
|
||||
--- src/build/linux/unbundle.orig/re2.gn
|
||||
+++ src/build/linux/unbundle/re2.gn
|
||||
@@ -3,6 +3,7 @@
|
||||
# found in the LICENSE file.
|
||||
|
||||
import("//build/config/c++/c++.gni")
|
||||
+import("//build/config/linux/pkg_config.gni")
|
||||
import("//build/shim_headers.gni")
|
||||
|
||||
assert(!use_custom_libcxx,
|
||||
@@ -10,6 +11,10 @@ assert(!use_custom_libcxx,
|
||||
"use_custom_libcxx=true because the library's interface relies on " +
|
||||
"libstdc++'s std::string and std::vector.")
|
||||
|
||||
+pkg_config("re2_config") {
|
||||
+ packages = [ "re2" ]
|
||||
+}
|
||||
+
|
||||
shim_headers("re2_shim") {
|
||||
root_path = "src"
|
||||
headers = [
|
||||
@@ -23,5 +28,5 @@ shim_headers("re2_shim") {
|
||||
|
||||
source_set("re2") {
|
||||
deps = [ ":re2_shim" ]
|
||||
- libs = [ "re2" ]
|
||||
+ public_configs = [ ":re2_config" ]
|
||||
}
|
||||
--- src/build/linux/unbundle/absl_container.gn.orig
|
||||
+++ src/build/linux/unbundle/absl_container.gn
|
||||
@@ -117,6 +117,8 @@ source_set("flat_hash_map_test") {
|
||||
}
|
||||
source_set("flat_hash_set_test") {
|
||||
}
|
||||
+source_set("hash_function_defaults_test") {
|
||||
+}
|
||||
source_set("inlined_vector_test") {
|
||||
}
|
||||
source_set("node_slot_policy_test") {
|
||||
--- src/build/linux/unbundle/replace_gn_files.py.orig
|
||||
+++ src/build/linux/unbundle/replace_gn_files.py
|
||||
@@ -80,6 +80,7 @@ REPLACEMENTS = {
|
||||
'vulkan_memory_allocator' : 'third_party/vulkan_memory_allocator/BUILD.gn',
|
||||
'woff2': 'third_party/woff2/BUILD.gn',
|
||||
'zlib': 'third_party/zlib/BUILD.gn',
|
||||
+ 'zstd': 'third_party/zstd/BUILD.gn',
|
||||
}
|
||||
|
||||
|
||||
--- /dev/null
|
||||
+++ src/build/linux/unbundle/zstd.gn
|
||||
@@ -0,0 +1,24 @@
|
||||
+import("//build/config/linux/pkg_config.gni")
|
||||
+import("//build/shim_headers.gni")
|
||||
+
|
||||
+pkg_config("system_zstd") {
|
||||
+ packages = [ "libzstd" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("zstd_shim") {
|
||||
+ root_path = "src/lib"
|
||||
+ headers = [
|
||||
+ "zstd.h",
|
||||
+ "zstd_errors.h",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+source_set("decompress") {
|
||||
+ deps = [ ":zstd_shim" ]
|
||||
+ public_configs = [ ":system_zstd" ]
|
||||
+}
|
||||
+
|
||||
+source_set("headers") {
|
||||
+ deps = [ ":zstd_shim" ]
|
||||
+ public_configs = [ ":system_zstd" ]
|
||||
+}
|
9
chromium-125-cloud_authenticator.patch
Normal file
9
chromium-125-cloud_authenticator.patch
Normal file
@@ -0,0 +1,9 @@
|
||||
--- a/chrome/browser/webauthn/BUILD.gn
|
||||
+++ b/chrome/browser/webauthn/BUILD.gn
|
||||
@@ -26,6 +26,5 @@
|
||||
"//url",
|
||||
]
|
||||
|
||||
- data_deps = [ "//third_party/cloud_authenticator/test/local_service:cloud_authenticator_test_service" ]
|
||||
}
|
||||
}
|
12
chromium-127-cargo_crate.patch
Normal file
12
chromium-127-cargo_crate.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
--- a/build/rust/cargo_crate.gni
|
||||
+++ b/build/rust/cargo_crate.gni
|
||||
@@ -5,6 +5,8 @@
|
||||
import("//build/rust/rust_executable.gni")
|
||||
import("//build/rust/rust_macro.gni")
|
||||
import("//build/rust/rust_static_library.gni")
|
||||
+
|
||||
+rust_sysroot=""
|
||||
|
||||
# This template allows for building Cargo crates within gn.
|
||||
#
|
||||
|
54
chromium-127-crabby.patch
Normal file
54
chromium-127-crabby.patch
Normal file
@@ -0,0 +1,54 @@
|
||||
--- a/third_party/blink/renderer/platform/image-decoders/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/platform/image-decoders/BUILD.gn
|
||||
@@ -77,14 +77,6 @@
|
||||
"//ui/gfx/geometry:geometry_skia",
|
||||
]
|
||||
|
||||
- if (enable_av1_decoder) {
|
||||
- sources += [
|
||||
- "avif/crabbyavif_image_decoder.cc",
|
||||
- "avif/crabbyavif_image_decoder.h",
|
||||
- ]
|
||||
-
|
||||
- deps += [ "//third_party/crabbyavif" ]
|
||||
- }
|
||||
|
||||
if (enable_rust_png) {
|
||||
sources += [
|
||||
--- a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
|
||||
+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
|
||||
@@ -51,9 +51,6 @@
|
||||
#include "ui/gfx/geometry/size.h"
|
||||
#include "ui/gfx/geometry/size_conversions.h"
|
||||
|
||||
-#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
-#include "third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder.h"
|
||||
-#endif
|
||||
|
||||
namespace blink {
|
||||
|
||||
@@ -196,11 +193,6 @@
|
||||
if (MatchesBMPSignature(contents)) {
|
||||
return "image/bmp";
|
||||
}
|
||||
-#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
- if (CrabbyAVIFImageDecoder::MatchesAVIFSignature(fast_reader)) {
|
||||
- return "image/avif";
|
||||
- }
|
||||
-#endif
|
||||
|
||||
return String();
|
||||
}
|
||||
@@ -305,12 +297,6 @@
|
||||
} else if (mime_type == "image/bmp" || mime_type == "image/x-xbitmap") {
|
||||
decoder = std::make_unique<BMPImageDecoder>(alpha_option, color_behavior,
|
||||
max_decoded_bytes);
|
||||
-#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
- } else if (mime_type == "image/avif") {
|
||||
- decoder = std::make_unique<CrabbyAVIFImageDecoder>(
|
||||
- alpha_option, high_bit_depth_decoding_option, color_behavior, aux_image,
|
||||
- max_decoded_bytes, animation_option);
|
||||
-#endif
|
||||
}
|
||||
|
||||
if (decoder) {
|
@@ -0,0 +1,12 @@
|
||||
diff -up chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc.me chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc
|
||||
--- chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc.me 2025-02-05 13:28:17.782881439 +0100
|
||||
+++ chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc 2025-02-05 13:33:15.256928027 +0100
|
||||
@@ -111,7 +111,7 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol
|
||||
|
||||
// We don't allow H.264 parsing during demuxing since we have our own parser
|
||||
// and the ffmpeg one increases memory usage unnecessarily.
|
||||
- format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
|
||||
+ // format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
|
||||
|
||||
// Ensures format parsing errors will bail out. From an audit on 11/2017, all
|
||||
// instances were real failures. Solves bugs like http://crbug.com/710791.
|
216
chromium-130-fontations.patch
Normal file
216
chromium-130-fontations.patch
Normal file
@@ -0,0 +1,216 @@
|
||||
--- a/skia/BUILD.gn
|
||||
+++ b/skia/BUILD.gn
|
||||
@@ -8,7 +8,6 @@ import("//build/config/features.gni")
|
||||
import("//build/config/freetype/freetype.gni")
|
||||
import("//build/config/rust.gni")
|
||||
import("//build/config/sanitizers/sanitizers.gni")
|
||||
-import("//build/rust/rust_static_library.gni")
|
||||
import("//gpu/vulkan/features.gni")
|
||||
import("//skia/skia.gni")
|
||||
import("//testing/libfuzzer/fuzzer_test.gni")
|
||||
@@ -37,27 +36,6 @@ buildflag_header("buildflags") {
|
||||
]
|
||||
}
|
||||
|
||||
-source_set("path_bridge") {
|
||||
- sources = skia_fontations_path_bridge_sources
|
||||
-}
|
||||
-
|
||||
-rust_static_library("bridge_rust_side") {
|
||||
- allow_unsafe = true
|
||||
- crate_root = skia_fontations_bridge_root
|
||||
- sources = skia_ports_fontations_bridge_rust_side_sources
|
||||
- cxx_bindings = [ skia_fontations_bridge_root ]
|
||||
- deps = [
|
||||
- ":path_bridge",
|
||||
- "//third_party/rust/font_types/v0_8:lib",
|
||||
- "//third_party/rust/read_fonts/v0_27:lib",
|
||||
- "//third_party/rust/skrifa/v0_29:lib",
|
||||
- ]
|
||||
- configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
- configs += [
|
||||
- ":skia_config",
|
||||
- "//build/config/compiler:no_chromium_code",
|
||||
- ]
|
||||
-}
|
||||
|
||||
# External-facing config for dependent code.
|
||||
config("skia_config") {
|
||||
@@ -190,7 +168,6 @@ config("skia_library_config") {
|
||||
if (use_blink && enable_freetype) {
|
||||
defines += [
|
||||
"SK_TYPEFACE_FACTORY_FREETYPE",
|
||||
- "SK_TYPEFACE_FACTORY_FONTATIONS",
|
||||
"SK_FONTMGR_FREETYPE_EMPTY_AVAILABLE",
|
||||
]
|
||||
}
|
||||
@@ -428,14 +405,6 @@ component("skia") {
|
||||
public += skia_ports_fontmgr_empty_public
|
||||
}
|
||||
sources += skia_ports_typeface_proxy_sources
|
||||
- sources += skia_ports_typeface_fontations_sources
|
||||
- sources += skia_ports_fontmgr_fontations_sources
|
||||
-
|
||||
- # Fontations Rust/C++ bridge interfaces.
|
||||
- deps += [
|
||||
- ":bridge_rust_side",
|
||||
- ":path_bridge",
|
||||
- ]
|
||||
}
|
||||
|
||||
if (is_win) {
|
||||
@@ -730,13 +699,7 @@ skia_source_set("skia_core_and_effects")
|
||||
# skia_core_and_effects rather than the other way around.
|
||||
public_deps = [ "//third_party/dawn/include/dawn:cpp_headers" ]
|
||||
}
|
||||
- if (use_blink) {
|
||||
- # Fontations Rust/C++ bridge interfaces, needed by SkTypeface.
|
||||
- deps += [
|
||||
- ":bridge_rust_side",
|
||||
- ":path_bridge",
|
||||
- ]
|
||||
- }
|
||||
+
|
||||
visibility = [ ":skia" ]
|
||||
}
|
||||
|
||||
--- a/skia/ext/font_utils.cc
|
||||
+++ b/skia/ext/font_utils.cc
|
||||
@@ -69,13 +69,7 @@ static sk_sp<SkFontMgr> fontmgr_factory(
|
||||
return SkFontMgr_New_CoreText(nullptr);
|
||||
#elif BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
|
||||
sk_sp<SkFontConfigInterface> fci(SkFontConfigInterface::RefGlobal());
|
||||
- if (base::FeatureList::IsEnabled(skia::kFontationsLinuxSystemFonts)) {
|
||||
- return fci ? SkFontMgr_New_FCI(std::move(fci),
|
||||
- SkFontScanner_Make_Fontations())
|
||||
- : nullptr;
|
||||
- } else {
|
||||
- return fci ? SkFontMgr_New_FCI(std::move(fci)) : nullptr;
|
||||
- }
|
||||
+ return fci ? SkFontMgr_New_FCI(std::move(fci)) : nullptr;
|
||||
#elif BUILDFLAG(IS_FUCHSIA)
|
||||
fuchsia::fonts::ProviderSyncPtr provider;
|
||||
base::ComponentContextForProcess()->svc()->Connect(provider.NewRequest());
|
||||
--- a/third_party/blink/renderer/platform/fonts/skia/sktypeface_factory.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/skia/sktypeface_factory.cc
|
||||
@@ -29,11 +29,7 @@ sk_sp<SkTypeface> SkTypeface_Factory::Fr
|
||||
font_identity.fID = config_id;
|
||||
font_identity.fTTCIndex = ttc_index;
|
||||
|
||||
- if (base::FeatureList::IsEnabled(skia::kFontationsLinuxSystemFonts)) {
|
||||
- return fci->makeTypeface(font_identity, SkFontMgr_New_Fontations_Empty());
|
||||
- } else {
|
||||
return fci->makeTypeface(font_identity, skia::DefaultFontMgr());
|
||||
- }
|
||||
#else
|
||||
NOTREACHED();
|
||||
#endif
|
||||
@@ -46,12 +42,7 @@ sk_sp<SkTypeface> SkTypeface_Factory::Fr
|
||||
#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) && \
|
||||
!BUILDFLAG(IS_APPLE)
|
||||
|
||||
- if (base::FeatureList::IsEnabled(skia::kFontationsLinuxSystemFonts)) {
|
||||
- return SkFontMgr_New_Fontations_Empty()->makeFromFile(filename.c_str(),
|
||||
- ttc_index);
|
||||
- } else {
|
||||
return skia::DefaultFontMgr()->makeFromFile(filename.c_str(), ttc_index);
|
||||
- }
|
||||
#else
|
||||
NOTREACHED();
|
||||
#endif
|
||||
--- a/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc
|
||||
@@ -12,7 +12,6 @@
|
||||
#include "third_party/blink/renderer/platform/fonts/opentype/font_format_check.h"
|
||||
#include "third_party/freetype_buildflags.h"
|
||||
#include "third_party/skia/include/core/SkTypeface.h"
|
||||
-#include "third_party/skia/include/ports/SkTypeface_fontations.h"
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
#include "third_party/blink/renderer/platform/fonts/win/dwrite_font_format_support.h"
|
||||
@@ -38,11 +37,7 @@ bool IsWin() {
|
||||
}
|
||||
|
||||
bool IsFreeTypeSystemRasterizer() {
|
||||
-#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_APPLE)
|
||||
return true;
|
||||
-#else
|
||||
- return false;
|
||||
-#endif
|
||||
}
|
||||
|
||||
sk_sp<SkTypeface> MakeTypefaceDefaultFontMgr(sk_sp<SkData> data) {
|
||||
@@ -50,13 +45,7 @@ sk_sp<SkTypeface> MakeTypefaceDefaultFon
|
||||
return FontCache::Get().FontManager()->makeFromData(data, 0);
|
||||
#endif
|
||||
|
||||
-#if BUILDFLAG(IS_APPLE)
|
||||
return skia::DefaultFontMgr()->makeFromData(data, 0);
|
||||
-#endif
|
||||
-
|
||||
-#if !(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE))
|
||||
- return SkTypeface_Make_Fontations(data, SkFontArguments());
|
||||
-#endif
|
||||
}
|
||||
|
||||
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE)
|
||||
@@ -65,10 +54,6 @@ sk_sp<SkTypeface> MakeTypefaceFallback(s
|
||||
}
|
||||
#endif
|
||||
|
||||
-sk_sp<SkTypeface> MakeTypefaceFontations(sk_sp<SkData> data) {
|
||||
- return SkTypeface_Make_Fontations(data, SkFontArguments());
|
||||
-}
|
||||
-
|
||||
sk_sp<SkTypeface> MakeVariationsTypeface(
|
||||
sk_sp<SkData> data,
|
||||
const WebFontTypefaceFactory::FontInstantiator& instantiator) {
|
||||
@@ -88,9 +73,6 @@ sk_sp<SkTypeface> MakeSbixTypeface(
|
||||
const WebFontTypefaceFactory::FontInstantiator& instantiator) {
|
||||
// If we're on a OS with FreeType as backend, or on Windows, where we used to
|
||||
// use FreeType for SBIX, switch to Fontations for SBIX.
|
||||
- if (IsFreeTypeSystemRasterizer() || IsWin()) {
|
||||
- return instantiator.make_fontations(data);
|
||||
- }
|
||||
|
||||
// Remaining case, on Mac, CoreText can handle creating SBIX fonts.
|
||||
return instantiator.make_system(data);
|
||||
@@ -99,29 +81,21 @@ sk_sp<SkTypeface> MakeSbixTypeface(
|
||||
sk_sp<SkTypeface> MakeColrV0Typeface(
|
||||
sk_sp<SkData> data,
|
||||
const WebFontTypefaceFactory::FontInstantiator& instantiator) {
|
||||
- if (IsWin()) {
|
||||
// On Windows Skia's DirectWrite
|
||||
// backend handles COLRv0.
|
||||
return instantiator.make_system(data);
|
||||
- }
|
||||
- return instantiator.make_fontations(data);
|
||||
}
|
||||
|
||||
sk_sp<SkTypeface> MakeColrV0VariationsTypeface(
|
||||
sk_sp<SkData> data,
|
||||
const WebFontTypefaceFactory::FontInstantiator& instantiator) {
|
||||
-#if BUILDFLAG(IS_WIN)
|
||||
- if (DWriteVersionSupportsVariations()) {
|
||||
return instantiator.make_system(data);
|
||||
- }
|
||||
-#endif
|
||||
- return instantiator.make_fontations(data);
|
||||
}
|
||||
|
||||
sk_sp<SkTypeface> MakeFontationsFallbackPreferred(
|
||||
sk_sp<SkData> data,
|
||||
const WebFontTypefaceFactory::FontInstantiator& instantiator) {
|
||||
- return instantiator.make_fontations(data);
|
||||
+ return instantiator.make_system(data);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@@ -131,7 +105,6 @@ bool WebFontTypefaceFactory::CreateTypef
|
||||
const FontFormatCheck format_check(data);
|
||||
const FontInstantiator instantiator = {
|
||||
MakeTypefaceDefaultFontMgr,
|
||||
- MakeTypefaceFontations,
|
||||
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE)
|
||||
MakeTypefaceFallback,
|
||||
#endif
|
331
chromium-132-no-rust.patch
Normal file
331
chromium-132-no-rust.patch
Normal file
@@ -0,0 +1,331 @@
|
||||
--- a/BUILD.gn
|
||||
+++ b/BUILD.gn
|
||||
@@ -27,7 +27,6 @@ import("//extensions/buildflags/buildfla
|
||||
import("//gpu/vulkan/features.gni")
|
||||
import("//media/gpu/args.gni")
|
||||
import("//media/media_options.gni")
|
||||
-import("//mojo/public/rust/rust.gni")
|
||||
import("//pdf/features.gni")
|
||||
import("//ppapi/buildflags/buildflags.gni")
|
||||
import("//printing/buildflags/buildflags.gni")
|
||||
@@ -885,17 +884,10 @@ group("all_rust") {
|
||||
|
||||
deps = [
|
||||
":rust_build_tests",
|
||||
- "//base:base_unittests", # There is rust stuff in here.
|
||||
- "//third_party/cloud_authenticator/processor",
|
||||
]
|
||||
|
||||
- # TODO(https://crbug.com/405379314): This fails to build on some iOS ASAN
|
||||
- # builders.
|
||||
- if (!is_ios || !is_asan) {
|
||||
- deps += [ "//testing/rust_gtest_interop:rust_gtest_interop_unittests" ]
|
||||
- }
|
||||
|
||||
- if (enable_rust_mojo) {
|
||||
+ if (false) {
|
||||
deps += [
|
||||
"//mojo/public/rust:mojo_rust",
|
||||
"//mojo/public/rust:mojo_rust_integration_unittests",
|
||||
--- a/base/BUILD.gn
|
||||
+++ b/base/BUILD.gn
|
||||
@@ -36,8 +36,6 @@ import("//build/config/sanitizers/saniti
|
||||
import("//build/config/sysroot.gni")
|
||||
import("//build/config/ui.gni")
|
||||
import("//build/nocompile.gni")
|
||||
-import("//build/rust/rust_bindgen.gni")
|
||||
-import("//build/rust/rust_static_library.gni")
|
||||
import("//build/util/process_version.gni")
|
||||
import("//build_overrides/build.gni")
|
||||
import("//testing/libfuzzer/fuzzer_test.gni")
|
||||
@@ -1053,11 +1051,6 @@ component("base") {
|
||||
# Used by metrics/crc32, except on NaCl builds.
|
||||
deps += [ "//third_party/zlib" ]
|
||||
|
||||
- # NaCl does not support Rust.
|
||||
- deps += [
|
||||
- ":rust_logger",
|
||||
- "//third_party/rust/serde_json_lenient/v0_2/wrapper",
|
||||
- ]
|
||||
}
|
||||
|
||||
# `raw_ptr` cannot be made a component due to CRT symbol issues.
|
||||
@@ -1093,7 +1086,7 @@ component("base") {
|
||||
"//third_party/abseil-cpp:absl",
|
||||
]
|
||||
|
||||
- if (!is_nacl) {
|
||||
+ if (is_nacl) {
|
||||
sources += [
|
||||
"containers/span_rust.h",
|
||||
"strings/string_view_rust.h",
|
||||
@@ -1598,8 +1591,6 @@ component("base") {
|
||||
"files/scoped_temp_file.h",
|
||||
"json/json_file_value_serializer.cc",
|
||||
"json/json_file_value_serializer.h",
|
||||
- "logging/rust_log_integration.cc",
|
||||
- "logging/rust_log_integration.h",
|
||||
"memory/discardable_memory.cc",
|
||||
"memory/discardable_memory.h",
|
||||
"memory/discardable_memory_allocator.cc",
|
||||
@@ -2542,62 +2533,6 @@ component("base") {
|
||||
}
|
||||
}
|
||||
|
||||
-rust_bindgen("logging_log_severity_bindgen") {
|
||||
- # TODO(danakj): Maybe combine all base bindgen targets, or all base/logging
|
||||
- # ones even) into a single GN target? But the GN rule needs to handle multiple
|
||||
- # headers then.
|
||||
- header = "logging/log_severity.h"
|
||||
- cpp = true
|
||||
- visibility = [ ":*" ]
|
||||
-
|
||||
- # Transitive generated header dependency.
|
||||
- deps = [ ":debugging_buildflags" ]
|
||||
-}
|
||||
-
|
||||
-rust_static_library("rust_logger") {
|
||||
- allow_unsafe = true # Unsafe needed for FFI.
|
||||
- deps = [
|
||||
- ":logging_log_severity_bindgen",
|
||||
- ":tracing_buildflags",
|
||||
- "//build:chromeos_buildflags",
|
||||
- "//third_party/rust/log/v0_4:lib",
|
||||
-
|
||||
- # Needed because of circular dependency: base depends on this target and by
|
||||
- # extension the cxx-generated C++ code, but the cxx-generated code includes
|
||||
- # base headers and calls base code. This seems to generally not cause
|
||||
- # issues, except for partition_alloc which applies configs when depended on.
|
||||
- #
|
||||
- # This allows the generated C++ code to transitively include partition alloc
|
||||
- # headers without issue.
|
||||
- #
|
||||
- # TODO(collinbaker): determine how to handle these cxx bindings-induced
|
||||
- # circular dependencies more robustly.
|
||||
- "//base/allocator/partition_allocator:raw_ptr",
|
||||
-
|
||||
- # Needed because logging/rust_logger.rs contains:
|
||||
- # include!("base/logging/rust_log_integration.h");
|
||||
- # rust_log_integration.h ends up transitively #including
|
||||
- # debug/debugging_buildflags.h, which is a generated header that needs to
|
||||
- # be written first.
|
||||
- #
|
||||
- # Technically it would be more correct to depend on :base, which is the
|
||||
- # target for rust_log_integration.h, but that's not possible due to circular
|
||||
- # dependencies.
|
||||
- #
|
||||
- # Note if this is removed the build may still work by accident because
|
||||
- # debug/debugging_buildflags.h still ends up being generated through a
|
||||
- # dependency chain via :logging_log_severity_bindgen. But we should not
|
||||
- # rely on that.
|
||||
- #
|
||||
- # See also https://crbug.com/406267472.
|
||||
- ":debugging_buildflags",
|
||||
- ]
|
||||
- visibility = [ ":base" ]
|
||||
- sources = [ "logging/rust_logger.rs" ]
|
||||
- crate_root = "logging/rust_logger.rs"
|
||||
-
|
||||
- cxx_bindings = [ "logging/rust_logger.rs" ]
|
||||
-}
|
||||
|
||||
if (is_linux || is_chromeos) {
|
||||
# Split out as a separate target for two reasons:
|
||||
@@ -3736,7 +3671,7 @@ test("base_unittests") {
|
||||
sources += [ "location_unittest.cc" ]
|
||||
}
|
||||
|
||||
- if (!is_nacl) {
|
||||
+ if (is_nacl) {
|
||||
sources += [
|
||||
"containers/span_rust_unittest.cc",
|
||||
"strings/string_piece_rust_unittest.cc",
|
||||
@@ -3791,7 +3726,7 @@ test("base_unittests") {
|
||||
deps += [ "allocator/partition_allocator/src/partition_alloc:unittests" ]
|
||||
}
|
||||
|
||||
- if (!is_nacl) {
|
||||
+ if (is_nacl) {
|
||||
deps += [ "//build/rust:cxx_cppdeps" ]
|
||||
}
|
||||
|
||||
--- a/base/json/json_reader.cc
|
||||
+++ b/base/json/json_reader.cc
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "build/build_config.h"
|
||||
|
||||
-#if BUILDFLAG(IS_NACL)
|
||||
+#if !BUILDFLAG(IS_NACL)
|
||||
#include "base/json/json_parser.h"
|
||||
#else
|
||||
#include "base/strings/string_view_rust.h"
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
// TODO(crbug.com/40811643): Move the C++ parser into components/nacl to just
|
||||
// run in-process there. Don't compile base::JSONReader on NaCL at all.
|
||||
-#if !BUILDFLAG(IS_NACL)
|
||||
+#if BUILDFLAG(IS_NACL)
|
||||
|
||||
namespace {
|
||||
const char kSecurityJsonParsingTime[] = "Security.JSONParser.ParsingTime";
|
||||
@@ -144,7 +144,7 @@ std::string JSONReader::Error::ToString(
|
||||
std::optional<Value> JSONReader::Read(std::string_view json,
|
||||
int options,
|
||||
size_t max_depth) {
|
||||
-#if BUILDFLAG(IS_NACL)
|
||||
+#if !BUILDFLAG(IS_NACL)
|
||||
internal::JSONParser parser(options, max_depth);
|
||||
return parser.Parse(json);
|
||||
#else // BUILDFLAG(IS_NACL)
|
||||
@@ -185,7 +185,7 @@ std::optional<Value::List> JSONReader::R
|
||||
JSONReader::Result JSONReader::ReadAndReturnValueWithError(
|
||||
std::string_view json,
|
||||
int options) {
|
||||
-#if BUILDFLAG(IS_NACL)
|
||||
+#if !BUILDFLAG(IS_NACL)
|
||||
internal::JSONParser parser(options);
|
||||
auto value = parser.Parse(json);
|
||||
if (!value) {
|
||||
--- a/base/logging.cc
|
||||
+++ b/base/logging.cc
|
||||
@@ -117,7 +117,7 @@ typedef FILE* FileHandle;
|
||||
#include "base/fuchsia/scoped_fx_logger.h"
|
||||
#endif
|
||||
|
||||
-#if !BUILDFLAG(IS_NACL)
|
||||
+#if BUILDFLAG(IS_NACL)
|
||||
#include "base/logging/rust_logger.rs.h"
|
||||
#endif
|
||||
|
||||
@@ -529,7 +529,7 @@ bool BaseInitLoggingImpl(const LoggingSe
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if !BUILDFLAG(IS_NACL)
|
||||
+#if BUILDFLAG(IS_NACL)
|
||||
// Connects Rust logging with the //base logging functionality.
|
||||
internal::init_rust_log_crate();
|
||||
#endif
|
||||
--- a/base/test/BUILD.gn
|
||||
+++ b/base/test/BUILD.gn
|
||||
@@ -6,7 +6,6 @@ import("//build/compiled_action.gni")
|
||||
import("//build/config/features.gni")
|
||||
import("//build/config/nacl/config.gni")
|
||||
import("//build/config/ui.gni")
|
||||
-import("//build/rust/rust_static_library.gni")
|
||||
import("//build_overrides/build.gni")
|
||||
import("//third_party/protobuf/proto_library.gni")
|
||||
|
||||
@@ -38,16 +37,6 @@ static_library("test_config") {
|
||||
]
|
||||
}
|
||||
|
||||
-rust_static_library("test_rust_logger_consumer") {
|
||||
- allow_unsafe = true # Unsafe needed for FFI
|
||||
- testonly = true
|
||||
- deps = [ "//third_party/rust/log/v0_4:lib" ]
|
||||
- sources = [ "logging/test_rust_logger_consumer.rs" ]
|
||||
-
|
||||
- crate_root = "logging/test_rust_logger_consumer.rs"
|
||||
-
|
||||
- cxx_bindings = [ "logging/test_rust_logger_consumer.rs" ]
|
||||
-}
|
||||
|
||||
static_library("test_support") {
|
||||
testonly = true
|
||||
@@ -192,7 +181,6 @@ static_library("test_support") {
|
||||
|
||||
public_deps = [
|
||||
":test_config",
|
||||
- ":test_rust_logger_consumer",
|
||||
"//base",
|
||||
"//base:base_static",
|
||||
"//base:i18n",
|
||||
--- a/services/on_device_model/ml/BUILD.gn
|
||||
+++ b/services/on_device_model/ml/BUILD.gn
|
||||
@@ -71,7 +71,6 @@ if (use_blink || (is_ios && build_with_i
|
||||
]
|
||||
if (enable_constraints) {
|
||||
defines += [ "ENABLE_ON_DEVICE_CONSTRAINTS" ]
|
||||
- deps += [ "//third_party/rust/llguidance/v0_7:lib" ]
|
||||
}
|
||||
if (use_blink) {
|
||||
deps += [ "//gpu/config" ]
|
||||
--- a/services/on_device_model/ml/chrome_ml.cc
|
||||
+++ b/services/on_device_model/ml/chrome_ml.cc
|
||||
@@ -24,7 +24,6 @@
|
||||
#include "third_party/dawn/include/dawn/dawn_proc.h"
|
||||
#include "third_party/dawn/include/dawn/native/DawnNative.h"
|
||||
#include "third_party/dawn/include/dawn/webgpu_cpp.h"
|
||||
-#include "third_party/rust/chromium_crates_io/vendor/llguidance-v0_7/llguidance.h"
|
||||
|
||||
#if !BUILDFLAG(IS_IOS)
|
||||
#include "gpu/config/gpu_info_collector.h"
|
||||
--- a/third_party/blink/common/BUILD.gn
|
||||
+++ b/third_party/blink/common/BUILD.gn
|
||||
@@ -311,7 +311,6 @@ source_set("common") {
|
||||
"//services/metrics/public/mojom:mojom",
|
||||
"//services/network/public/cpp:cpp",
|
||||
"//services/network/public/mojom:mojom_permissions_policy",
|
||||
- "//third_party/blink/common/rust_crash",
|
||||
"//third_party/blink/public/common:buildflags",
|
||||
"//third_party/re2",
|
||||
"//ui/base:base",
|
||||
--- a/third_party/blink/common/chrome_debug_urls.cc
|
||||
+++ b/third_party/blink/common/chrome_debug_urls.cc
|
||||
@@ -11,7 +11,6 @@
|
||||
#include "base/threading/platform_thread.h"
|
||||
#include "build/build_config.h"
|
||||
#include "third_party/blink/common/crash_helpers.h"
|
||||
-#include "third_party/blink/common/rust_crash/src/lib.rs.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
@@ -117,7 +116,7 @@ NOINLINE void MaybeTriggerAsanError(cons
|
||||
// Ensure that ASAN works even in Rust code.
|
||||
LOG(ERROR) << "Intentionally causing ASAN heap overflow in Rust"
|
||||
<< " because user navigated to " << url.spec();
|
||||
- crash_in_rust_with_overflow();
|
||||
+ //crash_in_rust_with_overflow();
|
||||
}
|
||||
}
|
||||
#endif // ADDRESS_SANITIZER
|
||||
@@ -137,7 +136,7 @@ void HandleChromeDebugURL(const GURL& ur
|
||||
} else if (url == kChromeUICrashRustURL) {
|
||||
// Cause a typical crash in Rust code, so we can test that call stack
|
||||
// collection and symbol mangling work across the language boundary.
|
||||
- crash_in_rust();
|
||||
+ //crash_in_rust();
|
||||
} else if (url == kChromeUIDumpURL) {
|
||||
// This URL will only correctly create a crash dump file if content is
|
||||
// hosted in a process that has correctly called
|
||||
--- a/third_party/breakpad/BUILD.gn
|
||||
+++ b/third_party/breakpad/BUILD.gn
|
||||
@@ -494,12 +494,7 @@ if (is_mac) {
|
||||
# For breakpad/src/common/stabs_reader.h.
|
||||
defines = [ "HAVE_MACH_O_NLIST_H" ]
|
||||
|
||||
- # Rust demangle support.
|
||||
- deps = [ "//third_party/rust/rustc_demangle_capi/v0_1:lib" ]
|
||||
- defines += [ "HAVE_RUSTC_DEMANGLE" ]
|
||||
- include_dirs += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-v0_1/include" ]
|
||||
- sources += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-v0_1/include/rustc_demangle.h" ]
|
||||
- }
|
||||
+ }
|
||||
test("breakpad_unittests") {
|
||||
sources = [ "breakpad/src/common/module_unittest.cc" ]
|
||||
deps = [
|
||||
@@ -742,12 +737,6 @@ if (is_linux || is_chromeos || is_androi
|
||||
|
||||
include_dirs = [ "breakpad/src" ]
|
||||
|
||||
- # Rust demangle support.
|
||||
- deps = [ "//third_party/rust/rustc_demangle_capi/v0_1:lib" ]
|
||||
- defines += [ "HAVE_RUSTC_DEMANGLE" ]
|
||||
- include_dirs += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-v0_1/include" ]
|
||||
- sources += [ "//third_party/rust/chromium_crates_io/vendor/rustc-demangle-capi-v0_1/include/rustc_demangle.h" ]
|
||||
-
|
||||
libs = [ "z" ]
|
||||
}
|
||||
} else if (current_toolchain == default_toolchain) {
|
@@ -21,40 +21,32 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
media/filters/ffmpeg_demuxer.cc | 16 ++++++++++++++++
|
||||
2 files changed, 20 insertions(+)
|
||||
|
||||
Index: electron-17.1.2/media/filters/audio_decoder_unittest.cc
|
||||
Index: chromium-126.0.6478.8/media/filters/ffmpeg_demuxer.cc
|
||||
===================================================================
|
||||
--- electron-17.1.2.orig/media/filters/audio_decoder_unittest.cc 2022-03-11 08:49:30.740949416 +0100
|
||||
+++ electron-17.1.2/media/filters/audio_decoder_unittest.cc 2022-03-11 09:17:36.916088893 +0100
|
||||
@@ -102,7 +102,11 @@ void SetDiscardPadding(AVPacket* packet,
|
||||
--- chromium-126.0.6478.8.orig/media/filters/ffmpeg_demuxer.cc
|
||||
+++ chromium-126.0.6478.8/media/filters/ffmpeg_demuxer.cc
|
||||
@@ -343,11 +343,19 @@
|
||||
}
|
||||
|
||||
// If the timestamp is positive, try to use FFmpeg's discard data.
|
||||
+#if LIBAVUTIL_VERSION_MAJOR < 57
|
||||
+ int skip_samples_size = 0;
|
||||
+#else
|
||||
size_t skip_samples_size = 0;
|
||||
+#endif
|
||||
const uint32_t* skip_samples_ptr =
|
||||
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
|
||||
packet, AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
|
||||
Index: chromium-118.0.5993.18/media/filters/ffmpeg_demuxer.cc
|
||||
===================================================================
|
||||
--- chromium-118.0.5993.18.orig/media/filters/ffmpeg_demuxer.cc
|
||||
+++ chromium-118.0.5993.18/media/filters/ffmpeg_demuxer.cc
|
||||
@@ -398,7 +398,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
|
||||
|
||||
scoped_refptr<DecoderBuffer> buffer;
|
||||
|
||||
base::span<const uint8_t> GetSideData(const AVPacket* packet) {
|
||||
+#if LIBAVUTIL_VERSION_MAJOR < 57
|
||||
+ int side_data_size = 0;
|
||||
+#else
|
||||
size_t side_data_size = 0;
|
||||
+#endif
|
||||
uint8_t* side_data = av_packet_get_side_data(
|
||||
packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
|
||||
packet, AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
|
||||
|
||||
@@ -461,7 +465,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
|
||||
packet->size - data_offset);
|
||||
+#if LIBAVUTIL_VERSION_MAJOR < 57
|
||||
+ return base::span<const uint8_t>(side_data, base::checked_cast<size_t>(side_data_size));
|
||||
+#else
|
||||
return base::span<const uint8_t>(side_data, side_data_size);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
|
||||
@@ -474,7 +482,11 @@
|
||||
base::HeapArray<uint8_t>::CopiedFrom(side_data);
|
||||
}
|
||||
|
||||
+#if LIBAVUTIL_VERSION_MAJOR < 57
|
||||
|
@@ -1,12 +0,0 @@
|
||||
diff --git a/build/linux/unbundle/ffmpeg.gn b/build/linux/unbundle/ffmpeg.gn
|
||||
index 16e20744706..6a079b32221 100644
|
||||
--- a/build/linux/unbundle/ffmpeg.gn
|
||||
+++ b/build/linux/unbundle/ffmpeg.gn
|
||||
@@ -12,6 +12,7 @@ pkg_config("system_ffmpeg") {
|
||||
"libavformat",
|
||||
"libavutil",
|
||||
]
|
||||
+ defines = [ "av_stream_get_first_dts(stream)=stream->first_dts" ]
|
||||
}
|
||||
|
||||
buildflag_header("ffmpeg_features") {
|
@@ -1,76 +0,0 @@
|
||||
diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
|
||||
index 842553a..89de703 100644
|
||||
--- a/components/media_router/common/providers/cast/channel/enum_table.h
|
||||
+++ b/components/media_router/common/providers/cast/channel/enum_table.h
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <cstdint>
|
||||
#include <cstring>
|
||||
#include <ostream>
|
||||
+#include <vector>
|
||||
|
||||
#include "base/check_op.h"
|
||||
#include "base/notreached.h"
|
||||
@@ -187,7 +188,6 @@ class
|
||||
inline constexpr GenericEnumTableEntry(int32_t value);
|
||||
inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str);
|
||||
|
||||
- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete;
|
||||
GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete;
|
||||
|
||||
private:
|
||||
@@ -253,7 +253,6 @@ class EnumTable {
|
||||
constexpr Entry(E value, base::StringPiece str)
|
||||
: GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
|
||||
|
||||
- Entry(const Entry&) = delete;
|
||||
Entry& operator=(const Entry&) = delete;
|
||||
};
|
||||
|
||||
@@ -312,15 +311,14 @@ class EnumTable {
|
||||
if (is_sorted_) {
|
||||
const std::size_t index = static_cast<std::size_t>(value);
|
||||
if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
|
||||
- const auto& entry = data_.begin()[index];
|
||||
+ const auto& entry = data_[index];
|
||||
if (ANALYZER_ASSUME_TRUE(entry.has_str()))
|
||||
return entry.str();
|
||||
}
|
||||
return absl::nullopt;
|
||||
}
|
||||
return GenericEnumTableEntry::FindByValue(
|
||||
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
|
||||
- data_.size(), static_cast<int32_t>(value));
|
||||
+ &data_[0], data_.size(), static_cast<int32_t>(value));
|
||||
}
|
||||
|
||||
// This overload of GetString is designed for cases where the argument is a
|
||||
@@ -348,8 +346,7 @@ class EnumTable {
|
||||
// enum value directly.
|
||||
absl::optional<E> GetEnum(base::StringPiece str) const {
|
||||
auto* entry = GenericEnumTableEntry::FindByString(
|
||||
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
|
||||
- data_.size(), str);
|
||||
+ &data_[0], data_.size(), str);
|
||||
return entry ? static_cast<E>(entry->value) : absl::optional<E>();
|
||||
}
|
||||
|
||||
@@ -364,7 +361,7 @@ class EnumTable {
|
||||
// Align the data on a cache line boundary.
|
||||
alignas(64)
|
||||
#endif
|
||||
- std::initializer_list<Entry> data_;
|
||||
+ const std::vector<Entry> data_;
|
||||
bool is_sorted_;
|
||||
|
||||
constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
|
||||
@@ -376,8 +373,8 @@ class EnumTable {
|
||||
|
||||
for (std::size_t i = 0; i < data.size(); i++) {
|
||||
for (std::size_t j = i + 1; j < data.size(); j++) {
|
||||
- const Entry& ei = data.begin()[i];
|
||||
- const Entry& ej = data.begin()[j];
|
||||
+ const Entry& ei = data[i];
|
||||
+ const Entry& ej = data[j];
|
||||
DCHECK(ei.value != ej.value)
|
||||
<< "Found duplicate enum values at indices " << i << " and " << j;
|
||||
DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
|
@@ -1,37 +0,0 @@
|
||||
Index: electron-17.1.0/third_party/perfetto/src/trace_processor/db/column.cc
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/third_party/perfetto/src/trace_processor/db/column.cc 2022-03-07 17:28:24.814737660 +0100
|
||||
+++ electron-17.1.0/third_party/perfetto/src/trace_processor/db/column.cc 2022-03-09 08:25:10.346569313 +0100
|
||||
@@ -14,6 +14,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
+#include <limits>
|
||||
#include "src/trace_processor/db/column.h"
|
||||
|
||||
#include "perfetto/base/logging.h"
|
||||
Index: electron-17.1.0/ui/gtk/gtk_key_bindings_handler.cc
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc 2022-03-07 17:20:31.788817015 +0100
|
||||
+++ electron-17.1.0/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc 2022-03-09 08:25:10.346569313 +0100
|
||||
@@ -2,6 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
+#include <cstddef>
|
||||
#include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
|
||||
|
||||
#include "base/observer_list.h"
|
||||
Index: electron-17.1.0/components/bookmarks/browser/base_bookmark_model_observer.cc
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/components/bookmarks/browser/base_bookmark_model_observer.cc 2022-03-07 17:20:33.308823187 +0100
|
||||
+++ electron-17.1.0/components/bookmarks/browser/base_bookmark_model_observer.cc 2022-03-09 08:25:10.346569313 +0100
|
||||
@@ -2,6 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
+#include <cstddef>
|
||||
+
|
||||
#include "components/bookmarks/browser/base_bookmark_model_observer.h"
|
||||
|
||||
namespace bookmarks {
|
@@ -1,75 +0,0 @@
|
||||
Index: electron-17.1.0/chrome/browser/about_flags.cc
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/chrome/browser/about_flags.cc 2022-03-07 17:20:30.424811477 +0100
|
||||
+++ electron-17.1.0/chrome/browser/about_flags.cc 2022-03-09 08:25:19.662417046 +0100
|
||||
@@ -3822,12 +3822,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
#endif
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
#endif // ENABLE_VR
|
||||
-#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
|
||||
{"disable-accelerated-mjpeg-decode",
|
||||
flag_descriptions::kAcceleratedMjpegDecodeName,
|
||||
- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
|
||||
+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
|
||||
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
|
||||
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
+#endif // BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
|
||||
{"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
|
||||
flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
|
||||
FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
|
||||
Index: electron-17.1.0/chrome/browser/flag_descriptions.cc
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/chrome/browser/flag_descriptions.cc 2022-03-07 17:20:30.960813654 +0100
|
||||
+++ electron-17.1.0/chrome/browser/flag_descriptions.cc 2022-03-09 08:25:19.662417046 +0100
|
||||
@@ -4031,12 +4031,24 @@ const char kUseAngleGL[] = "OpenGL";
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
+#endif
|
||||
+
|
||||
+// Chrome OS and Linux --------------------------------------------------------
|
||||
+
|
||||
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
|
||||
+
|
||||
const char kAcceleratedMjpegDecodeName[] =
|
||||
"Hardware-accelerated mjpeg decode for captured frame";
|
||||
const char kAcceleratedMjpegDecodeDescription[] =
|
||||
"Enable hardware-accelerated mjpeg decode for captured frame where "
|
||||
"available.";
|
||||
|
||||
+#endif
|
||||
+
|
||||
+// Chrome OS ------------------------------------------------------------------
|
||||
+
|
||||
+#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
+
|
||||
const char kAdaptiveChargingForTestingName[] =
|
||||
"Show adaptive charging notifications for testing";
|
||||
const char kAdaptiveChargingForTestingDescription[] =
|
||||
Index: electron-17.1.0/chrome/browser/flag_descriptions.h
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/chrome/browser/flag_descriptions.h 2022-03-07 17:20:30.960813654 +0100
|
||||
+++ electron-17.1.0/chrome/browser/flag_descriptions.h 2022-03-09 08:25:19.666416981 +0100
|
||||
@@ -2305,9 +2305,21 @@ extern const char kUseAngleGL[];
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
+#endif
|
||||
+
|
||||
+// Chrome OS and Linux --------------------------------------------------------
|
||||
+
|
||||
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
|
||||
+
|
||||
extern const char kAcceleratedMjpegDecodeName[];
|
||||
extern const char kAcceleratedMjpegDecodeDescription[];
|
||||
|
||||
+#endif
|
||||
+
|
||||
+#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
+
|
||||
+// Chrome OS ------------------------------------------------------------------
|
||||
+
|
||||
extern const char kAdaptiveChargingName[];
|
||||
extern const char kAdaptiveChargingDescription[];
|
||||
|
@@ -1,9 +1,9 @@
|
||||
--- src/third_party/electron_node/common.gypi.orig 2024-05-09 09:30:23.202414200 +0000
|
||||
+++ src/third_party/electron_node/common.gypi 2024-05-10 17:53:01.801592000 +0000
|
||||
@@ -428,10 +428,15 @@
|
||||
--- src/third_party/electron_node/common.gypi.orig 2025-07-19 11:44:59.181882205 +0200
|
||||
+++ src/third_party/electron_node/common.gypi 2025-07-19 16:21:44.297731896 +0200
|
||||
@@ -534,15 +534,19 @@
|
||||
'ldflags': [ '-pthread' ],
|
||||
}],
|
||||
[ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi"', {
|
||||
[ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi openharmony"', {
|
||||
- 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ],
|
||||
+ # Add some useful flags which need to be specified on all modules anyway.
|
||||
+ # `-fpic -fno-semantic-interposition` is the best relocation model for code that will live in a dlopened library
|
||||
@@ -11,14 +11,19 @@
|
||||
+ # `-fvisibility=hidden` is something we're adding to fix downstream overzealous exports.
|
||||
+ # The electron headers annotate their visibility correctly, but many third-party code does not which leads to bloated builds.
|
||||
+ 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', '-fpic', '-fno-semantic-interposition', '-fvisibility=hidden' ],
|
||||
'cflags_cc': [ '-fno-rtti', '-fno-exceptions', '-std=gnu++17' ],
|
||||
'cflags_cc': [
|
||||
'-fno-rtti',
|
||||
'-fno-exceptions',
|
||||
- '-fno-strict-aliasing',
|
||||
'-std=gnu++20',
|
||||
],
|
||||
'defines': [ '__STDC_FORMAT_MACROS' ],
|
||||
- 'ldflags': [ '-rdynamic' ],
|
||||
+ #'ldflags': [ '-rdynamic' ], this is totally bogus — we are building a plugin, not a plugin host
|
||||
'target_conditions': [
|
||||
# The 1990s toolchain on SmartOS can't handle thin archives.
|
||||
['_type=="static_library" and OS=="solaris"', {
|
||||
@@ -608,29 +613,7 @@
|
||||
@@ -720,29 +724,7 @@
|
||||
'-Wl,--export-dynamic',
|
||||
],
|
||||
}],
|
||||
|
@@ -14,6 +14,6 @@ since we compile everything with -fasynchronous-unwind-tables anyway.
|
||||
- # frames otherwise, even with --call-graph dwarf.
|
||||
- 'cflags': [ '-fno-omit-frame-pointer' ],
|
||||
- }],
|
||||
['OS=="linux"', {
|
||||
['OS=="linux" or OS=="openharmony"', {
|
||||
'conditions': [
|
||||
['enable_pgo_generate=="true"', {
|
||||
|
97
cr130-abseil-remove-unused-deps.patch
Normal file
97
cr130-abseil-remove-unused-deps.patch
Normal file
@@ -0,0 +1,97 @@
|
||||
--- src/third_party/abseil-cpp/BUILD.gn.orig 2025-07-19 11:32:36.617980004 +0200
|
||||
+++ src/third_party/abseil-cpp/BUILD.gn 2025-08-15 17:20:46.305540851 +0200
|
||||
@@ -62,7 +62,6 @@ group("absl_component_deps") {
|
||||
"//third_party/abseil-cpp/absl/base",
|
||||
"//third_party/abseil-cpp/absl/base:config",
|
||||
"//third_party/abseil-cpp/absl/base:core_headers",
|
||||
- "//third_party/abseil-cpp/absl/base:fast_type_id",
|
||||
"//third_party/abseil-cpp/absl/base:log_severity",
|
||||
"//third_party/abseil-cpp/absl/base:no_destructor",
|
||||
"//third_party/abseil-cpp/absl/base:nullability",
|
||||
@@ -85,13 +84,9 @@ group("absl_component_deps") {
|
||||
"//third_party/abseil-cpp/absl/hash",
|
||||
"//third_party/abseil-cpp/absl/log:absl_check",
|
||||
"//third_party/abseil-cpp/absl/log:absl_log",
|
||||
- "//third_party/abseil-cpp/absl/log:absl_vlog_is_on",
|
||||
"//third_party/abseil-cpp/absl/log:die_if_null",
|
||||
"//third_party/abseil-cpp/absl/log:globals",
|
||||
"//third_party/abseil-cpp/absl/log:initialize",
|
||||
- "//third_party/abseil-cpp/absl/log:log_entry",
|
||||
- "//third_party/abseil-cpp/absl/log:log_sink",
|
||||
- "//third_party/abseil-cpp/absl/log:log_sink_registry",
|
||||
"//third_party/abseil-cpp/absl/memory",
|
||||
"//third_party/abseil-cpp/absl/meta:type_traits",
|
||||
"//third_party/abseil-cpp/absl/numeric:bits",
|
||||
@@ -102,7 +97,6 @@ group("absl_component_deps") {
|
||||
"//third_party/abseil-cpp/absl/status",
|
||||
"//third_party/abseil-cpp/absl/status:statusor",
|
||||
"//third_party/abseil-cpp/absl/strings",
|
||||
- "//third_party/abseil-cpp/absl/strings:charset",
|
||||
"//third_party/abseil-cpp/absl/strings:cord",
|
||||
"//third_party/abseil-cpp/absl/strings:has_ostream_operator",
|
||||
"//third_party/abseil-cpp/absl/strings:str_format",
|
||||
@@ -125,7 +119,6 @@ group("absl_component_deps") {
|
||||
"//third_party/abseil-cpp/absl/base:raw_logging_internal",
|
||||
|
||||
# absl internal utilities used by protobuf.
|
||||
- "//third_party/abseil-cpp/absl/container:layout",
|
||||
]
|
||||
|
||||
if (is_component_build) {
|
||||
@@ -295,8 +288,6 @@ if (absl_build_tests) {
|
||||
"absl/container:flat_hash_set_test",
|
||||
"absl/container:hash_function_defaults_test",
|
||||
"absl/container:inlined_vector_test",
|
||||
- "absl/container:node_hash_map_test",
|
||||
- "absl/container:node_hash_set_test",
|
||||
"absl/container:node_slot_policy_test",
|
||||
"absl/container:raw_hash_set_allocator_test",
|
||||
"absl/container:raw_hash_set_resize_impl_test",
|
||||
@@ -305,11 +296,8 @@ if (absl_build_tests) {
|
||||
"absl/crc:crc_cord_state_test",
|
||||
"absl/crc:crc_memcpy_test",
|
||||
"absl/crc:non_temporal_memcpy_test",
|
||||
- "absl/debugging:bounded_utf8_length_sequence_test",
|
||||
- "absl/debugging:decode_rust_punycode_test",
|
||||
"absl/debugging:demangle_rust_test",
|
||||
"absl/debugging:stacktrace_test",
|
||||
- "absl/debugging:utf8_for_code_point_test",
|
||||
"absl/flags:flag_test",
|
||||
"absl/functional:any_invocable_test",
|
||||
"absl/functional:function_ref_test",
|
||||
@@ -333,7 +321,6 @@ if (absl_build_tests) {
|
||||
"absl/log:vlog_is_on_test",
|
||||
"absl/log/internal:fnmatch_test",
|
||||
"absl/log/internal:stderr_log_sink_test",
|
||||
- "absl/log/internal:structured_proto_test",
|
||||
"absl/memory:memory_test",
|
||||
"absl/meta:type_traits_test",
|
||||
"absl/numeric:int128_test",
|
||||
@@ -341,7 +328,6 @@ if (absl_build_tests) {
|
||||
"absl/profiling:periodic_sampler_test",
|
||||
"absl/random:distributions_test",
|
||||
"absl/random:mock_distributions_test",
|
||||
- "absl/random/internal:nonsecure_base_test",
|
||||
"absl/status:status_matchers_test",
|
||||
"absl/status:status_test",
|
||||
"absl/status:statusor_test",
|
||||
@@ -367,7 +353,6 @@ if (absl_build_tests) {
|
||||
"absl/strings:has_absl_stringify_test",
|
||||
"absl/strings:has_ostream_operator_test",
|
||||
"absl/strings:match_test",
|
||||
- "absl/strings:str_cat_test",
|
||||
"absl/strings:str_format_arg_test",
|
||||
"absl/strings:str_format_bind_test",
|
||||
"absl/strings:str_format_checker_test",
|
||||
@@ -378,11 +363,7 @@ if (absl_build_tests) {
|
||||
"absl/strings:str_format_test",
|
||||
"absl/strings:str_replace_test",
|
||||
"absl/strings:string_view_test",
|
||||
- "absl/synchronization:barrier_test",
|
||||
- "absl/synchronization:graphcycles_test",
|
||||
"absl/synchronization:kernel_timeout_internal_test",
|
||||
- "absl/synchronization:mutex_test",
|
||||
- "absl/synchronization:per_thread_sem_test",
|
||||
"absl/synchronization:waiter_test",
|
||||
"absl/time:time_test",
|
||||
"absl/types:span_test",
|
99
cr130-absl-base.patch
Normal file
99
cr130-absl-base.patch
Normal file
@@ -0,0 +1,99 @@
|
||||
--- src/build/linux/unbundle/absl_base.gn.orig 2025-01-02 10:33:14.819582911 +0100
|
||||
+++ src/build/linux/unbundle/absl_base.gn 2025-01-02 12:14:46.875133605 +0100
|
||||
@@ -13,6 +13,14 @@ pkg_config("system_absl_core_headers") {
|
||||
packages = [ "absl_core_headers" ]
|
||||
}
|
||||
|
||||
+pkg_config("system_absl_dynamic_annotations") {
|
||||
+ packages = [ "absl_dynamic_annotations" ]
|
||||
+}
|
||||
+
|
||||
+pkg_config("system_absl_log_severity") {
|
||||
+ packages = [ "absl_log_severity" ]
|
||||
+}
|
||||
+
|
||||
pkg_config("system_absl_nullability") {
|
||||
packages = [ "absl_nullability" ]
|
||||
}
|
||||
@@ -21,13 +29,16 @@ pkg_config("system_absl_prefetch") {
|
||||
packages = [ "absl_prefetch" ]
|
||||
}
|
||||
|
||||
+pkg_config("system_absl_raw_logging_internal") {
|
||||
+ packages = [ "absl_raw_logging_internal" ]
|
||||
+}
|
||||
+
|
||||
shim_headers("base_shim") {
|
||||
root_path = "."
|
||||
prefix = "absl/base/"
|
||||
headers = [
|
||||
"call_once.h",
|
||||
"casts.h",
|
||||
- "dynamic_annotations.h",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -69,6 +80,28 @@ source_set("core_headers") {
|
||||
public_configs = [ ":system_absl_core_headers" ]
|
||||
}
|
||||
|
||||
+shim_headers("dynamic_annotations_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/base/"
|
||||
+ headers = [ "dynamic_annotations.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("dynamic_annotations") {
|
||||
+ deps = [ ":dynamic_annotations_shim" ]
|
||||
+ public_configs = [ ":system_absl_dynamic_annotations" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("log_severity_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/base/"
|
||||
+ headers = [ "log_severity.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("log_severity") {
|
||||
+ deps = [ ":log_severity_shim" ]
|
||||
+ public_configs = [ ":system_absl_log_severity" ]
|
||||
+}
|
||||
+
|
||||
shim_headers("nullability_shim") {
|
||||
root_path = "."
|
||||
prefix = "absl/base/"
|
||||
@@ -91,6 +124,17 @@ source_set("prefetch") {
|
||||
public_configs = [ ":system_absl_prefetch" ]
|
||||
}
|
||||
|
||||
+shim_headers("raw_logging_internal_shim") {
|
||||
+ root_path = "."
|
||||
+ prefix = "absl/base/"
|
||||
+ headers = [ "internal/raw_logging.h" ]
|
||||
+}
|
||||
+
|
||||
+source_set("raw_logging_internal") {
|
||||
+ deps = [ ":raw_logging_internal_shim" ]
|
||||
+ public_configs = [ ":system_absl_raw_logging_internal" ]
|
||||
+}
|
||||
+
|
||||
source_set("no_destructor") {
|
||||
# Dummy — unavailable with abseil 202308 and chromium 122 does not use it
|
||||
}
|
||||
@@ -99,7 +143,15 @@ source_set("config_test") {
|
||||
}
|
||||
source_set("no_destructor_test") {
|
||||
}
|
||||
+source_set("nullability_default_nonnull_test") {
|
||||
+}
|
||||
source_set("nullability_test") {
|
||||
}
|
||||
+source_set("poison_test") {
|
||||
+}
|
||||
source_set("prefetch_test") {
|
||||
}
|
||||
+source_set("tracing_internal_strong_test") {
|
||||
+}
|
||||
+source_set("tracing_internal_weak_test") {
|
||||
+}
|
||||
\ Brak znaku nowej linii na końcu pliku
|
@@ -1,21 +0,0 @@
|
||||
--- a/components/crash/core/app/crashpad.cc
|
||||
+++ b/components/crash/core/app/crashpad.cc
|
||||
@@ -28,7 +28,7 @@
|
||||
#include "build/chromeos_buildflags.h"
|
||||
#include "components/crash/core/app/crash_reporter_client.h"
|
||||
#include "components/crash/core/common/crash_key.h"
|
||||
-#include "third_party/abseil-cpp/absl/base/internal/raw_logging.h"
|
||||
+#include <absl/base/internal/raw_logging.h>
|
||||
#include "third_party/crashpad/crashpad/client/annotation.h"
|
||||
#include "third_party/crashpad/crashpad/client/annotation_list.h"
|
||||
#include "third_party/crashpad/crashpad/client/crash_report_database.h"
|
||||
@@ -49,6 +49,9 @@
|
||||
#include "components/crash/core/app/crash_export_thunks.h"
|
||||
#endif
|
||||
|
||||
+#if ABSL_LTS_RELEASE_VERSION < 20230000
|
||||
+#define raw_log_internal raw_logging_internal
|
||||
+#endif
|
||||
namespace crash_reporter {
|
||||
|
||||
#if BUILDFLAG(IS_IOS)
|
@@ -69,7 +69,7 @@ EOF
|
||||
export DEPOT_TOOLS_UPDATE=0
|
||||
|
||||
echo ">>>>>> Downloading electron-${ELECTRON_PKGVERSION}"
|
||||
gclient sync -v --jobs $(nproc) --nohooks --no-history --shallow --revision=v"${ELECTRON_PKGVERSION}"
|
||||
gclient sync -v --jobs 15 --nohooks --no-history --shallow --revision=v"${ELECTRON_PKGVERSION}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR: gclient sync failed"
|
||||
cleanup_and_exit 1
|
||||
@@ -139,12 +139,20 @@ python3 src/tools/download_optimization_profile.py \
|
||||
# Needed to get typescript compiler
|
||||
echo ">>>>>> Download and unpack webui-node-modules tarball for third_party/node"
|
||||
python3 src/third_party/depot_tools/download_from_google_storage.py \
|
||||
--no_resume --extract --no_auth --bucket chromium-nodejs \
|
||||
--no_resume --no_auth --bucket chromium-nodejs \
|
||||
-s src/third_party/node/node_modules.tar.gz.sha1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR: download_from_google_storage failed"
|
||||
cleanup_and_exit 1
|
||||
fi
|
||||
mkdir -pv src/third_party/node/node_modules
|
||||
pushd src/third_party/node/node_modules
|
||||
tar -xvvf ../node_modules.tar.gz
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR: tar extract failed"
|
||||
cleanup_and_exit 1
|
||||
fi
|
||||
popd
|
||||
# we don't need the orig tarball
|
||||
rm -v src/third_party/node/node_modules.tar.gz
|
||||
|
||||
@@ -166,11 +174,9 @@ echo ">>>>>> Remove bundled libs"
|
||||
keeplibs=(
|
||||
base/third_party/cityhash #Derived code, not vendored dependency.
|
||||
base/third_party/cityhash_v103 #Derived code, not vendored dep
|
||||
base/third_party/dynamic_annotations #Derived code, not vendored dependency.
|
||||
base/third_party/icu #Derived code, not vendored dependency.
|
||||
base/third_party/superfasthash #Not a shared library.
|
||||
base/third_party/symbolize #Derived code, not vendored dependency.
|
||||
base/third_party/valgrind #Copy of a private header.
|
||||
base/third_party/xdg_user_dirs #Derived code, not vendored dependency.
|
||||
chrome/third_party/mozilla_security_manager #Derived code, not vendored dependency.
|
||||
net/third_party/mozilla_security_manager #Derived code, not vendored dependency.
|
||||
@@ -180,7 +186,6 @@ keeplibs=(
|
||||
third_party/abseil-cpp #Leap and fc36 too old.
|
||||
third_party/angle # ANGLE is an integral part of chrome and is not available as a shared library.
|
||||
third_party/angle/src/third_party/ceval #not in any distro
|
||||
third_party/angle/src/third_party/volk #replacement vulkan loader. Drop it when Leap has new enough libvulkan
|
||||
third_party/blink #Integral part of chrome
|
||||
third_party/boringssl #Factory has an ancient version, but upstream seems to have gave up on making it a shared library
|
||||
third_party/boringssl/src/third_party/fiat #Not in any distro
|
||||
@@ -213,32 +218,29 @@ keeplibs=(
|
||||
third_party/devtools-frontend #Javascript code, integral part of chrome
|
||||
third_party/devtools-frontend/src/front_end/third_party #various javascript code compiled into chrome, see README.md
|
||||
third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
|
||||
third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
|
||||
third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
|
||||
third_party/devtools-frontend/src/third_party/i18n #javascript
|
||||
third_party/devtools-frontend/src/third_party/typescript #Chromium added code
|
||||
third_party/distributed_point_functions #not in any distro
|
||||
third_party/dom_distiller_js #javascript
|
||||
#third_party/eigen3 #Used only by tflite which is not used in electron
|
||||
third_party/electron_node #Integral part of electron
|
||||
third_party/emoji-segmenter #not available as a shared library
|
||||
third_party/fast_float #Header-only library thus we're not debundling it rn.
|
||||
third_party/fdlibm #derived code, not vendored dep
|
||||
third_party/fp16 #Fedora 41 has it (but an old version?) Not in openSUSE. Header-only library thus we're not debundling it rn.
|
||||
third_party/hunspell #heavily forked version
|
||||
third_party/inspector_protocol #integral part of chrome
|
||||
third_party/ipcz #not in any distro
|
||||
third_party/jstemplate #javascript
|
||||
third_party/khronos #Modified to add ANGLE definitions
|
||||
third_party/leveldatabase #use of private headers
|
||||
third_party/libaom #15.5 is too old
|
||||
third_party/libaom #15.6 too old
|
||||
third_party/libaom/source/libaom/third_party/fastfeat
|
||||
third_party/libaom/source/libaom/third_party/SVT-AV1
|
||||
third_party/libaom/source/libaom/third_party/vector
|
||||
third_party/libaom/source/libaom/third_party/x86inc
|
||||
third_party/libavif #bleeding-edge nightly. try unbundling again when 1.1 gets released
|
||||
third_party/libgav1 #Usage of private headers (ObuFrameHeader from utils/types.h)
|
||||
third_party/libsrtp #Needs to be built against boringssl, not openssl
|
||||
third_party/libsync #not yet in any distro
|
||||
third_party/libudev #Headers for a optional delay-loaded dependency
|
||||
third_party/liburlpattern #Derived code, not vendored dep.
|
||||
third_party/libva_protected_content #ChromeOS header not available separately. needed for build.
|
||||
third_party/libvpx #15.5/FC37 too old
|
||||
@@ -269,36 +271,37 @@ keeplibs=(
|
||||
#third_party/pdfium/third_party/skia_shared #Skia is not available as a shared library yet.
|
||||
third_party/perfetto #Seems not to be available as a shared library, despite the presence of a `debian` directory.
|
||||
third_party/perfetto/protos/third_party/chromium #derived code, not vendored dep
|
||||
third_party/perfetto/protos/third_party/simpleperf #not available in any distro
|
||||
third_party/pffft #not in any distro, also heavily patched
|
||||
third_party/polymer #javascript
|
||||
third_party/protobuf #Heavily forked. Apparently was officially unbundlable back in the GYP days, and may be again in the future.
|
||||
third_party/protobuf/third_party/utf8_range # Integral part of protobuf
|
||||
third_party/rapidhash #Fork
|
||||
third_party/re2 # fedora too old
|
||||
third_party/rnnoise #use of private headers
|
||||
third_party/search_engines_data #integral part of chromium (but should not be?). was under components/ before E35, see https://github.com/chromium/chromium/commit/b8a327a1aa0227cf96dbbe0ad55f1c2773b23c23
|
||||
third_party/simdutf #Not in Factory
|
||||
third_party/skia #integral part of chrome
|
||||
third_party/speech-dispatcher #Headers for a delay-loaded optional dependency
|
||||
third_party/spirv-headers #15.6 too old
|
||||
third_party/sqlite #heavily forked version
|
||||
third_party/swiftshader #not available as a shared library
|
||||
third_party/swiftshader/third_party/astc-encoder #not in rawhide or factory. Debian has it (astc-encoder)
|
||||
third_party/swiftshader/third_party/llvm-subzero #heavily forked version of libLLVM for use in subzero
|
||||
third_party/swiftshader/third_party/marl #not on any distro
|
||||
third_party/swiftshader/third_party/SPIRV-Headers #Leap too old
|
||||
third_party/swiftshader/third_party/SPIRV-Tools #Leap too old
|
||||
third_party/swiftshader/third_party/subzero #integral part of swiftshader
|
||||
#third_party/tflite #Not used by electron, but chrome needs it.
|
||||
#third_party/tflite/src/third_party/eigen3
|
||||
#third_party/tflite/src/third_party/fft2d
|
||||
third_party/vulkan-deps/spirv-headers #15.5 too old
|
||||
third_party/vulkan-deps/spirv-tools #15.5 too old
|
||||
third_party/vulkan-deps/vulkan-headers #15.5 too old. CONSIDER UNBUNDLING when all distros have new enough vulkan sdk
|
||||
third_party/vulkan-headers #15.6 too old
|
||||
third_party/vulkan_memory_allocator #not in Factory
|
||||
third_party/webgpu-cts #Javascript code. Needed even if you're building chrome without webgpu
|
||||
third_party/webrtc #Integral part of chrome
|
||||
third_party/webrtc/common_audio/third_party/ooura #derived code, not vendored dep
|
||||
third_party/webrtc/common_audio/third_party/spl_sqrt_floor #derived code, not vendored dep
|
||||
third_party/webrtc/modules/third_party/fft #derived code, not vendored dep
|
||||
third_party/webrtc/modules/third_party/g711 #derived code, not vendored dep
|
||||
third_party/webrtc/modules/third_party/g722 #derived code, not vendored dep
|
||||
third_party/webrtc/rtc_base/third_party/base64 #derived code, not vendored dep
|
||||
third_party/webrtc/modules/third_party/g711 #Fork. Original is from spandsp. Might be debundled if upstream ever accepts WebRTC's patches.
|
||||
third_party/webrtc/modules/third_party/g722 #Fork. Original is from spandsp.
|
||||
third_party/webrtc/rtc_base/third_party/sigslot #derived code, not vendored dep
|
||||
third_party/webrtc_overrides #Integral part of chrome
|
||||
third_party/widevine #Integral part of chrome. Needed.
|
||||
@@ -308,14 +311,14 @@ keeplibs=(
|
||||
third_party/wayland-protocols/unstable #unknown origin. not in wayland-protocol-devel or elsewhere
|
||||
third_party/wuffs #not in any distro
|
||||
third_party/x11proto #derived code, not vendored dep
|
||||
third_party/zlib/contrib/minizip #https://bugzilla.redhat.com/show_bug.cgi?id=2240599 https://github.com/zlib-ng/minizip-ng/issues/447
|
||||
third_party/zlib/google #derived code, not vendored dep
|
||||
url/third_party/mozilla #derived code, not vendored dep
|
||||
v8/src/third_party/siphash #derived code, not vendored dep
|
||||
v8/src/third_party/utf8-decoder #derived code, not vendored dep
|
||||
v8/src/third_party/valgrind #incompatible definition of VALGRIND_DISCARD_TRANSLATIONS
|
||||
v8/third_party/inspector_protocol #integral part of chrome
|
||||
v8/third_party/rapidhash-v8 #derived code, not vendored dep
|
||||
v8/third_party/siphash #derived code, not vendored dep
|
||||
v8/third_party/utf8-decoder #derived code, not vendored dep
|
||||
v8/third_party/v8 #derived code, not vendored dep
|
||||
v8/third_party/valgrind #incompatible definition of VALGRIND_DISCARD_TRANSLATIONS
|
||||
)
|
||||
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove
|
||||
if [ $? -ne 0 ]; then
|
||||
@@ -323,18 +326,27 @@ if [ $? -ne 0 ]; then
|
||||
cleanup_and_exit 1
|
||||
fi
|
||||
# Now remove additional bundled/duplicate libraries in node/deps
|
||||
rm -rf third_party/electron_node/deps/{googletest/{include,src},icu-small} #292MB and vendored
|
||||
rm -rf third_party/electron_node/deps/{googletest/{include,src},icu-small,corepack} #292MB and vendored
|
||||
#rm -rf third_party/electron_node/tools/gyp 15.6 has too old gyp, not unbundling for now.
|
||||
rm -rf third_party/electron_node/tools/inspector_protocol/jinja2
|
||||
find third_party/electron_node/deps/brotli -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
|
||||
find third_party/electron_node/deps/cares -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
|
||||
find third_party/electron_node/deps/nghttp2 -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
|
||||
find third_party/electron_node/deps/ngtcp2 -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
|
||||
find third_party/electron_node/deps/openssl -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
|
||||
find third_party/electron_node/deps/simdutf -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
|
||||
find third_party/electron_node/deps/sqlite -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
|
||||
find third_party/electron_node/deps/v8 -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
|
||||
rm -rvf third_party/electron_node/deps/v8/tools
|
||||
rm -rvf third_party/electron_node/deps/v8/{tools,include}
|
||||
ln -srv v8/tools -t third_party/electron_node/deps/v8/
|
||||
ln -srv v8/include -t third_party/electron_node/deps/v8/
|
||||
find third_party/electron_node/deps/zlib -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
|
||||
find third_party/electron_node/deps/zstd -type f ! -name "*.gn" -a ! -name "*.gni" -a ! -name "*.gyp" -a ! -name "*.gypi" -delete
|
||||
|
||||
|
||||
# vendored system headers
|
||||
rm -rf build/linux/debian*sysroot
|
||||
|
||||
#Some more chonkers
|
||||
rm -rf components/test/data #21MB
|
||||
rm -rf docs #30MB
|
||||
|
11
disable-FFmpegAllowLists.patch
Normal file
11
disable-FFmpegAllowLists.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- src/media/ffmpeg/ffmpeg_common.cc.orig 2025-04-11 12:05:21.289638236 +0200
|
||||
+++ src/media/ffmpeg/ffmpeg_common.cc 2025-04-12 12:23:36.647784415 +0200
|
||||
@@ -76,7 +76,7 @@ const char* GetAllowedVideoDecoders() {
|
||||
void ApplyCodecContextSecuritySettings(AVCodecContext* codec_context) {
|
||||
// Future versions of ffmpeg may copy the allow list from the format
|
||||
// context.
|
||||
- if (!codec_context->codec_whitelist) {
|
||||
+ if (false) {
|
||||
// Note: FFmpeg will try to free this string, so we must duplicate it.
|
||||
codec_context->codec_whitelist =
|
||||
av_strdup(codec_context->codec_type == AVMEDIA_TYPE_AUDIO
|
39
disable-avif-really.patch
Normal file
39
disable-avif-really.patch
Normal file
@@ -0,0 +1,39 @@
|
||||
Cleanup after chromium-127-crabby.patch
|
||||
Do not advertise AVIF support to allow for graceful degradation.
|
||||
|
||||
diff '--color=auto' -urp src/content/common/content_constants_internal.cc src.new/content/common/content_constants_internal.cc
|
||||
--- src/content/common/content_constants_internal.cc 2025-04-21 18:29:19.250307076 +0200
|
||||
+++ src.new/content/common/content_constants_internal.cc 2025-04-23 18:12:33.518743675 +0200
|
||||
@@ -11,7 +11,7 @@ namespace content {
|
||||
// 20MiB
|
||||
const size_t kMaxLengthOfDataURLString = 1024 * 1024 * 20;
|
||||
|
||||
-#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
+#if 0
|
||||
const char kFrameAcceptHeaderValue[] =
|
||||
"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,"
|
||||
"image/webp,image/apng,*/*;q=0.8";
|
||||
diff '--color=auto' -urp src/third_party/blink/common/loader/network_utils.cc src.new/third_party/blink/common/loader/network_utils.cc
|
||||
--- src/third_party/blink/common/loader/network_utils.cc 2025-04-21 18:29:25.994307178 +0200
|
||||
+++ src.new/third_party/blink/common/loader/network_utils.cc 2025-04-23 18:12:48.166740983 +0200
|
||||
@@ -34,7 +34,7 @@ bool AlwaysAccessNetwork(
|
||||
}
|
||||
|
||||
const char* ImageAcceptHeader() {
|
||||
-#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
+#if 0
|
||||
return "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8";
|
||||
#else
|
||||
return "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8";
|
||||
diff '--color=auto' -urp src/third_party/blink/common/mime_util/mime_util.cc src.new/third_party/blink/common/mime_util/mime_util.cc
|
||||
--- src/third_party/blink/common/mime_util/mime_util.cc 2025-04-21 18:29:26.002307178 +0200
|
||||
+++ src.new/third_party/blink/common/mime_util/mime_util.cc 2025-04-23 18:13:01.090738191 +0200
|
||||
@@ -41,7 +41,7 @@ constexpr auto kSupportedImageTypes = ba
|
||||
"image/x-icon", // ico
|
||||
"image/x-xbitmap", // xbm
|
||||
"image/x-png",
|
||||
-#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
+#if 0
|
||||
"image/avif",
|
||||
#endif
|
||||
});
|
@@ -144,21 +144,19 @@ author: Michael Gilbert <mgilbert@debian.org>
|
||||
]
|
||||
data_deps = [ "//testing:test_scripts_shared" ]
|
||||
}
|
||||
--- a/tools/gritsettings/resource_ids.spec
|
||||
+++ b/tools/gritsettings/resource_ids.spec
|
||||
@@ -755,12 +755,6 @@
|
||||
"content/test/web_ui_mojo_test_resources.grd": {
|
||||
"includes": [7340],
|
||||
--- src/tools/gritsettings/resource_ids.spec.orig 2025-04-11 12:29:49.277239656 +0200
|
||||
+++ src/tools/gritsettings/resource_ids.spec 2025-04-11 12:30:15.524243417 +0200
|
||||
@@ -1248,10 +1248,6 @@
|
||||
"META": {"sizes": {"includes": [20]}},
|
||||
"includes": [8280],
|
||||
},
|
||||
-
|
||||
- # This file is generated during the build.
|
||||
- "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": {
|
||||
- "META": {"sizes": {"includes": [20],}},
|
||||
- "includes": [7360],
|
||||
- "includes": [8300],
|
||||
- },
|
||||
# END content/ section.
|
||||
|
||||
# START "everything else" section.
|
||||
"<(SHARED_INTERMEDIATE_DIR)/content/browser/webrtc/resources/resources.grd": {
|
||||
"META": {"sizes": {"includes": [20],}},
|
||||
"includes": [8320],
|
||||
--- a/content/browser/BUILD.gn
|
||||
+++ b/content/browser/BUILD.gn
|
||||
@@ -2530,7 +2530,6 @@ source_set("browser") {
|
||||
@@ -166,24 +164,24 @@ author: Michael Gilbert <mgilbert@debian.org>
|
||||
"//components/vector_icons",
|
||||
"//components/webauthn/json",
|
||||
- "//content/browser/tracing:resources",
|
||||
"//media/mojo/mojom:speech_recognition",
|
||||
"//ui/base",
|
||||
]
|
||||
}
|
||||
|
||||
--- a/chrome/chrome_paks.gni
|
||||
+++ b/chrome/chrome_paks.gni
|
||||
@@ -190,8 +190,6 @@ template("chrome_extra_paks") {
|
||||
--- src/chrome/chrome_paks.gni.orig 2025-07-19 11:32:31.785979797 +0200
|
||||
+++ src/chrome/chrome_paks.gni 2025-07-19 16:32:46.337623073 +0200
|
||||
@@ -230,8 +230,6 @@ template("chrome_extra_paks") {
|
||||
"$root_gen_dir/chrome/web_app_internals_resources.pak",
|
||||
"$root_gen_dir/chrome/webui_gallery_resources.pak",
|
||||
"$root_gen_dir/chrome/whats_new_resources.pak",
|
||||
"$root_gen_dir/content/browser/devtools/devtools_resources.pak",
|
||||
- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
|
||||
- "$root_gen_dir/content/traces_internals_resources.pak",
|
||||
]
|
||||
deps += [
|
||||
"//chrome/browser/resources:component_extension_resources",
|
||||
@@ -199,7 +197,6 @@ template("chrome_extra_paks") {
|
||||
"//chrome/browser/resources/lens/overlay:resources",
|
||||
"//chrome/browser/resources:dev_ui_paks",
|
||||
@@ -241,7 +239,6 @@ template("chrome_extra_paks") {
|
||||
"//chrome/browser/resources/lens/shared:resources",
|
||||
"//chrome/browser/resources/search_engine_choice:resources",
|
||||
"//content/browser/devtools:devtools_resources",
|
||||
"//chrome/browser/resources/tabs/tab_group_home:resources",
|
||||
- "//content/browser/tracing:resources",
|
||||
]
|
||||
if (is_chrome_branded) {
|
||||
@@ -315,17 +313,17 @@ author: Michael Gilbert <mgilbert@debian.org>
|
||||
"//third_party/perfetto/src/trace_processor:trace_processor_shell",
|
||||
]
|
||||
data = [
|
||||
--- a/electron/electron_paks.gni
|
||||
+++ b/electron/electron_paks.gni
|
||||
@@ -57,7 +57,6 @@
|
||||
"$root_gen_dir/chrome/dev_ui_browser_resources.pak",
|
||||
--- src/electron/build/electron_paks.gni.orig 2025-04-11 12:02:41.243100651 +0200
|
||||
+++ src/electron/build/electron_paks.gni 2025-04-11 12:28:19.897748625 +0200
|
||||
@@ -57,7 +57,6 @@ template("electron_extra_paks") {
|
||||
"$root_gen_dir/chrome/common_resources.pak",
|
||||
"$root_gen_dir/components/components_resources.pak",
|
||||
"$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
|
||||
- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
|
||||
"$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak",
|
||||
"$root_gen_dir/content/content_resources.pak",
|
||||
"$root_gen_dir/content/gpu_resources.pak",
|
||||
@@ -73,7 +72,6 @@
|
||||
@@ -76,7 +75,6 @@ template("electron_extra_paks") {
|
||||
"//content/browser/resources/gpu:resources",
|
||||
"//content/browser/resources/media:resources",
|
||||
"//content/browser/resources/process:resources",
|
||||
|
@@ -1,10 +0,0 @@
|
||||
--- a/third_party/devtools-frontend/src/BUILD.gn
|
||||
+++ b/third_party/devtools-frontend/src/BUILD.gn
|
||||
@@ -13,7 +13,6 @@ import("./third_party/blink/public/publi
|
||||
|
||||
devtools_frontend_resources_deps = [
|
||||
"front_end",
|
||||
- "test",
|
||||
]
|
||||
|
||||
group("devtools_all_files") {
|
@@ -22,11 +22,9 @@ Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
||||
chromium/media/media_options.gni | 2 +
|
||||
7 files changed, 52 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/chromium/content/browser/BUILD.gn b/chromium/content/browser/BUILD.gn
|
||||
index 19b45dc1268..67dcd7752d0 100644
|
||||
--- a/content/browser/BUILD.gn
|
||||
+++ b/content/browser/BUILD.gn
|
||||
@@ -1909,11 +1909,6 @@ source_set("browser") {
|
||||
--- src/content/browser/BUILD.gn.orig 2024-12-08 18:44:00.234689649 +0100
|
||||
+++ src/content/browser/BUILD.gn 2024-12-18 12:20:19.753578327 +0100
|
||||
@@ -2134,13 +2134,6 @@ source_set("browser") {
|
||||
"sms/user_consent_handler.h",
|
||||
"sms/webotp_service.cc",
|
||||
"sms/webotp_service.h",
|
||||
@@ -34,21 +32,17 @@ index 19b45dc1268..67dcd7752d0 100644
|
||||
- "speech/speech_recognition_dispatcher_host.h",
|
||||
- "speech/speech_recognition_manager_impl.cc",
|
||||
- "speech/speech_recognition_manager_impl.h",
|
||||
- "speech/speech_recognition_session.cc",
|
||||
- "speech/speech_recognition_session.h",
|
||||
- "speech/speech_recognizer.h",
|
||||
"speech/speech_synthesis_impl.cc",
|
||||
"speech/speech_synthesis_impl.h",
|
||||
"speech/tts_controller_impl.cc",
|
||||
@@ -2956,19 +2951,6 @@ source_set("browser") {
|
||||
@@ -3340,13 +3333,6 @@ source_set("browser") {
|
||||
"service_worker/service_worker_usb_delegate_observer.cc",
|
||||
"service_worker/service_worker_usb_delegate_observer.h",
|
||||
|
||||
- # Most speech code is non-Android.
|
||||
- "speech/endpointer/endpointer.cc",
|
||||
- "speech/endpointer/endpointer.h",
|
||||
- "speech/endpointer/energy_endpointer.cc",
|
||||
- "speech/endpointer/energy_endpointer.h",
|
||||
- "speech/endpointer/energy_endpointer_params.cc",
|
||||
- "speech/endpointer/energy_endpointer_params.h",
|
||||
- "speech/network_speech_recognition_engine_impl.cc",
|
||||
- "speech/network_speech_recognition_engine_impl.h",
|
||||
- "speech/speech_recognition_engine.cc",
|
||||
@@ -58,15 +52,18 @@ index 19b45dc1268..67dcd7752d0 100644
|
||||
"tracing/tracing_ui.cc",
|
||||
"tracing/tracing_ui.h",
|
||||
|
||||
@@ -2995,7 +2975,6 @@ source_set("browser") {
|
||||
]
|
||||
|
||||
deps += [
|
||||
@@ -3397,10 +3383,8 @@ source_set("browser") {
|
||||
"//components/soda:constants",
|
||||
"//components/soda:soda",
|
||||
"//components/soda:utils",
|
||||
- "//components/speech:speech",
|
||||
"//components/vector_icons",
|
||||
"//components/webauthn/json",
|
||||
- "//media/mojo/mojom:speech_recognition",
|
||||
"//ui/base",
|
||||
]
|
||||
@@ -3108,6 +3083,37 @@ source_set("browser") {
|
||||
}
|
||||
@@ -3471,6 +3455,37 @@ source_set("browser") {
|
||||
deps += [ "//ui/compositor" ]
|
||||
}
|
||||
|
||||
@@ -104,31 +101,29 @@ index 19b45dc1268..67dcd7752d0 100644
|
||||
if ((is_linux || is_chromeos) && use_dbus) {
|
||||
deps += [ "//dbus" ]
|
||||
}
|
||||
diff --git a/chromium/content/browser/browser_interface_binders.cc b/chromium/content/browser/browser_interface_binders.cc
|
||||
index c5a6f0aea88..71d9bf41a71 100644
|
||||
--- a/content/browser/browser_interface_binders.cc
|
||||
+++ b/content/browser/browser_interface_binders.cc
|
||||
@@ -50,7 +50,9 @@
|
||||
#include "content/browser/renderer_host/render_frame_host_impl.h"
|
||||
--- src/content/browser/browser_interface_binders.cc.orig 2025-07-19 11:32:34.193979827 +0200
|
||||
+++ src/content/browser/browser_interface_binders.cc 2025-07-20 14:51:05.789212478 +0200
|
||||
@@ -62,7 +62,9 @@
|
||||
#include "content/browser/renderer_host/render_process_host_impl.h"
|
||||
#include "content/browser/service_worker/service_worker_host.h"
|
||||
#include "content/browser/shared_storage/shared_storage_worklet_host.h"
|
||||
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
|
||||
#include "content/browser/speech/speech_recognition_dispatcher_host.h"
|
||||
+#endif
|
||||
#include "content/browser/storage_access/storage_access_handle.h"
|
||||
#include "content/browser/tracing/trace_report/trace_report.mojom.h"
|
||||
#include "content/browser/tracing/trace_report/trace_report_internals_ui.h"
|
||||
@@ -144,7 +146,9 @@
|
||||
#include "third_party/blink/public/mojom/sensor/web_sensor_provider.mojom.h"
|
||||
#include "third_party/blink/public/mojom/sms/webotp_service.mojom.h"
|
||||
#include "third_party/blink/public/mojom/speculation_rules/speculation_rules.mojom.h"
|
||||
@@ -101,7 +103,9 @@
|
||||
#include "media/mojo/mojom/media_metrics_provider.mojom.h"
|
||||
#include "media/mojo/mojom/media_player.mojom.h"
|
||||
#include "media/mojo/mojom/remoting.mojom.h"
|
||||
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
|
||||
#include "third_party/blink/public/mojom/speech/speech_recognizer.mojom.h"
|
||||
#include "media/mojo/mojom/speech_recognizer.mojom.h"
|
||||
+#endif
|
||||
#include "third_party/blink/public/mojom/speech/speech_synthesis.mojom.h"
|
||||
#include "third_party/blink/public/mojom/storage_access/storage_access_handle.mojom.h"
|
||||
#include "third_party/blink/public/mojom/usb/web_usb_service.mojom.h"
|
||||
@@ -168,7 +172,9 @@
|
||||
#include "media/mojo/mojom/video_decode_perf_history.mojom.h"
|
||||
#include "media/mojo/mojom/video_encoder_metrics_provider.mojom.h"
|
||||
#include "media/mojo/mojom/webrtc_video_perf.mojom.h"
|
||||
@@ -209,7 +213,9 @@
|
||||
#else // BUILDFLAG(IS_ANDROID)
|
||||
#include "content/browser/direct_sockets/direct_sockets_service_impl.h"
|
||||
#include "media/mojo/mojom/renderer_extensions.mojom.h"
|
||||
@@ -137,21 +132,22 @@ index c5a6f0aea88..71d9bf41a71 100644
|
||||
+#endif
|
||||
#include "third_party/blink/public/mojom/hid/hid.mojom.h"
|
||||
#include "third_party/blink/public/mojom/installedapp/installed_app_provider.mojom.h"
|
||||
#include "third_party/blink/public/mojom/serial/serial.mojom.h"
|
||||
@@ -830,10 +836,12 @@ void PopulateFrameBinders(RenderFrameHostImpl* host, mojo::BinderMap* map) {
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
@@ -865,11 +871,13 @@ void PopulateFrameBinders(RenderFrameHos
|
||||
map->Add<blink::mojom::SharedWorkerConnector>(
|
||||
base::BindRepeating(&BindSharedWorkerConnector, base::Unretained(host)));
|
||||
|
||||
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
|
||||
map->Add<blink::mojom::SpeechRecognizer>(
|
||||
map->Add<media::mojom::SpeechRecognizer>(
|
||||
base::BindRepeating(&SpeechRecognitionDispatcherHost::Create,
|
||||
host->GetProcess()->GetID(), host->GetRoutingID()),
|
||||
host->GetProcess()->GetDeprecatedID(),
|
||||
host->GetRoutingID()),
|
||||
GetIOThreadTaskRunner({}));
|
||||
+#endif
|
||||
|
||||
map->Add<blink::mojom::SpeechSynthesis>(base::BindRepeating(
|
||||
&RenderFrameHostImpl::GetSpeechSynthesis, base::Unretained(host)));
|
||||
@@ -1099,6 +1107,7 @@ void PopulateBinderMapWithContext(
|
||||
@@ -1194,6 +1202,7 @@ void PopulateBinderMapWithContext(
|
||||
#if !BUILDFLAG(IS_ANDROID)
|
||||
map->Add<blink::mojom::DirectSocketsService>(
|
||||
base::BindRepeating(&DirectSocketsServiceImpl::CreateForFrame));
|
||||
@@ -159,7 +155,7 @@ index c5a6f0aea88..71d9bf41a71 100644
|
||||
map->Add<media::mojom::SpeechRecognitionContext>(base::BindRepeating(
|
||||
&EmptyBinderForFrame<media::mojom::SpeechRecognitionContext>));
|
||||
map->Add<media::mojom::SpeechRecognitionClientBrowserInterface>(
|
||||
@@ -1110,6 +1119,7 @@ void PopulateBinderMapWithContext(
|
||||
@@ -1205,6 +1214,7 @@ void PopulateBinderMapWithContext(
|
||||
map->Add<media::mojom::MediaPlayerObserverClient>(base::BindRepeating(
|
||||
&EmptyBinderForFrame<media::mojom::MediaPlayerObserverClient>));
|
||||
#endif
|
||||
@@ -167,13 +163,11 @@ index c5a6f0aea88..71d9bf41a71 100644
|
||||
#if BUILDFLAG(ENABLE_UNHANDLED_TAP)
|
||||
map->Add<blink::mojom::UnhandledTapNotifier>(base::BindRepeating(
|
||||
&EmptyBinderForFrame<blink::mojom::UnhandledTapNotifier>));
|
||||
diff --git a/chromium/content/browser/browser_main_loop.cc b/chromium/content/browser/browser_main_loop.cc
|
||||
index aaa752bec61..b3a1ed50d20 100644
|
||||
--- a/content/browser/browser_main_loop.cc
|
||||
+++ b/content/browser/browser_main_loop.cc
|
||||
@@ -87,7 +87,9 @@
|
||||
#include "content/browser/screenlock_monitor/screenlock_monitor.h"
|
||||
--- src/content/browser/browser_main_loop.cc.orig 2025-07-19 11:32:34.193979827 +0200
|
||||
+++ src/content/browser/browser_main_loop.cc 2025-07-20 14:51:05.789212478 +0200
|
||||
@@ -91,7 +91,9 @@
|
||||
#include "content/browser/screenlock_monitor/screenlock_monitor_device_source.h"
|
||||
#include "content/browser/service_host/utility_process_host.h"
|
||||
#include "content/browser/sms/sms_provider.h"
|
||||
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
|
||||
#include "content/browser/speech/speech_recognition_manager_impl.h"
|
||||
@@ -181,7 +175,7 @@ index aaa752bec61..b3a1ed50d20 100644
|
||||
#include "content/browser/speech/tts_controller_impl.h"
|
||||
#include "content/browser/startup_data_impl.h"
|
||||
#include "content/browser/startup_task_runner.h"
|
||||
@@ -1114,12 +1116,14 @@ void BrowserMainLoop::ShutdownThreadsAndCleanUp() {
|
||||
@@ -1162,12 +1164,14 @@ void BrowserMainLoop::ShutdownThreadsAnd
|
||||
midi_service_->Shutdown();
|
||||
}
|
||||
|
||||
@@ -196,7 +190,7 @@ index aaa752bec61..b3a1ed50d20 100644
|
||||
|
||||
TtsControllerImpl::GetInstance()->Shutdown();
|
||||
|
||||
@@ -1364,13 +1368,14 @@ void BrowserMainLoop::PostCreateThreadsImpl() {
|
||||
@@ -1405,13 +1409,14 @@ void BrowserMainLoop::PostCreateThreadsI
|
||||
media_stream_manager_ =
|
||||
std::make_unique<MediaStreamManager>(audio_system_.get());
|
||||
}
|
||||
@@ -239,18 +233,16 @@ index 3a2e713ccc3..6af5afde20e 100644
|
||||
{wrf::EnableScriptedSpeechSynthesis, switches::kDisableSpeechSynthesisAPI,
|
||||
false},
|
||||
{wrf::EnableSharedWorker, switches::kDisableSharedWorkers, false},
|
||||
diff --git a/chromium/media/BUILD.gn b/chromium/media/BUILD.gn
|
||||
index 01e0910666e..6ce78127e3f 100644
|
||||
--- a/media/BUILD.gn
|
||||
+++ b/media/BUILD.gn
|
||||
@@ -47,6 +47,7 @@ buildflag_header("media_buildflags") {
|
||||
"ENABLE_PLATFORM_MPEG_H_AUDIO=$enable_platform_mpeg_h_audio",
|
||||
--- src/media/BUILD.gn.orig 2025-07-19 11:32:35.633979930 +0200
|
||||
+++ src/media/BUILD.gn 2025-07-20 14:51:07.213212462 +0200
|
||||
@@ -61,6 +61,7 @@ buildflag_header("media_buildflags") {
|
||||
"ENABLE_MSE_MPEG2TS_STREAM_PARSER=$enable_mse_mpeg2ts_stream_parser",
|
||||
"PLATFORM_HAS_OPTIONAL_HEVC_SUPPORT=$platform_has_optional_hevc_support",
|
||||
"PLATFORM_HAS_OPTIONAL_HEVC_DECODE_SUPPORT=$platform_has_optional_hevc_decode_support",
|
||||
"PLATFORM_HAS_OPTIONAL_HEVC_ENCODE_SUPPORT=$platform_has_optional_hevc_encode_support",
|
||||
+ "ENABLE_WEB_SPEECH=$enable_web_speech",
|
||||
"USE_ARC_PROTECTED_MEDIA=$use_arc_protected_media",
|
||||
"USE_CHROMEOS_MEDIA_ACCELERATION=$use_vaapi||$use_v4l2_codec",
|
||||
"USE_CHROMEOS_PROTECTED_AV1=$use_chromeos_protected_av1",
|
||||
"USE_CHROMEOS_PROTECTED_MEDIA=$use_chromeos_protected_media",
|
||||
diff --git a/chromium/media/media_options.gni b/chromium/media/media_options.gni
|
||||
index 5667cac61f3..48ea95a99a6 100644
|
||||
--- a/media/media_options.gni
|
||||
@@ -268,9 +260,9 @@ index 5667cac61f3..48ea95a99a6 100644
|
||||
cgit v1.2.1
|
||||
|
||||
|
||||
--- src/components/speech/BUILD.gn.old 2023-05-13 15:23:05.850506351 +0200
|
||||
+++ src/components/speech/BUILD.gn 2023-05-14 14:39:12.182694489 +0200
|
||||
@@ -4,12 +4,6 @@
|
||||
--- src/components/speech/BUILD.gn.orig 2024-12-08 18:34:57.021340049 +0100
|
||||
+++ src/components/speech/BUILD.gn 2024-12-18 12:18:14.187490208 +0100
|
||||
@@ -6,12 +6,6 @@ import("//build/config/features.gni")
|
||||
|
||||
source_set("speech") {
|
||||
sources = [
|
||||
@@ -283,11 +275,11 @@ cgit v1.2.1
|
||||
"downstream_loader.cc",
|
||||
"downstream_loader.h",
|
||||
"downstream_loader_client.h",
|
||||
@@ -24,7 +18,6 @@
|
||||
@@ -27,7 +21,6 @@ source_set("speech") {
|
||||
"//mojo/public/cpp/system",
|
||||
"//services/network/public/cpp",
|
||||
"//services/network/public/mojom",
|
||||
- "//third_party/flac",
|
||||
]
|
||||
}
|
||||
|
||||
if (!is_android) {
|
||||
|
@@ -1,10 +0,0 @@
|
||||
--- src/third_party/distributed_point_functions/code/dpf/aes_128_fixed_key_hash.cc.old 2024-04-02 11:53:27.644284500 +0200
|
||||
+++ src/third_party/distributed_point_functions/code/dpf/aes_128_fixed_key_hash.cc 2024-04-02 22:24:29.350771600 +0200
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "absl/numeric/int128.h"
|
||||
#include "absl/status/status.h"
|
||||
#include "absl/status/statusor.h"
|
||||
+#include "absl/strings/str_cat.h"
|
||||
#include "absl/types/span.h"
|
||||
#include "openssl/err.h"
|
||||
|
@@ -1,27 +0,0 @@
|
||||
--- src/third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc.old 2024-04-02 11:53:27.644284500 +0200
|
||||
+++ src/third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc 2024-04-02 22:35:43.377586600 +0200
|
||||
@@ -50,16 +50,18 @@ namespace hn = hwy::HWY_NAMESPACE;
|
||||
#if HWY_TARGET == HWY_SCALAR
|
||||
|
||||
absl::Status EvaluateSeedsHwy(
|
||||
- int64_t num_seeds, int num_levels, const absl::uint128* seeds_in,
|
||||
- const bool* control_bits_in, const absl::uint128* paths,
|
||||
+ int64_t num_seeds, int num_levels, int num_correction_words,
|
||||
+ const absl::uint128* seeds_in, const bool* control_bits_in,
|
||||
+ const absl::uint128* paths, int paths_rightshift,
|
||||
const absl::uint128* correction_seeds, const bool* correction_controls_left,
|
||||
const bool* correction_controls_right, const Aes128FixedKeyHash& prg_left,
|
||||
const Aes128FixedKeyHash& prg_right, absl::uint128* seeds_out,
|
||||
bool* control_bits_out) {
|
||||
- return EvaluateSeedsNoHwy(num_seeds, num_levels, seeds_in, control_bits_in,
|
||||
- paths, correction_seeds, correction_controls_left,
|
||||
- correction_controls_right, prg_left, prg_right,
|
||||
- seeds_out, control_bits_out);
|
||||
+ return EvaluateSeedsNoHwy(
|
||||
+ num_seeds, num_levels, num_correction_words, seeds_in, control_bits_in,
|
||||
+ paths, paths_rightshift, correction_seeds, correction_controls_left,
|
||||
+ correction_controls_right, prg_left, prg_right, seeds_out,
|
||||
+ control_bits_out);
|
||||
}
|
||||
|
||||
#else
|
@@ -3,20 +3,20 @@ Do not try to build a private copy of a DLL which is already available on every
|
||||
--- a/chrome/BUILD.gn
|
||||
+++ b/chrome/BUILD.gn
|
||||
@@ -1789,8 +1790,9 @@
|
||||
|
||||
deps = [ "//third_party/angle:libGLESv2" ]
|
||||
}
|
||||
- if (!is_chromeos) {
|
||||
}
|
||||
- if (!is_chromeos && angle_shared_libvulkan) {
|
||||
+ source_set("angle_libvulkan_symbols") {}
|
||||
+ if (false) {
|
||||
extract_symbols("angle_libvulkan_symbols") {
|
||||
binary = "$root_out_dir/libvulkan.so.1"
|
||||
|
||||
if (current_cpu == "x86") {
|
||||
--- a/third_party/vulkan-deps/vulkan-loader/src/BUILD.gn
|
||||
+++ b/third_party/vulkan-deps/vulkan-loader/src/BUILD.gn
|
||||
@@ -99,7 +99,18 @@
|
||||
library_type = "static_library"
|
||||
--- src/third_party/vulkan-loader/src/BUILD.gn.orig 2024-12-08 18:37:20.394677662 +0100
|
||||
+++ src/third_party/vulkan-loader/src/BUILD.gn 2024-12-18 13:15:54.021404544 +0100
|
||||
@@ -144,7 +144,18 @@ if (!is_android) {
|
||||
}
|
||||
}
|
||||
|
||||
- target(library_type, "libvulkan") {
|
||||
@@ -35,4 +35,3 @@ Do not try to build a private copy of a DLL which is already available on every
|
||||
sources = [
|
||||
"loader/adapters.h",
|
||||
"loader/allocation.c",
|
||||
|
||||
|
@@ -1,17 +0,0 @@
|
||||
Index: electron-16.0.6/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc
|
||||
===================================================================
|
||||
--- electron-16.0.6.orig/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc 2022-01-10 16:24:28.724461941 +0100
|
||||
+++ electron-16.0.6/third_party/blink/renderer/platform/media/multi_buffer_data_source.cc 2022-01-13 16:04:50.310112542 +0100
|
||||
@@ -63,10 +63,10 @@ const int kUpdateBufferSizeFrequency = 3
|
||||
constexpr base::TimeDelta kSeekDelay = base::Milliseconds(20);
|
||||
|
||||
std::vector<std::string>* GetStreamingSchemes() {
|
||||
- static base::NoDestructor<std::vector<std::string>> streaming_schemes({
|
||||
+ static base::NoDestructor<std::vector<std::string>> streaming_schemes{{
|
||||
url::kHttpsScheme,
|
||||
url::kHttpScheme
|
||||
- });
|
||||
+ }};
|
||||
return streaming_schemes.get();
|
||||
}
|
||||
|
@@ -1,14 +0,0 @@
|
||||
Index: electron-17.1.0/base/compiler_specific.h
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/base/compiler_specific.h 2022-03-07 17:20:29.460807562 +0100
|
||||
+++ electron-17.1.0/base/compiler_specific.h 2022-03-09 08:28:51.902933750 +0100
|
||||
@@ -366,7 +366,8 @@ inline constexpr bool AnalyzerAssumeTrue
|
||||
#endif // defined(__clang_analyzer__)
|
||||
|
||||
// Use nomerge attribute to disable optimization of merging multiple same calls.
|
||||
-#if defined(__clang__) && HAS_ATTRIBUTE(nomerge)
|
||||
+#if defined(__clang__) && (__clang_major__ >= 12) && \
|
||||
+ __has_attribute(nomerge) && !defined(OS_CHROMEOS)
|
||||
#define NOMERGE [[clang::nomerge]]
|
||||
#else
|
||||
#define NOMERGE
|
@@ -1,18 +0,0 @@
|
||||
Index: electron-17.1.0/build/config/compiler/compiler.gni
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/build/config/compiler/compiler.gni 2022-03-09 08:27:56.719840060 +0100
|
||||
+++ electron-17.1.0/build/config/compiler/compiler.gni 2022-03-09 13:07:58.709063960 +0100
|
||||
@@ -71,12 +71,7 @@ declare_args() {
|
||||
# Disabled in iOS cronet builds since build step cronet_static_complete
|
||||
# wants to build a .a file consumable by external clients, and they won't
|
||||
# have the same LLVM revisions as us, making bitcode useless to them.
|
||||
- use_thin_lto =
|
||||
- is_cfi || (is_clang && is_official_build && chrome_pgo_phase != 1 &&
|
||||
- (is_linux || is_win || is_mac ||
|
||||
- (is_ios && use_lld && !is_cronet_build) ||
|
||||
- (is_android && target_os != "chromeos") ||
|
||||
- (is_chromeos && is_chromeos_device)))
|
||||
+ use_thin_lto = false
|
||||
|
||||
# If true, use Goma for ThinLTO code generation where applicable.
|
||||
use_goma_thin_lto = false
|
@@ -1,124 +0,0 @@
|
||||
Index: electron-17.1.0/chrome/browser/process_singleton.h
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/chrome/browser/process_singleton.h 2022-03-07 17:39:06.993345117 +0100
|
||||
+++ electron-17.1.0/chrome/browser/process_singleton.h 2022-03-09 08:29:01.682773127 +0100
|
||||
@@ -102,7 +102,7 @@ class ProcessSingleton {
|
||||
using NotificationCallback =
|
||||
base::RepeatingCallback<bool(base::CommandLine command_line,
|
||||
const base::FilePath& current_directory,
|
||||
- const std::vector<const uint8_t> additional_data)>;
|
||||
+ const std::vector<uint8_t> additional_data)>;
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
ProcessSingleton(const std::string& program_name,
|
||||
|
||||
Index: electron-17.1.0/chrome/browser/process_singleton_posix.cc
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/chrome/browser/process_singleton_posix.cc 2022-03-07 17:39:06.993345117 +0100
|
||||
+++ electron-17.1.0/chrome/browser/process_singleton_posix.cc 2022-03-09 08:29:01.682773127 +0100
|
||||
@@ -627,7 +627,7 @@ class ProcessSingleton::LinuxWatcher
|
||||
// |reader| is for sending back ACK message.
|
||||
void HandleMessage(const std::string& current_dir,
|
||||
const std::vector<std::string>& argv,
|
||||
- const std::vector<const uint8_t> additional_data,
|
||||
+ const std::vector<uint8_t> additional_data,
|
||||
SocketReader* reader);
|
||||
|
||||
// Called when the ProcessSingleton that owns this class is about to be
|
||||
@@ -684,7 +684,7 @@ void ProcessSingleton::LinuxWatcher::Sta
|
||||
void ProcessSingleton::LinuxWatcher::HandleMessage(
|
||||
const std::string& current_dir,
|
||||
const std::vector<std::string>& argv,
|
||||
- const std::vector<const uint8_t> additional_data,
|
||||
+ const std::vector<uint8_t> additional_data,
|
||||
SocketReader* reader) {
|
||||
DCHECK(ui_task_runner_->BelongsToCurrentThread());
|
||||
DCHECK(reader);
|
||||
@@ -774,7 +774,7 @@ void ProcessSingleton::LinuxWatcher::Soc
|
||||
base::StringToSizeT(tokens[0], &num_args);
|
||||
std::vector<std::string> command_line(tokens.begin() + 1, tokens.begin() + 1 + num_args);
|
||||
|
||||
- std::vector<const uint8_t> additional_data;
|
||||
+ std::vector<uint8_t> additional_data;
|
||||
if (tokens.size() >= 3 + num_args) {
|
||||
size_t additional_data_size;
|
||||
base::StringToSizeT(tokens[1 + num_args], &additional_data_size);
|
||||
@@ -783,7 +783,7 @@ void ProcessSingleton::LinuxWatcher::Soc
|
||||
std::string(1, kTokenDelimiter));
|
||||
const uint8_t* additional_data_bits =
|
||||
reinterpret_cast<const uint8_t*>(remaining_args.c_str());
|
||||
- additional_data = std::vector<const uint8_t>(
|
||||
+ additional_data = std::vector<uint8_t>(
|
||||
additional_data_bits, additional_data_bits + additional_data_size);
|
||||
}
|
||||
|
||||
Index: electron-17.1.0/chrome/browser/process_singleton_win.cc
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/chrome/browser/process_singleton_win.cc 2022-03-07 17:39:06.993345117 +0100
|
||||
+++ electron-17.1.0/chrome/browser/process_singleton_win.cc 2022-03-09 08:29:01.682773127 +0100
|
||||
@@ -81,7 +81,7 @@ BOOL CALLBACK BrowserWindowEnumeration(H
|
||||
bool ParseCommandLine(const COPYDATASTRUCT* cds,
|
||||
base::CommandLine* parsed_command_line,
|
||||
base::FilePath* current_directory,
|
||||
- std::vector<const uint8_t>* parsed_additional_data) {
|
||||
+ std::vector<uint8_t>* parsed_additional_data) {
|
||||
// We should have enough room for the shortest command (min_message_size)
|
||||
// and also be a multiple of wchar_t bytes. The shortest command
|
||||
// possible is L"START\0\0" (empty command line, current directory,
|
||||
@@ -163,7 +163,7 @@ bool ParseCommandLine(const COPYDATASTRU
|
||||
msg.substr(fourth_null + 1, fifth_null - fourth_null);
|
||||
const uint8_t* additional_data_bytes =
|
||||
reinterpret_cast<const uint8_t*>(additional_data.c_str());
|
||||
- *parsed_additional_data = std::vector<const uint8_t>(additional_data_bytes,
|
||||
+ *parsed_additional_data = std::vector<uint8_t>(additional_data_bytes,
|
||||
additional_data_bytes + additional_data_length);
|
||||
|
||||
return true;
|
||||
@@ -187,7 +187,7 @@ bool ProcessLaunchNotification(
|
||||
|
||||
base::CommandLine parsed_command_line(base::CommandLine::NO_PROGRAM);
|
||||
base::FilePath current_directory;
|
||||
- std::vector<const uint8_t> additional_data;
|
||||
+ std::vector<uint8_t> additional_data;
|
||||
if (!ParseCommandLine(cds, &parsed_command_line, ¤t_directory, &additional_data)) {
|
||||
*result = TRUE;
|
||||
return true;
|
||||
Index: electron-17.1.0/electron/shell/browser/api/electron_api_app.cc
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/electron/shell/browser/api/electron_api_app.cc 2022-03-07 16:07:24.343397858 +0100
|
||||
+++ electron-17.1.0/electron/shell/browser/api/electron_api_app.cc 2022-03-09 08:29:01.682773127 +0100
|
||||
@@ -517,10 +517,10 @@ bool NotificationCallbackWrapper(
|
||||
const base::RepeatingCallback<
|
||||
void(base::CommandLine command_line,
|
||||
const base::FilePath& current_directory,
|
||||
- const std::vector<const uint8_t> additional_data)>& callback,
|
||||
+ const std::vector<uint8_t> additional_data)>& callback,
|
||||
base::CommandLine cmd,
|
||||
const base::FilePath& cwd,
|
||||
- const std::vector<const uint8_t> additional_data) {
|
||||
+ const std::vector<uint8_t> additional_data) {
|
||||
// Make sure the callback is called after app gets ready.
|
||||
if (Browser::Get()->is_ready()) {
|
||||
callback.Run(std::move(cmd), cwd, std::move(additional_data));
|
||||
@@ -1081,7 +1081,7 @@ std::string App::GetLocaleCountryCode()
|
||||
|
||||
void App::OnSecondInstance(base::CommandLine cmd,
|
||||
const base::FilePath& cwd,
|
||||
- const std::vector<const uint8_t> additional_data) {
|
||||
+ const std::vector<uint8_t> additional_data) {
|
||||
v8::Isolate* isolate = JavascriptEnvironment::GetIsolate();
|
||||
v8::HandleScope handle_scope(isolate);
|
||||
v8::Local<v8::Value> data_value =
|
||||
Index: electron-17.1.0/electron/shell/browser/api/electron_api_app.h
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/electron/shell/browser/api/electron_api_app.h 2022-03-07 16:07:24.343397858 +0100
|
||||
+++ electron-17.1.0/electron/shell/browser/api/electron_api_app.h 2022-03-09 08:29:01.682773127 +0100
|
||||
@@ -194,7 +194,7 @@ class App : public ElectronBrowserClient
|
||||
std::string GetSystemLocale(gin_helper::ErrorThrower thrower) const;
|
||||
void OnSecondInstance(base::CommandLine cmd,
|
||||
const base::FilePath& cwd,
|
||||
- const std::vector<const uint8_t> additional_data);
|
||||
+ const std::vector<uint8_t> additional_data);
|
||||
bool HasSingleInstanceLock() const;
|
||||
bool RequestSingleInstanceLock(gin::Arguments* args);
|
||||
void ReleaseSingleInstanceLock();
|
@@ -1,15 +1,15 @@
|
||||
Index: electron-17.1.0/third_party/electron_node/common.gypi
|
||||
===================================================================
|
||||
--- electron-17.1.0.orig/third_party/electron_node/common.gypi 2022-03-07 17:39:13.557371769 +0100
|
||||
+++ electron-17.1.0/third_party/electron_node/common.gypi 2022-03-09 08:29:08.214665848 +0100
|
||||
@@ -405,6 +405,10 @@
|
||||
'BUILDING_UV_SHARED=1',
|
||||
--- src/third_party/electron_node/common.gypi.orig 2025-03-06 22:25:15.650295769 +0100
|
||||
+++ src/third_party/electron_node/common.gypi 2025-03-07 07:06:10.532421547 +0100
|
||||
@@ -486,6 +486,10 @@
|
||||
'NOMINMAX',
|
||||
],
|
||||
}],
|
||||
+ [ 'OS in "linux"', {
|
||||
+ 'cflags': [ '-I/usr/include/electron' ],
|
||||
+ 'libraries': [ '-lz' ],
|
||||
+ }],
|
||||
[ 'OS in "linux freebsd openbsd solaris aix os400"', {
|
||||
[ 'OS in "linux freebsd openbsd solaris aix os400 openharmony"', {
|
||||
'cflags': [ '-pthread' ],
|
||||
'ldflags': [ '-pthread' ],
|
||||
|
@@ -1,17 +0,0 @@
|
||||
Index: electron-16.0.9/electron/build/webpack/webpack.config.base.js
|
||||
===================================================================
|
||||
--- electron-16.0.9.orig/electron/build/webpack/webpack.config.base.js 2022-02-16 16:41:24.767092075 +0100
|
||||
+++ electron-16.0.9/electron/build/webpack/webpack.config.base.js 2022-02-17 11:10:51.379512377 +0100
|
||||
@@ -1,5 +1,12 @@
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
+
|
||||
+// HACK: OpenSSL 3 does not support md4 any more, but webpack hardcodes it all
|
||||
+// over the place: https://github.com/webpack/webpack/issues/13572
|
||||
+const crypto = require("crypto");
|
||||
+const crypto_orig_createHash = crypto.createHash;
|
||||
+crypto.createHash = algorithm => crypto_orig_createHash(algorithm == "md4" ? "sha256" : algorithm);
|
||||
+
|
||||
const webpack = require('webpack');
|
||||
const TerserPlugin = require('terser-webpack-plugin');
|
||||
const WrapperPlugin = require('wrapper-webpack-plugin');
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4f98d6f6f8f513591eb22f8afbc191b496059ce2c56b957fc50e769d6fbb0c84
|
||||
size 573606884
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ba3666e3a877784714ae41bb53e1d9eecaa29e3a6c13999ead81f26c47487083
|
||||
size 588501104
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:85fa505a8c6b0d13e0af3dc2932a99bc556d0172fc1ef73d8fc2f40c80356270
|
||||
size 588034335
|
3
electron-37.4.0.tar.zst
Normal file
3
electron-37.4.0.tar.zst
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:085b6bc731179f06dd327f7594b962457a51b75155cefd02769e13d836c55aee
|
||||
size 1070535466
|
@@ -1,5 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
>&2 echo 'This build of Electron is provided by openSUSE and contains various modifications.'
|
||||
>&2 echo 'Please report problems at https://bugzilla.opensuse.org/enter_bug.cgi?classification=openSUSE and not to upstream bug trackers.'
|
||||
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
name=electron
|
||||
|
@@ -1,8 +1,8 @@
|
||||
Reducing symbol_level is a kludge and should have no effect on generated code.
|
||||
|
||||
--- src/base/BUILD.gn.orig
|
||||
+++ src/base/BUILD.gn
|
||||
@@ -2531,11 +2531,6 @@ buildflag_header("debugging_buildflags")
|
||||
--- src/base/BUILD.gn.orig 2024-12-08 18:43:52.881356091 +0100
|
||||
+++ src/base/BUILD.gn 2024-12-18 12:11:47.597615650 +0100
|
||||
@@ -2510,11 +2510,6 @@ buildflag_header("debugging_buildflags")
|
||||
enable_commandline_sequence_checks =
|
||||
(is_debug || dcheck_always_on) && !is_android
|
||||
|
||||
@@ -11,15 +11,15 @@ Reducing symbol_level is a kludge and should have no effect on generated code.
|
||||
- symbol_level > 0,
|
||||
- "symbol_level must be set to greater than 0 for source line numbers.")
|
||||
- }
|
||||
_enable_stack_trace_line_numbers =
|
||||
!print_unsymbolized_stack_traces && enable_stack_trace_line_numbers
|
||||
|
||||
flags = [
|
||||
"DCHECK_IS_CONFIGURABLE=$dcheck_is_configurable",
|
||||
--- src/build/config/logging.gni.orig
|
||||
+++ src/build/config/logging.gni
|
||||
@@ -11,5 +11,5 @@ declare_args() {
|
||||
enable_log_error_not_reached =
|
||||
is_chromeos_ash && !(is_debug || dcheck_always_on)
|
||||
--- src/build/config/logging.gni.orig 2024-12-08 18:34:51.748006561 +0100
|
||||
+++ src/build/config/logging.gni 2024-12-18 12:12:08.104531156 +0100
|
||||
@@ -20,5 +20,5 @@ declare_args() {
|
||||
|
||||
# Enables the DWARF line number reader on Linux. This only has an effect if
|
||||
# print_unsymbolized_stack_traces is false.
|
||||
- enable_stack_trace_line_numbers = symbol_level > 0
|
||||
+ enable_stack_trace_line_numbers = true
|
||||
}
|
||||
|
11
event_record-optional-initializer.patch
Normal file
11
event_record-optional-initializer.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- src/services/network/public/cpp/ad_auction/event_record.cc.orig 2025-08-15 17:32:28.601405234 +0200
|
||||
+++ src/services/network/public/cpp/ad_auction/event_record.cc 2025-08-16 10:18:19.106421517 +0200
|
||||
@@ -49,7 +49,7 @@ std::optional<std::vector<url::Origin>>
|
||||
const auto it = dict.find("eligible-origins");
|
||||
if (it == dict.end()) {
|
||||
// "eligible-origins" is optional, so just return an empty list.
|
||||
- return {{}};
|
||||
+ return std::optional<std::vector<url::Origin>>(std::in_place);
|
||||
}
|
||||
const net::structured_headers::ParameterizedMember& parameterized_member =
|
||||
it->second;
|
@@ -1,20 +0,0 @@
|
||||
Correct ODR violation due to ambiguous name.
|
||||
|
||||
When this header is compiled by itself, `scoped_refptr` refers to the type declared in `base/memory/scoped_refptr.h`.
|
||||
When `third_party/webrtc/api/scoped_refptr.h` is included before, the name changes to refer to `::webrtc::scoped_refptr` instead,
|
||||
leading to mismatch across translation units. This is detected and reported by GCC.
|
||||
|
||||
--- src/components/webrtc/fake_ssl_client_socket.h.old
|
||||
+++ src/components/webrtc/fake_ssl_client_socket.h
|
||||
|
||||
@@ -111,8 +111,8 @@ class FakeSSLClientSocket : public net::
|
||||
// The callback passed to Connect().
|
||||
net::CompletionOnceCallback user_connect_callback_;
|
||||
|
||||
- scoped_refptr<net::DrainableIOBuffer> write_buf_;
|
||||
- scoped_refptr<net::DrainableIOBuffer> read_buf_;
|
||||
+ ::scoped_refptr<net::DrainableIOBuffer> write_buf_;
|
||||
+ ::scoped_refptr<net::DrainableIOBuffer> read_buf_;
|
||||
};
|
||||
|
||||
} // namespace webrtc
|
215
ffmpeg-4-AV_PROFILE.patch
Normal file
215
ffmpeg-4-AV_PROFILE.patch
Normal file
@@ -0,0 +1,215 @@
|
||||
From 129f48501a7c3fa4236234f2fa0aee490a845b59 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Guilbert <tguilbert@chromium.org>
|
||||
Date: Fri, 2 May 2025 08:58:47 -0700
|
||||
Subject: [PATCH] Roll src/third_party/ffmpeg/ 01f23648c..dcdd0fa51 (552
|
||||
commits)
|
||||
|
||||
This CL rolls ffmpeg for M138.
|
||||
|
||||
This roll includes the removal of many deprecated APIs: some FF_*
|
||||
macros were consolidated as equivalent AV_* macros under
|
||||
libavcodec/def.h
|
||||
|
||||
https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/01f23648c6b8..dcdd0fa51b65
|
||||
|
||||
$ git log 01f23648c..dcdd0fa51 --date=short --no-merges --format='%ad %ae %s'
|
||||
2025-05-01 tguilbert Remove deprecated av_stream_get_side_data()
|
||||
2025-05-01 tguilbert README.chromium file
|
||||
2025-05-01 tguilbert GN Configuration
|
||||
2025-04-29 jamrial avcodec/cbs_apv: don't return an error when reading empty buffers
|
||||
2025-04-27 sw fate: Add test for APV 422-10 profile
|
||||
(...)
|
||||
2025-03-18 andreas.rheinhardt avcodec/Makefile: Only compile executor when VVC decoder is enabled
|
||||
2025-03-18 andreas.rheinhardt avcodec/vvc/Makefile: Move VVC decoder->h2645data dep to lavc/Makefile
|
||||
2025-03-17 ffmpeg ffbuild: use response files only if ar accepts them
|
||||
2025-03-18 timo avcodec/tableprint_vlc: fix build with --enable-hardcoded-tables
|
||||
2025-03-18 timo avcodec/Makefile: fix build of exr decoder in odd configs
|
||||
|
||||
Created with:
|
||||
roll-dep src/third_party/ffmpeg
|
||||
|
||||
Bug: 415118707
|
||||
Change-Id: Iae943ce996031d5a6f7dbbd2915ad9cfabadf4d6
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6506529
|
||||
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
|
||||
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
|
||||
Auto-Submit: Thomas Guilbert <tguilbert@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1455010}
|
||||
---
|
||||
DEPS | 2 +-
|
||||
media/ffmpeg/ffmpeg_common.cc | 44 +++++++++----------
|
||||
.../filters/ffmpeg_aac_bitstream_converter.cc | 12 ++---
|
||||
...ffmpeg_aac_bitstream_converter_unittest.cc | 6 +--
|
||||
third_party/ffmpeg | 2 +-
|
||||
5 files changed, 33 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/DEPS b/DEPS
|
||||
index b80ab0a6d81811..9b247c02d2a202 100644
|
||||
--- a/DEPS
|
||||
+++ b/DEPS
|
||||
@@ -515,7 +515,7 @@ vars = {
|
||||
# Three lines of non-changing comments so that
|
||||
# the commit queue can handle CLs rolling ffmpeg
|
||||
# and whatever else without interference from each other.
|
||||
- 'ffmpeg_revision': '01f23648c6b84de6c0f717fa4e1816f53b9ee72e',
|
||||
+ 'ffmpeg_revision': 'dcdd0fa51b65a0b1688ff6b8f0cc81908f09ded2',
|
||||
# Three lines of non-changing comments so that
|
||||
# the commit queue can handle CLs rolling webpagereplay
|
||||
# and whatever else without interference from each other.
|
||||
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
|
||||
index cfd0552ee31088..610be2d37b351f 100644
|
||||
--- a/media/ffmpeg/ffmpeg_common.cc
|
||||
+++ b/media/ffmpeg/ffmpeg_common.cc
|
||||
@@ -263,22 +263,22 @@ AVCodecID VideoCodecToCodecID(VideoCodec video_codec) {
|
||||
static VideoCodecProfile ProfileIDToVideoCodecProfile(int profile) {
|
||||
// Clear out the CONSTRAINED & INTRA flags which are strict subsets of the
|
||||
// corresponding profiles with which they're used.
|
||||
- profile &= ~FF_PROFILE_H264_CONSTRAINED;
|
||||
- profile &= ~FF_PROFILE_H264_INTRA;
|
||||
+ profile &= ~AV_PROFILE_H264_CONSTRAINED;
|
||||
+ profile &= ~AV_PROFILE_H264_INTRA;
|
||||
switch (profile) {
|
||||
- case FF_PROFILE_H264_BASELINE:
|
||||
+ case AV_PROFILE_H264_BASELINE:
|
||||
return H264PROFILE_BASELINE;
|
||||
- case FF_PROFILE_H264_MAIN:
|
||||
+ case AV_PROFILE_H264_MAIN:
|
||||
return H264PROFILE_MAIN;
|
||||
- case FF_PROFILE_H264_EXTENDED:
|
||||
+ case AV_PROFILE_H264_EXTENDED:
|
||||
return H264PROFILE_EXTENDED;
|
||||
- case FF_PROFILE_H264_HIGH:
|
||||
+ case AV_PROFILE_H264_HIGH:
|
||||
return H264PROFILE_HIGH;
|
||||
- case FF_PROFILE_H264_HIGH_10:
|
||||
+ case AV_PROFILE_H264_HIGH_10:
|
||||
return H264PROFILE_HIGH10PROFILE;
|
||||
- case FF_PROFILE_H264_HIGH_422:
|
||||
+ case AV_PROFILE_H264_HIGH_422:
|
||||
return H264PROFILE_HIGH422PROFILE;
|
||||
- case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
|
||||
+ case AV_PROFILE_H264_HIGH_444_PREDICTIVE:
|
||||
return H264PROFILE_HIGH444PREDICTIVEPROFILE;
|
||||
default:
|
||||
DVLOG(1) << "Unknown profile id: " << profile;
|
||||
@@ -289,23 +289,23 @@ static VideoCodecProfile ProfileIDToVideoCodecProfile(int profile) {
|
||||
static int VideoCodecProfileToProfileID(VideoCodecProfile profile) {
|
||||
switch (profile) {
|
||||
case H264PROFILE_BASELINE:
|
||||
- return FF_PROFILE_H264_BASELINE;
|
||||
+ return AV_PROFILE_H264_BASELINE;
|
||||
case H264PROFILE_MAIN:
|
||||
- return FF_PROFILE_H264_MAIN;
|
||||
+ return AV_PROFILE_H264_MAIN;
|
||||
case H264PROFILE_EXTENDED:
|
||||
- return FF_PROFILE_H264_EXTENDED;
|
||||
+ return AV_PROFILE_H264_EXTENDED;
|
||||
case H264PROFILE_HIGH:
|
||||
- return FF_PROFILE_H264_HIGH;
|
||||
+ return AV_PROFILE_H264_HIGH;
|
||||
case H264PROFILE_HIGH10PROFILE:
|
||||
- return FF_PROFILE_H264_HIGH_10;
|
||||
+ return AV_PROFILE_H264_HIGH_10;
|
||||
case H264PROFILE_HIGH422PROFILE:
|
||||
- return FF_PROFILE_H264_HIGH_422;
|
||||
+ return AV_PROFILE_H264_HIGH_422;
|
||||
case H264PROFILE_HIGH444PREDICTIVEPROFILE:
|
||||
- return FF_PROFILE_H264_HIGH_444_PREDICTIVE;
|
||||
+ return AV_PROFILE_H264_HIGH_444_PREDICTIVE;
|
||||
default:
|
||||
DVLOG(1) << "Unknown VideoCodecProfile: " << profile;
|
||||
}
|
||||
- return FF_PROFILE_UNKNOWN;
|
||||
+ return AV_PROFILE_UNKNOWN;
|
||||
}
|
||||
|
||||
SampleFormat AVSampleFormatToSampleFormat(AVSampleFormat sample_format,
|
||||
@@ -443,7 +443,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
|
||||
// TODO(dalecurtis): Just use the profile from the codec context if ffmpeg
|
||||
// ever starts supporting xHE-AAC.
|
||||
// FFmpeg provides the (defined_profile - 1) for AVCodecContext::profile
|
||||
- if (codec_context->profile == FF_PROFILE_UNKNOWN ||
|
||||
+ if (codec_context->profile == AV_PROFILE_UNKNOWN ||
|
||||
codec_context->profile == mp4::AAC::kXHeAAcType - 1) {
|
||||
// Errors aren't fatal here, so just drop any MediaLog messages.
|
||||
NullMediaLog media_log;
|
||||
@@ -661,16 +661,16 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
|
||||
break;
|
||||
case VideoCodec::kVP9:
|
||||
switch (codec_context->profile) {
|
||||
- case FF_PROFILE_VP9_0:
|
||||
+ case AV_PROFILE_VP9_0:
|
||||
profile = VP9PROFILE_PROFILE0;
|
||||
break;
|
||||
- case FF_PROFILE_VP9_1:
|
||||
+ case AV_PROFILE_VP9_1:
|
||||
profile = VP9PROFILE_PROFILE1;
|
||||
break;
|
||||
- case FF_PROFILE_VP9_2:
|
||||
+ case AV_PROFILE_VP9_2:
|
||||
profile = VP9PROFILE_PROFILE2;
|
||||
break;
|
||||
- case FF_PROFILE_VP9_3:
|
||||
+ case AV_PROFILE_VP9_3:
|
||||
profile = VP9PROFILE_PROFILE3;
|
||||
break;
|
||||
default:
|
||||
diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc
|
||||
index 7fd37e90b7e475..c00ac262dabb19 100644
|
||||
--- a/media/filters/ffmpeg_aac_bitstream_converter.cc
|
||||
+++ b/media/filters/ffmpeg_aac_bitstream_converter.cc
|
||||
@@ -68,17 +68,17 @@ bool GenerateAdtsHeader(int codec,
|
||||
hdr[1] |= 1;
|
||||
|
||||
switch (audio_profile) {
|
||||
- case FF_PROFILE_AAC_MAIN:
|
||||
+ case AV_PROFILE_AAC_MAIN:
|
||||
break;
|
||||
- case FF_PROFILE_AAC_HE:
|
||||
- case FF_PROFILE_AAC_HE_V2:
|
||||
- case FF_PROFILE_AAC_LOW:
|
||||
+ case AV_PROFILE_AAC_HE:
|
||||
+ case AV_PROFILE_AAC_HE_V2:
|
||||
+ case AV_PROFILE_AAC_LOW:
|
||||
hdr[2] |= (1 << 6);
|
||||
break;
|
||||
- case FF_PROFILE_AAC_SSR:
|
||||
+ case AV_PROFILE_AAC_SSR:
|
||||
hdr[2] |= (2 << 6);
|
||||
break;
|
||||
- case FF_PROFILE_AAC_LTP:
|
||||
+ case AV_PROFILE_AAC_LTP:
|
||||
hdr[2] |= (3 << 6);
|
||||
break;
|
||||
default:
|
||||
diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
|
||||
index 0e56a6ea5b5cb4..2a6ccb8c910f6c 100644
|
||||
--- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
|
||||
+++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
|
||||
@@ -41,7 +41,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test {
|
||||
// Set up reasonable aac parameters
|
||||
memset(&test_parameters_, 0, sizeof(AVCodecParameters));
|
||||
test_parameters_.codec_id = AV_CODEC_ID_AAC;
|
||||
- test_parameters_.profile = FF_PROFILE_AAC_MAIN;
|
||||
+ test_parameters_.profile = AV_PROFILE_AAC_MAIN;
|
||||
test_parameters_.ch_layout.nb_channels = 2;
|
||||
test_parameters_.extradata = extradata_header_;
|
||||
test_parameters_.extradata_size = sizeof(extradata_header_);
|
||||
@@ -131,7 +131,7 @@ TEST_F(FFmpegAACBitstreamConverterTest, Conversion_AudioProfileType) {
|
||||
|
||||
EXPECT_EQ(profile, kAacMainProfile);
|
||||
|
||||
- test_parameters_.profile = FF_PROFILE_AAC_HE;
|
||||
+ test_parameters_.profile = AV_PROFILE_AAC_HE;
|
||||
FFmpegAACBitstreamConverter converter_he(&test_parameters_);
|
||||
|
||||
test_packet = ScopedAVPacket::Allocate();
|
||||
@@ -143,7 +143,7 @@ TEST_F(FFmpegAACBitstreamConverterTest, Conversion_AudioProfileType) {
|
||||
|
||||
EXPECT_EQ(profile, kAacLowComplexityProfile);
|
||||
|
||||
- test_parameters_.profile = FF_PROFILE_AAC_ELD;
|
||||
+ test_parameters_.profile = AV_PROFILE_AAC_ELD;
|
||||
FFmpegAACBitstreamConverter converter_eld(&test_parameters_);
|
||||
|
||||
test_packet = ScopedAVPacket::Allocate();
|
@@ -176,33 +176,6 @@ index 5f257bdfaa6..e1be5aa9a5b 100644
|
||||
if (frame->sample_rate != sample_rate_ || channels != channels_ ||
|
||||
frame->format != av_sample_format_) {
|
||||
DLOG(ERROR) << "Unsupported midstream configuration change!"
|
||||
diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc
|
||||
index 2aba7927a31..1f45a50cace 100644
|
||||
--- a/media/filters/audio_file_reader_unittest.cc
|
||||
+++ b/media/filters/audio_file_reader_unittest.cc
|
||||
@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testing::Test {
|
||||
EXPECT_FALSE(reader_->Open());
|
||||
}
|
||||
|
||||
- void RunTestFailingDecode(const char* fn) {
|
||||
+ void RunTestFailingDecode(const char* fn, int expect_read = 0) {
|
||||
Initialize(fn);
|
||||
EXPECT_TRUE(reader_->Open());
|
||||
std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets;
|
||||
- EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0);
|
||||
+ EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read);
|
||||
}
|
||||
|
||||
void RunTestPartialDecode(const char* fn) {
|
||||
@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) {
|
||||
}
|
||||
|
||||
TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
|
||||
- RunTestFailingDecode("midstream_config_change.mp3");
|
||||
+ RunTestFailingDecode("midstream_config_change.mp3", 42624);
|
||||
}
|
||||
#endif
|
||||
|
||||
diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc
|
||||
index 185819eb936..69ff508c221 100644
|
||||
--- a/media/filters/audio_video_metadata_extractor.cc
|
||||
@@ -263,19 +236,6 @@ index 6f231c85729..ca5e5fb927d 100644
|
||||
frame_length_ = header_plus_packet_size;
|
||||
}
|
||||
|
||||
diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
|
||||
index 1fd4c5ccd7d..f59bcd8fdaf 100644
|
||||
--- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
|
||||
+++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
|
||||
@@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test {
|
||||
memset(&test_parameters_, 0, sizeof(AVCodecParameters));
|
||||
test_parameters_.codec_id = AV_CODEC_ID_AAC;
|
||||
test_parameters_.profile = FF_PROFILE_AAC_MAIN;
|
||||
- test_parameters_.channels = 2;
|
||||
+ test_parameters_.ch_layout.nb_channels = 2;
|
||||
test_parameters_.extradata = extradata_header_;
|
||||
test_parameters_.extradata_size = sizeof(extradata_header_);
|
||||
}
|
||||
diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc
|
||||
index 6a56c675f7d..4615fdeb3fb 100644
|
||||
--- a/media/filters/ffmpeg_audio_decoder.cc
|
||||
@@ -298,20 +258,6 @@ index 6a56c675f7d..4615fdeb3fb 100644
|
||||
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED &&
|
||||
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) {
|
||||
channel_layout = CHANNEL_LAYOUT_DISCRETE;
|
||||
@@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) {
|
||||
// Success!
|
||||
av_sample_format_ = codec_context_->sample_fmt;
|
||||
|
||||
- if (codec_context_->channels != config.channels()) {
|
||||
+ if (codec_context_->ch_layout.nb_channels != config.channels()) {
|
||||
MEDIA_LOG(ERROR, media_log_)
|
||||
<< "Audio configuration specified " << config.channels()
|
||||
<< " channels, but FFmpeg thinks the file contains "
|
||||
- << codec_context_->channels << " channels";
|
||||
+ << codec_context_->ch_layout.nb_channels << " channels";
|
||||
ReleaseFFmpegResources();
|
||||
state_ = DecoderState::kUninitialized;
|
||||
return false;
|
||||
@@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
|
||||
if (frame->nb_samples <= 0)
|
||||
return AVERROR(EINVAL);
|
||||
|
10
file_dialog-missing-uint32_t.patch
Normal file
10
file_dialog-missing-uint32_t.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- src/electron/shell/browser/ui/file_dialog.h.orig 2025-05-07 19:52:05.453848300 +0200
|
||||
+++ src/electron/shell/browser/ui/file_dialog.h 2025-05-07 22:41:30.703083100 +0200
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef ELECTRON_SHELL_BROWSER_UI_FILE_DIALOG_H_
|
||||
#define ELECTRON_SHELL_BROWSER_UI_FILE_DIALOG_H_
|
||||
|
||||
+#include <stdint.h>
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <utility>
|
@@ -1,31 +0,0 @@
|
||||
From 072b9f3bc340020325cf3dd7bff1991cd22de171 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jdapena@igalia.com>
|
||||
Date: Tue, 19 Mar 2024 16:27:55 +0000
|
||||
Subject: [PATCH] IWYU: missing include for std::optional usage in
|
||||
first_party_sets_handler_database_helper.h
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Bug: 41455655
|
||||
Change-Id: Ia644d2e6baa904190d162575dd16264e66ea227e
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5377063
|
||||
Reviewed-by: Chris Fredrickson <cfredric@chromium.org>
|
||||
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
|
||||
Cr-Commit-Position: refs/heads/main@{#1274977}
|
||||
---
|
||||
.../first_party_sets/first_party_sets_handler_database_helper.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/content/browser/first_party_sets/first_party_sets_handler_database_helper.h b/content/browser/first_party_sets/first_party_sets_handler_database_helper.h
|
||||
index a12af718abda0..92afb98d64ea4 100644
|
||||
--- a/content/browser/first_party_sets/first_party_sets_handler_database_helper.h
|
||||
+++ b/content/browser/first_party_sets/first_party_sets_handler_database_helper.h
|
||||
@@ -6,6 +6,7 @@
|
||||
#define CONTENT_BROWSER_FIRST_PARTY_SETS_FIRST_PARTY_SETS_HANDLER_DATABASE_HELPER_H_
|
||||
|
||||
#include <memory>
|
||||
+#include <optional>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
166
fix-build-without-screen-ai.patch
Normal file
166
fix-build-without-screen-ai.patch
Normal file
@@ -0,0 +1,166 @@
|
||||
--- src/chrome/test/BUILD.gn.orig 2025-04-11 12:13:12.932314099 +0200
|
||||
+++ src/chrome/test/BUILD.gn 2025-04-12 13:00:11.499771987 +0200
|
||||
@@ -2079,9 +2079,6 @@ if (!is_android) {
|
||||
"//chrome/browser/resource_coordinator:tab_manager_features",
|
||||
"//chrome/browser/safe_browsing:advanced_protection",
|
||||
"//chrome/browser/safe_browsing:verdict_cache_manager_factory",
|
||||
- "//chrome/browser/screen_ai:screen_ai_install_state",
|
||||
- "//chrome/browser/screen_ai:screen_ai_service_router_factory",
|
||||
- "//chrome/browser/screen_ai/public:test_support",
|
||||
"//chrome/browser/search",
|
||||
"//chrome/browser/search_engines",
|
||||
"//chrome/browser/segmentation_platform:test_utils",
|
||||
@@ -2485,9 +2482,6 @@ if (!is_android) {
|
||||
"//services/network/public/proto:sct_audit_report_proto",
|
||||
"//services/preferences/public/cpp",
|
||||
"//services/preferences/public/cpp/tracked",
|
||||
- "//services/screen_ai:test_support",
|
||||
- "//services/screen_ai/public/cpp:utilities",
|
||||
- "//services/screen_ai/public/mojom",
|
||||
"//services/service_manager/public/cpp",
|
||||
"//services/strings",
|
||||
"//services/test/echo/public/mojom",
|
||||
@@ -8027,7 +8021,6 @@ test("unit_tests") {
|
||||
#
|
||||
# TODO(crbug.com/417513088): Maybe merge with the non-android `deps` declaration above?
|
||||
deps += [
|
||||
- "../browser/screen_ai:screen_ai_install_state",
|
||||
"//chrome/browser/apps:icon_standardizer",
|
||||
"//chrome/browser/apps/app_service",
|
||||
"//chrome/browser/apps/app_service:app_registry_cache_waiter",
|
||||
@@ -8172,7 +8165,6 @@ test("unit_tests") {
|
||||
"//components/webapps/browser",
|
||||
"//services/metrics/public/cpp:ukm_builders",
|
||||
"//services/network:test_support",
|
||||
- "//services/screen_ai:test_support",
|
||||
"//third_party/crashpad/crashpad/util",
|
||||
"//third_party/libaddressinput",
|
||||
"//third_party/lzma_sdk/google:unit_tests",
|
||||
@@ -8445,7 +8437,6 @@ test("unit_tests") {
|
||||
"//chrome/browser/push_notification",
|
||||
"//chrome/browser/push_notification:test_support",
|
||||
"//chrome/browser/push_notification/protos:proto",
|
||||
- "//chrome/browser/screen_ai/public:test_support",
|
||||
"//chrome/browser/sharesheet",
|
||||
"//chrome/browser/smart_card:smart_card",
|
||||
"//chrome/browser/task_manager:impl",
|
||||
--- src/chrome/browser/BUILD.gn.orig 2025-04-11 12:13:12.927314100 +0200
|
||||
+++ src/chrome/browser/BUILD.gn 2025-04-12 13:12:42.819768051 +0200
|
||||
@@ -4228,10 +4228,6 @@ static_library("browser") {
|
||||
"//chrome/browser/metrics/desktop_session_duration",
|
||||
"//chrome/browser/new_tab_page/chrome_colors",
|
||||
"//chrome/browser/policy:path_parser",
|
||||
- "//chrome/browser/screen_ai:prefs",
|
||||
- "//chrome/browser/screen_ai:screen_ai_install_state",
|
||||
- "//chrome/browser/screen_ai:screen_ai_service_router_factory",
|
||||
- "//chrome/browser/screen_ai/public:optical_character_recognizer",
|
||||
"//chrome/browser/search/background",
|
||||
"//chrome/browser/sharing_hub",
|
||||
"//chrome/browser/smart_card",
|
||||
@@ -4357,9 +4353,6 @@ static_library("browser") {
|
||||
"//components/webauthn/core/browser",
|
||||
"//components/webauthn/core/browser:passkey_model",
|
||||
"//services/device/public/cpp/hid",
|
||||
- "//services/screen_ai",
|
||||
- "//services/screen_ai/public/cpp:utilities",
|
||||
- "//services/screen_ai/public/mojom",
|
||||
"//third_party/crashpad/crashpad/client:common",
|
||||
"//third_party/zxcvbn-cpp",
|
||||
"//ui/views",
|
||||
--- src/chrome/renderer/BUILD.gn.orig 2024-12-08 18:34:54.671339980 +0100
|
||||
+++ src/chrome/renderer/BUILD.gn 2025-01-01 21:11:57.272282026 +0100
|
||||
@@ -408,7 +408,6 @@ static_library("renderer") {
|
||||
"//components/crx_file",
|
||||
"//components/trusted_vault",
|
||||
"//services/screen_ai/buildflags",
|
||||
- "//services/screen_ai/public/mojom",
|
||||
"//services/strings",
|
||||
"//third_party/re2:re2",
|
||||
]
|
||||
--- src/chrome/utility/BUILD.gn.orig 2024-12-08 18:34:55.478006671 +0100
|
||||
+++ src/chrome/utility/BUILD.gn 2025-01-01 21:14:46.902339035 +0100
|
||||
@@ -67,7 +67,6 @@ static_library("utility") {
|
||||
"//services/network:network_service",
|
||||
"//services/passage_embeddings:passage_embeddings",
|
||||
"//services/passage_embeddings/public/mojom",
|
||||
- "//services/screen_ai/buildflags",
|
||||
"//services/service_manager/public/cpp",
|
||||
"//skia",
|
||||
"//sql",
|
||||
@@ -145,7 +144,6 @@ static_library("utility") {
|
||||
"//components/autofill/core/common",
|
||||
"//components/user_data_importer/common",
|
||||
"//services/proxy_resolver:lib",
|
||||
- "//services/screen_ai",
|
||||
]
|
||||
}
|
||||
|
||||
--- src/chrome/browser/screen_ai/BUILD.gn.orig 2024-12-08 18:34:53.871339956 +0100
|
||||
+++ src/chrome/browser/screen_ai/BUILD.gn 2025-01-01 21:17:11.015719404 +0100
|
||||
@@ -48,7 +48,6 @@ source_set("screen_ai_install_state") {
|
||||
"//chrome/browser:browser_process",
|
||||
"//components/prefs",
|
||||
"//content/public/browser",
|
||||
- "//services/screen_ai/public/cpp:utilities",
|
||||
"//ui/accessibility:ax_base",
|
||||
]
|
||||
|
||||
@@ -68,9 +67,6 @@ source_set("screen_ai_service_router_fac
|
||||
"//components/keyed_service/core",
|
||||
"//components/performance_manager:performance_manager",
|
||||
"//content/public/browser",
|
||||
- "//services/screen_ai/public/cpp:utilities",
|
||||
- "//services/screen_ai/public/mojom:factory",
|
||||
- "//services/screen_ai/public/mojom:mojom",
|
||||
]
|
||||
|
||||
configs += [ "//build/config/compiler:wexit_time_destructors" ]
|
||||
--- src/chrome/browser/screen_ai/public/BUILD.gn.orig 2024-12-08 18:34:53.871339956 +0100
|
||||
+++ src/chrome/browser/screen_ai/public/BUILD.gn 2025-01-01 21:18:43.609082510 +0100
|
||||
@@ -12,7 +12,6 @@ source_set("optical_character_recognizer
|
||||
"//chrome/browser/profiles:profile",
|
||||
"//chrome/browser/screen_ai:screen_ai_service_router_factory",
|
||||
"//content/public/browser",
|
||||
- "//services/screen_ai/public/mojom",
|
||||
]
|
||||
|
||||
configs += [ "//build/config/compiler:wexit_time_destructors" ]
|
||||
--- src/chrome/browser/profiles/BUILD.gn.orig 2025-04-11 12:05:17.028151748 +0200
|
||||
+++ src/chrome/browser/profiles/BUILD.gn 2025-04-12 13:17:59.379764245 +0200
|
||||
@@ -302,7 +302,6 @@ source_set("profiles_extra_parts_impl")
|
||||
"//chrome/browser/feedback",
|
||||
"//chrome/browser/hid",
|
||||
"//chrome/browser/media/router/discovery/access_code:access_code_sink_service",
|
||||
- "//chrome/browser/screen_ai:screen_ai_service_router_factory",
|
||||
"//chrome/browser/search",
|
||||
"//chrome/browser/search/background",
|
||||
"//chrome/browser/search_engine_choice",
|
||||
--- src/chrome/browser/prefs/BUILD.gn.orig 2025-04-11 12:05:17.010048233 +0200
|
||||
+++ src/chrome/browser/prefs/BUILD.gn 2025-04-12 13:20:41.959768617 +0200
|
||||
@@ -265,7 +265,6 @@ source_set("impl") {
|
||||
} else {
|
||||
deps += [
|
||||
"//chrome/browser/promos:utils",
|
||||
- "//chrome/browser/screen_ai:prefs",
|
||||
"//chrome/browser/search/background",
|
||||
"//chrome/browser/search_engine_choice",
|
||||
"//chrome/browser/search_engines",
|
||||
--- src/chrome/browser/ui/BUILD.gn.orig 2025-04-11 12:05:17.331313863 +0200
|
||||
+++ src/chrome/browser/ui/BUILD.gn 2025-04-12 13:26:46.759762260 +0200
|
||||
@@ -1705,8 +1705,6 @@ static_library("ui") {
|
||||
"//chrome/browser/regional_capabilities",
|
||||
"//chrome/browser/safe_browsing",
|
||||
"//chrome/browser/safe_browsing:advanced_protection",
|
||||
- "//chrome/browser/screen_ai:screen_ai_install_state",
|
||||
- "//chrome/browser/screen_ai:screen_ai_service_router_factory",
|
||||
"//chrome/browser/smart_card:smart_card",
|
||||
"//chrome/browser/tab_group_sync:utils",
|
||||
"//chrome/browser/themes",
|
||||
@@ -2376,7 +2374,6 @@ static_library("ui") {
|
||||
"//chrome/browser/policy:onc",
|
||||
"//chrome/browser/policy:system_features_disable_list",
|
||||
"//chrome/browser/push_notification:push_notification",
|
||||
- "//chrome/browser/screen_ai/public:optical_character_recognizer",
|
||||
"//chrome/browser/ui/ash/accessibility",
|
||||
"//chrome/browser/ui/ash/app_access",
|
||||
"//chrome/browser/ui/ash/arc",
|
60
fix-build-without-supervised-users.patch
Normal file
60
fix-build-without-supervised-users.patch
Normal file
@@ -0,0 +1,60 @@
|
||||
--- src/chrome/test/BUILD.gn.orig 2024-09-12 13:54:44.642624995 +0200
|
||||
+++ src/chrome/test/BUILD.gn 2024-09-12 15:25:29.792388388 +0200
|
||||
@@ -56,7 +56,6 @@ import("//v8/gni/v8.gni")
|
||||
|
||||
assert(!is_ios, "Chromium/iOS shouldn't use anything in //chrome")
|
||||
assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome")
|
||||
-assert(enable_supervised_users)
|
||||
|
||||
if (is_android) {
|
||||
import("//build/config/android/rules.gni")
|
||||
--- src/chrome/common/BUILD.gn.orig 2024-12-08 18:34:54.604673311 +0100
|
||||
+++ src/chrome/common/BUILD.gn 2024-12-18 13:09:33.621395162 +0100
|
||||
@@ -22,7 +22,6 @@ import("//testing/libfuzzer/fuzzer_test.
|
||||
import("//third_party/widevine/cdm/widevine.gni")
|
||||
import("//tools/grit/grit_rule.gni")
|
||||
|
||||
-assert(enable_supervised_users)
|
||||
assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome")
|
||||
|
||||
declare_args() {
|
||||
--- src/chrome/renderer/BUILD.gn.orig 2024-09-12 13:46:51.849317526 +0200
|
||||
+++ src/chrome/renderer/BUILD.gn 2024-09-12 15:29:17.915843739 +0200
|
||||
@@ -18,7 +18,6 @@ import("//testing/libfuzzer/fuzzer_test.
|
||||
import("//third_party/widevine/cdm/widevine.gni")
|
||||
import("//tools/grit/grit_rule.gni")
|
||||
|
||||
-assert(enable_supervised_users)
|
||||
|
||||
grit("resources") {
|
||||
source = "resources/renderer_resources.grd"
|
||||
--- src/chrome/browser/BUILD.gn.orig 2024-09-12 13:54:44.639291662 +0200
|
||||
+++ src/chrome/browser/BUILD.gn 2024-09-12 15:30:42.759505691 +0200
|
||||
@@ -45,7 +45,6 @@ import("//third_party/widevine/cdm/widev
|
||||
import("//tools/grit/grit_rule.gni")
|
||||
import("//ui/base/ui_features.gni")
|
||||
|
||||
-assert(enable_supervised_users)
|
||||
|
||||
# //build/config/android/rules.gni imports //tools/grit/grit_rule.gni, which
|
||||
# produces a conflict for the "grit" template so we have to only include one.
|
||||
--- src/chrome/browser/ui/BUILD.gn.orig 2024-12-08 18:34:54.011339960 +0100
|
||||
+++ src/chrome/browser/ui/BUILD.gn 2024-12-18 13:09:34.948061857 +0100
|
||||
@@ -30,7 +30,6 @@ import("//third_party/protobuf/proto_lib
|
||||
import("//ui/base/ui_features.gni")
|
||||
import("//ui/views/features.gni")
|
||||
|
||||
-assert(enable_supervised_users)
|
||||
assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome")
|
||||
|
||||
generate_allowlist_from_histograms_file("webui_name_variants") {
|
||||
--- src/chrome/browser/extensions/BUILD.gn.orig 2025-04-11 12:05:16.772151640 +0200
|
||||
+++ src/chrome/browser/extensions/BUILD.gn 2025-04-11 20:28:31.291951121 +0200
|
||||
@@ -20,7 +20,6 @@ import("//testing/libfuzzer/fuzzer_test.
|
||||
import("//third_party/protobuf/proto_library.gni")
|
||||
|
||||
assert(enable_extensions_core)
|
||||
-assert(enable_supervised_users)
|
||||
assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome")
|
||||
|
||||
source_set("extensions") {
|
8
fix-system-highway.patch
Normal file
8
fix-system-highway.patch
Normal file
@@ -0,0 +1,8 @@
|
||||
--- src/build/linux/unbundle/highway.gn.orig 2025-04-11 12:05:15.714160237 +0200
|
||||
+++ src/build/linux/unbundle/highway.gn 2025-04-12 14:26:12.155738961 +0200
|
||||
@@ -18,3 +18,5 @@ source_set("libhwy") {
|
||||
public_configs = [ ":libhwy_external_config" ]
|
||||
public_deps = [ ":libhwy_shim" ]
|
||||
}
|
||||
+
|
||||
+source_set("highway_tests") {}
|
30
fpic.patch
30
fpic.patch
@@ -45,18 +45,6 @@ Use -fpic for code which goes only in dlls (gives smaller code),
|
||||
":spvtools_include_gen_dirs",
|
||||
]
|
||||
|
||||
- cflags = []
|
||||
+ cflags = ["-fpic", "-fno-semantic-interposition"]
|
||||
+ asmflags = ["-fpic", "-fno-semantic-interposition"]
|
||||
if (is_clang) {
|
||||
cflags += [
|
||||
"-Wno-implicit-fallthrough",
|
||||
--- a/third_party/vulkan-deps/spirv-tools/src/BUILD.gn
|
||||
+++ b/third_party/vulkan-deps/spirv-tools/src/BUILD.gn
|
||||
@@ -356,7 +356,8 @@
|
||||
":spvtools_include_gen_dirs",
|
||||
]
|
||||
|
||||
- cflags = []
|
||||
+ cflags = ["-fpic", "-fno-semantic-interposition"]
|
||||
+ asmflags = ["-fpic", "-fno-semantic-interposition"]
|
||||
@@ -85,26 +73,26 @@ Use -fpic for code which goes only in dlls (gives smaller code),
|
||||
sources = [
|
||||
"compression_utils_portable.cc",
|
||||
"compression_utils_portable.h",
|
||||
--- src/ui/qt/BUILD.gn.old 2022-12-02 23:49:17.792117400 +0100
|
||||
+++ src/ui/qt/BUILD.gn 2022-12-04 14:32:48.407196100 +0100
|
||||
@@ -43,6 +43,8 @@
|
||||
--- src/ui/qt/BUILD.gn.orig 2025-07-19 11:32:45.537979340 +0200
|
||||
+++ src/ui/qt/BUILD.gn 2025-07-19 16:18:57.173759933 +0200
|
||||
@@ -39,6 +39,8 @@ source_set("qt_interface") {
|
||||
# target instead.
|
||||
public = [ "qt_interface.h" ]
|
||||
sources = [ "qt_interface.cc" ]
|
||||
+ cflags = ["-fpic", "-fno-semantic-interposition"]
|
||||
+ asmflags = ["-fpic", "-fno-semantic-interposition"]
|
||||
}
|
||||
|
||||
template("qt_shim") {
|
||||
@@ -76,6 +78,8 @@
|
||||
# Don't use libc++ modules as this depends on libstdc++.
|
||||
use_libcxx_modules = false
|
||||
@@ -102,6 +104,8 @@ template("qt_shim") {
|
||||
sources += get_target_outputs(":generate_moc" + invoker.qt_version)
|
||||
deps += [ ":generate_moc" + invoker.qt_version ]
|
||||
}
|
||||
+ cflags = ["-fpic", "-fno-semantic-interposition"]
|
||||
+ asmflags = ["-fpic", "-fno-semantic-interposition"]
|
||||
}
|
||||
}
|
||||
qt_shim("qt5_shim") {
|
||||
|
||||
# Don't depend on libcxx modules. This binary doesn't depend on the standard
|
||||
# library in libcxx. Instead it depends on the libcxx in the sysroot, so
|
||||
--- src/third_party/abseil-cpp/BUILD.gn.old
|
||||
+++ src/third_party/abseil-cpp/BUILD.gn
|
||||
@@ -132,6 +132,8 @@ config("absl_define_config") {
|
||||
|
21
gn-logspam-breaks-install.patch
Normal file
21
gn-logspam-breaks-install.patch
Normal file
@@ -0,0 +1,21 @@
|
||||
Threatening downstream maintainers on stdout may be fun, but it breaks `gn desc` which we call in %install
|
||||
|
||||
--- src/build/config/c++/c++.gni 2025-04-16 14:36:21.927410223 +0200
|
||||
+++ src/build/config/c++/c++.gni 2025-04-19 00:11:43.759874434 +0200
|
||||
@@ -110,16 +110,3 @@ assert(!(is_ios && libcxx_is_shared),
|
||||
|
||||
# Chromium will require using its libc++ library implementation. Warn if the
|
||||
# current configuration is not using it.
|
||||
-if ((!use_custom_libcxx || !use_custom_libcxx_for_host) &&
|
||||
- # Standalone use of //build outside of Chromium can disable libc++.
|
||||
- build_with_chromium &&
|
||||
- # Try to avoid spamming the console lots. It's not actually
|
||||
- # toolchain-specific.
|
||||
- current_toolchain == default_toolchain) {
|
||||
- print("*********************************************************************")
|
||||
- print("WARNING: Support for linking against a C++ standard library other ")
|
||||
- print(" than the one in-tree (buildtools/third_party/libc++) is deprecated")
|
||||
- print(" and support for this will end. We plan to remove this option in ")
|
||||
- print(" M138.")
|
||||
- print("*********************************************************************")
|
||||
-}
|
@@ -1,32 +0,0 @@
|
||||
From 15e24abc1646ad9984923234a041cd0c3b8b1607 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jdapena@igalia.com>
|
||||
Date: Tue, 19 Mar 2024 16:21:06 +0000
|
||||
Subject: [PATCH] IWYU: missing include for usage of std::optional in
|
||||
gpu_adapter_info.h
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Bug: 41455655
|
||||
Change-Id: I42d6c9f99ea7718fa87267ebcf3368d0f46f5053
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5374260
|
||||
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
|
||||
Reviewed-by: Austin Eng <enga@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1274974}
|
||||
---
|
||||
third_party/blink/renderer/modules/webgpu/gpu_adapter_info.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.h b/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.h
|
||||
index 70b15d5c055aa..2084afbe6e877 100644
|
||||
--- a/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.h
|
||||
+++ b/third_party/blink/renderer/modules/webgpu/gpu_adapter_info.h
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGPU_GPU_ADAPTER_INFO_H_
|
||||
#define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGPU_GPU_ADAPTER_INFO_H_
|
||||
|
||||
+#include <optional>
|
||||
+
|
||||
#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
|
||||
#include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
|
@@ -1,37 +0,0 @@
|
||||
From 05a74771fed5491740588ec7b39ba64a7b710013 Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jdapena@igalia.com>
|
||||
Date: Thu, 1 Feb 2024 17:34:38 +0000
|
||||
Subject: [PATCH] GCC: avoid clash between getter and type in
|
||||
grid_sizing_tree.h
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Rename GridSubsizingTree::GridItems getter to GetGridItems to avoid
|
||||
type clash.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: I4112929d9f85dc4573002b429cc982d50085d3c9
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5224147
|
||||
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
|
||||
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
|
||||
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
|
||||
Cr-Commit-Position: refs/heads/main@{#1255116}
|
||||
---
|
||||
.../core/layout/grid/grid_layout_algorithm.cc | 13 +++++++------
|
||||
.../renderer/core/layout/grid/grid_sizing_tree.h | 2 +-
|
||||
2 files changed, 8 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/layout/grid/grid_sizing_tree.h b/third_party/blink/renderer/core/layout/grid/grid_sizing_tree.h
|
||||
index 45d55e2b36da4..2148ea9ea0657 100644
|
||||
--- a/third_party/blink/renderer/core/layout/grid/grid_sizing_tree.h
|
||||
+++ b/third_party/blink/renderer/core/layout/grid/grid_sizing_tree.h
|
||||
@@ -188,7 +188,7 @@ class GridSizingSubtree
|
||||
/* subtree_root */ grid_tree_->LookupSubgridIndex(subgrid_data));
|
||||
}
|
||||
|
||||
- GridItems& GridItems() const {
|
||||
+ ::blink::GridItems& GridItems() const {
|
||||
DCHECK(grid_tree_);
|
||||
return grid_tree_->At(subtree_root_).grid_items;
|
||||
}
|
@@ -1,93 +0,0 @@
|
||||
From 5fcaeafcab5460ea65e4a7bdee6589002adf74d2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= <drott@chromium.org>
|
||||
Date: Mon, 13 Feb 2023 13:26:16 +0000
|
||||
Subject: [PATCH] Use hb::unique_ptr instead of custom HbScopedPointer
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This was an earlier local RAII implementation that we no longer need now
|
||||
that HarfBuzz provides helpers for this.
|
||||
|
||||
Change-Id: Idc47ce2717c75556acb03e2ccccb50ec87ed3cca
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4239980
|
||||
Reviewed-by: Munira Tursunova <moonira@google.com>
|
||||
Commit-Queue: Dominik Röttsches <drott@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1104453}
|
||||
---
|
||||
.../platform/fonts/shaping/harfbuzz_shaper.cc | 39 ++++---------------
|
||||
1 file changed, 7 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.cc
|
||||
index c165a1703395a..dc1377a90a9f7 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper.cc
|
||||
@@ -35,6 +35,7 @@
|
||||
#include <unicode/uchar.h>
|
||||
#include <unicode/uscript.h>
|
||||
#include <algorithm>
|
||||
+#include <hb-cplusplus.hh>
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
@@ -194,33 +195,6 @@ struct ReshapeQueueItem {
|
||||
: action_(action), start_index_(start), num_characters_(num) {}
|
||||
};
|
||||
|
||||
-template <typename T>
|
||||
-class HarfBuzzScopedPtr {
|
||||
- STACK_ALLOCATED();
|
||||
-
|
||||
- public:
|
||||
- typedef void (*DestroyFunction)(T*);
|
||||
-
|
||||
- HarfBuzzScopedPtr(T* ptr, DestroyFunction destroy)
|
||||
- : ptr_(ptr), destroy_(destroy) {
|
||||
- DCHECK(destroy_);
|
||||
- }
|
||||
- HarfBuzzScopedPtr(const HarfBuzzScopedPtr&) = delete;
|
||||
- HarfBuzzScopedPtr& operator=(const HarfBuzzScopedPtr&) = delete;
|
||||
- ~HarfBuzzScopedPtr() {
|
||||
- if (ptr_)
|
||||
- (*destroy_)(ptr_);
|
||||
- }
|
||||
-
|
||||
- T* Get() const{ return ptr_; }
|
||||
- operator T *() const {return ptr_;}
|
||||
- void Set(T* ptr) { ptr_ = ptr; }
|
||||
-
|
||||
- private:
|
||||
- T* ptr_;
|
||||
- DestroyFunction destroy_;
|
||||
-};
|
||||
-
|
||||
//
|
||||
// Represents a context while shaping a range.
|
||||
//
|
||||
@@ -239,7 +214,7 @@ struct RangeContext {
|
||||
text_direction(direction),
|
||||
start(start),
|
||||
end(end),
|
||||
- buffer(hb_buffer_create(), hb_buffer_destroy),
|
||||
+ buffer(hb_buffer_create()),
|
||||
options(options) {
|
||||
DCHECK_GE(end, start);
|
||||
font_features.Initialize(font->GetFontDescription());
|
||||
@@ -249,7 +224,7 @@ struct RangeContext {
|
||||
const TextDirection text_direction;
|
||||
const unsigned start;
|
||||
const unsigned end;
|
||||
- const HarfBuzzScopedPtr<hb_buffer_t> buffer;
|
||||
+ const hb::unique_ptr<hb_buffer_t> buffer;
|
||||
FontFeatures font_features;
|
||||
Deque<ReshapeQueueItem> reshape_queue;
|
||||
const ShapeOptions options;
|
||||
@@ -1032,7 +1007,7 @@ void HarfBuzzShaper::GetGlyphData(const
|
||||
UScriptCode script,
|
||||
bool is_horizontal,
|
||||
GlyphDataList& glyphs) {
|
||||
- HarfBuzzScopedPtr<hb_buffer_t> hb_buffer(hb_buffer_create(), hb_buffer_destroy);
|
||||
+ hb::unique_ptr<hb_buffer_t> hb_buffer(hb_buffer_create());
|
||||
hb_buffer_set_language(hb_buffer, locale.HarfbuzzLanguage());
|
||||
hb_buffer_set_script(hb_buffer, ICUScriptToHBScript(script));
|
||||
hb_buffer_set_direction(hb_buffer,
|
@@ -1,531 +0,0 @@
|
||||
From aa2ff2bee16776301bd840a4e18bdebdfb916822 Mon Sep 17 00:00:00 2001
|
||||
From: Munira Tursunova <moonira@google.com>
|
||||
Date: Tue, 04 Oct 2022 14:20:04 +0000
|
||||
Subject: [PATCH] Replacing Chromium scoped types with HarfBuzz custom types.
|
||||
|
||||
Removed the Chromium side type HbScoped and move to the
|
||||
HarfBuzz custom type.
|
||||
|
||||
Bug: 1363228
|
||||
Change-Id: I9d390808953e2c36651533cbf5f4958beff2e14d
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3927859
|
||||
Reviewed-by: Dominik Röttsches <drott@chromium.org>
|
||||
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
|
||||
Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
|
||||
Commit-Queue: Munira Tursunova <moonira@google.com>
|
||||
Cr-Commit-Position: refs/heads/main@{#1054692}
|
||||
---
|
||||
|
||||
diff --git a/components/paint_preview/common/BUILD.gn b/components/paint_preview/common/BUILD.gn
|
||||
index 377dc92..c39757d 100644
|
||||
--- a/components/paint_preview/common/BUILD.gn
|
||||
+++ b/components/paint_preview/common/BUILD.gn
|
||||
@@ -37,7 +37,6 @@
|
||||
"//components/crash/core/common:crash_key_lib",
|
||||
"//skia",
|
||||
"//third_party:freetype_harfbuzz",
|
||||
- "//third_party/harfbuzz-ng:hb_scoped_util",
|
||||
"//ui/gfx/geometry",
|
||||
"//url",
|
||||
]
|
||||
diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
|
||||
index 8298861d5..147dfc3 100644
|
||||
--- a/components/paint_preview/common/subset_font.cc
|
||||
+++ b/components/paint_preview/common/subset_font.cc
|
||||
@@ -7,6 +7,7 @@
|
||||
// clang-format off
|
||||
#include <hb.h>
|
||||
#include <hb-subset.h>
|
||||
+#include <hb-cplusplus.hh>
|
||||
// clang-format on
|
||||
|
||||
#include <memory>
|
||||
@@ -17,7 +18,6 @@
|
||||
#include "base/numerics/safe_conversions.h"
|
||||
#include "components/crash/core/common/crash_key.h"
|
||||
#include "skia/ext/font_utils.h"
|
||||
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
|
||||
#include "third_party/skia/include/core/SkFontMgr.h"
|
||||
#include "third_party/skia/include/core/SkStream.h"
|
||||
#include "third_party/skia/include/core/SkTypeface.h"
|
||||
@@ -45,11 +45,11 @@
|
||||
}
|
||||
|
||||
// Converts SkData to a hb_blob_t.
|
||||
-HbScoped<hb_blob_t> MakeBlob(sk_sp<SkData> data) {
|
||||
+hb::unique_ptr<hb_blob_t> MakeBlob(sk_sp<SkData> data) {
|
||||
if (!data ||
|
||||
!base::IsValueInRangeForNumericType<unsigned int, size_t>(data->size()))
|
||||
- return nullptr;
|
||||
- return HbScoped<hb_blob_t>(
|
||||
+ return hb::unique_ptr<hb_blob_t>(nullptr);
|
||||
+ return hb::unique_ptr<hb_blob_t>(
|
||||
hb_blob_create(static_cast<const char*>(data->data()),
|
||||
static_cast<unsigned int>(data->size()),
|
||||
HB_MEMORY_MODE_READONLY, nullptr, nullptr));
|
||||
@@ -72,8 +72,9 @@
|
||||
family_name.c_str());
|
||||
int ttc_index = 0;
|
||||
sk_sp<SkData> data = StreamToData(typeface->openStream(&ttc_index));
|
||||
- HbScoped<hb_face_t> face(hb_face_create(MakeBlob(data).get(), ttc_index));
|
||||
- HbScoped<hb_subset_input_t> input(hb_subset_input_create_or_fail());
|
||||
+ hb::unique_ptr<hb_face_t> face(
|
||||
+ hb_face_create(MakeBlob(data).get(), ttc_index));
|
||||
+ hb::unique_ptr<hb_subset_input_t> input(hb_subset_input_create_or_fail());
|
||||
if (!face || !input) {
|
||||
return nullptr;
|
||||
}
|
||||
@@ -102,14 +103,16 @@
|
||||
hb_set_add(skip_subset, HB_TAG('G', 'S', 'U', 'B'));
|
||||
hb_set_add(skip_subset, HB_TAG('G', 'P', 'O', 'S'));
|
||||
|
||||
- HbScoped<hb_face_t> subset_face(hb_subset_or_fail(face.get(), input.get()));
|
||||
+ hb::unique_ptr<hb_face_t> subset_face(
|
||||
+ hb_subset_or_fail(face.get(), input.get()));
|
||||
if (!subset_face) {
|
||||
return nullptr;
|
||||
}
|
||||
// Store the correct collection index for the subsetted font.
|
||||
const int final_ttc_index = hb_face_get_index(subset_face.get());
|
||||
|
||||
- HbScoped<hb_blob_t> subset_blob(hb_face_reference_blob(subset_face.get()));
|
||||
+ hb::unique_ptr<hb_blob_t> subset_blob(
|
||||
+ hb_face_reference_blob(subset_face.get()));
|
||||
if (!subset_blob) {
|
||||
return nullptr;
|
||||
}
|
||||
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
|
||||
index 88cef3c..ae88e5a 100644
|
||||
--- a/third_party/blink/renderer/platform/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/platform/BUILD.gn
|
||||
@@ -1683,7 +1683,6 @@
|
||||
"//third_party/blink/renderer/platform/wtf",
|
||||
"//third_party/ced",
|
||||
"//third_party/emoji-segmenter",
|
||||
- "//third_party/harfbuzz-ng:hb_scoped_util",
|
||||
"//third_party/icu",
|
||||
"//third_party/libyuv",
|
||||
"//third_party/one_euro_filter",
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc b/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc
|
||||
index 7c7057b..d43668f1 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/opentype/font_format_check.cc
|
||||
@@ -7,10 +7,10 @@
|
||||
// Include HarfBuzz to have a cross-platform way to retrieve table tags without
|
||||
// having to rely on the platform being able to instantiate this font format.
|
||||
#include <hb.h>
|
||||
+#include <hb-cplusplus.hh>
|
||||
|
||||
#include "base/sys_byteorder.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/vector.h"
|
||||
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
|
||||
#include "third_party/skia/include/core/SkTypeface.h"
|
||||
|
||||
namespace blink {
|
||||
@@ -27,7 +27,8 @@
|
||||
const unsigned int kMinCOLRHeaderSize = 14;
|
||||
if (table_tags.size() && table_tags.Contains(kCOLRTag) &&
|
||||
table_tags.Contains(HB_TAG('C', 'P', 'A', 'L'))) {
|
||||
- HbScoped<hb_blob_t> table_blob(hb_face_reference_table(face, kCOLRTag));
|
||||
+ hb::unique_ptr<hb_blob_t> table_blob(
|
||||
+ hb_face_reference_table(face, kCOLRTag));
|
||||
if (hb_blob_get_length(table_blob.get()) < kMinCOLRHeaderSize)
|
||||
return FontFormatCheck::COLRVersion::kNoCOLR;
|
||||
|
||||
@@ -51,11 +52,11 @@
|
||||
} // namespace
|
||||
|
||||
FontFormatCheck::FontFormatCheck(sk_sp<SkData> sk_data) {
|
||||
- HbScoped<hb_blob_t> font_blob(
|
||||
+ hb::unique_ptr<hb_blob_t> font_blob(
|
||||
hb_blob_create(reinterpret_cast<const char*>(sk_data->bytes()),
|
||||
base::checked_cast<unsigned>(sk_data->size()),
|
||||
HB_MEMORY_MODE_READONLY, nullptr, nullptr));
|
||||
- HbScoped<hb_face_t> face(hb_face_create(font_blob.get(), 0));
|
||||
+ hb::unique_ptr<hb_face_t> face(hb_face_create(font_blob.get(), 0));
|
||||
|
||||
unsigned table_count = 0;
|
||||
table_count = hb_face_get_table_tags(face.get(), 0, nullptr, nullptr);
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.cc b/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.cc
|
||||
index 5e6d1f2..73b984a 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.cc
|
||||
@@ -5,10 +5,10 @@
|
||||
// clang-format off
|
||||
#include <hb.h>
|
||||
#include <hb-aat.h>
|
||||
+#include <hb-cplusplus.hh>
|
||||
// clang-format on
|
||||
|
||||
#include "third_party/blink/renderer/platform/fonts/opentype/open_type_caps_support.h"
|
||||
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
|
||||
|
||||
namespace blink {
|
||||
|
||||
@@ -146,9 +146,9 @@
|
||||
hb_face_t* const hb_face =
|
||||
hb_font_get_face(harfbuzz_face_->GetScaledFont());
|
||||
|
||||
- HbScoped<hb_blob_t> morx_blob(
|
||||
+ hb::unique_ptr<hb_blob_t> morx_blob(
|
||||
hb_face_reference_table(hb_face, HB_TAG('m', 'o', 'r', 'x')));
|
||||
- HbScoped<hb_blob_t> mort_blob(
|
||||
+ hb::unique_ptr<hb_blob_t> mort_blob(
|
||||
hb_face_reference_table(hb_face, HB_TAG('m', 'o', 'r', 't')));
|
||||
|
||||
// TODO(crbug.com/911149): Use hb_aat_layout_has_substitution() for
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/opentype/open_type_cpal_lookup.cc b/third_party/blink/renderer/platform/fonts/opentype/open_type_cpal_lookup.cc
|
||||
index 86c289c..98cbd7a 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/opentype/open_type_cpal_lookup.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/opentype/open_type_cpal_lookup.cc
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
#include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
|
||||
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
|
||||
#include "third_party/skia/include/core/SkStream.h"
|
||||
|
||||
// clang-format off
|
||||
#include <hb.h>
|
||||
+#include <hb-cplusplus.hh>
|
||||
#include <hb-ot.h>
|
||||
// clang-format on
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
if (!typeface || !typeface->getTableSize(kCpalTag))
|
||||
return absl::nullopt;
|
||||
|
||||
- HbScoped<hb_face_t> face(HbFaceFromSkTypeface(typeface));
|
||||
+ hb::unique_ptr<hb_face_t> face(HbFaceFromSkTypeface(typeface));
|
||||
|
||||
if (!face || !hb_ot_color_has_palettes(face.get()))
|
||||
return absl::nullopt;
|
||||
@@ -49,7 +49,7 @@ absl::optional<uint16_t> OpenTypeCpalLoo
|
||||
Vector<Color> OpenTypeCpalLookup::RetrieveColorRecords(
|
||||
sk_sp<SkTypeface> typeface,
|
||||
unsigned palette_index) {
|
||||
- HbScoped<hb_face_t> face(HbFaceFromSkTypeface(typeface));
|
||||
+ hb::unique_ptr<hb_face_t> face(HbFaceFromSkTypeface(typeface));
|
||||
|
||||
if (!face) {
|
||||
return Vector<Color>();
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.cc b/third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.cc
|
||||
index ebab0fa8..4ecd886 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.cc
|
||||
@@ -4,12 +4,12 @@
|
||||
|
||||
#include "third_party/blink/renderer/platform/fonts/opentype/variable_axes_names.h"
|
||||
|
||||
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
|
||||
#include "third_party/skia/include/core/SkStream.h"
|
||||
#include "third_party/skia/include/core/SkTypeface.h"
|
||||
|
||||
// clang-format off
|
||||
#include <hb.h>
|
||||
+#include <hb-cplusplus.hh>
|
||||
#include <hb-ot.h>
|
||||
// clang-format on
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
return output;
|
||||
sk_sp<SkData> sk_data =
|
||||
SkData::MakeFromStream(stream.get(), stream->getLength());
|
||||
- HbScoped<hb_blob_t> blob(
|
||||
+ hb::unique_ptr<hb_blob_t> blob(
|
||||
hb_blob_create(reinterpret_cast<const char*>(sk_data->bytes()),
|
||||
base::checked_cast<unsigned>(sk_data->size()),
|
||||
HB_MEMORY_MODE_READONLY, nullptr, nullptr));
|
||||
- HbScoped<hb_face_t> face(hb_face_create(blob.get(), 0));
|
||||
+ hb::unique_ptr<hb_face_t> face(hb_face_create(blob.get(), 0));
|
||||
unsigned axes_count = hb_ot_var_get_axis_count(face.get());
|
||||
std::unique_ptr<hb_ot_var_axis_info_t[]> axes =
|
||||
std::make_unique<hb_ot_var_axis_info_t[]>(axes_count);
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
||||
index b4bb5a3..b6ee0a8f 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
// clang-format off
|
||||
#include <hb.h>
|
||||
+#include <hb-cplusplus.hh>
|
||||
#include <hb-ot.h>
|
||||
// clang-format on
|
||||
|
||||
@@ -52,7 +53,6 @@
|
||||
#include "third_party/blink/renderer/platform/wtf/hash_map.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/text/character_names.h"
|
||||
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
|
||||
#include "third_party/skia/include/core/SkPaint.h"
|
||||
#include "third_party/skia/include/core/SkPath.h"
|
||||
#include "third_party/skia/include/core/SkPoint.h"
|
||||
@@ -203,7 +203,7 @@
|
||||
const hb_codepoint_t kInvalidCodepoint = static_cast<hb_codepoint_t>(-1);
|
||||
hb_codepoint_t space = kInvalidCodepoint;
|
||||
|
||||
- HbScoped<hb_set_t> glyphs(hb_set_create());
|
||||
+ hb::unique_ptr<hb_set_t> glyphs(hb_set_create());
|
||||
|
||||
// Check whether computing is needed and compute for gpos/gsub.
|
||||
if (features & kKerning &&
|
||||
@@ -391,8 +391,8 @@
|
||||
}
|
||||
|
||||
// TODO(yosin): We should move |CreateFace()| to "harfbuzz_font_cache.cc".
|
||||
-static HbScoped<hb_face_t> CreateFace(FontPlatformData* platform_data) {
|
||||
- HbScoped<hb_face_t> face;
|
||||
+static hb::unique_ptr<hb_face_t> CreateFace(FontPlatformData* platform_data) {
|
||||
+ hb::unique_ptr<hb_face_t> face;
|
||||
|
||||
sk_sp<SkTypeface> typeface = sk_ref_sp(platform_data->Typeface());
|
||||
CHECK(typeface);
|
||||
@@ -402,8 +402,8 @@
|
||||
|
||||
// Fallback to table copies if there is no in-memory access.
|
||||
if (!face) {
|
||||
- face.reset(hb_face_create_for_tables(HarfBuzzSkiaGetTable, typeface.get(),
|
||||
- nullptr));
|
||||
+ face = hb::unique_ptr<hb_face_t>(hb_face_create_for_tables(
|
||||
+ HarfBuzzSkiaGetTable, typeface.get(), nullptr));
|
||||
}
|
||||
|
||||
DCHECK(face);
|
||||
@@ -415,7 +415,7 @@
|
||||
static scoped_refptr<HarfBuzzFontData> CreateHarfBuzzFontData(
|
||||
hb_face_t* face,
|
||||
SkTypeface* typeface) {
|
||||
- HbScoped<hb_font_t> ot_font(hb_font_create(face));
|
||||
+ hb::unique_ptr<hb_font_t> ot_font(hb_font_create(face));
|
||||
hb_ot_font_set_funcs(ot_font.get());
|
||||
|
||||
int axis_count = typeface->getVariationDesignPosition(nullptr, 0);
|
||||
@@ -445,7 +445,7 @@
|
||||
FontPlatformData* platform_data) {
|
||||
const auto& result = font_map_.insert(platform_data->UniqueID(), nullptr);
|
||||
if (result.is_new_entry) {
|
||||
- HbScoped<hb_face_t> face = CreateFace(platform_data);
|
||||
+ hb::unique_ptr<hb_face_t> face = CreateFace(platform_data);
|
||||
result.stored_value->value =
|
||||
CreateHarfBuzzFontData(face.get(), platform_data->Typeface());
|
||||
}
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
|
||||
index cbfb1c15..eb0dcb75 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h
|
||||
@@ -38,9 +38,9 @@
|
||||
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/ref_counted.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/text/character_names.h"
|
||||
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
|
||||
|
||||
#include <hb.h>
|
||||
+#include <hb-cplusplus.hh>
|
||||
|
||||
namespace blink {
|
||||
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.cc
|
||||
index 4561bc9..a2d2eb1d 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.cc
|
||||
@@ -16,9 +16,8 @@
|
||||
} // namespace
|
||||
|
||||
namespace blink {
|
||||
-
|
||||
-HbScoped<hb_face_t> HbFaceFromSkTypeface(sk_sp<SkTypeface> typeface) {
|
||||
- HbScoped<hb_face_t> return_face(nullptr);
|
||||
+hb::unique_ptr<hb_face_t> HbFaceFromSkTypeface(sk_sp<SkTypeface> typeface) {
|
||||
+ hb::unique_ptr<hb_face_t> return_face(nullptr);
|
||||
int ttc_index = 0;
|
||||
|
||||
// Have openStream() write the ttc index of this typeface within the stream to
|
||||
@@ -28,7 +27,7 @@
|
||||
if (tf_stream && tf_stream->getMemoryBase()) {
|
||||
const void* tf_memory = tf_stream->getMemoryBase();
|
||||
size_t tf_size = tf_stream->getLength();
|
||||
- HbScoped<hb_blob_t> face_blob(hb_blob_create(
|
||||
+ hb::unique_ptr<hb_blob_t> face_blob(hb_blob_create(
|
||||
reinterpret_cast<const char*>(tf_memory),
|
||||
base::checked_cast<unsigned int>(tf_size), HB_MEMORY_MODE_READONLY,
|
||||
tf_stream.release(), DeleteTypefaceStream));
|
||||
@@ -38,7 +37,8 @@
|
||||
// See https://github.com/harfbuzz/harfbuzz/issues/248 .
|
||||
unsigned int num_hb_faces = hb_face_count(face_blob.get());
|
||||
if (0 < num_hb_faces && static_cast<unsigned>(ttc_index) < num_hb_faces) {
|
||||
- return_face.reset(hb_face_create(face_blob.get(), ttc_index));
|
||||
+ return_face =
|
||||
+ hb::unique_ptr<hb_face_t>(hb_face_create(face_blob.get(), ttc_index));
|
||||
}
|
||||
}
|
||||
return return_face;
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.h b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.h
|
||||
index 8817f06..f00d6f2 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face_from_typeface.h
|
||||
@@ -8,9 +8,8 @@
|
||||
#include "third_party/blink/renderer/platform/platform_export.h"
|
||||
#include "third_party/skia/include/core/SkTypeface.h"
|
||||
|
||||
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
|
||||
-
|
||||
#include <hb.h>
|
||||
+#include <hb-cplusplus.hh>
|
||||
|
||||
namespace blink {
|
||||
|
||||
@@ -25,7 +24,7 @@
|
||||
// from copying all font tables on Mac into newly allocated memory, causing a
|
||||
// potentially quite large allocations (in the megabytes range). See the
|
||||
// implementation of SkTypeface_Mac::onOpenStream.
|
||||
-PLATFORM_EXPORT HbScoped<hb_face_t> HbFaceFromSkTypeface(
|
||||
+PLATFORM_EXPORT hb::unique_ptr<hb_face_t> HbFaceFromSkTypeface(
|
||||
sk_sp<SkTypeface> typeface);
|
||||
} // namespace blink
|
||||
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc
|
||||
index 763f3a3..c50910df 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.cc
|
||||
@@ -5,12 +5,11 @@
|
||||
#include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h"
|
||||
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
|
||||
|
||||
namespace blink {
|
||||
|
||||
HbFontCacheEntry::HbFontCacheEntry(hb_font_t* font)
|
||||
- : hb_font_(HbScoped<hb_font_t>(font)),
|
||||
+ : hb_font_(hb::unique_ptr<hb_font_t>(font)),
|
||||
hb_font_data_(std::make_unique<HarfBuzzFontData>()) {}
|
||||
|
||||
HbFontCacheEntry::~HbFontCacheEntry() = default;
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h
|
||||
index 1b0accf..eaedd0b 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h
|
||||
@@ -7,9 +7,9 @@
|
||||
|
||||
#include "third_party/blink/renderer/platform/fonts/font_metrics.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/unicode_range_set.h"
|
||||
-#include "third_party/harfbuzz-ng/utils/hb_scoped.h"
|
||||
|
||||
#include <hb.h>
|
||||
+#include <hb-cplusplus.hh>
|
||||
|
||||
#include <memory>
|
||||
|
||||
@@ -39,7 +39,7 @@ class HbFontCacheEntry : public RefCount
|
||||
private:
|
||||
explicit HbFontCacheEntry(hb_font_t* font);
|
||||
|
||||
- HbScoped<hb_font_t> hb_font_;
|
||||
+ hb::unique_ptr<hb_font_t> hb_font_;
|
||||
std::unique_ptr<HarfBuzzFontData> hb_font_data_;
|
||||
};
|
||||
|
||||
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
|
||||
index caf5d49..0d4b6f9 100644
|
||||
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
|
||||
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_HARFBUZZ_FONT_DATA_H_
|
||||
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_SHAPING_HARFBUZZ_FONT_DATA_H_
|
||||
|
||||
+#include <hb-cplusplus.hh>
|
||||
+
|
||||
#include "base/check_op.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/font_platform_data.h"
|
||||
#include "third_party/blink/renderer/platform/fonts/opentype/open_type_vertical_data.h"
|
||||
diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
|
||||
index 522e164d..4b64e1b 100644
|
||||
--- a/third_party/harfbuzz-ng/BUILD.gn
|
||||
+++ b/third_party/harfbuzz-ng/BUILD.gn
|
||||
@@ -41,6 +41,7 @@
|
||||
"src/src/hb-blob.h",
|
||||
"src/src/hb-buffer.h",
|
||||
"src/src/hb-common.h",
|
||||
+ "src/src/hb-cplusplus.hh",
|
||||
"src/src/hb-deprecated.h",
|
||||
"src/src/hb-face.h",
|
||||
"src/src/hb-font.h",
|
||||
@@ -409,11 +410,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
-source_set("hb_scoped_util") {
|
||||
- sources = [ "utils/hb_scoped.h" ]
|
||||
- deps = [ "//third_party:freetype_harfbuzz" ]
|
||||
-}
|
||||
-
|
||||
# Not all checkouts have a //base directory.
|
||||
if (build_with_chromium) {
|
||||
fuzzer_test("hb_shape_fuzzer") {
|
||||
diff --git a/third_party/harfbuzz-ng/utils/hb_scoped.h b/third_party/harfbuzz-ng/utils/hb_scoped.h
|
||||
deleted file mode 100644
|
||||
index 887f6b90..0000000
|
||||
--- a/third_party/harfbuzz-ng/utils/hb_scoped.h
|
||||
+++ /dev/null
|
||||
@@ -1,60 +0,0 @@
|
||||
-// Copyright 2020 The Chromium Authors. All rights reserved.
|
||||
-// Use of this source code is governed by a BSD-style license that can be
|
||||
-// found in the LICENSE file.
|
||||
-
|
||||
-#ifndef THIRD_PARTY_HARFBUZZ_NG_UTILS_HB_SCOPED_H_
|
||||
-#define THIRD_PARTY_HARFBUZZ_NG_UTILS_HB_SCOPED_H_
|
||||
-
|
||||
-// clang-format off
|
||||
-#include <hb.h>
|
||||
-#include <hb-subset.h>
|
||||
-// clang-format on
|
||||
-
|
||||
-#include <memory>
|
||||
-#include <type_traits>
|
||||
-
|
||||
-template <typename T>
|
||||
-struct always_false : std::false_type {};
|
||||
-
|
||||
-template <class T>
|
||||
-struct HbSpecializedDeleter {
|
||||
- inline void operator()(T* obj) {
|
||||
- static_assert(always_false<T>::value,
|
||||
- "HbScoped is only allowed for HarfBuzz types that have a "
|
||||
- "deleter specialization.");
|
||||
- }
|
||||
-};
|
||||
-
|
||||
-// Defines a scoped pointer type HbScoped based on std::unique_ptr, using the
|
||||
-// corresponsing HarfBuzz destructors to commonly used public HarfBuzz types.
|
||||
-// The interface of HbScoped is the same as that of std::unique_ptr.
|
||||
-//
|
||||
-// void MyFunction() {
|
||||
-// HbScoped<hb_blob_t> scoped_harfbuzz_blob(
|
||||
-// hb_blob_create(mydata, mylength));
|
||||
-//
|
||||
-// DoSomethingWithBlob(scoped_harfbuzz_blob.get());
|
||||
-// }
|
||||
-//
|
||||
-// When |scoped_harfbuzz_buffer| goes out of scope, hb_blob_destroy() is called
|
||||
-// for the hb_blob_t* created from hb_blob_create().
|
||||
-template <class T>
|
||||
-using HbScoped = std::unique_ptr<T, HbSpecializedDeleter<T>>;
|
||||
-
|
||||
-#define SPECIALIZED_DELETER_FOR_HARFBUZZ_TYPE(TYPE, DESTRUCTOR) \
|
||||
- template <> \
|
||||
- struct HbSpecializedDeleter<TYPE> { \
|
||||
- inline void operator()(TYPE* obj) { DESTRUCTOR(obj); } \
|
||||
- };
|
||||
-
|
||||
-#define HB_TYPE_DESTRUCTOR_PAIRS_REPEAT(F) \
|
||||
- F(hb_blob_t, hb_blob_destroy) \
|
||||
- F(hb_buffer_t, hb_buffer_destroy) \
|
||||
- F(hb_face_t, hb_face_destroy) \
|
||||
- F(hb_font_t, hb_font_destroy) \
|
||||
- F(hb_set_t, hb_set_destroy) \
|
||||
- F(hb_subset_input_t, hb_subset_input_destroy)
|
||||
-
|
||||
-HB_TYPE_DESTRUCTOR_PAIRS_REPEAT(SPECIALIZED_DELETER_FOR_HARFBUZZ_TYPE)
|
||||
-
|
||||
-#endif // THIRD_PARTY_HARFBUZZ_NG_UTILS_HB_SCOPED_H_
|
@@ -1,29 +0,0 @@
|
||||
From 3a75d7f8dc3a08a38dd893031f8996b91a00764b Mon Sep 17 00:00:00 2001
|
||||
From: Jose Dapena Paz <jdapena@igalia.com>
|
||||
Date: Tue, 23 Jan 2024 17:55:15 +0000
|
||||
Subject: [PATCH] IWYU: usage of std::optional in hit_test_request.h requires
|
||||
include
|
||||
|
||||
Bug: 957519
|
||||
Change-Id: I1ec32af603720d13bfa4e22e20142459802284b4
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5227329
|
||||
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1250917}
|
||||
---
|
||||
third_party/blink/renderer/core/layout/hit_test_request.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/layout/hit_test_request.h b/third_party/blink/renderer/core/layout/hit_test_request.h
|
||||
index c33144dc975b6..38968126fe520 100644
|
||||
--- a/third_party/blink/renderer/core/layout/hit_test_request.h
|
||||
+++ b/third_party/blink/renderer/core/layout/hit_test_request.h
|
||||
@@ -23,6 +23,8 @@
|
||||
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_HIT_TEST_REQUEST_H_
|
||||
#define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_HIT_TEST_REQUEST_H_
|
||||
|
||||
+#include <optional>
|
||||
+
|
||||
#include "base/functional/callback.h"
|
||||
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
|
||||
#include "third_party/blink/renderer/platform/heap/member.h"
|
227
identity_request_account-incomplete-IdentityProviderData.patch
Normal file
227
identity_request_account-incomplete-IdentityProviderData.patch
Normal file
@@ -0,0 +1,227 @@
|
||||
--- src/content/public/browser/identity_request_dialog_controller.h.orig 2025-08-15 17:32:26.573405615 +0200
|
||||
+++ src/content/public/browser/identity_request_dialog_controller.h 2025-08-16 00:53:34.120821675 +0200
|
||||
@@ -14,7 +14,6 @@
|
||||
#include "base/memory/ref_counted.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "content/public/browser/identity_request_account.h"
|
||||
-#include "third_party/blink/public/mojom/webid/federated_auth_request.mojom-forward.h"
|
||||
#include "third_party/skia/include/core/SkColor.h"
|
||||
#include "url/gurl.h"
|
||||
#include "url/origin.h"
|
||||
@@ -22,35 +21,6 @@
|
||||
namespace content {
|
||||
class WebContents;
|
||||
|
||||
-// A Java counterpart will be generated for this enum.
|
||||
-// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.content.webid
|
||||
-// GENERATED_JAVA_CLASS_NAME_OVERRIDE: IdentityRequestDialogDisclosureField
|
||||
-enum class IdentityRequestDialogDisclosureField {
|
||||
- kName,
|
||||
- kEmail,
|
||||
- kPicture,
|
||||
- kPhoneNumber,
|
||||
- kUsername
|
||||
-};
|
||||
-
|
||||
-// The client metadata that will be used to display a FedCM dialog. This data is
|
||||
-// extracted from the client metadata endpoint from the FedCM API, where
|
||||
-// 'client' is essentially the relying party which invoked the API.
|
||||
-struct CONTENT_EXPORT ClientMetadata {
|
||||
- ClientMetadata(const GURL& terms_of_service_url,
|
||||
- const GURL& privacy_policy_url,
|
||||
- const GURL& brand_icon_url,
|
||||
- const gfx::Image& brand_decoded_icon);
|
||||
- ClientMetadata(const ClientMetadata& other);
|
||||
- ~ClientMetadata();
|
||||
-
|
||||
- GURL terms_of_service_url;
|
||||
- GURL privacy_policy_url;
|
||||
- GURL brand_icon_url;
|
||||
- // This will be an empty image if the fetching never happened or if it failed.
|
||||
- gfx::Image brand_decoded_icon;
|
||||
-};
|
||||
-
|
||||
// The information about an error that will be used to display a FedCM dialog.
|
||||
// This data is extracted from the error object returned by the identity
|
||||
// provider when the user attempts to login via the FedCM API and an error
|
||||
@@ -60,70 +30,6 @@ struct CONTENT_EXPORT IdentityCredential
|
||||
GURL url;
|
||||
};
|
||||
|
||||
-// The metadata about the identity provider that will be used to display a FedCM
|
||||
-// dialog. This data is extracted from the config file which is fetched when the
|
||||
-// FedCM API is invoked.
|
||||
-struct CONTENT_EXPORT IdentityProviderMetadata {
|
||||
- IdentityProviderMetadata();
|
||||
- IdentityProviderMetadata(const IdentityProviderMetadata& other);
|
||||
- ~IdentityProviderMetadata();
|
||||
-
|
||||
- std::optional<SkColor> brand_text_color;
|
||||
- std::optional<SkColor> brand_background_color;
|
||||
- GURL brand_icon_url;
|
||||
- GURL idp_login_url;
|
||||
- std::string requested_label;
|
||||
- // For registered IdPs, the type is used to only show the accounts when the
|
||||
- // RP is compatible.
|
||||
- std::vector<std::string> types;
|
||||
- // The token formats that are supported.
|
||||
- std::vector<std::string> formats;
|
||||
- // The URL of the configuration endpoint. This is stored in
|
||||
- // IdentityProviderMetadata so that the UI code can pass it along when an
|
||||
- // Account is selected by the user.
|
||||
- GURL config_url;
|
||||
- // Whether this IdP supports signing in to additional accounts.
|
||||
- bool supports_add_account{false};
|
||||
- // Whether this IdP has any filtered out account. This is reset to false each
|
||||
- // time the accounts dialog is shown and recomputed then.
|
||||
- bool has_filtered_out_account{false};
|
||||
- // This will be an empty image if fetching failed.
|
||||
- gfx::Image brand_decoded_icon;
|
||||
-};
|
||||
-
|
||||
-// This class contains all of the data specific to an identity provider that is
|
||||
-// going to be used to display a FedCM dialog. This data is gathered from
|
||||
-// endpoints fetched when the FedCM API is invoked as well as from the
|
||||
-// parameters provided by the relying party when the API is invoked.
|
||||
-class CONTENT_EXPORT IdentityProviderData
|
||||
- : public base::RefCounted<IdentityProviderData> {
|
||||
- public:
|
||||
- IdentityProviderData(const std::string& idp_for_display,
|
||||
- const IdentityProviderMetadata& idp_metadata,
|
||||
- const ClientMetadata& client_metadata,
|
||||
- blink::mojom::RpContext rp_context,
|
||||
- std::optional<blink::mojom::Format> format,
|
||||
- const std::vector<IdentityRequestDialogDisclosureField>&
|
||||
- disclosure_fields,
|
||||
- bool has_login_status_mismatch);
|
||||
-
|
||||
- std::string idp_for_display;
|
||||
- IdentityProviderMetadata idp_metadata;
|
||||
- ClientMetadata client_metadata;
|
||||
- blink::mojom::RpContext rp_context;
|
||||
- std::optional<blink::mojom::Format> format;
|
||||
- // For which fields should the dialog request permission for (assuming
|
||||
- // this is for signup).
|
||||
- std::vector<IdentityRequestDialogDisclosureField> disclosure_fields;
|
||||
- // Whether there was some login status API mismatch when fetching the IDP's
|
||||
- // accounts.
|
||||
- bool has_login_status_mismatch;
|
||||
-
|
||||
- private:
|
||||
- friend class base::RefCounted<IdentityProviderData>;
|
||||
-
|
||||
- ~IdentityProviderData();
|
||||
-};
|
||||
|
||||
// The relying party data that will be used to display a FedCM dialog. This data
|
||||
// is extracted from the website which invoked the API, not from the FedCM
|
||||
--- src/content/public/browser/identity_request_account.h.orig 2025-08-15 17:32:26.573405615 +0200
|
||||
+++ src/content/public/browser/identity_request_account.h 2025-08-16 00:53:42.592813124 +0200
|
||||
@@ -13,13 +13,106 @@
|
||||
#include "base/time/time.h"
|
||||
#include "content/common/content_export.h"
|
||||
#include "third_party/blink/public/common/webid/login_status_account.h"
|
||||
+#include "third_party/blink/public/mojom/webid/federated_auth_request.mojom-forward.h"
|
||||
#include "third_party/skia/include/core/SkColor.h"
|
||||
#include "ui/gfx/image/image.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
namespace content {
|
||||
|
||||
-class IdentityProviderData;
|
||||
+// A Java counterpart will be generated for this enum.
|
||||
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.content.webid
|
||||
+// GENERATED_JAVA_CLASS_NAME_OVERRIDE: IdentityRequestDialogDisclosureField
|
||||
+enum class IdentityRequestDialogDisclosureField {
|
||||
+ kName,
|
||||
+ kEmail,
|
||||
+ kPicture,
|
||||
+ kPhoneNumber,
|
||||
+ kUsername
|
||||
+};
|
||||
+
|
||||
+// The client metadata that will be used to display a FedCM dialog. This data is
|
||||
+// extracted from the client metadata endpoint from the FedCM API, where
|
||||
+// 'client' is essentially the relying party which invoked the API.
|
||||
+struct CONTENT_EXPORT ClientMetadata {
|
||||
+ ClientMetadata(const GURL& terms_of_service_url,
|
||||
+ const GURL& privacy_policy_url,
|
||||
+ const GURL& brand_icon_url,
|
||||
+ const gfx::Image& brand_decoded_icon);
|
||||
+ ClientMetadata(const ClientMetadata& other);
|
||||
+ ~ClientMetadata();
|
||||
+
|
||||
+ GURL terms_of_service_url;
|
||||
+ GURL privacy_policy_url;
|
||||
+ GURL brand_icon_url;
|
||||
+ // This will be an empty image if the fetching never happened or if it failed.
|
||||
+ gfx::Image brand_decoded_icon;
|
||||
+};
|
||||
+
|
||||
+// The metadata about the identity provider that will be used to display a FedCM
|
||||
+// dialog. This data is extracted from the config file which is fetched when the
|
||||
+// FedCM API is invoked.
|
||||
+struct CONTENT_EXPORT IdentityProviderMetadata {
|
||||
+ IdentityProviderMetadata();
|
||||
+ IdentityProviderMetadata(const IdentityProviderMetadata& other);
|
||||
+ ~IdentityProviderMetadata();
|
||||
+
|
||||
+ std::optional<SkColor> brand_text_color;
|
||||
+ std::optional<SkColor> brand_background_color;
|
||||
+ GURL brand_icon_url;
|
||||
+ GURL idp_login_url;
|
||||
+ std::string requested_label;
|
||||
+ // For registered IdPs, the type is used to only show the accounts when the
|
||||
+ // RP is compatible.
|
||||
+ std::vector<std::string> types;
|
||||
+ // The token formats that are supported.
|
||||
+ std::vector<std::string> formats;
|
||||
+ // The URL of the configuration endpoint. This is stored in
|
||||
+ // IdentityProviderMetadata so that the UI code can pass it along when an
|
||||
+ // Account is selected by the user.
|
||||
+ GURL config_url;
|
||||
+ // Whether this IdP supports signing in to additional accounts.
|
||||
+ bool supports_add_account{false};
|
||||
+ // Whether this IdP has any filtered out account. This is reset to false each
|
||||
+ // time the accounts dialog is shown and recomputed then.
|
||||
+ bool has_filtered_out_account{false};
|
||||
+ // This will be an empty image if fetching failed.
|
||||
+ gfx::Image brand_decoded_icon;
|
||||
+};
|
||||
+
|
||||
+// This class contains all of the data specific to an identity provider that is
|
||||
+// going to be used to display a FedCM dialog. This data is gathered from
|
||||
+// endpoints fetched when the FedCM API is invoked as well as from the
|
||||
+// parameters provided by the relying party when the API is invoked.
|
||||
+class CONTENT_EXPORT IdentityProviderData
|
||||
+ : public base::RefCounted<IdentityProviderData> {
|
||||
+ public:
|
||||
+ IdentityProviderData(const std::string& idp_for_display,
|
||||
+ const IdentityProviderMetadata& idp_metadata,
|
||||
+ const ClientMetadata& client_metadata,
|
||||
+ blink::mojom::RpContext rp_context,
|
||||
+ std::optional<blink::mojom::Format> format,
|
||||
+ const std::vector<IdentityRequestDialogDisclosureField>&
|
||||
+ disclosure_fields,
|
||||
+ bool has_login_status_mismatch);
|
||||
+
|
||||
+ std::string idp_for_display;
|
||||
+ IdentityProviderMetadata idp_metadata;
|
||||
+ ClientMetadata client_metadata;
|
||||
+ blink::mojom::RpContext rp_context;
|
||||
+ std::optional<blink::mojom::Format> format;
|
||||
+ // For which fields should the dialog request permission for (assuming
|
||||
+ // this is for signup).
|
||||
+ std::vector<IdentityRequestDialogDisclosureField> disclosure_fields;
|
||||
+ // Whether there was some login status API mismatch when fetching the IDP's
|
||||
+ // accounts.
|
||||
+ bool has_login_status_mismatch;
|
||||
+
|
||||
+ private:
|
||||
+ friend class base::RefCounted<IdentityProviderData>;
|
||||
+
|
||||
+ ~IdentityProviderData();
|
||||
+};
|
||||
|
||||
// Represents a federated user account which is used when displaying the FedCM
|
||||
// account selector.
|
25
json_to_struct-fixed_flat_map-conflicting-declaration.patch
Normal file
25
json_to_struct-fixed_flat_map-conflicting-declaration.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
--- src/tools/json_to_struct/aggregation.py.orig 2025-08-15 17:32:37.009403662 +0200
|
||||
+++ src/tools/json_to_struct/aggregation.py 2025-08-16 00:58:01.264590353 +0200
|
||||
@@ -134,7 +134,9 @@ def _GenerateCCArray(type_name: str, agg
|
||||
Returns:
|
||||
str: The generated C++ array aggregation code.
|
||||
"""
|
||||
- res = f'\nconst auto {aggregation.name} =\n'
|
||||
+ res = '\n const '
|
||||
+ res += f'std::array<const {type_name}*, {len(aggregation.elements)}> '
|
||||
+ res += f'{aggregation.name} =\n'
|
||||
res += f' std::array<const {type_name}*, {len(aggregation.elements)}>'
|
||||
|
||||
res += '({{\n'
|
||||
@@ -157,7 +159,10 @@ def _GenerateCCMap(type_name: str, aggre
|
||||
"""
|
||||
key_type = aggregation.map_key_type
|
||||
|
||||
- res = f'\nconst auto {aggregation.name} =\n'
|
||||
+ res = f'\nconst '
|
||||
+ res += f'base::fixed_flat_map<{aggregation.map_key_type}, '
|
||||
+ res += f'const {type_name}*, {len(aggregation.GetSortedMapElements())}> '
|
||||
+ res += f'{aggregation.name} =\n'
|
||||
res += f' base::MakeFixedFlatMap<{key_type}, const {type_name}*>'
|
||||
|
||||
res += '({\n'
|
@@ -1,13 +0,0 @@
|
||||
--- src/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder.cc.orig 2024-05-29 12:13:50.205359130 +0200
|
||||
+++ src/third_party/webrtc/modules/video_coding/codecs/av1/libaom_av1_encoder.cc 2024-05-29 23:55:59.239008160 +0200
|
||||
@@ -311,8 +311,10 @@ int LibaomAv1Encoder::InitEncode(const V
|
||||
|
||||
if (codec_settings->mode == VideoCodecMode::kRealtimeVideo &&
|
||||
encoder_settings_.GetFrameDropEnabled() && max_consec_frame_drop_ > 0) {
|
||||
+#ifdef AOM_CTRL_AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR
|
||||
SET_ENCODER_PARAM_OR_RETURN_ERROR(AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR,
|
||||
max_consec_frame_drop_);
|
||||
+#endif
|
||||
}
|
||||
|
||||
if (cfg_.g_threads == 8) {
|
@@ -1,33 +0,0 @@
|
||||
[154/40125] python3 ../../tools/licenses/licenses.py --target-os=linux --depfile gen/components/resources/about_credits.d credits gen/components/resources/about_credits.html
|
||||
FAILED: gen/components/resources/about_credits.html
|
||||
python3 ../../tools/licenses/licenses.py --target-os=linux --depfile gen/components/resources/about_credits.d credits gen/components/resources/about_credits.html
|
||||
Traceback (most recent call last):
|
||||
File "/home/abuild/rpmbuild/BUILD/src/out/Release/../../tools/licenses/licenses.py", line 1445, in <module>
|
||||
sys.exit(main())
|
||||
^^^^^^
|
||||
File "/home/abuild/rpmbuild/BUILD/src/out/Release/../../tools/licenses/licenses.py", line 1428, in main
|
||||
if not GenerateCredits(
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "/home/abuild/rpmbuild/BUILD/src/out/Release/../../tools/licenses/licenses.py", line 1069, in GenerateCredits
|
||||
directory_metadata, _ = ParseDir(path,
|
||||
^^^^^^^^^^^^^^
|
||||
File "/home/abuild/rpmbuild/BUILD/src/out/Release/../../tools/licenses/licenses.py", line 670, in ParseDir
|
||||
if not os.listdir(os.path.join(root, path)):
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
FileNotFoundError: [Errno 2] No such file or directory: '/home/abuild/rpmbuild/BUILD/src/third_party/angle/src/common/third_party/xxhash'
|
||||
|
||||
|
||||
--- src/tools/licenses/licenses.py.orig 2024-05-29 12:20:01.514877976 +0200
|
||||
+++ src/tools/licenses/licenses.py 2024-05-29 22:54:04.691863557 +0200
|
||||
@@ -667,7 +667,10 @@ def ParseDir(path,
|
||||
return [], []
|
||||
|
||||
# gclient creates empty directories for conditionally downloaded submodules.
|
||||
- if not os.listdir(os.path.join(root, path)):
|
||||
+ try:
|
||||
+ if not os.listdir(os.path.join(root, path)):
|
||||
+ return [], []
|
||||
+ except FileNotFoundError: #This gets thrown if directory is missing instead of empty.
|
||||
return [], []
|
||||
|
||||
# Get the metadata values, from
|
88
llhttp-lax-vector-conversions.patch
Normal file
88
llhttp-lax-vector-conversions.patch
Normal file
@@ -0,0 +1,88 @@
|
||||
It makes no sense fixing this since llhttp's code is partly generated.
|
||||
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c: In function ‘llhttp__internal__run’:
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c:2645:9: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts
|
||||
2645 | );
|
||||
| ^
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c:2643:11: error: incompatible type for argument 1 of ‘vandq_u16’
|
||||
2643 | vcgeq_u8(input, vdupq_n_u8(' ')),
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| |
|
||||
| uint8x16_t
|
||||
In file included from ../../third_party/electron_node/deps/llhttp/src/llhttp.c:14:
|
||||
/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1088:23: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’
|
||||
1088 | vandq_u16 (uint16x8_t __a, uint16x8_t __b)
|
||||
| ~~~~~~~~~~~^~~
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c:2644:11: error: incompatible type for argument 2 of ‘vandq_u16’
|
||||
2644 | vcleq_u8(input, vdupq_n_u8('~'))
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| |
|
||||
| uint8x16_t
|
||||
/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1088:39: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’
|
||||
1088 | vandq_u16 (uint16x8_t __a, uint16x8_t __b)
|
||||
| ~~~~~~~~~~~^~~
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c:2646:26: error: incompatible type for argument 1 of ‘vorrq_u16’
|
||||
2646 | mask = vorrq_u16(mask, single);
|
||||
| ^~~~
|
||||
| |
|
||||
| uint8x16_t
|
||||
/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1200:23: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’
|
||||
1200 | vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
|
||||
| ~~~~~~~~~~~^~~
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c:2646:32: error: incompatible type for argument 2 of ‘vorrq_u16’
|
||||
2646 | mask = vorrq_u16(mask, single);
|
||||
| ^~~~~~
|
||||
| |
|
||||
| uint8x16_t
|
||||
/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1200:39: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’
|
||||
1200 | vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
|
||||
| ~~~~~~~~~~~^~~
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c:2648:11: error: incompatible type for argument 1 of ‘vandq_u16’
|
||||
2648 | vcgeq_u8(input, vdupq_n_u8(0x80)),
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| |
|
||||
| uint8x16_t
|
||||
/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1088:23: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’
|
||||
1088 | vandq_u16 (uint16x8_t __a, uint16x8_t __b)
|
||||
| ~~~~~~~~~~~^~~
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c:2649:11: error: incompatible type for argument 2 of ‘vandq_u16’
|
||||
2649 | vcleq_u8(input, vdupq_n_u8(0xff))
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| |
|
||||
| uint8x16_t
|
||||
/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1088:39: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’
|
||||
1088 | vandq_u16 (uint16x8_t __a, uint16x8_t __b)
|
||||
| ~~~~~~~~~~~^~~
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c:2651:26: error: incompatible type for argument 1 of ‘vorrq_u16’
|
||||
2651 | mask = vorrq_u16(mask, single);
|
||||
| ^~~~
|
||||
| |
|
||||
| uint8x16_t
|
||||
/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1200:23: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’
|
||||
1200 | vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
|
||||
| ~~~~~~~~~~~^~~
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c:2651:32: error: incompatible type for argument 2 of ‘vorrq_u16’
|
||||
2651 | mask = vorrq_u16(mask, single);
|
||||
| ^~~~~~
|
||||
| |
|
||||
| uint8x16_t
|
||||
/usr/lib64/gcc/aarch64-suse-linux/15/include/arm_neon.h:1200:39: note: expected ‘uint16x8_t’ but argument is of type ‘uint8x16_t’
|
||||
1200 | vorrq_u16 (uint16x8_t __a, uint16x8_t __b)
|
||||
| ~~~~~~~~~~~^~~
|
||||
../../third_party/electron_node/deps/llhttp/src/llhttp.c:2652:30: error: incompatible type for argument 1 of ‘vshrn_n_u16’
|
||||
2652 | narrow = vshrn_n_u16(mask, 4);
|
||||
| ^~~~
|
||||
| |
|
||||
| uint8x16_t
|
||||
|
||||
|
||||
--- src/third_party/electron_node/deps/llhttp/unofficial.gni.orig 2025-08-15 17:33:00.577399458 +0200
|
||||
+++ src/third_party/electron_node/deps/llhttp/unofficial.gni 2025-08-18 17:28:08.494515274 +0200
|
||||
@@ -19,6 +19,7 @@ template("llhttp_gn_build") {
|
||||
public_configs = [ ":llhttp_config" ]
|
||||
include_dirs = [ "include" ]
|
||||
sources = gypi_values.llhttp_sources
|
||||
+ cflags = ["-flax-vector-conversions"]
|
||||
if (is_clang || !is_win) {
|
||||
cflags_c = [
|
||||
"-Wno-implicit-fallthrough",
|
@@ -0,0 +1,19 @@
|
||||
--- src/base/synchronization/lock_impl_posix.cc.orig 2025-08-15 17:32:21.581406552 +0200
|
||||
+++ src/base/synchronization/lock_impl_posix.cc 2025-08-15 21:57:54.242385089 +0200
|
||||
@@ -20,6 +20,8 @@
|
||||
#include "base/system/sys_info.h"
|
||||
#include "build/build_config.h"
|
||||
|
||||
+
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
// On Android, `pthread_mutexattr_setprotocol()` is only defined in bionic
|
||||
// starting with API level 28. Make it a weak import, so that we can compile.
|
||||
extern "C" {
|
||||
@@ -27,6 +29,7 @@ int __attribute__((weak)) pthread_mutexa
|
||||
pthread_mutexattr_t* _Nonnull __attr,
|
||||
int __protocol);
|
||||
}
|
||||
+#endif
|
||||
|
||||
namespace base {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user