main #1
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;
|
||||
+ }
|
||||
|
||||
@@ -6,3 +6,4 @@ Exec=electron %u
|
||||
Categories=Development;GTK;
|
||||
NoDisplay=true
|
||||
StartupNotify=true
|
||||
StartupWMClass=electron
|
||||
@@ -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
|
||||
@@ -5,6 +5,7 @@
|
||||
--- 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>
|
||||
@@ -1876,7 +1877,12 @@
|
||||
@@ -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,3 +22,14 @@
|
||||
|
||||
// If this was the last active frame in the SiteInstanceGroup, the
|
||||
// DecrementActiveFrameCount call will trigger the deletion of the
|
||||
@@ -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.
|
||||
- document_associated_data_.emplace(*this,
|
||||
+ // bsc#1227307 — same root cause as above
|
||||
+ document_associated_data_->~DocumentAssociatedData();
|
||||
+ new(&document_associated_data_) std::optional<DocumentAssociatedData>(std::in_place, *this,
|
||||
navigation_request->GetDocumentToken());
|
||||
} else {
|
||||
// Cross-RenderFrameHost navigations that commit into a speculative
|
||||
|
||||
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
|
||||
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 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ Remove this code which is disabled (media/base/media_switches.cc) and depends on
|
||||
|
||||
--- src/media/base/libaom_thread_wrapper.cc.old 2024-04-02 09:53:17.097624400 +0000
|
||||
+++ src/media/base/libaom_thread_wrapper.cc 2024-04-08 17:15:53.578155000 +0000
|
||||
@@ -5,16 +5,8 @@
|
||||
@@ -5,17 +5,8 @@
|
||||
#include "base/logging.h"
|
||||
#include "media/base/codec_worker_impl.h"
|
||||
#include "media/base/libvpx_thread_wrapper.h"
|
||||
@@ -13,15 +13,16 @@ Remove this code which is disabled (media/base/media_switches.cc) and depends on
|
||||
-void InitLibAomThreadWrapper() {
|
||||
- const AVxWorkerInterface interface =
|
||||
- CodecWorkerImpl<AVxWorkerInterface, AVxWorkerImpl, AVxWorker,
|
||||
- AVxWorkerStatus, NOT_OK, OK,
|
||||
- WORK>::GetCodecWorkerInterface();
|
||||
- AVxWorkerStatus, AVX_WORKER_STATUS_NOT_OK,
|
||||
- AVX_WORKER_STATUS_OK,
|
||||
- AVX_WORKER_STATUS_WORKING>::GetCodecWorkerInterface();
|
||||
- CHECK(aom_set_worker_interface(&interface));
|
||||
-}
|
||||
|
||||
} // namespace media
|
||||
--- src/media/base/libvpx_thread_wrapper.cc.old 2024-04-02 09:53:17.097624400 +0000
|
||||
+++ src/media/base/libvpx_thread_wrapper.cc 2024-04-08 17:15:46.565471400 +0000
|
||||
@@ -5,17 +5,8 @@
|
||||
@@ -5,18 +5,8 @@
|
||||
#include "media/base/libvpx_thread_wrapper.h"
|
||||
|
||||
#include "media/base/codec_worker_impl.h"
|
||||
@@ -32,8 +33,9 @@ Remove this code which is disabled (media/base/media_switches.cc) and depends on
|
||||
-void InitLibVpxThreadWrapper() {
|
||||
- const VPxWorkerInterface interface =
|
||||
- CodecWorkerImpl<VPxWorkerInterface, VPxWorkerImpl, VPxWorker,
|
||||
- VPxWorkerStatus, NOT_OK, OK,
|
||||
- WORK>::GetCodecWorkerInterface();
|
||||
- VPxWorkerStatus, VPX_WORKER_STATUS_NOT_OK,
|
||||
- VPX_WORKER_STATUS_OK,
|
||||
- VPX_WORKER_STATUS_WORKING>::GetCodecWorkerInterface();
|
||||
-
|
||||
- CHECK(vpx_set_worker_interface(&interface));
|
||||
-}
|
||||
|
||||
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_
|
||||
@@ -8,9 +8,9 @@
|
||||
+#include <prtime.h>
|
||||
#include "base/time/time_override.h"
|
||||
#include "build/build_config.h"
|
||||
#include "third_party/abseil-cpp/absl/types/optional.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",
|
||||
]
|
||||
|
||||
|
||||
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) {
|
||||
@@ -64,7 +64,7 @@ This feature does not build with brotli < 1.1
|
||||
"CompressionDictionaryTransportBackend",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
const base::FeatureParam<CompressionDictionaryTransportBackendVersion>::Option
|
||||
kCompressionDictionaryTransportBackendVersionOptions[] = {
|
||||
{CompressionDictionaryTransportBackendVersion::kV1, "v1"},
|
||||
|
||||
// When both this feature and the kCompressionDictionaryTransportBackend feature
|
||||
// are enabled, the following will happen:
|
||||
|
||||
|
||||
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,31 +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,9 +285,6 @@ std::string WebViewGuest::GetPartitionID
|
||||
}
|
||||
|
||||
// static
|
||||
-const char WebViewGuest::Type[] = "webview";
|
||||
-
|
||||
-// static
|
||||
int WebViewGuest::GetOrGenerateRulesRegistryID(int embedder_process_id,
|
||||
int webview_instance_id) {
|
||||
bool is_web_view = embedder_process_id && webview_instance_id;
|
||||
--- 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";
|
||||
|
||||
// Returns the WebView partition ID associated with the render process
|
||||
// represented by |render_process_host|, if any. Otherwise, an empty string is
|
||||
--- 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") {
|
||||
@@ -4,6 +4,7 @@ SUSE: Disable the following:
|
||||
and global CFLAGS go at the end of the commandline
|
||||
* Submodel options (-march and friends). Upstream notoriously forces SSE3 despite the code not requiring it.
|
||||
* note that cpu options for ARM are currently left in, as they do not seem to do harm and V8 needs to know the exact target anyway
|
||||
* libstdc++ assertions. Enabling them or not should in general be the distro's decision. Electron does not run untrusted code (unlike browsers) and as such does not really benefit from security paranoia.
|
||||
* Debuginfo format. Upstream seems to force something that is not recognized by rpmbuild.
|
||||
* per-target debuginfo level is left in as it is still useful (-g2 everywhere does not work)
|
||||
* Emitting code for the PIC model. It is needed in case of shared libraries, but results in a larger executable (and Electron is already enormous)
|
||||
@@ -20,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
|
||||
@@ -274,9 +274,7 @@
|
||||
--- 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.
|
||||
@@ -33,8 +32,24 @@ index d40843b..b92f03b 100644
|
||||
- ":compiler_cpu_abi",
|
||||
":compiler_codegen",
|
||||
":compiler_deterministic",
|
||||
]
|
||||
@@ -305,7 +303,12 @@
|
||||
":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.
|
||||
# --------------------------------
|
||||
@@ -48,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
|
||||
@@ -432,10 +435,6 @@
|
||||
@@ -500,10 +501,6 @@ config("compiler") {
|
||||
# Linux/Android/Fuchsia common flags setup.
|
||||
# ---------------------------------
|
||||
if (is_linux || is_chromeos || is_android || is_fuchsia) {
|
||||
@@ -59,63 +74,19 @@ index d40843b..b92f03b 100644
|
||||
|
||||
if (!is_clang) {
|
||||
# Use pipes for communicating between sub-processes. Faster.
|
||||
@@ -527,55 +527,6 @@
|
||||
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
|
||||
@@ -1148,11 +1145,6 @@ config("libcxx_hardening") {
|
||||
defines = [ "_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE" ]
|
||||
}
|
||||
|
||||
- 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" ]
|
||||
- }
|
||||
- # Enable libstdc++ hardening lightweight assertions. Those have a low
|
||||
- # performance penalty but are considered a bare minimum for security.
|
||||
- if (use_safe_libstdcxx) {
|
||||
- defines += [ "_GLIBCXX_ASSERTIONS=1" ]
|
||||
- }
|
||||
-
|
||||
# C11/C++11 compiler flags setup.
|
||||
# ---------------------------
|
||||
if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
|
||||
@@ -862,7 +837,8 @@
|
||||
}
|
||||
|
||||
# The BUILDCONFIG file sets this config on targets by default, which means when
|
||||
@@ -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.
|
||||
@@ -125,77 +96,30 @@ index d40843b..b92f03b 100644
|
||||
cflags = []
|
||||
ldflags = []
|
||||
defines = []
|
||||
@@ -1227,46 +1203,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
- # 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.
|
||||
@@ -1400,7 +1337,8 @@
|
||||
# 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
|
||||
@@ -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.
|
||||
-config("default_warnings") {
|
||||
+config("default_warnings") { }
|
||||
+config("xdefault_warnings") {
|
||||
cflags = []
|
||||
cflags_c = []
|
||||
cflags_cc = []
|
||||
@@ -1597,11 +1535,7 @@
|
||||
ldflags = []
|
||||
@@ -2262,11 +2256,7 @@ config("chromium_code") {
|
||||
defines = [ "_HAS_NODISCARD" ]
|
||||
}
|
||||
} else {
|
||||
- cflags = [ "-Wall" ]
|
||||
+ cflags = []
|
||||
- if (is_clang) {
|
||||
- # Enable extra warnings for chromium_code when we control the compiler.
|
||||
- cflags += [ "-Wextra" ]
|
||||
- }
|
||||
+ cflags = []
|
||||
|
||||
# In Chromium code, we define __STDC_foo_MACROS in order to get the
|
||||
# C99 macros on Mac and Linux.
|
||||
@@ -1618,24 +1552,6 @@
|
||||
@@ -2275,24 +2265,6 @@ config("chromium_code") {
|
||||
"__STDC_FORMAT_MACROS",
|
||||
]
|
||||
|
||||
@@ -220,15 +144,15 @@ index d40843b..b92f03b 100644
|
||||
if (is_apple) {
|
||||
cflags_objc = [ "-Wimplicit-retain-self" ]
|
||||
cflags_objcc = [ "-Wimplicit-retain-self" ]
|
||||
@@ -1841,7 +1841,6 @@
|
||||
@@ -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" ]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1887,7 +1811,8 @@
|
||||
@@ -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.
|
||||
@@ -238,7 +162,7 @@ index d40843b..b92f03b 100644
|
||||
cflags = []
|
||||
if (is_clang) {
|
||||
cflags += [ "-Wno-incompatible-pointer-types" ]
|
||||
@@ -1990,7 +1915,8 @@
|
||||
@@ -2667,7 +2639,8 @@ if (is_win) {
|
||||
common_optimize_on_cflags += [ "-fno-math-errno" ]
|
||||
}
|
||||
|
||||
@@ -248,17 +172,17 @@ index d40843b..b92f03b 100644
|
||||
if (!is_win) {
|
||||
if (enable_frame_pointers) {
|
||||
cflags = [ "-fno-omit-frame-pointer" ]
|
||||
@@ -2017,7 +1943,8 @@
|
||||
}
|
||||
|
||||
# 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) {
|
||||
if (chrome_pgo_phase != 2) {
|
||||
# Favor size over speed, /O1 must be before the common flags.
|
||||
@@ -2055,7 +1982,8 @@
|
||||
# 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.
|
||||
@@ -268,19 +192,19 @@ index d40843b..b92f03b 100644
|
||||
if (is_win) {
|
||||
cflags = [
|
||||
"/Od", # Disable optimization.
|
||||
@@ -2095,7 +2023,8 @@
|
||||
# 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:
|
||||
@@ -2128,7 +2057,8 @@
|
||||
@@ -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") { }
|
||||
@@ -288,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:
|
||||
@@ -2154,7 +2084,8 @@
|
||||
@@ -2854,7 +2831,8 @@ config("optimize_speed") {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -298,7 +222,7 @@ index d40843b..b92f03b 100644
|
||||
cflags = [ "-O1" ] + common_optimize_on_cflags
|
||||
rustflags = [ "-Copt-level=1" ]
|
||||
ldflags = common_optimize_on_ldflags
|
||||
@@ -2273,7 +2204,8 @@
|
||||
@@ -2985,7 +2963,8 @@ config("win_pdbaltpath") {
|
||||
}
|
||||
|
||||
# Full symbols.
|
||||
@@ -306,9 +230,9 @@ index d40843b..b92f03b 100644
|
||||
+config("symbols") { cflags = ["-g2"] }
|
||||
+config("xsymbols") {
|
||||
rustflags = []
|
||||
configs = []
|
||||
if (is_win) {
|
||||
if (is_clang) {
|
||||
@@ -2398,7 +2330,8 @@
|
||||
@@ -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.
|
||||
@@ -318,7 +242,7 @@ index d40843b..b92f03b 100644
|
||||
rustflags = []
|
||||
if (is_win) {
|
||||
# Functions, files, and line tables only.
|
||||
@@ -2470,7 +2403,8 @@
|
||||
@@ -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
|
||||
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.
|
||||
base::span<const uint8_t> GetSideData(const AVPacket* packet) {
|
||||
+#if LIBAVUTIL_VERSION_MAJOR < 57
|
||||
+ int skip_samples_size = 0;
|
||||
+ int side_data_size = 0;
|
||||
+#else
|
||||
size_t skip_samples_size = 0;
|
||||
size_t side_data_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;
|
||||
uint8_t* side_data = av_packet_get_side_data(
|
||||
packet, AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
|
||||
|
||||
+#if LIBAVUTIL_VERSION_MAJOR < 57
|
||||
+ int side_data_size = 0;
|
||||
+ return base::span<const uint8_t>(side_data, base::checked_cast<size_t>(side_data_size));
|
||||
+#else
|
||||
size_t side_data_size = 0;
|
||||
return base::span<const uint8_t>(side_data, side_data_size);
|
||||
+#endif
|
||||
uint8_t* side_data = av_packet_get_side_data(
|
||||
packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
|
||||
}
|
||||
|
||||
@@ -461,7 +465,11 @@ void FFmpegDemuxerStream::EnqueuePacket(
|
||||
packet->size - data_offset);
|
||||
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 {
|
||||
@@ -20,7 +20,7 @@ This font is already available in opensuse and can be installed systemwide
|
||||
- }
|
||||
|
||||
public_deps = [
|
||||
"cr_elements:build_grdp",
|
||||
"cr_components/commerce:build_grdp",
|
||||
'roboto.css' -> 'roboto.css.new'
|
||||
--- a/ui/webui/resources/css/roboto.css 2022-06-15 15:58:23.846426661 +0200
|
||||
+++ b/ui/webui/resources/css/roboto.css 2022-06-21 15:53:08.931243442 +0200
|
||||
|
||||
@@ -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
|
||||
+ #'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,23 +0,0 @@
|
||||
--- a/components/crash/core/app/crashpad.cc
|
||||
+++ b/components/crash/core/app/crashpad.cc
|
||||
@@ -28,8 +28,8 @@
|
||||
#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 "third_party/abseil-cpp/absl/types/optional.h"
|
||||
+#include <absl/base/internal/raw_logging.h>
|
||||
+#include <absl/types/optional.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 {
|
||||
|
||||
namespace {
|
||||
@@ -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/test/unittests/front_end/third_party/i18n # javascript
|
||||
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,17 +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: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,19 @@ 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,17 +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",
|
||||
- "speech/speech_recognition_engine.h",
|
||||
- "speech/speech_recognizer_impl.cc",
|
||||
@@ -56,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" ]
|
||||
}
|
||||
|
||||
@@ -102,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"
|
||||
@@ -135,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));
|
||||
@@ -157,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
|
||||
@@ -165,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"
|
||||
@@ -179,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();
|
||||
}
|
||||
|
||||
@@ -194,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());
|
||||
}
|
||||
@@ -237,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
|
||||
@@ -266,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 = [
|
||||
@@ -281,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" ]
|
||||
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,123 +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(const 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(const 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,
|
||||
const 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(cmd, cwd, std::move(additional_data));
|
||||
@@ -1081,7 +1081,7 @@ std::string App::GetLocaleCountryCode()
|
||||
|
||||
void App::OnSecondInstance(const 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(const 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:56fe6478254038ecc1060de6ca3cb1c5db3882b1c298d85b98b24974fb99cfeb
|
||||
size 572715929
|
||||
BIN
electron-37.10.0.tar.zst
LFS
Normal file
BIN
electron-37.10.0.tar.zst
LFS
Normal file
Binary file not shown.
@@ -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
|
||||
|
||||
25
enable_stack_trace_line_numbers-symbol_level.patch
Normal file
25
enable_stack_trace_line_numbers-symbol_level.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
Reducing symbol_level is a kludge and should have no effect on generated code.
|
||||
|
||||
--- 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
|
||||
|
||||
- if (enable_stack_trace_line_numbers) {
|
||||
- assert(
|
||||
- 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
|
||||
|
||||
--- 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();
|
||||
119
ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch
Normal file
119
ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch
Normal file
@@ -0,0 +1,119 @@
|
||||
From 62274859104bd828373ae406aa9309e610449ac5 Mon Sep 17 00:00:00 2001
|
||||
From: Ted Meyer <tmathmeyer@chromium.org>
|
||||
Date: Fri, 22 Mar 2024 19:56:55 +0000
|
||||
Subject: [PATCH] Replace deprecated use of AVCodecContext::reordered_opaque
|
||||
|
||||
We can use the AV_CODEC_FLAG_COPY_OPAQUE flag on the codec context
|
||||
now to trigger timestamp propagation.
|
||||
|
||||
Bug: 330573128
|
||||
Change-Id: I6bc57241a35ab5283742aad8d42acb4dc5e85858
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5384308
|
||||
Commit-Queue: Ted (Chromium) Meyer <tmathmeyer@chromium.org>
|
||||
Reviewed-by: Dan Sanders <sandersd@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1277051}
|
||||
---
|
||||
media/filters/ffmpeg_video_decoder.cc | 17 +++++++++++++----
|
||||
media/filters/ffmpeg_video_decoder.h | 16 ++++++++++++++++
|
||||
2 files changed, 29 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_decoder.cc
|
||||
index bd75477feeabb7..8a658a58caac5b 100644
|
||||
--- a/media/filters/ffmpeg_video_decoder.cc
|
||||
+++ b/media/filters/ffmpeg_video_decoder.cc
|
||||
@@ -134,7 +134,7 @@ bool FFmpegVideoDecoder::IsCodecSupported(VideoCodec codec) {
|
||||
}
|
||||
|
||||
FFmpegVideoDecoder::FFmpegVideoDecoder(MediaLog* media_log)
|
||||
- : media_log_(media_log) {
|
||||
+ : media_log_(media_log), timestamp_map_(128) {
|
||||
DVLOG(1) << __func__;
|
||||
DETACH_FROM_SEQUENCE(sequence_checker_);
|
||||
}
|
||||
@@ -213,10 +213,6 @@ int FFmpegVideoDecoder::GetVideoBuffer(struct AVCodecContext* codec_context,
|
||||
frame->linesize[plane] = layout->planes()[plane].stride;
|
||||
}
|
||||
|
||||
- // This seems unsafe, given threaded decoding. However, `reordered_opaque` is
|
||||
- // also going away upstream, so we need a whole new mechanism either way.
|
||||
- frame->reordered_opaque = codec_context->reordered_opaque;
|
||||
-
|
||||
// This will be freed by `ReleaseVideoBufferImpl`.
|
||||
auto* opaque = new OpaqueData(fb_priv, frame_pool_, data, allocation_size,
|
||||
std::move(*layout));
|
||||
@@ -363,8 +363,10 @@ bool FFmpegVideoDecoder::FFmpegDecode(const DecoderBuffer& buffer) {
|
||||
DCHECK(packet->data);
|
||||
DCHECK_GT(packet->size, 0);
|
||||
|
||||
- // Let FFmpeg handle presentation timestamp reordering.
|
||||
- codec_context_->reordered_opaque = buffer.timestamp().InMicroseconds();
|
||||
+ const int64_t timestamp = buffer.timestamp().InMicroseconds();
|
||||
+ const TimestampId timestamp_id = timestamp_id_generator_.GenerateNextId();
|
||||
+ timestamp_map_.Put(std::make_pair(timestamp_id, timestamp));
|
||||
+ packet->opaque = reinterpret_cast<void*>(timestamp_id.GetUnsafeValue());
|
||||
}
|
||||
FFmpegDecodingLoop::DecodeStatus decode_status = decoding_loop_->DecodePacket(
|
||||
packet, base::BindRepeating(&FFmpegVideoDecoder::OnNewFrame,
|
||||
@@ -423,7 +425,12 @@ bool FFmpegVideoDecoder::OnNewFrame(AVFrame* frame) {
|
||||
}
|
||||
gfx::Size natural_size = aspect_ratio.GetNaturalSize(visible_rect);
|
||||
|
||||
- const auto pts = base::Microseconds(frame->reordered_opaque);
|
||||
+ const auto ts_id = TimestampId(reinterpret_cast<size_t>(frame->opaque));
|
||||
+ const auto ts_lookup = timestamp_map_.Get(ts_id);
|
||||
+ if (ts_lookup == timestamp_map_.end()) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ const auto pts = base::Microseconds(std::get<1>(*ts_lookup));
|
||||
auto video_frame = VideoFrame::WrapExternalDataWithLayout(
|
||||
opaque->layout, visible_rect, natural_size, opaque->data, opaque->size,
|
||||
pts);
|
||||
@@ -498,8 +505,10 @@ bool FFmpegVideoDecoder::ConfigureDecoder(const VideoDecoderConfig& config,
|
||||
codec_context_->thread_count = GetFFmpegVideoDecoderThreadCount(config);
|
||||
codec_context_->thread_type =
|
||||
FF_THREAD_SLICE | (low_delay ? 0 : FF_THREAD_FRAME);
|
||||
+
|
||||
codec_context_->opaque = this;
|
||||
codec_context_->get_buffer2 = GetVideoBufferImpl;
|
||||
+ codec_context_->flags |= AV_CODEC_FLAG_COPY_OPAQUE;
|
||||
|
||||
if (base::FeatureList::IsEnabled(kFFmpegAllowLists)) {
|
||||
// Note: FFmpeg will try to free this string, so we must duplicate it.
|
||||
diff --git a/media/filters/ffmpeg_video_decoder.h b/media/filters/ffmpeg_video_decoder.h
|
||||
index d02cb89c3ddf7c..0a2de1c623ffff 100644
|
||||
--- a/media/filters/ffmpeg_video_decoder.h
|
||||
+++ b/media/filters/ffmpeg_video_decoder.h
|
||||
@@ -7,10 +7,12 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
+#include "base/containers/lru_cache.h"
|
||||
#include "base/functional/callback.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/memory/scoped_refptr.h"
|
||||
#include "base/sequence_checker.h"
|
||||
+#include "base/types/id_type.h"
|
||||
#include "media/base/frame_buffer_pool.h"
|
||||
#include "media/base/supported_video_decoder_config.h"
|
||||
#include "media/base/video_decoder.h"
|
||||
@@ -87,6 +89,20 @@ class MEDIA_EXPORT FFmpegVideoDecoder : public VideoDecoder {
|
||||
// FFmpeg structures owned by this object.
|
||||
std::unique_ptr<AVCodecContext, ScopedPtrAVFreeContext> codec_context_;
|
||||
|
||||
+ // The gist here is that timestamps need to be 64 bits to store microsecond
|
||||
+ // precision. A 32 bit integer would overflow at ~35 minutes at this level of
|
||||
+ // precision. We can't cast the timestamp to the void ptr object used by the
|
||||
+ // opaque field in ffmpeg then, because it would lose data on a 32 bit build.
|
||||
+ // However, we don't actually have 2^31 timestamped frames in a single
|
||||
+ // playback, so it's fine to use the 32 bit value as a key in a map which
|
||||
+ // contains the actual timestamps. Additionally, we've in the past set 128
|
||||
+ // outstanding frames for re-ordering as a limit for cross-thread decoding
|
||||
+ // tasks, so we'll do that here too with the LRU cache.
|
||||
+ using TimestampId = base::IdType<int64_t, size_t, 0>;
|
||||
+
|
||||
+ TimestampId::Generator timestamp_id_generator_;
|
||||
+ base::LRUCache<TimestampId, int64_t> timestamp_map_;
|
||||
+
|
||||
VideoDecoderConfig config_;
|
||||
|
||||
scoped_refptr<FrameBufferPool> frame_pool_;
|
||||
@@ -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>
|
||||
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,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,540 +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"
|
||||
@@ -81,7 +83,7 @@
|
||||
return vertical_data_;
|
||||
}
|
||||
|
||||
- HbScoped<hb_font_t> unscaled_font_;
|
||||
+ hb::unique_ptr<hb_font_t> unscaled_font_;
|
||||
SkFont font_;
|
||||
|
||||
// Capture these scaled fallback metrics from FontPlatformData so that a
|
||||
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'
|
||||
36
linux_seccomp-SYS_SECCOMP.patch
Normal file
36
linux_seccomp-SYS_SECCOMP.patch
Normal file
@@ -0,0 +1,36 @@
|
||||
If signal.h is included after this header, this results in a confusing error:
|
||||
In file included from ../../sandbox/linux/bpf_dsl/trap_registry.h:13,
|
||||
from ../../sandbox/linux/bpf_dsl/bpf_dsl.h:18,
|
||||
from ../../sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc:17:
|
||||
../../sandbox/linux/system_headers/linux_seccomp.h:218:39: error: expected identifier before numeric constant
|
||||
218 | #define SYS_SECCOMP 1
|
||||
| ^
|
||||
../../sandbox/linux/system_headers/linux_seccomp.h:218:39: error: expected '}' before numeric constant
|
||||
In file included from /usr/include/signal.h:58,
|
||||
from ../../sandbox/linux/services/syscall_wrappers.h:8,
|
||||
from ../../sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc:22:
|
||||
/usr/include/bits/siginfo-consts.h:218:1: note: to match this '{'
|
||||
218 | {
|
||||
| ^
|
||||
../../sandbox/linux/system_headers/linux_seccomp.h:218:39: error: expected unqualified-id before numeric constant
|
||||
218 | #define SYS_SECCOMP 1
|
||||
| ^
|
||||
In file included from /usr/include/features.h:524,
|
||||
from /usr/include/sys/types.h:25,
|
||||
from ../../sandbox/linux/seccomp-bpf-helpers/baseline_policy.h:8,
|
||||
from ../../sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc:5:
|
||||
/usr/include/signal.h:393:1: error: expected declaration before '}' token
|
||||
393 | __END_DECLS
|
||||
| ^~~~~~~~~~~
|
||||
|
||||
|
||||
--- src/sandbox/linux/system_headers/linux_seccomp.h.orig 2025-10-29 07:16:45.191080342 +0100
|
||||
+++ src/sandbox/linux/system_headers/linux_seccomp.h 2025-10-29 20:08:39.559745669 +0100
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SECCOMP_H_
|
||||
#define SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SECCOMP_H_
|
||||
|
||||
+#include <signal.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
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 {
|
||||
|
||||
25
masked_domain_list-flatbuffers.patch
Normal file
25
masked_domain_list-flatbuffers.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
This code fails to build but is gated by a disabled feature flag, disabling it unconditionally
|
||||
|
||||
|
||||
--- src/components/ip_protection/common/masked_domain_list_manager.cc.orig 2025-08-22 20:17:46.149834100 +0200
|
||||
+++ src/components/ip_protection/common/masked_domain_list_manager.cc 2025-08-23 01:07:33.078746196 +0200
|
||||
@@ -41,8 +41,7 @@ using ::masked_domain_list::ResourceOwne
|
||||
using ::network::mojom::IpProtectionProxyBypassPolicy;
|
||||
|
||||
bool UseFlatbuffer() {
|
||||
- return base::FeatureList::IsEnabled(
|
||||
- network::features::kMaskedDomainListFlatbufferImpl);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool RestrictTopLevelSiteSchemes(
|
||||
--- src/components/ip_protection/common/BUILD.gn.orig 2025-08-22 20:17:46.149834100 +0200
|
||||
+++ src/components/ip_protection/common/BUILD.gn 2025-08-23 01:06:48.134754665 +0200
|
||||
@@ -479,7 +479,6 @@ source_set("masked_domain_list_manager")
|
||||
"masked_domain_list_manager.h",
|
||||
]
|
||||
public_deps = [
|
||||
- ":masked_domain_list",
|
||||
":url_matcher_with_bypass",
|
||||
"//base",
|
||||
"//components/privacy_sandbox/masked_domain_list:masked_domain_list_proto",
|
||||
@@ -1,10 +0,0 @@
|
||||
--- src/third_party/material_color_utilities/src/cpp/palettes/tones.cc.old 2023-10-11 11:30:46.080385500 +0200
|
||||
+++ src/third_party/material_color_utilities/src/cpp/palettes/tones.cc 2023-10-11 21:04:10.234128500 +0200
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
#include "cpp/palettes/tones.h"
|
||||
|
||||
+#include <cmath>
|
||||
#include "cpp/cam/cam.h"
|
||||
#include "cpp/cam/hct.h"
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
description: fix build error when building with clang & GNU libstdc++
|
||||
author: Stephan Hartmann <stha09@googlemail.com>
|
||||
|
||||
Apparently this doesn't happen with the embedded clang, but we get this:
|
||||
|
||||
In file included from ../../components/autofill/core/browser/form_parsing/regex_patterns.cc:5:
|
||||
In file included from ../../components/autofill/core/browser/form_parsing/regex_patterns.h:8:
|
||||
In file included from ../../base/containers/span.h:10:
|
||||
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/algorithm:74:
|
||||
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/pstl/glue_algorithm_defs.h:13:
|
||||
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:54:
|
||||
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/tuple:39:
|
||||
/usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/array:268:52: fatal error: instantiating fold expression with 303 arguments exceeded expression nesting limit of 256
|
||||
-> array<enable_if_t<(is_same_v<_Tp, _Up> && ...), _Tp>,
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~^~~~
|
||||
gen/components/autofill/core/browser/form_parsing/regex_patterns_inl.h:77:22: note: while substituting deduced template arguments into function template '<deduction guide for array>' [with _Tp = autofill::MatchingPattern, _Up = <autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPattern, autofill::MatchingPatter[...]
|
||||
|
||||
|
||||
|
||||
|
||||
This is fixed upstream in chromium 103 with the following commit:
|
||||
https://chromium-review.googlesource.com/c/chromium/src/+/3613356
|
||||
|
||||
However, that depends on other stuff and we can't use it without a
|
||||
bunch more changes - so we'll just use this fix which I nabbed from
|
||||
Stephan Hartmann instead:
|
||||
https://github.com/stha09/chromium-patches/blob/master/chromium-102-regex_pattern-array.patch
|
||||
|
||||
|
||||
|
||||
--- a/components/autofill/core/browser/BUILD.gn
|
||||
+++ b/components/autofill/core/browser/BUILD.gn
|
||||
@@ -54,6 +54,11 @@ action("regex_patterns_inl_h") {
|
||||
}
|
||||
|
||||
static_library("browser") {
|
||||
+ if (is_clang) {
|
||||
+ cflags = [
|
||||
+ "-fbracket-depth=1000",
|
||||
+ ]
|
||||
+ }
|
||||
sources = [
|
||||
"address_normalization_manager.cc",
|
||||
"address_normalization_manager.h",
|
||||
@@ -1,11 +1,11 @@
|
||||
Do not ship bundled zlib headers. Electron uses the system zlib, and anyone compiling against it should also.
|
||||
--- src/electron/BUILD.gn.orig
|
||||
+++ src/electron/BUILD.gn
|
||||
@@ -1582,7 +1582,6 @@ group("copy_node_headers") {
|
||||
public_deps = header_groups + [
|
||||
":node_gypi_headers",
|
||||
":node_version_header",
|
||||
- ":zlib_headers",
|
||||
]
|
||||
--- src/electron/BUILD.gn.orig 2025-04-11 12:02:41.207130337 +0200
|
||||
+++ src/electron/BUILD.gn 2025-04-11 20:58:52.999468971 +0200
|
||||
@@ -1569,7 +1569,6 @@ group("copy_node_headers") {
|
||||
":generate_node_headers",
|
||||
":node_gypi_headers",
|
||||
":node_version_header",
|
||||
- ":zlib_headers",
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
240
node-cares-1.21-2.patch
Normal file
240
node-cares-1.21-2.patch
Normal file
@@ -0,0 +1,240 @@
|
||||
From ef91595e2fc1f96b7c8eb51bfcc1408a5adaa4a9 Mon Sep 17 00:00:00 2001
|
||||
From: Rithvik Vibhu <rithvikvibhu@gmail.com>
|
||||
Date: Tue, 14 May 2024 23:10:31 +0530
|
||||
Subject: [PATCH] dns: add TLSA record query and parsing
|
||||
|
||||
PR-URL: https://github.com/nodejs/node/pull/52983
|
||||
Refs: https://github.com/nodejs/node/issues/39569
|
||||
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
|
||||
Reviewed-By: James M Snell <jasnell@gmail.com>
|
||||
Reviewed-By: Rich Trott <rtrott@gmail.com>
|
||||
Reviewed-By: Ethan Arrowood <ethan@arrowood.dev>
|
||||
---
|
||||
doc/api/dns.md | 71 ++++++++++++++++++
|
||||
lib/internal/dns/utils.js | 2 +
|
||||
src/cares_wrap.cc | 96 +++++++++++++++++++++++++
|
||||
src/cares_wrap.h | 8 +++
|
||||
src/env_properties.h | 4 ++
|
||||
test/common/internet.js | 2 +
|
||||
test/internet/test-dns-cares-domains.js | 1 +
|
||||
test/internet/test-dns.js | 41 +++++++++++
|
||||
test/internet/test-trace-events-dns.js | 1 +
|
||||
9 files changed, 226 insertions(+)
|
||||
|
||||
diff --git a/lib/internal/dns/utils.js b/lib/internal/dns/utils.js
|
||||
index 7d9e22d1c2458f..bcca83fd4fe54d 100644
|
||||
--- a/third_party/electron_node/lib/internal/dns/utils.js
|
||||
+++ b/third_party/electron_node/lib/internal/dns/utils.js
|
||||
@@ -235,6 +235,7 @@ const resolverKeys = [
|
||||
'resolvePtr',
|
||||
'resolveSoa',
|
||||
'resolveSrv',
|
||||
+ 'resolveTlsa',
|
||||
'resolveTxt',
|
||||
'reverse',
|
||||
];
|
||||
@@ -300,6 +301,7 @@ function createResolverClass(resolver) {
|
||||
Resolver.prototype.resolveCname = resolveMap.CNAME = resolver('queryCname');
|
||||
Resolver.prototype.resolveMx = resolveMap.MX = resolver('queryMx');
|
||||
Resolver.prototype.resolveNs = resolveMap.NS = resolver('queryNs');
|
||||
+ Resolver.prototype.resolveTlsa = resolveMap.TLSA = resolver('queryTlsa');
|
||||
Resolver.prototype.resolveTxt = resolveMap.TXT = resolver('queryTxt');
|
||||
Resolver.prototype.resolveSrv = resolveMap.SRV = resolver('querySrv');
|
||||
Resolver.prototype.resolvePtr = resolveMap.PTR = resolver('queryPtr');
|
||||
--- src/third_party/electron_node/src/cares_wrap.cc 2025-07-03 13:55:28.684461768 +0200
|
||||
+++ src/third_party/electron_node/src/cares_wrap.cc.orig 2025-07-03 07:25:07.137463925 +0200
|
||||
@@ -40,6 +40,10 @@
|
||||
#include <vector>
|
||||
#include <unordered_set>
|
||||
|
||||
+#ifndef T_TLSA
|
||||
+#define T_TLSA 52 /* TLSA certificate association */
|
||||
+#endif
|
||||
+
|
||||
#ifndef T_CAA
|
||||
# define T_CAA 257 /* Certification Authority Authorization */
|
||||
#endif
|
||||
@@ -57,6 +61,7 @@ namespace node {
|
||||
namespace cares_wrap {
|
||||
|
||||
using v8::Array;
|
||||
+using v8::ArrayBuffer;
|
||||
using v8::Context;
|
||||
using v8::EscapableHandleScope;
|
||||
using v8::Exception;
|
||||
@@ -383,6 +388,69 @@ Maybe<int> ParseCaaReply(Environment* en
|
||||
return Just<int>(ARES_SUCCESS);
|
||||
}
|
||||
|
||||
+Maybe<int> ParseTlsaReply(Environment* env,
|
||||
+ unsigned char* buf,
|
||||
+ int len,
|
||||
+ Local<Array> ret) {
|
||||
+ EscapableHandleScope handle_scope(env->isolate());
|
||||
+
|
||||
+ ares_dns_record_t* dnsrec = nullptr;
|
||||
+
|
||||
+ int status = ares_dns_parse(buf, len, 0, &dnsrec);
|
||||
+ if (status != ARES_SUCCESS) {
|
||||
+ ares_dns_record_destroy(dnsrec);
|
||||
+ return Just<int>(status);
|
||||
+ }
|
||||
+
|
||||
+ uint32_t offset = ret->Length();
|
||||
+ size_t rr_count = ares_dns_record_rr_cnt(dnsrec, ARES_SECTION_ANSWER);
|
||||
+
|
||||
+ for (size_t i = 0; i < rr_count; i++) {
|
||||
+ const ares_dns_rr_t* rr =
|
||||
+ ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
|
||||
+
|
||||
+ if (ares_dns_rr_get_type(rr) != ARES_REC_TYPE_TLSA) continue;
|
||||
+
|
||||
+ unsigned char certusage = ares_dns_rr_get_u8(rr, ARES_RR_TLSA_CERT_USAGE);
|
||||
+ unsigned char selector = ares_dns_rr_get_u8(rr, ARES_RR_TLSA_SELECTOR);
|
||||
+ unsigned char match = ares_dns_rr_get_u8(rr, ARES_RR_TLSA_MATCH);
|
||||
+ size_t data_len;
|
||||
+ const unsigned char* data =
|
||||
+ ares_dns_rr_get_bin(rr, ARES_RR_TLSA_DATA, &data_len);
|
||||
+ if (!data || data_len == 0) continue;
|
||||
+
|
||||
+ Local<ArrayBuffer> data_ab = ArrayBuffer::New(env->isolate(), data_len);
|
||||
+ memcpy(data_ab->Data(), data, data_len);
|
||||
+
|
||||
+ Local<Object> tlsa_rec = Object::New(env->isolate());
|
||||
+
|
||||
+ if (tlsa_rec
|
||||
+ ->Set(env->context(),
|
||||
+ env->cert_usage_string(),
|
||||
+ Integer::NewFromUnsigned(env->isolate(), certusage))
|
||||
+ .IsNothing() ||
|
||||
+ tlsa_rec
|
||||
+ ->Set(env->context(),
|
||||
+ env->selector_string(),
|
||||
+ Integer::NewFromUnsigned(env->isolate(), selector))
|
||||
+ .IsNothing() ||
|
||||
+ tlsa_rec
|
||||
+ ->Set(env->context(),
|
||||
+ env->match_string(),
|
||||
+ Integer::NewFromUnsigned(env->isolate(), match))
|
||||
+ .IsNothing() ||
|
||||
+ tlsa_rec->Set(env->context(), env->data_string(), data_ab)
|
||||
+ .IsNothing() ||
|
||||
+ ret->Set(env->context(), offset + i, tlsa_rec).IsNothing()) {
|
||||
+ ares_dns_record_destroy(dnsrec);
|
||||
+ return Nothing<int>();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ ares_dns_record_destroy(dnsrec);
|
||||
+ return Just<int>(ARES_SUCCESS);
|
||||
+}
|
||||
+
|
||||
Maybe<int> ParseTxtReply(Environment* env,
|
||||
const unsigned char* buf,
|
||||
int len,
|
||||
@@ -945,6 +1013,11 @@ int NsTraits::Send(QueryWrap<NsTraits>*
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
+int TlsaTraits::Send(QueryWrap<TlsaTraits>* wrap, const char* name) {
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_TLSA);
|
||||
+ return ARES_SUCCESS;
|
||||
+}
|
||||
+
|
||||
int TxtTraits::Send(QueryWrap<TxtTraits>* wrap, const char* name) {
|
||||
wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_TXT);
|
||||
return ARES_SUCCESS;
|
||||
@@ -1156,6 +1229,14 @@ Maybe<int> AnyTraits::Parse(QueryAnyWrap
|
||||
}
|
||||
}
|
||||
|
||||
+ /* Parse TLSA records */
|
||||
+ if (!ParseTlsaReply(env, buf, len, ret).To(&status)) {
|
||||
+ return Nothing<int>();
|
||||
+ }
|
||||
+ if (status != ARES_SUCCESS && status != ARES_ENODATA) {
|
||||
+ return Just<int>(status);
|
||||
+ }
|
||||
+
|
||||
/* Parse CAA records */
|
||||
if (!ParseCaaReply(env, buf, len, ret, true).To(&status)) {
|
||||
return Nothing<int>();
|
||||
@@ -1339,6 +1420,32 @@ Maybe<int> NsTraits::Parse(QueryNsWrap*
|
||||
return Just<int>(ARES_SUCCESS);
|
||||
}
|
||||
|
||||
+Maybe<int> TlsaTraits::Parse(QueryTlsaWrap* wrap,
|
||||
+ const std::unique_ptr<ResponseData>& response) {
|
||||
+ if (response->is_host) [[unlikely]] {
|
||||
+ return Just<int>(ARES_EBADRESP);
|
||||
+ }
|
||||
+
|
||||
+ unsigned char* buf = response->buf.data;
|
||||
+ int len = response->buf.size;
|
||||
+
|
||||
+ Environment* env = wrap->env();
|
||||
+ HandleScope handle_scope(env->isolate());
|
||||
+ Context::Scope context_scope(env->context());
|
||||
+
|
||||
+ Local<Array> tlsa_records = Array::New(env->isolate());
|
||||
+ int status;
|
||||
+ if (!ParseTlsaReply(env, buf, len, tlsa_records).To(&status)) {
|
||||
+ return Nothing<int>();
|
||||
+ }
|
||||
+ if (status != ARES_SUCCESS) {
|
||||
+ return Just<int>(status);
|
||||
+ }
|
||||
+
|
||||
+ wrap->CallOnComplete(tlsa_records);
|
||||
+ return Just<int>(ARES_SUCCESS);
|
||||
+}
|
||||
+
|
||||
Maybe<int> TxtTraits::Parse(QueryTxtWrap* wrap,
|
||||
const std::unique_ptr<ResponseData>& response) {
|
||||
if (response->is_host) [[unlikely]] {
|
||||
--- src/third_party/electron_node/src/cares_wrap.h 2025-07-03 13:50:26.156515766 +0200
|
||||
+++ src/third_party/electron_node/src/cares_wrap.h.orig 2025-07-03 07:25:07.009463947 +0200
|
||||
@@ -419,6 +419,7 @@ class QueryWrap final : public AsyncWrap
|
||||
V(Ptr, resolvePtr, queryPtr) \
|
||||
V(Srv, resolveSrv, querySrv) \
|
||||
V(Soa, resolveSoa, querySoa) \
|
||||
+ V(Tlsa, resolveTlsa, queryTlsa) \
|
||||
V(Txt, resolveTxt, queryTxt)
|
||||
|
||||
// All query type handlers share the same basic structure, so we can simplify
|
||||
diff --git a/src/env_properties.h b/src/env_properties.h
|
||||
index 9d22dc69754178..bc97dfc66c96f9 100644
|
||||
--- a/third_party/electron_node/src/env_properties.h
|
||||
+++ b/third_party/electron_node/src/env_properties.h
|
||||
@@ -91,6 +91,7 @@
|
||||
V(cached_data_rejected_string, "cachedDataRejected") \
|
||||
V(cached_data_string, "cachedData") \
|
||||
V(cache_key_string, "cacheKey") \
|
||||
+ V(cert_usage_string, "certUsage") \
|
||||
V(change_string, "change") \
|
||||
V(changes_string, "changes") \
|
||||
V(channel_string, "channel") \
|
||||
@@ -135,6 +136,7 @@
|
||||
V(dns_ptr_string, "PTR") \
|
||||
V(dns_soa_string, "SOA") \
|
||||
V(dns_srv_string, "SRV") \
|
||||
+ V(dns_tlsa_string, "TLSA") \
|
||||
V(dns_txt_string, "TXT") \
|
||||
V(done_string, "done") \
|
||||
V(duration_string, "duration") \
|
||||
@@ -237,6 +239,7 @@
|
||||
V(line_number_string, "lineNumber") \
|
||||
V(loop_count, "loopCount") \
|
||||
V(mac_string, "mac") \
|
||||
+ V(match_string, "match") \
|
||||
V(max_buffer_string, "maxBuffer") \
|
||||
V(max_concurrent_streams_string, "maxConcurrentStreams") \
|
||||
V(message_port_constructor_string, "MessagePort") \
|
||||
@@ -336,6 +339,7 @@
|
||||
V(scopeid_string, "scopeid") \
|
||||
V(script_id_string, "scriptId") \
|
||||
V(script_name_string, "scriptName") \
|
||||
+ V(selector_string, "selector") \
|
||||
V(serial_number_string, "serialNumber") \
|
||||
V(serial_string, "serial") \
|
||||
V(servername_string, "servername") \
|
||||
31
node-cares-1.21-3.patch
Normal file
31
node-cares-1.21-3.patch
Normal file
@@ -0,0 +1,31 @@
|
||||
From b85505d450e3a401cf0d13c096abfc75a7932105 Mon Sep 17 00:00:00 2001
|
||||
From: Ethan Arrowood <ethan@arrowood.dev>
|
||||
Date: Mon, 7 Apr 2025 05:43:14 -0600
|
||||
Subject: [PATCH] dns: restore dns query cache ttl
|
||||
|
||||
Fixes: https://github.com/nodejs/node/issues/57636
|
||||
|
||||
Co-authored-by: Robert Nagy <ronagy@icloud.com>
|
||||
PR-URL: https://github.com/nodejs/node/pull/57640
|
||||
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
|
||||
Reviewed-By: Robert Nagy <ronagy@icloud.com>
|
||||
Reviewed-By: Tim Perry <pimterry@gmail.com>
|
||||
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
|
||||
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
|
||||
Reviewed-By: James M Snell <jasnell@gmail.com>
|
||||
---
|
||||
src/cares_wrap.cc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc
|
||||
index e58f164ca5124a..fc8f361614ba5f 100644
|
||||
--- a/third_party/electron_node/src/cares_wrap.cc
|
||||
+++ b/third_party/electron_node/src/cares_wrap.cc
|
||||
@@ -778,6 +778,7 @@ void ChannelWrap::Setup() {
|
||||
options.sock_state_cb_data = this;
|
||||
options.timeout = timeout_;
|
||||
options.tries = tries_;
|
||||
+ options.qcache_max_ttl = 0;
|
||||
|
||||
int r;
|
||||
if (!library_inited_) {
|
||||
35
node-cares-1.21-4.patch
Normal file
35
node-cares-1.21-4.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
From 2be863be08ff9f16eae6bb907388c354c55c3bfc Mon Sep 17 00:00:00 2001
|
||||
From: Ethan Arrowood <ethan@arrowood.dev>
|
||||
Date: Mon, 2 Jun 2025 09:29:36 -0600
|
||||
Subject: [PATCH] dns: fix dns query cache implementation
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
PR-URL: https://github.com/nodejs/node/pull/58404
|
||||
Refs: https://github.com/nodejs/node/pull/57640
|
||||
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
|
||||
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
|
||||
Reviewed-By: Tim Perry <pimterry@gmail.com>
|
||||
---
|
||||
src/cares_wrap.cc | 6 +++---
|
||||
test/parallel/test-dns.js | 2 +-
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc
|
||||
index 6290bcd37f3411..5016c3d51dac66 100644
|
||||
--- a/third_party/electron_node/src/cares_wrap.cc
|
||||
+++ b/third_party/electron_node/src/cares_wrap.cc
|
||||
@@ -879,9 +879,9 @@ void ChannelWrap::Setup() {
|
||||
}
|
||||
|
||||
/* We do the call to ares_init_option for caller. */
|
||||
- const int optmask =
|
||||
- ARES_OPT_FLAGS | ARES_OPT_TIMEOUTMS |
|
||||
- ARES_OPT_SOCK_STATE_CB | ARES_OPT_TRIES;
|
||||
+ const int optmask = ARES_OPT_FLAGS | ARES_OPT_TIMEOUTMS |
|
||||
+ ARES_OPT_SOCK_STATE_CB | ARES_OPT_TRIES |
|
||||
+ ARES_OPT_QUERY_CACHE;
|
||||
r = ares_init_options(&channel_, &options, optmask);
|
||||
|
||||
if (r != ARES_SUCCESS) {
|
||||
167
node-cares-1.21-5.patch
Normal file
167
node-cares-1.21-5.patch
Normal file
@@ -0,0 +1,167 @@
|
||||
From c44fa8d0b65d3550157c2fd4b0636fb269764f3e Mon Sep 17 00:00:00 2001
|
||||
From: theanarkh <theratliter@gmail.com>
|
||||
Date: Thu, 10 Jul 2025 23:50:43 +0800
|
||||
Subject: [PATCH] dns: support max timeout
|
||||
|
||||
PR-URL: https://github.com/nodejs/node/pull/58440
|
||||
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
|
||||
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
|
||||
---
|
||||
doc/api/dns.md | 2 +
|
||||
lib/internal/dns/utils.js | 20 +++--
|
||||
src/cares_wrap.cc | 30 +++++---
|
||||
src/cares_wrap.h | 11 +--
|
||||
.../parallel/test-dns-resolver-max-timeout.js | 77 +++++++++++++++++++
|
||||
5 files changed, 118 insertions(+), 22 deletions(-)
|
||||
create mode 100644 test/parallel/test-dns-resolver-max-timeout.js
|
||||
|
||||
diff --git a/lib/internal/dns/utils.js b/lib/internal/dns/utils.js
|
||||
index 55f0b5268abf9d..d036c4c7255eab 100644
|
||||
--- a/third_party/electron_node/lib/internal/dns/utils.js
|
||||
+++ b/third_party/electron_node/lib/internal/dns/utils.js
|
||||
@@ -25,6 +25,7 @@ const {
|
||||
validateInt32,
|
||||
validateOneOf,
|
||||
validateString,
|
||||
+ validateUint32,
|
||||
} = require('internal/validators');
|
||||
let binding;
|
||||
function lazyBinding() {
|
||||
@@ -49,6 +50,12 @@ function validateTimeout(options) {
|
||||
return timeout;
|
||||
}
|
||||
|
||||
+function validateMaxTimeout(options) {
|
||||
+ const { maxTimeout = 0 } = { ...options };
|
||||
+ validateUint32(maxTimeout, 'options.maxTimeout');
|
||||
+ return maxTimeout;
|
||||
+}
|
||||
+
|
||||
function validateTries(options) {
|
||||
const { tries = 4 } = { ...options };
|
||||
validateInt32(tries, 'options.tries', 1);
|
||||
@@ -67,17 +74,18 @@ class ResolverBase {
|
||||
constructor(options = undefined) {
|
||||
const timeout = validateTimeout(options);
|
||||
const tries = validateTries(options);
|
||||
+ const maxTimeout = validateMaxTimeout(options);
|
||||
// If we are building snapshot, save the states of the resolver along
|
||||
// the way.
|
||||
if (isBuildingSnapshot()) {
|
||||
- this[kSnapshotStates] = { timeout, tries };
|
||||
+ this[kSnapshotStates] = { timeout, tries, maxTimeout };
|
||||
}
|
||||
- this[kInitializeHandle](timeout, tries);
|
||||
+ this[kInitializeHandle](timeout, tries, maxTimeout);
|
||||
}
|
||||
|
||||
- [kInitializeHandle](timeout, tries) {
|
||||
+ [kInitializeHandle](timeout, tries, maxTimeout) {
|
||||
const { ChannelWrap } = lazyBinding();
|
||||
- this._handle = new ChannelWrap(timeout, tries);
|
||||
+ this._handle = new ChannelWrap(timeout, tries, maxTimeout);
|
||||
}
|
||||
|
||||
cancel() {
|
||||
@@ -187,8 +195,8 @@ class ResolverBase {
|
||||
}
|
||||
|
||||
[kDeserializeResolver]() {
|
||||
- const { timeout, tries, localAddress, servers } = this[kSnapshotStates];
|
||||
- this[kInitializeHandle](timeout, tries);
|
||||
+ const { timeout, tries, maxTimeout, localAddress, servers } = this[kSnapshotStates];
|
||||
+ this[kInitializeHandle](timeout, tries, maxTimeout);
|
||||
if (localAddress) {
|
||||
const { ipv4, ipv6 } = localAddress;
|
||||
this._handle.setLocalAddress(ipv4, ipv6);
|
||||
diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc
|
||||
index 7773314fa53bc1..e9516b03ec8960 100644
|
||||
--- a/third_party/electron_node/src/cares_wrap.cc
|
||||
+++ b/third_party/electron_node/src/cares_wrap.cc
|
||||
@@ -787,14 +787,15 @@ Maybe<int> ParseSoaReply(Environment* env,
|
||||
}
|
||||
} // anonymous namespace
|
||||
|
||||
-ChannelWrap::ChannelWrap(
|
||||
- Environment* env,
|
||||
- Local<Object> object,
|
||||
- int timeout,
|
||||
- int tries)
|
||||
+ChannelWrap::ChannelWrap(Environment* env,
|
||||
+ Local<Object> object,
|
||||
+ int timeout,
|
||||
+ int tries,
|
||||
+ int max_timeout)
|
||||
: AsyncWrap(env, object, PROVIDER_DNSCHANNEL),
|
||||
timeout_(timeout),
|
||||
- tries_(tries) {
|
||||
+ tries_(tries),
|
||||
+ max_timeout_(max_timeout) {
|
||||
MakeWeak();
|
||||
|
||||
Setup();
|
||||
@@ -808,13 +809,15 @@ void ChannelWrap::MemoryInfo(MemoryTracker* tracker) const {
|
||||
|
||||
void ChannelWrap::New(const FunctionCallbackInfo<Value>& args) {
|
||||
CHECK(args.IsConstructCall());
|
||||
- CHECK_EQ(args.Length(), 2);
|
||||
+ CHECK_EQ(args.Length(), 3);
|
||||
CHECK(args[0]->IsInt32());
|
||||
CHECK(args[1]->IsInt32());
|
||||
+ CHECK(args[2]->IsInt32());
|
||||
const int timeout = args[0].As<Int32>()->Value();
|
||||
const int tries = args[1].As<Int32>()->Value();
|
||||
+ const int max_timeout = args[2].As<Int32>()->Value();
|
||||
Environment* env = Environment::GetCurrent(args);
|
||||
- new ChannelWrap(env, args.This(), timeout, tries);
|
||||
+ new ChannelWrap(env, args.This(), timeout, tries, max_timeout);
|
||||
}
|
||||
|
||||
GetAddrInfoReqWrap::GetAddrInfoReqWrap(Environment* env,
|
||||
@@ -879,9 +882,14 @@ void ChannelWrap::Setup() {
|
||||
}
|
||||
|
||||
/* We do the call to ares_init_option for caller. */
|
||||
- const int optmask = ARES_OPT_FLAGS | ARES_OPT_TIMEOUTMS |
|
||||
- ARES_OPT_SOCK_STATE_CB | ARES_OPT_TRIES |
|
||||
- ARES_OPT_QUERY_CACHE;
|
||||
+ int optmask = ARES_OPT_FLAGS | ARES_OPT_TIMEOUTMS | ARES_OPT_SOCK_STATE_CB |
|
||||
+ ARES_OPT_TRIES | ARES_OPT_QUERY_CACHE;
|
||||
+
|
||||
+ if (max_timeout_ > 0) {
|
||||
+ options.maxtimeout = max_timeout_;
|
||||
+ optmask |= ARES_OPT_MAXTIMEOUTMS;
|
||||
+ }
|
||||
+
|
||||
r = ares_init_options(&channel_, &options, optmask);
|
||||
|
||||
if (r != ARES_SUCCESS) {
|
||||
diff --git a/src/cares_wrap.h b/src/cares_wrap.h
|
||||
index 876ec745d4fcc5..fd66a67164b3d3 100644
|
||||
--- a/third_party/electron_node/src/cares_wrap.h
|
||||
+++ b/third_party/electron_node/src/cares_wrap.h
|
||||
@@ -152,11 +152,11 @@ struct NodeAresTask final : public MemoryRetainer {
|
||||
|
||||
class ChannelWrap final : public AsyncWrap {
|
||||
public:
|
||||
- ChannelWrap(
|
||||
- Environment* env,
|
||||
- v8::Local<v8::Object> object,
|
||||
- int timeout,
|
||||
- int tries);
|
||||
+ ChannelWrap(Environment* env,
|
||||
+ v8::Local<v8::Object> object,
|
||||
+ int timeout,
|
||||
+ int tries,
|
||||
+ int max_timeout);
|
||||
~ChannelWrap() override;
|
||||
|
||||
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
||||
@@ -191,6 +191,7 @@ class ChannelWrap final : public AsyncWrap {
|
||||
bool library_inited_ = false;
|
||||
int timeout_;
|
||||
int tries_;
|
||||
+ int max_timeout_;
|
||||
int active_query_count_ = 0;
|
||||
NodeAresTask::List task_list_;
|
||||
};
|
||||
155
node-cares-1.21.patch
Normal file
155
node-cares-1.21.patch
Normal file
@@ -0,0 +1,155 @@
|
||||
From 8807549ed9f6eaf6842ae56b8ac55ab385951636 Mon Sep 17 00:00:00 2001
|
||||
From: Aviv Keller <redyetidev@gmail.com>
|
||||
Date: Wed, 30 Oct 2024 10:10:28 -0400
|
||||
Subject: [PATCH] dns: stop using deprecated `ares_query`
|
||||
|
||||
PR-URL: https://github.com/nodejs/node/pull/55430
|
||||
Refs: https://github.com/nodejs/node/issues/52464
|
||||
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
|
||||
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
|
||||
---
|
||||
src/cares_wrap.cc | 24 ++++++++++++------------
|
||||
src/cares_wrap.h | 35 +++++++++++++++++++----------------
|
||||
2 files changed, 31 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc
|
||||
index ac79eeaaf7b150..84d2ab2b065e5d 100644
|
||||
--- a/third_party/electron_node/src/cares_wrap.cc
|
||||
+++ b/third_party/electron_node/src/cares_wrap.cc
|
||||
@@ -830,62 +830,62 @@ void ChannelWrap::EnsureServers() {
|
||||
}
|
||||
|
||||
int AnyTraits::Send(QueryWrap<AnyTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_any);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_ANY);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int ATraits::Send(QueryWrap<ATraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_a);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_A);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int AaaaTraits::Send(QueryWrap<AaaaTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_aaaa);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_AAAA);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int CaaTraits::Send(QueryWrap<CaaTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, T_CAA);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_CAA);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int CnameTraits::Send(QueryWrap<CnameTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_cname);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_CNAME);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int MxTraits::Send(QueryWrap<MxTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_mx);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_MX);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int NsTraits::Send(QueryWrap<NsTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_ns);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_NS);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int TxtTraits::Send(QueryWrap<TxtTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_txt);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_TXT);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int SrvTraits::Send(QueryWrap<SrvTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_srv);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_SRV);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int PtrTraits::Send(QueryWrap<PtrTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_ptr);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_PTR);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int NaptrTraits::Send(QueryWrap<NaptrTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_naptr);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_NAPTR);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
int SoaTraits::Send(QueryWrap<SoaTraits>* wrap, const char* name) {
|
||||
- wrap->AresQuery(name, ns_c_in, ns_t_soa);
|
||||
+ wrap->AresQuery(name, ARES_CLASS_IN, ARES_REC_TYPE_SOA);
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
|
||||
diff --git a/src/cares_wrap.h b/src/cares_wrap.h
|
||||
index 021ef1c9de518e..4a5d22c0ef085f 100644
|
||||
--- a/third_party/electron_node/src/cares_wrap.h
|
||||
+++ b/third_party/electron_node/src/cares_wrap.h
|
||||
@@ -246,18 +246,20 @@ class QueryWrap final : public AsyncWrap {
|
||||
return Traits::Send(this, name);
|
||||
}
|
||||
|
||||
- void AresQuery(const char* name, int dnsclass, int type) {
|
||||
+ void AresQuery(const char* name,
|
||||
+ ares_dns_class_t dnsclass,
|
||||
+ ares_dns_rec_type_t type) {
|
||||
channel_->EnsureServers();
|
||||
TRACE_EVENT_NESTABLE_ASYNC_BEGIN1(
|
||||
TRACING_CATEGORY_NODE2(dns, native), trace_name_, this,
|
||||
"name", TRACE_STR_COPY(name));
|
||||
- ares_query(
|
||||
- channel_->cares_channel(),
|
||||
- name,
|
||||
- dnsclass,
|
||||
- type,
|
||||
- Callback,
|
||||
- MakeCallbackPointer());
|
||||
+ ares_query_dnsrec(channel_->cares_channel(),
|
||||
+ name,
|
||||
+ dnsclass,
|
||||
+ type,
|
||||
+ Callback,
|
||||
+ MakeCallbackPointer(),
|
||||
+ nullptr);
|
||||
}
|
||||
|
||||
void ParseError(int status) {
|
||||
@@ -304,19 +306,20 @@ class QueryWrap final : public AsyncWrap {
|
||||
return wrap;
|
||||
}
|
||||
|
||||
- static void Callback(
|
||||
- void* arg,
|
||||
- int status,
|
||||
- int timeouts,
|
||||
- unsigned char* answer_buf,
|
||||
- int answer_len) {
|
||||
+ static void Callback(void* arg,
|
||||
+ ares_status_t status,
|
||||
+ size_t timeouts,
|
||||
+ const ares_dns_record_t* dnsrec) {
|
||||
QueryWrap<Traits>* wrap = FromCallbackPointer(arg);
|
||||
if (wrap == nullptr) return;
|
||||
|
||||
unsigned char* buf_copy = nullptr;
|
||||
+ size_t answer_len = 0;
|
||||
if (status == ARES_SUCCESS) {
|
||||
- buf_copy = node::Malloc<unsigned char>(answer_len);
|
||||
- memcpy(buf_copy, answer_buf, answer_len);
|
||||
+ // No need to explicitly call ares_free_string here,
|
||||
+ // as it is a wrapper around free, which is already
|
||||
+ // invoked when MallocedBuffer is destructed.
|
||||
+ ares_dns_write(dnsrec, &buf_copy, &answer_len);
|
||||
}
|
||||
|
||||
wrap->response_data_ = std::make_unique<ResponseData>();
|
||||
@@ -1,162 +0,0 @@
|
||||
Disable various compiler configs (currently warning suppression). Like chromium-102-compiler.patch but for node
|
||||
|
||||
--- src/third_party/electron_node/BUILD.gn.old
|
||||
+++ src/third_party/electron_node/BUILD.gn
|
||||
@@ -124,7 +124,6 @@ config("node_lib_config") {
|
||||
|
||||
# FIXME(deepak1556): include paths should be corrected,
|
||||
# refer https://docs.google.com/presentation/d/1oxNHaVjA9Gn_rTzX6HIpJHP7nXRua_0URXxxJ3oYRq0/edit#slide=id.g71ecd450e_2_702
|
||||
- cflags = [ "-Wno-microsoft-include" ]
|
||||
|
||||
configs = [ ":node_features" ]
|
||||
|
||||
@@ -250,18 +249,6 @@ component("node_lib") {
|
||||
deps += [ "deps/histogram" ]
|
||||
}
|
||||
frameworks = []
|
||||
- cflags_cc = [
|
||||
- "-Wno-deprecated-declarations",
|
||||
- "-Wno-implicit-fallthrough",
|
||||
- "-Wno-return-type",
|
||||
- "-Wno-sometimes-uninitialized",
|
||||
- "-Wno-string-plus-int",
|
||||
- "-Wno-unused-function",
|
||||
- "-Wno-unused-label",
|
||||
- "-Wno-unused-private-field",
|
||||
- "-Wno-unused-variable",
|
||||
- "-Wno-shadow",
|
||||
- ]
|
||||
|
||||
if (v8_enable_i18n_support) {
|
||||
deps += [ "//third_party/icu" ]
|
||||
@@ -353,6 +340,5 @@ component("node_lib") {
|
||||
"src/node_crypto.cc",
|
||||
"src/node_crypto.h",
|
||||
]
|
||||
- cflags_cc += [ "-Wno-sign-compare" ]
|
||||
}
|
||||
}
|
||||
--- src/third_party/electron_node/deps/base64/BUILD.gn.orig 2024-03-27 16:38:36.306226966 +0100
|
||||
+++ src/third_party/electron_node/deps/base64/BUILD.gn 2024-03-27 20:24:12.219928228 +0100
|
||||
@@ -21,11 +21,6 @@ static_library("base64") {
|
||||
|
||||
public_configs = [ ":base64_config" ]
|
||||
|
||||
- cflags_c = [
|
||||
- "-Wno-implicit-fallthrough",
|
||||
- "-Wno-unused-but-set-variable",
|
||||
- "-Wno-shadow",
|
||||
- ]
|
||||
|
||||
sources = [
|
||||
"base64/include/libbase64.h",
|
||||
@@ -44,7 +39,6 @@ source_set("base64_ssse3") {
|
||||
defines = [ "HAVE_SSSE3=1" ]
|
||||
|
||||
cflags = [ "-mssse3" ]
|
||||
- cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
}
|
||||
|
||||
sources = [ "base64/lib/arch/ssse3/codec.c" ]
|
||||
@@ -57,7 +51,6 @@ source_set("base64_sse41") {
|
||||
defines = [ "HAVE_SSE41=1" ]
|
||||
|
||||
cflags = [ "-msse4.1" ]
|
||||
- cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
}
|
||||
|
||||
sources = [ "base64/lib/arch/sse41/codec.c" ]
|
||||
@@ -74,7 +67,6 @@ source_set("base64_sse42") {
|
||||
]
|
||||
|
||||
cflags = [ "-msse4.2" ]
|
||||
- cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
}
|
||||
|
||||
sources = [ "base64/lib/arch/sse42/codec.c" ]
|
||||
@@ -87,7 +79,6 @@ source_set("base64_avx") {
|
||||
defines = [ "HAVE_AVX=1" ]
|
||||
|
||||
cflags = [ "-mavx" ]
|
||||
- cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
}
|
||||
|
||||
sources = [ "base64/lib/arch/avx/codec.c" ]
|
||||
@@ -100,10 +91,6 @@ source_set("base64_avx2") {
|
||||
defines = [ "HAVE_AVX2=1" ]
|
||||
|
||||
cflags = [ "-mavx2" ]
|
||||
- cflags_c = [
|
||||
- "-Wno-implicit-fallthrough",
|
||||
- "-Wno-implicit-function-declaration",
|
||||
- ]
|
||||
}
|
||||
|
||||
sources = [ "base64/lib/arch/avx2/codec.c" ]
|
||||
@@ -116,7 +103,6 @@ source_set("base64_neon32") {
|
||||
defines = [ "HAVE_NEON32=1" ]
|
||||
|
||||
cflags = [ "-mfpu=neon" ]
|
||||
- cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
}
|
||||
|
||||
sources = [ "base64/lib/arch/neon32/codec.c" ]
|
||||
@@ -128,7 +114,6 @@ source_set("base64_neon64") {
|
||||
if (target_cpu == "arm64") {
|
||||
defines = [ "HAVE_NEON64=1" ]
|
||||
|
||||
- cflags_c = [ "-Wno-implicit-fallthrough" ]
|
||||
}
|
||||
|
||||
sources = [ "base64/lib/arch/neon64/codec.c" ]
|
||||
--- src/third_party/electron_node/deps/histogram/BUILD.gn.old
|
||||
+++ src/third_party/electron_node/deps/histogram/BUILD.gn
|
||||
@@ -1,12 +1,6 @@
|
||||
config("histogram_config") {
|
||||
include_dirs = [ "include" ]
|
||||
|
||||
- cflags = [
|
||||
- "-Wno-implicit-function-declaration",
|
||||
- "-Wno-incompatible-pointer-types",
|
||||
- "-Wno-unused-function",
|
||||
- "-Wno-atomic-alignment",
|
||||
- ]
|
||||
}
|
||||
|
||||
static_library("histogram") {
|
||||
--- src/third_party/electron_node/deps/llhttp/BUILD.gn.old
|
||||
+++ src/third_party/electron_node/deps/llhttp/BUILD.gn
|
||||
@@ -1,6 +1,5 @@
|
||||
config("llhttp_config") {
|
||||
include_dirs = [ "include" ]
|
||||
- cflags = [ "-Wno-unreachable-code" ]
|
||||
}
|
||||
|
||||
static_library("llhttp") {
|
||||
--- src/third_party/electron_node/deps/uv/BUILD.gn.old
|
||||
+++ src/third_party/electron_node/deps/uv/BUILD.gn
|
||||
@@ -32,24 +32,6 @@ static_library("uv") {
|
||||
# This only has an effect on Windows, where it will cause libuv's symbols to be exported in node.lib
|
||||
defines += [ "BUILDING_UV_SHARED=1" ]
|
||||
|
||||
- cflags_c = [
|
||||
- "-Wno-incompatible-pointer-types",
|
||||
- "-Wno-bitwise-op-parentheses",
|
||||
- "-Wno-implicit-fallthrough",
|
||||
- "-Wno-implicit-function-declaration",
|
||||
- "-Wno-missing-braces",
|
||||
- "-Wno-sign-compare",
|
||||
- "-Wno-sometimes-uninitialized",
|
||||
- "-Wno-string-conversion",
|
||||
- "-Wno-switch",
|
||||
- "-Wno-unused-function",
|
||||
- "-Wno-unused-result",
|
||||
- "-Wno-unused-variable",
|
||||
- "-Wno-unreachable-code",
|
||||
- "-Wno-unreachable-code-return",
|
||||
- "-Wno-unused-but-set-variable",
|
||||
- "-Wno-shadow",
|
||||
- ]
|
||||
|
||||
libs = []
|
||||
|
||||
14
node-kParentNodeTag-constexpr-initializer.patch
Normal file
14
node-kParentNodeTag-constexpr-initializer.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
--- src/third_party/blink/renderer/core/dom/node.h.orig 2025-08-15 17:32:29.121405137 +0200
|
||||
+++ src/third_party/blink/renderer/core/dom/node.h 2025-08-15 23:15:58.713118795 +0200
|
||||
@@ -1259,9 +1259,9 @@ class CORE_EXPORT Node : public EventTar
|
||||
|
||||
private:
|
||||
static constexpr struct ParentNodeTag {
|
||||
- } kParentNodeTag;
|
||||
+ } kParentNodeTag {};
|
||||
static constexpr struct ShadowHostTag {
|
||||
- } kShadowHostTag;
|
||||
+ } kShadowHostTag {};
|
||||
|
||||
using TaggedParentOrShadowHostNode =
|
||||
subtle::TaggedUncompressedMember<Node, ParentNodeTag, ShadowHostTag>;
|
||||
78
node-nghttp-1.50.patch
Normal file
78
node-nghttp-1.50.patch
Normal file
@@ -0,0 +1,78 @@
|
||||
From 02a1505efcf7099498240e83327f7c0d71696f47 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Fuentes <me@metcoder.dev>
|
||||
Date: Thu, 5 Jun 2025 14:30:07 +0200
|
||||
Subject: [PATCH] http2: add lenient flag for RFC-9113
|
||||
|
||||
PR-URL: https://github.com/nodejs/node/pull/58116
|
||||
Reviewed-By: Tim Perry <pimterry@gmail.com>
|
||||
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
|
||||
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
|
||||
---
|
||||
doc/api/http2.md | 12 +++
|
||||
lib/internal/http2/util.js | 10 ++-
|
||||
src/node_http2.cc | 6 ++
|
||||
src/node_http2_state.h | 1 +
|
||||
.../test-http2-server-rfc-9113-client.js | 80 ++++++++++++++++++
|
||||
.../test-http2-server-rfc-9113-server.js | 83 +++++++++++++++++++
|
||||
.../test-http2-util-update-options-buffer.js | 6 +-
|
||||
7 files changed, 196 insertions(+), 2 deletions(-)
|
||||
create mode 100644 test/parallel/test-http2-server-rfc-9113-client.js
|
||||
create mode 100644 test/parallel/test-http2-server-rfc-9113-server.js
|
||||
|
||||
diff --git a/lib/internal/http2/util.js b/lib/internal/http2/util.js
|
||||
index 75312e5aa57c5f..396623d3b9d06f 100644
|
||||
--- a/third_party/electron_node/lib/internal/http2/util.js
|
||||
+++ b/third_party/electron_node/lib/internal/http2/util.js
|
||||
@@ -229,7 +229,8 @@ const IDX_OPTIONS_MAX_SESSION_MEMORY = 8;
|
||||
const IDX_OPTIONS_MAX_SETTINGS = 9;
|
||||
const IDX_OPTIONS_STREAM_RESET_RATE = 10;
|
||||
const IDX_OPTIONS_STREAM_RESET_BURST = 11;
|
||||
-const IDX_OPTIONS_FLAGS = 12;
|
||||
+const IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION = 12;
|
||||
+const IDX_OPTIONS_FLAGS = 13;
|
||||
|
||||
function updateOptionsBuffer(options) {
|
||||
let flags = 0;
|
||||
@@ -293,6 +294,13 @@ function updateOptionsBuffer(options) {
|
||||
optionsBuffer[IDX_OPTIONS_STREAM_RESET_BURST] =
|
||||
MathMax(1, options.streamResetBurst);
|
||||
}
|
||||
+
|
||||
+ if (typeof options.strictFieldWhitespaceValidation === 'boolean') {
|
||||
+ flags |= (1 << IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION);
|
||||
+ optionsBuffer[IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION] =
|
||||
+ options.strictFieldWhitespaceValidation === true ? 0 : 1;
|
||||
+ }
|
||||
+
|
||||
optionsBuffer[IDX_OPTIONS_FLAGS] = flags;
|
||||
}
|
||||
|
||||
diff --git a/src/node_http2.cc b/src/node_http2.cc
|
||||
index 449ecdba807945..8e51129930f2cd 100644
|
||||
--- a/third_party/electron_node/src/node_http2.cc
|
||||
+++ b/third_party/electron_node/src/node_http2.cc
|
||||
@@ -159,6 +159,12 @@ Http2Options::Http2Options(Http2State* http2_state, SessionType type) {
|
||||
buffer[IDX_OPTIONS_PEER_MAX_CONCURRENT_STREAMS]);
|
||||
}
|
||||
|
||||
+ // Validate headers in accordance to RFC-9113
|
||||
+ if (flags & (1 << IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION)) {
|
||||
+ nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation(
|
||||
+ option, buffer[IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION]);
|
||||
+ }
|
||||
+
|
||||
// The padding strategy sets the mechanism by which we determine how much
|
||||
// additional frame padding to apply to DATA and HEADERS frames. Currently
|
||||
// this is set on a per-session basis, but eventually we may switch to
|
||||
diff --git a/src/node_http2_state.h b/src/node_http2_state.h
|
||||
index 2957a2827f370e..914ad011e021f1 100644
|
||||
--- a/third_party/electron_node/src/node_http2_state.h
|
||||
+++ b/third_party/electron_node/src/node_http2_state.h
|
||||
@@ -60,6 +60,7 @@ namespace http2 {
|
||||
IDX_OPTIONS_MAX_SETTINGS,
|
||||
IDX_OPTIONS_STREAM_RESET_RATE,
|
||||
IDX_OPTIONS_STREAM_RESET_BURST,
|
||||
+ IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION,
|
||||
IDX_OPTIONS_FLAGS
|
||||
};
|
||||
|
||||
27
node-version-ck.patch
Normal file
27
node-version-ck.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
author: Andres Salomon <dilinger@debian.org>
|
||||
description: disable the node version check
|
||||
|
||||
https://chromium-review.googlesource.com/c/chromium/src/+/6334038 added
|
||||
a node version check, but we don't want that as we're using debian's
|
||||
packaged node.
|
||||
|
||||
--- a/third_party/node/node.gni
|
||||
+++ b/third_party/node/node.gni
|
||||
@@ -44,7 +44,6 @@ template("node") {
|
||||
if (!defined(deps)) {
|
||||
deps = []
|
||||
}
|
||||
- deps += [ "//third_party/node:check_version" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
--- a/third_party/protobuf/proto_library.gni
|
||||
+++ b/third_party/protobuf/proto_library.gni
|
||||
@@ -562,7 +562,6 @@ template("proto_library") {
|
||||
_protoc_gen_ts_path,
|
||||
"//tools/protoc_wrapper/protoc-gen-ts_proto.py",
|
||||
] + _protoc_gen_ts_runtime_deps
|
||||
- deps += [ "//third_party/node:check_version" ]
|
||||
}
|
||||
|
||||
if (_generate_with_plugin) {
|
||||
@@ -1,3 +1,857 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 14 18:57:41 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 37.10.0
|
||||
* Added app.isHardwareAccelerationEnabled().
|
||||
* Automatically focus DevTools when element is inspected or breakpoint is triggered.
|
||||
* v8: Preserve field repr in property array extension
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 8 18:37:21 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 37.9.0
|
||||
* Node 22.21.1
|
||||
* Fixed an issue on Wayland where right-clicking in the titlebar could break mouse interactions.
|
||||
* fix crash when inspector agent attempts to evaluate on provisional frames
|
||||
* Fixed draw smoothing round corner issue
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 29 20:14:09 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 37.8.0
|
||||
* Support dynamic ESM imports in non-context isolated preloads
|
||||
- Add linux_seccomp-SYS_SECCOMP.patch to fix ftbfs with new glibc
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 22 19:32:18 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 37.7.1
|
||||
* Fixed an issue where changing the resizable property on a window would break the styles of a transparent window
|
||||
* Fixed white flash on call to BrowserWindow.show
|
||||
- Add webrtc-pipewire_session-missing-spa_pod_object_find_prop.patch to fix build error with new pipewire
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 16 19:56:42 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 37.7.0
|
||||
* NodeJS 22.20.0
|
||||
* Fixed addBrowserView to prevent unnecessary removal and re-adding of the same BrowserView
|
||||
* Fixed an issue where authentication via websockets can crash
|
||||
- Fedora: use bundled simdjson due to system version being too old
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 8 06:11:24 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 37.6.1
|
||||
* fix: runtime JS error that crashes GetPackageJSON
|
||||
- New upstream release 37.6.0
|
||||
* Allowed for persisting File System API grant status within a given session
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 17 05:33:20 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 37.5.1
|
||||
* v8: Don't assume that upper 32-bit of Int32MulOvfCheck are 0
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 15 17:51:55 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- aarch64: add swiftshader-llvm21.patch to fix ftbfs with new LLVM
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 11 10:08:41 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 37.5.0
|
||||
* Updated Chromium to 138.0.7204.251
|
||||
* Updated Node.js to v22.19.0
|
||||
- 15.6: revert upstream changes to build with old cares (node-cares-1.21-5.patch)
|
||||
- add system-ffmpeg.patch to fix build error
|
||||
- remove useless single executable builder to fix build error (remove-node-sea.patch)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 27 20:12:09 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 37.4.0
|
||||
* Updated Chromium to 138.0.7204.243
|
||||
* Fixed an issue where net.isOnline() always returned true in utilityProcesses
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Aug 23 18:11:15 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Update to 37.3.1 (bsc#1248464)
|
||||
* Chromium 138.0.7204.235
|
||||
* Node 22.18.0
|
||||
* V8 13.8
|
||||
* Added scriptURL property to ServiceWorkerMain.
|
||||
* Added a CSS rule for smooth corners.
|
||||
* Utility Process unhandled rejection behavior change
|
||||
* process.exit() kills utility process synchronously
|
||||
* WebUSB and WebSerial Blocklist Support
|
||||
* Removed: null value for session property in ProtocolResponse
|
||||
* BrowserWindow.IsVisibleOnAllWorkspaces() on Linux
|
||||
* see https://www.electronjs.org/blog/electron-37-0
|
||||
and https://github.com/electron/electron/releases/tag/v37.0.0 for more
|
||||
- Leap 15.6: use bundled aom
|
||||
* drop aom3.10-AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.patch
|
||||
* drop aom3.10-AV1E_SET_AUTO_TILES.patch
|
||||
* drop webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch
|
||||
* drop webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR-2.patch
|
||||
- Fedora <=42: use bundled llhttp
|
||||
- Fedora: use bundled simdutf
|
||||
- Merge MakeSbixTypeface-null-pointer-call.patch into chromium-130-fontations.patch'
|
||||
- drop no longer needed patches
|
||||
* build-without-speech-service.patch
|
||||
* content_browser_client-incomplete-WebUIController.patch
|
||||
* css_shape_value-constructor.patch
|
||||
* disable-devtools-tests.patch
|
||||
* distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch
|
||||
* distributed_point_functions-evaluate_prg_hwy-signature.patch
|
||||
* electron-13-blink-gcc-ambiguous-nodestructor.patch
|
||||
* exception_state-constexpr-initializer.patch
|
||||
* extensions-common-assert.patch
|
||||
* fix-building-with-pipewire-1.3.82.patch
|
||||
* fix-build-without-pdf.patch
|
||||
* fix-build-without-video-effects.patch
|
||||
* html_permission_element_strings_map-reproducible.patch
|
||||
* MakeSbixTypeface-null-pointer-call.patch
|
||||
* media_session_uma_helper-missing-optional.patch
|
||||
* node-llhttp9.3.patch
|
||||
* object_paint_properties-explicit-specialization-in-non-namespace-scope.patch
|
||||
* perfetto-ThreadTrack-Current-null-dereference.patch
|
||||
* picture_in_picture_window_manager_uma_helper-missing-optional.patch
|
||||
* plugin_utils-build-without-electron_extensions.patch
|
||||
* python3.14-nodedownload-FancyURLopener.patch
|
||||
* raw_ptr-fpermissive.patch
|
||||
* resource_response-Wchanges-meaning.patch
|
||||
* resource-Wchanges-meaning.patch
|
||||
* string-hasher-flax-vector-conversions.patch
|
||||
* string_truncator-convert.patch
|
||||
* style_scope-unqualified-To.patch
|
||||
* system-simdutf.patch
|
||||
* to_vector-std-projected-gcc119888.patch
|
||||
* unexportable_key_service_impl-Wlto-type-mismatch.patch
|
||||
* xml_document_parser-Wmissing-template-keyword.patch
|
||||
- Conditionally revert upstream changes to fix build on 15.6
|
||||
* ffmpeg-4-AV_PROFILE.patch
|
||||
* node-cares-1.21-4.patch
|
||||
* node-nghttp-1.50.patch
|
||||
* v8-highway-1.1.patch
|
||||
- Add patches to fix build errors
|
||||
* angle-BlobCache-Success.patch
|
||||
* llhttp-lax-vector-conversions.patch
|
||||
* masked_domain_list-flatbuffers.patch
|
||||
* node-version-ck.patch
|
||||
* partition_alloc-strict-aliasing.patch
|
||||
* remove-probabilistic-token-which-uses-private-join-and-compute.patch
|
||||
* system-dragonbox.patch
|
||||
- Add patches that should be upstreamed
|
||||
* ANNOTATE_CONTIGUOUS_CONTAINER-Wodr.patch
|
||||
* event_record-optional-initializer.patch
|
||||
* identity_request_account-incomplete-IdentityProviderData.patch
|
||||
* json_to_struct-fixed_flat_map-conflicting-declaration.patch
|
||||
* lock_impl_posix-pthread_mutexattr_setprotocol-conflicting.patch
|
||||
* node-kParentNodeTag-constexpr-initializer.patch
|
||||
* offscreen_canvas-incomplete-LayoutLocale.patch
|
||||
* pickle_traits-kIndexSequence-constexpr-initializer.patch
|
||||
* picture_in_picture_events_info-string-constexpr.patch
|
||||
* sandboxed_vfs_file_impl-missing-memset.patch
|
||||
* v8-simd-flax-vector-conversions.patch
|
||||
* webgl_rendering_context_webgpu_base-incomplete-StaticBitmapImage.patch
|
||||
* webrtc-138-Wchanges-meaning.patch
|
||||
* xr_webgl_swap_chain-incomplete-StaticBitmapImage.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 19 17:11:54 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 35.7.5
|
||||
* Fixed an issue where shell.openPath was not non-blocking as expected.
|
||||
- Leap 16: compile v8 code with x86-64-v2 instructions since the system requires them
|
||||
* v8-assume-x86-64-v2-support.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 13 16:54:43 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Fix build on Leap 16
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 11 17:53:15 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Enable accelerated video decoding (VAAPI)
|
||||
* vaapi-no-encoders.patch
|
||||
- Drop chromium-vaapi.patch which has been dead code for a while
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 2 21:04:03 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 36.7.0
|
||||
* update Node.js to 22.16.0
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 26 17:30:59 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 35.6.0
|
||||
* Added support for --no-experimental-global-navigator flag
|
||||
* Fixed a potential crash using session.clearData.
|
||||
* Fixed an error when importing electron for the first time from an ESM module loaded by a CJS module.
|
||||
* Fixed an issue where calling Fetch.continueResponse via debugger with WebContentsView could cause a crash.
|
||||
* Fixed an issue where utility processes could leak file handles.
|
||||
- 15.6: use system sqlite in node
|
||||
- add backported python3.14-nodedownload-FancyURLopener.patch to fix build error
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 5 05:14:29 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 35.5.1
|
||||
* Fixed addChildView() crashes when adding a closed WebContentsView.
|
||||
* Fixed crash when pausing in loops due to missing context when desugared.
|
||||
* Fixed out of bounds read and write in V8 (CVE-2025-5419 bsc#1244020)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 29 17:37:49 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 35.5.0
|
||||
* Node 22.15.1
|
||||
* Added innerWidth and innerHeight options for window.open. #47045 (Also in 36, 37)
|
||||
* Added support for screen.dipToScreenPoint(point) and screen.screenToDipPoint(point) on Linux X11.
|
||||
* Added support for node option --experimental-network-inspection.
|
||||
* Security fixes for for CVE-2025-4609 CVE-2025-4664 (bsc#1243205)
|
||||
- Do not build Chromium extensions support as it's not used by us
|
||||
* reduce-gn-tree.patch
|
||||
* build-without-extensions.patch
|
||||
* build-without-guest-view.patch
|
||||
* extensions-common-assert.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 24 13:25:36 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Fedora 43+: bacport change to fix build with llhttp 9.3 (node-llhttp9.3.patch)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 17 09:18:14 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 35.4.0
|
||||
* Node 22.15.0
|
||||
* Added support for system-context-menu on Linux
|
||||
* Fixed a possible crash using the WebView tag and calling focus
|
||||
- Drop CheckPortalAvailabilityOnBusThread-UaF-crash.patch applied upstream
|
||||
- Add system-zstd-in-node.patch to fix build error
|
||||
- 15.6: reverse upstream changes to build with old cares
|
||||
* node-cares-1.21-2.patch
|
||||
* node-cares-1.21-3.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 9 15:31:47 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Fix reproducible builds (bsc#1041090)
|
||||
* html_permission_element_strings_map-reproducible.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 8 21:03:32 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 35.3.0
|
||||
* Fixed xdg portal version detection for file dialogs
|
||||
- Add file_dialog-missing-uint32_t.patch to fix build error
|
||||
- Add backported CheckPortalAvailabilityOnBusThread-UaF-crash.patch to fix gh#electron/electron#47007
|
||||
- Enable debuginfo in Torque code (torque-debuginfo.patch)
|
||||
- Fix headers installed in wrong location causing node-gyp unable to find config.gypi
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 1 08:58:10 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 35.2.2
|
||||
* Fixed electron.shell.openExternal and electron.shell.openPath to honor user-defined system defaults on Linux.
|
||||
* Fixed a possible crash when using navigator.bluetooth.requestDevice and the select-bluetooth-device event.
|
||||
* Fixed a potential crash when closing a window with child windows.
|
||||
* Fixed crash when renderer process crashes while webview is reloading.
|
||||
* Fixed the visibleOnAllWorkspaces property on Linux.
|
||||
- Drop electron_usb_delegate-incomplete-UsbDeviceInfo.patch applied upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 29 09:33:21 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Remove spurious exports of internal functions bloating binary due to incorrectly building libnode with -fvisibility=default
|
||||
* add this bit to use-system-libraries-in-node.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 26 09:53:27 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Update to 35.2.1
|
||||
* Chromium 134.0.6998.205
|
||||
* Node 22.14.0
|
||||
* V8 13.4
|
||||
* Removed AVIF image format
|
||||
* Added excludeUrls to webRequest filter and deprecated the use of empty arrays in urls property.
|
||||
* Added fromVersionID on ServiceWorkers to get an instance of ServiceWorkerMain.
|
||||
* Deprecated getPreloads and setPreloads on Session.
|
||||
* Moved 'console-message' arguments into event object.
|
||||
* Added ServiceWorkerMain class to interact with service workers in the main process.
|
||||
* Added contextBridge.executeInMainWorld to safely execute code across world boundaries.
|
||||
* Added frame to 'console-message' event.
|
||||
* Added optional animation parameter to BrowserWindow.setVibrancy.
|
||||
* Added permission support for document.executeCommand("paste").
|
||||
* Added support for service worker preload scripts.
|
||||
* Support Portal's globalShortcuts.
|
||||
Electron must be run with --enable-features=GlobalShortcutsPortal in order to have the feature working.
|
||||
* see https://github.com/electron/electron/releases/tag/v35.0.0 and https://www.electronjs.org/blog/electron-35-0 for more
|
||||
- Remove Fedora 40 support
|
||||
* drop bundled-minizip.patch
|
||||
* drop quiche-absl-HexStringToBytes.patch
|
||||
- Leap 15.6: use backported wayland-protocols
|
||||
* drop wayland-protocol-toplevel-icon.patch
|
||||
* drop wayland-protocol-toplevel-icon-2.patch
|
||||
* drop wayland-protocol-toplevel-drag.patch
|
||||
- Build with LTO also on 15.6 (so now we enable it everywhere)
|
||||
- Fedora: use system simdjson
|
||||
* merge system-ada-url.patch into use-system-libraries-in-node.patch
|
||||
- Drop no longer applicable patches
|
||||
* account_id-missing-optional.patch
|
||||
* blink-platform-INSIDE_BLINK-Wodr.patch
|
||||
* boringssl-internal-addc-cxx.patch
|
||||
* build-without-extensions.patch
|
||||
* css_attr_value_tainting-missing-once_flag.patch
|
||||
* electron-13-fix-base-check-nomerge.patch
|
||||
* exception_context-missing-variant.patch
|
||||
* fix-build-without-safebrowsing.patch
|
||||
* fix-build-without-service-discovery.patch
|
||||
* ip_protection_data_types-missing-optional.patch
|
||||
* node-compiler.patch
|
||||
* skia_image_decoder_base-missing-stack.patch
|
||||
* vtt_scanner-missing-variant.patch
|
||||
* wayland_connection-Wchanges-meaning.patch
|
||||
- Add backported or upstreamable patches
|
||||
* ax_platform_node_id-fpermissive.patch
|
||||
* browser_process_impl-fix-safe_browsing_mode-0.patch
|
||||
* content_browser_client-incomplete-WebUIController.patch
|
||||
* css_shape_value-constructor.patch
|
||||
* exception_state-constexpr-initializer.patch
|
||||
* fix-build-without-pdf.patch
|
||||
* fix-build-without-video-effects.patch
|
||||
* media_session_uma_helper-missing-optional.patch
|
||||
* object_paint_properties-explicit-specialization-in-non-namespace-scope.patch
|
||||
* perfetto-ThreadTrack-Current-null-dereference.patch
|
||||
* picture_in_picture_window_manager_uma_helper-missing-optional.patch
|
||||
* plugin_utils-build-without-electron_extensions.patch
|
||||
* raw_ptr-fpermissive.patch
|
||||
* resource_response-Wchanges-meaning.patch
|
||||
* resource-Wchanges-meaning.patch
|
||||
* string-hasher-flax-vector-conversions.patch
|
||||
* string_truncator-convert.patch
|
||||
* style_scope-unqualified-To.patch
|
||||
* to_vector-std-projected-gcc119888.patch
|
||||
* unexportable_key_service_impl-Wlto-type-mismatch.patch
|
||||
* xml_document_parser-Wmissing-template-keyword.patch
|
||||
- merge remove-libphonenumber.patch & delete-old-language-detection-which-uses-tflite.patch
|
||||
into remove-ai-language-detection-factory-which-requires-tflite-and-libphonenumber.patch
|
||||
- Revert upstream change which breaks build with old abseil
|
||||
* webrtc-make_ref_counted-absl2024-nullability.patch
|
||||
- Conditionally (15.6) remove feature change which needs new spirv
|
||||
* angle-SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT.patch
|
||||
- Use system sqlite in node (except 15.6)
|
||||
* system-sqlite.patch
|
||||
- Remove more rust code
|
||||
* chromium-132-no-rust.patch
|
||||
- Actually disable AVIF support without disabling AV1 video
|
||||
* disable-avif-really.patch
|
||||
- Various other build fixes
|
||||
* absl_strings-missing-headers.patch
|
||||
* blink-shape_result-highway.patch
|
||||
* build-without-mesage-center.patch
|
||||
* fix-system-highway.patch
|
||||
* gn-logspam-breaks-install.patch
|
||||
* permission-gcc14.2.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 19 08:45:19 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.4.10
|
||||
* Fixed ElectronAccessibilityUI bug.
|
||||
* Fixed an inverted conditional that caused broken window borders on Wayland.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 9 18:46:20 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.4.9
|
||||
* No user-visible changes
|
||||
- Add swiftshader-llvm20-absoluteSymbols.patch to fix FTBFS on aarch64
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 27 10:19:49 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.4.7
|
||||
* Fixed an issue where the resizing border didn't work as expected on Wayland windows
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 20 10:47:25 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.4.6
|
||||
* Fixed incorrect titlebar in file save dialogs
|
||||
* Fix type confusion in V8 (CVE-2025-1920 bsc#1239216)
|
||||
- Drop chromium-94-ffmpeg-roll.patch to fix ftbfs on Leap
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 13 19:58:07 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.4.5
|
||||
* no user-visible changes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 10 05:45:21 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.4.4
|
||||
* no user-visible changes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Mar 9 21:47:42 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.4.3
|
||||
* Fix use after free in V8 CVE-2025-0445 (bsc#1236806)
|
||||
* Other security fixes for V8: CVE-2025-0995 CVE-2025-0998 (bsc#1237121)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 27 19:50:15 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.4.2
|
||||
* Updated Node.js to v20.18.3
|
||||
* Backported fix for a upstream bug that cause Offscreen Rendering to stutter.
|
||||
* Fixed WebFrameMain crash related to accessing speculative frames that have been destroyed.
|
||||
* Fixed v8.setHeapSnapshotNearHeapLimit api in main and utility process,
|
||||
along with support for --diagnostic-dir Node.js cli flag to specify the directory to save the heap snapshots.
|
||||
* Security fixes for V8: CVE-2025-0611 CVE-2025-0612 CVE-2025-0999. (bsc#1236306 bsc#1237343)
|
||||
- 15.6: revert upstream changes to build with c-ares 1.19
|
||||
* node-cares-1.21.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Feb 16 10:53:13 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.4.1
|
||||
* Fixed crashes on aarch64 with 16KiB pages.
|
||||
* Fixed crash when accessing WebFrameMain frames and name attributes on destroyed frames.
|
||||
- Fedora 42+: use bundled vk_mem_alloc again to fix build error
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 13 09:28:36 UTC 2025 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Add patch to fix build with pipewire 1.3.82:
|
||||
* fix-building-with-pipewire-1.3.82.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 6 21:20:53 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.4.0
|
||||
* Added permission support for document.executeCommand("paste").
|
||||
* Fixed crash in gin::wrappable::secondweakcallback.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 22 22:41:56 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 33.3.2
|
||||
* Updated Chromium to 130.0.6723.191
|
||||
* fix yellow background of composition text with wayland text-input-v3
|
||||
* The avoidClosingConnections option for session.clearData now properly
|
||||
defaults to false when the dataTypes option is not set.
|
||||
* Fixed an issue where drag-dropping two directories would cause
|
||||
getAsFileSystemHandle to never resolve.
|
||||
* Fixed a potential crash in chrome.tabs.update().
|
||||
* security fixes for CVE-2025-0434 CVE-2025-0436 CVE-2025-0437 (bsc#1235892)
|
||||
- Add string_view-incomplete-CodePointIterator.patch to fix build error
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 14 18:51:39 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Add MakeSbixTypeface-null-pointer-call.patch
|
||||
* fixes crash when handling SBIX color bitmap fonts (bsc#1235830)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jan 12 12:38:29 UTC 2025 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Update to 33.3.1
|
||||
* Drop 32-bit support
|
||||
* chromium 130.0.6723.170
|
||||
* node 20.18.0
|
||||
* v8 13.0
|
||||
* Behavior Changed: frame properties may retrieve detached WebFrameMain instances or none at all
|
||||
* Behavior Changed: webContents property on login on app
|
||||
* Added a handler, app.setClientCertRequestPasswordHandler(handler), to help unlock cryptographic devices when a PIN is needed.
|
||||
* Added View.setBorderRadius(radius) for customizing the border radius of views—with compatibility for WebContentsView.
|
||||
* Extended navigationHistory API with 2 new functions for better history management. #42014
|
||||
* see https://github.com/electron/electron/releases/tag/v33.0.0 and https://www.electronjs.org/blog/electron-33-0 for more
|
||||
- Disable aarch64 builds due to OBS hardware limits. Sorry.
|
||||
- Drop Leap 15.5 support
|
||||
- Drop no longer needed patches
|
||||
* absl-base-dynamic_annotations.patch
|
||||
* angle-State-constexpr.patch
|
||||
* chromium-124-shims.patch
|
||||
* color_provider-incomplete-ColorProviderInternal.patch
|
||||
* ConsumeRadii-linker-error.patch
|
||||
* Cr126-abseil-shims.patch
|
||||
* crashpad-use-system-abseil.patch
|
||||
* DesktopNativeWidgetAura-HandleActivationChanged-crash.patch
|
||||
* harfbuzz-replace-chromium-scoped-type.patch
|
||||
* harfbuzz-replace-HbScopedPointer.patch
|
||||
* http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch
|
||||
* licenses.py-FileNotFoundError.patch
|
||||
* native_css_paint_definition-expected-unqualified-id.patch
|
||||
* page_popup_controller-missing-optional.patch
|
||||
* partition_alloc-no-lto.patch
|
||||
* preview_cancel_reason-missing-string.patch
|
||||
* quiche-QuicIntervalDeque-no-match-for-operator-mm.patch
|
||||
* real_time_reporting_bindings-forward-declaration.patch
|
||||
* run_segmenter-missing-optional.patch
|
||||
* skia-system-vulkan-headers.patch
|
||||
* system-zlib.patch
|
||||
* text_decoder-missing-optional.patch
|
||||
* wayland-proto-31-cursor-shape.patch
|
||||
- Drop libaom_av1_encoder-aom37-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch and replace it with more fine-grained reverts:
|
||||
* aom3.10-AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.patch
|
||||
* aom3.10-AV1E_SET_AUTO_TILES.patch
|
||||
* webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch
|
||||
* webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR-2.patch
|
||||
- Drop the following revert:
|
||||
* bad-font-gc0000.patch
|
||||
* bad-font-gc000.patch
|
||||
* bad-font-gc00.patch
|
||||
* bad-font-gc0.patch
|
||||
* bad-font-gc11.patch
|
||||
* bad-font-gc1.patch
|
||||
* bad-font-gc2.patch
|
||||
* bad-font-gc3.patch
|
||||
- Add bsc1224178-font-gc.patch for a proper fix for bsc#1224178 deb#1067886
|
||||
- Add backported or forwardable patches to fix build errors:
|
||||
* account_id-missing-optional.patch
|
||||
* css_attr_value_tainting-missing-once_flag.patch
|
||||
* electron_usb_delegate-incomplete-UsbDeviceInfo.patch
|
||||
* exception_context-missing-variant.patch
|
||||
* fix-build-without-service-discovery.patch
|
||||
* ip_protection_data_types-missing-optional.patch
|
||||
* skia_image_decoder_base-missing-stack.patch
|
||||
* vtt_scanner-missing-variant.patch
|
||||
* wayland_connection-Wchanges-meaning.patch
|
||||
- Add patches to fix build errors due to our changes:
|
||||
* build-without-speech-service.patch
|
||||
* chromium-123-qrcode.patch
|
||||
* chromium-125-cloud_authenticator.patch
|
||||
* chromium-127-cargo_crate.patch
|
||||
* chromium-127-crabby.patch
|
||||
* chromium-129-disable-H.264-video-parser-during-demuxing.patch
|
||||
* chromium-130-fontations.patch
|
||||
* cr130-abseil-remove-unused-deps.patch
|
||||
* cr130-absl-base.patch
|
||||
* delete-old-language-detection-which-uses-tflite.patch
|
||||
* fix-build-without-screen-ai.patch
|
||||
* private_aggregation_host-uint128.patch
|
||||
* remove-libphonenumber.patch
|
||||
* system-absl_algorithm.patch
|
||||
* wayland_version.patch
|
||||
- 15.6: use bundled vulkan and spirv headers
|
||||
- 15.6: revert upstream changes to build with old wayland
|
||||
* wayland-protocol-toplevel-icon.patch
|
||||
* wayland-protocol-toplevel-icon-2.patch
|
||||
* wayland-protocol-toplevel-drag.patch
|
||||
- Use bundled yuv everywhere due to system version being too old
|
||||
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 27 20:33:48 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 31.7.6
|
||||
* no user-visible changes
|
||||
- Leap: build with gcc 14
|
||||
- Drop Fedora 39 support
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 26 14:11:01 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Fix ffmpeg refusing to play opus audio files (disable-FFmpegAllowLists.patch)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 17 08:04:39 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 31.7.5
|
||||
* Fixed an issue where WebContentsViews were being improperly removed.
|
||||
* Fixed an issue where the windows control overlay was unexpectedly visible in fullscreen.
|
||||
* Fix use after free in Serial (CVE-2024-10827 bsc#1232843)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 12 22:49:39 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 31.7.4
|
||||
* Fixed segfault when moving WebContentsView between BrowserWindows
|
||||
* Fix type confusion in v8 (CVE-2024-10231 bsc#1232060)
|
||||
- Fedora 40+ build with system ada url (system-ada-url.patch)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 10 09:28:49 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Fix build on Fedora 41+:
|
||||
* zip_internal-missing-uLong-Z_DEFAULT_COMPRESSION.patch
|
||||
* swiftshader-llvm19-LLVMJIT-getHostCPUFeatures.patch
|
||||
* swiftshader-llvm19-LLVMReactor-incomplete-Module.patch
|
||||
* build with system minizip, yuv, simdutf, re2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 29 10:01:13 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 31.7.3
|
||||
* Fixed crash when network process terminates while a net log is running.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 25 03:23:53 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 31.7.2
|
||||
* Fixed calling setAlwaysOnTop on a hidden window which is then shown with showInactive on Linux under X11.
|
||||
* v8: security fixes for CVE-2024-9121 CVE-2024-9122 CVE-2024-7970
|
||||
* security fixes for CVE-2024-7025 CVE-2024-9369 (bsc#1231232)
|
||||
* security fixes for CVE-2024-7965 CVE-2024-7966 CVE-2024-7967 (bsc#1229591)
|
||||
* security fixes for CVE-2024-8198 CVE-2024-8193 CVE-2024-7969 (bsc#1229897)
|
||||
* fix use after free in WebAudio (CVE-2024-8362 bsc#1230108)
|
||||
* fix heap buffer overflow in Skia (CVE-2024-8636 bsc#1230391)
|
||||
* fix integer overflow in Skia (CVE-2024-9123)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 18 05:11:51 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 31.7.1
|
||||
* Fixed an issue where the exit event could be emitted twice from the utilityProcess. #44267
|
||||
* v8: security fixes for CVE-2024-9602 and CVE-2024-9603 (bsc#1231420)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 11 04:37:30 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 31.7.0
|
||||
* Node 20.18.0
|
||||
* Fixed a crash when calling focus on a WebView's webContents.
|
||||
* Fixed a potential issue accessing a child window document when overriding browserWindow creation via setWindowOpenHandler.
|
||||
* Fixed an issue when dragging to resize when using Window Controls Overlay on Linux.
|
||||
* Fixed an issue where an exception could be thrown on BrowserView after its owner BrowserWindow was closed.
|
||||
* Fixed an issue where clicking the eyedropper icon did nothing instead of opening an eyedropper for color selection as expected.
|
||||
* Ensured that the sender-id hint is set when creating desktop notifications on DBus.
|
||||
- Drop no longer needed electron-16-webpack-fix-openssl-3.patch
|
||||
- Print a message to stderr so that support logs shared by end users are clearly distinguished from upstream builds.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 16 17:40:09 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Update to 31.6.0
|
||||
* ABI break: NODE_MODULE_VERSION is now 125
|
||||
* Chromium 126.0.6478.234
|
||||
* Node 20.17.0
|
||||
* V8 12.6
|
||||
* Breaking change: Remove WebSQL support
|
||||
* Breaking change: nativeImage.toDataURL will preserve PNG colorspace
|
||||
* Added options parameter to Session.clearData API.
|
||||
* Extended webContents.setWindowOpenHandler to support manual creation of BrowserWindow.
|
||||
* clearData method added to Session
|
||||
* Extended WebContentsView to accept pre-existing webContents object.
|
||||
* see https://www.electronjs.org/blog/electron-31-0 and https://github.com/electron/electron/releases/tag/v31.0.0 for more
|
||||
- Drop no longer needed patches
|
||||
* electron-13-fix-use-thin-lto.patch
|
||||
* remove-openscreen.patch
|
||||
* system-yuv.patch
|
||||
* chromium-122-abseil-shims.patch
|
||||
* electron-16-std-vector-non-const.patch
|
||||
* fake_ssl_socket_client-Wlto-type-mismatch.patch
|
||||
* angle-FramebufferVk-powf.patch
|
||||
* span_reader-missing-optional.patch
|
||||
* bitset-missing-uint8_t-memcpy.patch
|
||||
* temporal_scalability_id_extractor-missing-bitset.patch
|
||||
* gpu_adapter_info-missing-optional.patch
|
||||
* first_party_sets_handler_database_helper-missing-optional.patch
|
||||
* async_iterable-forwarding.patch
|
||||
* script_streamer-atomic-include.patch
|
||||
- Add patches to fix build
|
||||
* fix-build-without-safebrowsing.patch
|
||||
* fix-build-without-supervised-users.patch
|
||||
* Cr126-abseil-shims.patch
|
||||
* absl-base-dynamic_annotations.patch
|
||||
* webp-no-sharpyuv.patch
|
||||
* http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch
|
||||
* angle-State-constexpr.patch
|
||||
* color_provider-incomplete-ColorProviderInternal.patch
|
||||
* run_segmenter-missing-optional.patch
|
||||
* page_popup_controller-missing-optional.patch
|
||||
* native_css_paint_definition-expected-unqualified-id.patch
|
||||
* text_decoder-missing-optional.patch
|
||||
* real_time_reporting_bindings-forward-declaration.patch
|
||||
* blink-platform-INSIDE_BLINK-Wodr.patch
|
||||
* quiche-QuicIntervalDeque-no-match-for-operator-mm.patch
|
||||
* ConsumeRadii-linker-error.patch
|
||||
- Conditionally revert upstreamed ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch on old ffmpeg
|
||||
- Revert upstream changes to build with system abseil (quiche-absl-HexStringToBytes.patch)
|
||||
- Refresh bad-font-gc patches from Debian
|
||||
- aarch64: disable LTO also on Fedora 39 due to OOM
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 14 08:13:25 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 30.5.1
|
||||
* Disable XDG portals when an old version is installed since it leads to defaultPath not working in open file dialog.
|
||||
* Restored Chromium default Content-Disposition header parsing.
|
||||
- x86_64, ix86: enable GDB support. Run Electron with --js-flags=--gdbjit_full to see JS stack traces in debugger.
|
||||
- Remove more bundled libraries from tarball.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 6 06:16:32 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 30.5.0
|
||||
* Node 20.16.0
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 5 04:59:15 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- v8-strict-aliasing.patch: only use -fno-ipa-strict-aliasing, it's sufficient
|
||||
- aarch64 Tumbleweed: disable LTO and use mold linker due to OOM
|
||||
- change vendor string in process.versions to match what VSCode expects
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Aug 31 09:00:18 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Fedora 40+, TW: add v8-strict-aliasing.patch to work around GCC14 miscompile
|
||||
- aarch64: remove -jitless from electron_rebuild macro, seems not needed anymore
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Aug 18 07:39:42 UTC 2024 - thod_@gmx.de
|
||||
|
||||
- New upstream release 30.4.0
|
||||
* Added a new property prefersReducedTransparency to nativeTheme, which indicates whether the user has chosen to reduce OS-level transparency via system accessibility settings.
|
||||
* Aligned failure pathway in File System Access API with upstream when attempting to open a file or directory in a blocked path.
|
||||
* Fixed an issue where navigator.serial.getPorts() incorrectly returned an empty array in some cases.
|
||||
* Fixed an issue where the File System Access API did not remember the user's last picked directory as expected.
|
||||
* Fixed the resource leak when using Node.js readable streams as the response body for a custom protocol handler.
|
||||
* Resolved an issue where desktopCapturer.getSources never fulfilled its promise in some cases.
|
||||
* Security fixes for CVE-2024-6989 CVE-2024-6991 (bsc#1228942)
|
||||
* Security fixes for CVE-2024-6776 CVE-2024-6778 CVE-2024-6777 CVE-2024-6773 CVE-2024-6774 CVE-2024-6772 CVE-2024-6775 CVE-2024-6779 (bsc#1227979)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 13 20:28:37 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Fix ftbfs with ffmpeg 7.x
|
||||
* add backported ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch
|
||||
* do not revert audio_file_reader-ffmpeg-AVFrame-duration.patch when building against ffmpeg 6+
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jul 20 10:02:27 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 30.3.0
|
||||
* Node 20.15.1
|
||||
* Added DownloadItem.getCurrentBytesPerSecond(), DownloadItem.getPercentComplete(), DownloadItem.getEndTime().
|
||||
* Fixed a potential crash when using off screen rendering.
|
||||
* fix crash when resolving proxy with session.resolveProxy api
|
||||
- aarch64 Fedora 40: disable LTO due to linker oom failing build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 12 10:28:06 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 30.2.0
|
||||
* Node 20.15.0
|
||||
* Enabled the Windows Control Overlay API on Linux.
|
||||
* Expose systemPreferences to utilityProcess.
|
||||
* Fixed a focus issue when calling BrowserWindow.setTopBrowserView.
|
||||
* Fixed an issue where fetch-dependent interfaces could be missing in Web Workers with nodeIntegrationInWorker enabled.
|
||||
* Fixed an issue where control could fail to return properly after saving a dialog using showOpenDialogSync on Linux.
|
||||
* Fixes an issue where the user-specified default path did not work in some circumstances when using Linux dialogs.
|
||||
* Fixes potentially incorrect exit code in UtilityProcess.
|
||||
* (Leap 15.5) Fix heap buffer overflow in libaom (CVE-2024-5493 bsc#1225690)
|
||||
* Security fixes for V8: CVE-2024-6100, CVE-2024-6101 (bsc#1226504)
|
||||
* Fix use after free in Swiftshader (CVE-2024-6291 bsc#1226933)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 9 10:04:38 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Update to 30.1.2
|
||||
* ABI break: NODE_MODULE_VERSION is now 123
|
||||
* Chromium 124.0.6367.243
|
||||
* Node 20.14.0
|
||||
* V8 12.4
|
||||
* Added WebContentsView and BaseWindow, replacing the now-deprecated BrowserView APIs.
|
||||
* cross-origin iframes now use Permission Policy to access features
|
||||
* Removed: The --disable-color-correct-rendering switch
|
||||
* The inputFieldType property in the context-menu params has been removed
|
||||
* Removed: process.getIOCounters()
|
||||
* see https://www.electronjs.org/blog/electron-30-0 and https://github.com/electron/electron/releases/tag/v30.0.0 for more
|
||||
- Fedora: use bundled simdutf as the system version is too old
|
||||
- Drop no longer needed patches
|
||||
* chromium-122-avoid-SFINAE-TypeConverter.patch
|
||||
* chromium-122-BookmarkNode-missing-operator.patch
|
||||
* chromium-98-EnumTable-crash.patch
|
||||
* chromium-gcc11.patch
|
||||
* CVE-2024-30260-undici-clear-proxy-authorization.patch
|
||||
* CVE-2024-30261-undici-fetch-integrity.patch
|
||||
* ElectronDesktopWindowTreeHostLinux-OnWindowTiledStateChanged-crash.patch
|
||||
* grid_sizing_tree-Wchanges-meaning.patch
|
||||
* hit_test_request-missing-optional.patch
|
||||
* InternalAllocator-too-many-initializers.patch
|
||||
* material_color_utilities-tones-missing-round.patch
|
||||
* nested-nested-nested-nested-nested-nested-regex-patterns.patch
|
||||
* perfetto-numeric_storage-double_t.patch
|
||||
* plus_address_types-missing-optional.patch
|
||||
* race_network_request_write_buffer_manager-missing-optional.patch
|
||||
* resolution_monitor-missing-bitset.patch
|
||||
* script_promise_resolver-explicit-specialization.patch
|
||||
* search_engine_choice_service-missing-optional.patch
|
||||
* text_break_iterator-icu74-breakAllLineBreakClassTable-should-be-consistent.patch
|
||||
* v8-instance-type-inl-constexpr-used-before-its-definition.patch
|
||||
- Drop no longer needed -Wno-error=narrowing from CXXFLAGS
|
||||
- Add patches to fix build
|
||||
* chromium-124-shims.patch
|
||||
* enable_stack_trace_line_numbers-symbol_level.patch
|
||||
* angle-FramebufferVk-powf.patch
|
||||
* licenses.py-FileNotFoundError.patch
|
||||
* span_reader-missing-optional.patch
|
||||
* bitset-missing-uint8_t-memcpy.patch
|
||||
* temporal_scalability_id_extractor-missing-bitset.patch
|
||||
* gpu_adapter_info-missing-optional.patch
|
||||
* first_party_sets_handler_database_helper-missing-optional.patch
|
||||
* async_iterable-forwarding.patch
|
||||
* preview_cancel_reason-missing-string.patch
|
||||
* script_streamer-atomic-include.patch
|
||||
- Add -Wno-packed-not-aligned -Wno-address to CXXFLAGS to suppress build logspam
|
||||
- Add libaom_av1_encoder-aom37-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch to build with old libaom
|
||||
- Add backported DesktopNativeWidgetAura-HandleActivationChanged-crash.patch
|
||||
- Revert upstream changes which introduce a use-after-free bug causing crashes (bsc#1224178 deb#1067886)
|
||||
* bad-font-gc0000.patch
|
||||
* bad-font-gc000.patch
|
||||
* bad-font-gc00.patch
|
||||
* bad-font-gc0.patch
|
||||
* bad-font-gc11.patch
|
||||
* bad-font-gc1.patch
|
||||
* bad-font-gc2.patch
|
||||
* bad-font-gc3.patch
|
||||
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 4 04:27:14 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Fix use after free in content::RenderFrameHostImpl::RemoveDocumentService (bsc#1227307)
|
||||
* RenderFrameHostImpl-use-after-free.patch: correct second instance of the same bug
|
||||
- ix86, aarch64: pass --jitless in %electron_rebuild macro to work around crashes on OBS and unblock downstream packages
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 28 16:56:51 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- New upstream release 29.4.3
|
||||
* Fixed an issue where navigator.usb.getDevices() could crash in some circumstances.
|
||||
* Fixed an issue where bad flags passed via --js-flags could cause a crash.
|
||||
* Fixed an issue where control could fail to return properly after saving a dialog using showOpenDialogSync on Linux.
|
||||
* Fixed an issue where some calls to WebUSB methods could crash.
|
||||
* Fixed potentially incorrect exit code in UtilityProcess.
|
||||
* Fixed support for multiple folder/file selection in //shell_dialogs portal implementation.
|
||||
* Security fixes for CVE-2024-5499 CVE-2024-5493 CVE-2024-5496 (bsc#1225690)
|
||||
* Security fixes for CVE-2024-5158 CVE-2024-5157 CVE-2024-5159 (bsc#1224818)
|
||||
* Security fixes for CVE-2024-6100 CVE-2024-6101 (bsc#1226504)
|
||||
- Correct .desktop file name to match the CHROME_DESKTOP environment variable.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 12 14:54:32 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
- Do not build //components/sync to reduce linker load and binary size (remove-sync.patch)
|
||||
- Add backported ElectronDesktopWindowTreeHostLinux-OnWindowTiledStateChanged-crash.patch
|
||||
to fix segfault due to type confusion (bsc#1223366 gh#electron/electron#41839)
|
||||
- Re-enable custom malloc now that the crash is fixed
|
||||
- Use system vulkan headers wherever system spirv is used
|
||||
- Drop Fedora 38 support
|
||||
* drop v8-icu73-alt_calendar.patch
|
||||
* drop v8-icu73-simple-case-folding.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 29 20:19:39 UTC 2024 - Bruno Pitrus <brunopitrus@hotmail.com>
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user