7
0

Accepting request 1112893 from devel:languages:nodejs

OBS-URL: https://build.opensuse.org/request/show/1112893
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/nodejs-electron?expand=0&rev=78
This commit is contained in:
2023-09-22 19:47:24 +00:00
committed by Git OBS Bridge
95 changed files with 1725 additions and 2254 deletions

View File

@@ -25,9 +25,9 @@ index d3dbdb9..fad747a 100644
if(optimizationLevel > 0)
{
+#if LLVM_VERSION_MAJOR >= 16
+ fpm.addPass(llvm::SROAPass(llvm::SROAOptions::PreserveCFG));
fpm.addPass(llvm::SROAPass(llvm::SROAOptions::PreserveCFG));
+#else
fpm.addPass(llvm::SROAPass());
+ fpm.addPass(llvm::SROAPass());
+#endif
fpm.addPass(llvm::InstCombinePass());
}

View File

@@ -1,112 +0,0 @@
From 165342beac61a5573c8eb422cb5bc7001adbf0c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= <tniessen@tnie.de>
Date: Sun, 25 Sep 2022 12:34:05 +0000
Subject: [PATCH] inspector: harden IP address validation again
Use inet_pton() to parse IP addresses, which restricts IP addresses
to a small number of well-defined formats. In particular, octal and
hexadecimal number formats are not allowed, and neither are leading
zeros. Also explicitly reject 0.0.0.0/8 and ::/128 as non-routable.
Refs: https://hackerone.com/reports/1710652
CVE-ID: CVE-2022-43548
PR-URL: https://github.com/nodejs-private/node-private/pull/354
Reviewed-by: Michael Dawson <midawson@redhat.com>
Reviewed-by: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-by: Rich Trott <rtrott@gmail.com>
---
src/inspector_socket.cc | 77 ++++++++++++++++++++------
test/cctest/test_inspector_socket.cc | 80 ++++++++++++++++++++++++++++
2 files changed, 141 insertions(+), 16 deletions(-)
diff --git a/src/inspector_socket.cc b/src/inspector_socket.cc
index ab1cdf1fa5bd..8001d893e1fd 100644
--- a/third_party/electron_node/src/inspector_socket.cc
+++ b/third_party/electron_node/src/inspector_socket.cc
@@ -162,25 +162,70 @@ static std::string TrimPort(const std::string& host) {
}
static bool IsIPAddress(const std::string& host) {
- if (host.length() >= 4 && host.front() == '[' && host.back() == ']')
- return true;
- if (host.front() == '0') return false;
- uint_fast16_t accum = 0;
- uint_fast8_t quads = 0;
- bool empty = true;
- auto endOctet = [&accum, &quads, &empty](bool final = false) {
- return !empty && accum <= 0xff && ++quads <= 4 && final == (quads == 4) &&
- (empty = true) && !(accum = 0);
- };
- for (char c : host) {
- if (isdigit(c)) {
- if ((accum = (accum * 10) + (c - '0')) > 0xff) return false;
- empty = false;
- } else if (c != '.' || !endOctet()) {
+ // TODO(tniessen): add CVEs to the following bullet points
+ // To avoid DNS rebinding attacks, we are aware of the following requirements:
+ // * the host name must be an IP address,
+ // * the IP address must be routable, and
+ // * the IP address must be formatted unambiguously.
+
+ // The logic below assumes that the string is null-terminated, so ensure that
+ // we did not somehow end up with null characters within the string.
+ if (host.find('\0') != std::string::npos) return false;
+
+ // All IPv6 addresses must be enclosed in square brackets, and anything
+ // enclosed in square brackets must be an IPv6 address.
+ if (host.length() >= 4 && host.front() == '[' && host.back() == ']') {
+ // INET6_ADDRSTRLEN is the maximum length of the dual format (including the
+ // terminating null character), which is the longest possible representation
+ // of an IPv6 address: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:ddd.ddd.ddd.ddd
+ if (host.length() - 2 >= INET6_ADDRSTRLEN) return false;
+
+ // Annoyingly, libuv's implementation of inet_pton() deviates from other
+ // implementations of the function in that it allows '%' in IPv6 addresses.
+ if (host.find('%') != std::string::npos) return false;
+
+ // Parse the IPv6 address to ensure it is syntactically valid.
+ char ipv6_str[INET6_ADDRSTRLEN];
+ std::copy(host.begin() + 1, host.end() - 1, ipv6_str);
+ ipv6_str[host.length()] = '\0';
+ unsigned char ipv6[sizeof(struct in6_addr)];
+ if (uv_inet_pton(AF_INET6, ipv6_str, ipv6) != 0) return false;
+
+ // The only non-routable IPv6 address is ::/128. It should not be necessary
+ // to explicitly reject it because it will still be enclosed in square
+ // brackets and not even macOS should make DNS requests in that case, but
+ // history has taught us that we cannot be careful enough.
+ // Note that RFC 4291 defines both "IPv4-Compatible IPv6 Addresses" and
+ // "IPv4-Mapped IPv6 Addresses", which means that there are IPv6 addresses
+ // (other than ::/128) that represent non-routable IPv4 addresses. However,
+ // this translation assumes that the host is interpreted as an IPv6 address
+ // in the first place, at which point DNS rebinding should not be an issue.
+ if (std::all_of(ipv6, ipv6 + sizeof(ipv6), [](auto b) { return b == 0; })) {
return false;
}
+
+ // It is a syntactically valid and routable IPv6 address enclosed in square
+ // brackets. No client should be able to misinterpret this.
+ return true;
}
- return endOctet(true);
+
+ // Anything not enclosed in square brackets must be an IPv4 address. It is
+ // important here that inet_pton() accepts only the so-called dotted-decimal
+ // notation, which is a strict subset of the so-called numbers-and-dots
+ // notation that is allowed by inet_aton() and inet_addr(). This subset does
+ // not allow hexadecimal or octal number formats.
+ unsigned char ipv4[sizeof(struct in_addr)];
+ if (uv_inet_pton(AF_INET, host.c_str(), ipv4) != 0) return false;
+
+ // The only strictly non-routable IPv4 address is 0.0.0.0, and macOS will make
+ // DNS requests for this IP address, so we need to explicitly reject it. In
+ // fact, we can safely reject all of 0.0.0.0/8 (see Section 3.2 of RFC 791 and
+ // Section 3.2.1.3 of RFC 1122).
+ // Note that inet_pton() stores the IPv4 address in network byte order.
+ if (ipv4[0] == 0) return false;
+
+ // It is a routable IPv4 address in dotted-decimal notation.
+ return true;
}
// Constants for hybi-10 frame format.

View File

@@ -1,8 +1,8 @@
--- 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 @@
#include "content/browser/renderer_host/render_frame_host_impl.h"
#include <cstdint>
#include <memory>
+#include <new>
#include <tuple>
@@ -20,5 +20,5 @@
+ document_associated_data_->~DocumentAssociatedData();
+ new(&document_associated_data_) absl::optional<DocumentAssociatedData>(absl::nullopt);
// Ensure that the render process host has been notified that all audio
// streams from this frame have terminated. This is required to ensure the
// If this was the last active frame in the SiteInstanceGroup, the
// DecrementActiveFrameCount call will trigger the deletion of the

View File

@@ -0,0 +1,72 @@
These targets are dead code but they aren't available with system abseil
--- src/third_party/abseil-cpp/BUILD.gn.old
+++ src/third_party/abseil-cpp/BUILD.gn
@@ -61,7 +61,6 @@
"//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:prefetch",
"//third_party/abseil-cpp/absl/cleanup",
"//third_party/abseil-cpp/absl/container:btree",
"//third_party/abseil-cpp/absl/container:fixed_array",
@@ -76,15 +76,11 @@
"//third_party/abseil-cpp/absl/functional:bind_front",
"//third_party/abseil-cpp/absl/functional:function_ref",
"//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:die_if_null",
"//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/meta:type_traits",
"//third_party/abseil-cpp/absl/numeric:bits",
"//third_party/abseil-cpp/absl/numeric:int128",
"//third_party/abseil-cpp/absl/random",
- "//third_party/abseil-cpp/absl/random:distributions",
"//third_party/abseil-cpp/absl/status",
"//third_party/abseil-cpp/absl/status:statusor",
"//third_party/abseil-cpp/absl/strings",
@@ -194,16 +190,9 @@
"absl/container:inlined_vector_test",
"absl/container:node_slot_policy_test",
"absl/container:sample_element_size_test",
- "absl/crc:crc32c_test",
- "absl/crc:crc_cord_state_test",
- "absl/crc:crc_memcpy_test",
- "absl/crc:non_temporal_memcpy_test",
- "absl/debugging:stacktrace_test",
"absl/functional:any_invocable_test",
"absl/hash:hash_test",
"absl/hash:low_level_hash_test",
- "absl/log:absl_check_test",
- "absl/log:absl_log_basic_test",
"absl/log:die_if_null_test",
"absl/log:flags_test",
"absl/log:globals_test",
@@ -217,7 +207,6 @@
"absl/log/internal:stderr_log_sink_test",
"absl/memory:memory_test",
"absl/meta:type_traits_test",
- "absl/numeric:int128_test",
"absl/profiling:exponential_biased_test",
"absl/profiling:periodic_sampler_test",
"absl/status:statusor_test",
@@ -234,7 +223,6 @@
"absl/strings:cordz_test",
"absl/strings:cordz_update_scope_test",
"absl/strings:cordz_update_tracker_test",
- "absl/strings:damerau_levenshtein_distance_test",
"absl/strings:match_test",
"absl/strings:str_replace_test",
"absl/strings:string_view_test",
@@ -249,9 +237,6 @@
"absl/strings:match_test",
"absl/strings:str_replace_test",
"absl/strings:string_view_test",
- "absl/synchronization:kernel_timeout_internal_test",
- "absl/synchronization:waiter_test",
- "absl/time:time_test",
"absl/types:optional_test",
"absl/types:variant_test",
"//third_party/googletest:gtest_main",

View File

@@ -0,0 +1,16 @@
--- src/components/attribution_reporting/parsing_utils.h.old 2023-08-14 13:59:44.170970500 +0200
+++ src/components/attribution_reporting/parsing_utils.h 2023-08-14 21:56:24.568044300 +0200
@@ -12,12 +12,9 @@
#include "base/component_export.h"
#include "base/strings/string_piece_forward.h"
#include "base/values.h"
+#include "third_party/abseil-cpp/absl/numeric/int128.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
-namespace absl {
-class uint128;
-} // namespace absl
-
namespace attribution_reporting {
COMPONENT_EXPORT(ATTRIBUTION_REPORTING)

View File

@@ -1,15 +0,0 @@
--- a/content/browser/attribution_reporting/aggregatable_attribution_utils.h
+++ b/content/browser/attribution_reporting/aggregatable_attribution_utils.h
@@ -9,11 +9,9 @@
#include <vector>
#include "content/common/content_export.h"
+#include "third_party/abseil-cpp/absl/numeric/int128.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
-namespace absl {
-class uint128;
-} // namespace absl
namespace content {

View File

@@ -1,10 +0,0 @@
--- src/third_party/angle/include/GLSLANG/ShaderVars.h.old
+++ src/third_party/angle/include/GLSLANG/ShaderVars.h
@@ -12,6 +12,7 @@
#include <algorithm>
#include <array>
+#include <cstdint>
#include <string>
#include <vector>

View File

@@ -5,7 +5,15 @@
# Copyright 2019 The ANGLE Project Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -355,18 +356,12 @@
@@ -406,7 +406,6 @@
config("angle_common_config") {
include_dirs = [
"src/common/base",
- "src/common/third_party/xxhash",
]
if (is_android) {
libs = [ "log" ]
@@ -431,18 +432,12 @@
}
}
@@ -27,14 +35,14 @@
+ public_configs = [ ":system_xxhash" ]
}
angle_static_library("angle_common") {
template("angle_common_lib") {
--- a/third_party/angle/src/common/hash_utils.h
+++ b/third_party/angle/src/common/hash_utils.h
@@ -9,7 +9,7 @@
#define COMMON_HASHUTILS_H_
#include "common/debug.h"
-#include "common/third_party/xxhash/xxhash.h"
-#include "xxhash.h"
+#include <xxhash.h>
namespace angle

View File

@@ -1,20 +0,0 @@
--- a/third_party/blink/renderer/core/frame/attribution_response_parsing.h 2022-09-16 12:44:45.672390800 +0200
+++ b/third_party/blink/renderer/core/frame/attribution_response_parsing.h 2022-09-17 16:01:55.554818800 +0200
@@ -7,16 +7,13 @@
#include <stdint.h>
+#include "third_party/abseil-cpp/absl/numeric/int128.h"
#include "third_party/blink/public/mojom/conversions/attribution_data_host.mojom-blink-forward.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/platform/wtf/forward.h"
#include "third_party/blink/renderer/platform/wtf/hash_map.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
-namespace absl {
-class uint128;
-} // namespace absl
-
namespace blink {
class JSONValue;

View File

@@ -60,11 +60,12 @@ index c24bf8e0446d3..6ccc4bcfe2c36 100644
NOTREACHED();
return media::PIXEL_FORMAT_UNKNOWN;
}
@@ -300,6 +301,7 @@ cc::YUVSubsampling AVIFImageDecoder::GetYUVSubsampling() const {
case AVIF_PIXEL_FORMAT_YUV400:
@@ -300,7 +301,7 @@ cc::YUVSubsampling AVIFImageDecoder::GetYUVSubsampling() const {
// AVIF_PIXEL_FORMAT_NONE.
CHECK(!IsDecodedSizeAvailable());
return cc::YUVSubsampling::kUnknown;
case AVIF_PIXEL_FORMAT_NONE:
+ case AVIF_PIXEL_FORMAT_COUNT:
NOTREACHED();
return cc::YUVSubsampling::kUnknown;
- default:
break;
}
NOTREACHED_NORETURN() << "Invalid YUV format: " << avif_yuv_format_;

View File

@@ -0,0 +1,60 @@
--- src/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc.old 2023-09-03 08:00:30.283599000 +0200
+++ src/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc 2023-09-04 22:18:55.656557200 +0200
@@ -40,6 +40,20 @@
#error Blink assumes a little-endian target.
#endif
+#include <type_traits>
+#define define_has_member(member_name) \
+ template <typename T> \
+ class has_member_##member_name \
+ { \
+ template <typename U> static std::true_type test(decltype(&U::member_name)); \
+ template <typename U> static std::false_type test(...); \
+ public: \
+ static constexpr bool v = decltype(test<T>(0))::value; \
+ };
+
+define_has_member(clli)
+define_has_member(repetitionCount)
+
namespace {
// The maximum AVIF file size we are willing to decode. This helps libavif
@@ -463,6 +477,8 @@ void AVIFImageDecoder::DecodeToYUV() {
}
int AVIFImageDecoder::RepetitionCount() const {
+#ifdef AVIF_REPETITION_COUNT_INFINITE
+[](auto &decoder_, auto &decoded_frame_count_) { if constexpr(has_member_repetitionCount<avifDecoder>::v) {
if (decoded_frame_count_ > 1) {
switch (decoder_->repetitionCount) {
case AVIF_REPETITION_COUNT_INFINITE:
@@ -477,6 +493,13 @@ int AVIFImageDecoder::RepetitionCount()
}
}
return kAnimationNone;
+} else {
+#endif
+ return decoded_frame_count_ > 1 ? kAnimationLoopInfinite : kAnimationNone;
+#ifdef AVIF_REPETITION_COUNT_INFINITE
+}
+}(decoder_, decoded_frame_count_);
+#endif
}
bool AVIFImageDecoder::FrameIsReceivedAtIndex(wtf_size_t index) const {
@@ -872,11 +895,13 @@ bool AVIFImageDecoder::UpdateDemuxer() {
chroma_shift_x_ = format_info.chromaShiftX;
chroma_shift_y_ = format_info.chromaShiftY;
+[](auto &container, auto &hdr_metadata_) { if constexpr(has_member_clli<avifImage>::v) {
if (container->clli.maxCLL || container->clli.maxPALL) {
hdr_metadata_ = gfx::HDRMetadata();
hdr_metadata_->max_content_light_level = container->clli.maxCLL;
hdr_metadata_->max_frame_average_light_level = container->clli.maxPALL;
}
+}}(container, hdr_metadata_);
// SetEmbeddedColorProfile() must be called before IsSizeAvailable() becomes
// true. So call SetEmbeddedColorProfile() before calling SetSize(). The color

View File

@@ -30,9 +30,9 @@
"thread_annotations.h",
"threading/hang_watcher.cc",
@@ -1414,6 +1417,7 @@
"//build/config/compiler:prevent_unsafe_narrowing",
"//build/config/compiler:wexit_time_destructors",
"//build/config/compiler:wglobal_constructors",
"//electron/build/config:mas_build",
+ ":system_nspr",
]

View File

@@ -1,22 +0,0 @@
--- src/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.old 2023-03-07 10:51:27.754759600 +0000
+++ src/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h 2023-03-09 08:25:00.771159100 +0000
@@ -6,6 +6,9 @@
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_BLUETOOTH_WEB_BLUETOOTH_DEVICE_ID_H_
#include <array>
+#include <cstdint>
+#include <functional>
+#include <iosfwd>
#include <string>
#include "third_party/blink/public/common/common_export.h"
--- src/third_party/blink/public/common/origin_trials/origin_trial_public_key.h.old 2023-03-07 11:51:27.758759553 +0100
+++ src/third_party/blink/public/common/origin_trials/origin_trial_public_key.h 2023-03-09 13:54:11.881700635 +0100
@@ -6,6 +6,7 @@
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_ORIGIN_TRIALS_ORIGIN_TRIAL_PUBLIC_KEY_H_
#include <array>
+#include <cstdint>
namespace blink {

View File

@@ -1,10 +0,0 @@
--- src/device/bluetooth/public/cpp/bluetooth_uuid.h.old 2023-03-07 11:51:25.678757600 +0100
+++ src/device/bluetooth/public/cpp/bluetooth_uuid.h 2023-03-07 21:50:18.367030500 +0100
@@ -5,6 +5,7 @@
#ifndef DEVICE_BLUETOOTH_PUBLIC_CPP_BLUETOOTH_UUID_H_
#define DEVICE_BLUETOOTH_PUBLIC_CPP_BLUETOOTH_UUID_H_
+#include <cstdint>
#include <ostream>
#include <string>
#include <vector>

View File

@@ -1,10 +0,0 @@
--- src/sandbox/linux/syscall_broker/broker_file_permission.h.old 2023-03-07 11:51:27.250759100 +0100
+++ src/sandbox/linux/syscall_broker/broker_file_permission.h 2023-03-07 22:30:50.447848900 +0100
@@ -6,6 +6,7 @@
#define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
#include <bitset>
+#include <cstdint>
#include <string>
#include "sandbox/sandbox_export.h"

View File

@@ -58,12 +58,18 @@ index d40843b..b92f03b 100644
if (!is_clang) {
# Use pipes for communicating between sub-processes. Faster.
@@ -527,31 +527,6 @@
@@ -527,37 +527,6 @@
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
}
- if (is_clang && !is_nacl && current_os != "zos") {
- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
- if (save_reproducers_on_lld_crash && use_lld) {
- ldflags += [
- "-fcrash-diagnostics=all",
- "-fcrash-diagnostics-dir=" + clang_diagnostic_dir,
- ]
- }
-
- # TODO(hans): Remove this once Clang generates better optimized debug info
- # by default. https://crbug.com/765793
@@ -87,9 +93,9 @@ index d40843b..b92f03b 100644
- }
- }
-
# Rust compiler setup (for either clang or rustc).
if (enable_rust) {
defines += [ "RUST_ENABLED" ]
# C11/C++11 compiler flags setup.
# ---------------------------
if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
@@ -862,7 +837,8 @@
# without using everything that "compiler" brings in. Options that
# tweak code generation for a particular CPU do not belong here!
@@ -175,8 +181,8 @@ index d40843b..b92f03b 100644
- cflags += [ "-Wextra" ]
- }
# In Chromium code, we define __STDC_foo_MACROS in order to get the
# C99 macros on Mac and Linux.
if (treat_warnings_as_errors) {
# Turn rustc warnings into the "deny" lint level, which produce compiler
@@ -1618,16 +1552,6 @@
"__STDC_FORMAT_MACROS",
]
@@ -191,9 +197,9 @@ index d40843b..b92f03b 100644
- defines += [ "_FORTIFY_SOURCE=2" ]
- }
-
if (is_mac) {
cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
if (is_apple) {
cflags_objc = [ "-Wimplicit-retain-self" ]
cflags_objcc = [ "-Wimplicit-retain-self" ]
@@ -1841,7 +1841,6 @@
config("export_dynamic") {
# TODO(crbug.com/1052397): Revisit after target_os flip is completed.
@@ -219,7 +225,7 @@ index d40843b..b92f03b 100644
-config("default_stack_frames") {
+config("default_stack_frames") { }
+config("xdefault_stack_frames") {
if (is_posix || is_fuchsia) {
if (!is_win) {
if (enable_frame_pointers) {
cflags = [ "-fno-omit-frame-pointer" ]
@@ -2017,7 +1943,8 @@
@@ -279,9 +285,9 @@ index d40843b..b92f03b 100644
-config("symbols") {
+config("symbols") { cflags = ["-g2"] }
+config("xsymbols") {
rustflags = []
if (is_win) {
if (is_clang) {
cflags = [ "/Z7" ] # Debug information in the .obj files.
@@ -2398,7 +2330,8 @@
# Minimal symbols.
# This config guarantees to hold symbol for stack trace which are shown to user

View File

@@ -1,59 +0,0 @@
--- /dev/null
+++ b/build/linux/unbundle/absl_log.gn
@@ -0,0 +1,13 @@
+source_set("basic_log_test") {}
+source_set("check_test") {}
+source_set("die_if_null_test") {}
+source_set("flags_test") {}
+source_set("globals_test") {}
+source_set("log_entry_test") {}
+source_set("log_format_test") {}
+source_set("log_macro_hygiene_test") {}
+source_set("log_modifier_methods_test") {}
+source_set("log_sink_test") {}
+source_set("log_streamer_test") {}
+source_set("scoped_mock_log_test") {}
+source_set("stripping_test") {}
--- /dev/null
+++ b/build/linux/unbundle/absl_log_internal.gn
@@ -0,0 +1,1 @@
+source_set("stderr_log_sink_test") {}
--- a/build/linux/unbundle/replace_gn_files.py
+++ b/build/linux/unbundle/replace_gn_files.py
@@ -15,7 +15,7 @@
REPLACEMENTS = {
- # Use system libabsl_2xxx. These 18 shims MUST be used together.
+ # Use system libabsl_2xxx. These 20 shims MUST be used together.
'absl_algorithm': 'third_party/abseil-cpp/absl/algorithm/BUILD.gn',
'absl_base': 'third_party/abseil-cpp/absl/base/BUILD.gn',
'absl_cleanup': 'third_party/abseil-cpp/absl/cleanup/BUILD.gn',
@@ -24,6 +24,8 @@
'absl_flags': 'third_party/abseil-cpp/absl/flags/BUILD.gn',
'absl_functional': 'third_party/abseil-cpp/absl/functional/BUILD.gn',
'absl_hash': 'third_party/abseil-cpp/absl/hash/BUILD.gn',
+ 'absl_log': 'third_party/abseil-cpp/absl/log/BUILD.gn',
+ 'absl_log_internal': 'third_party/abseil-cpp/absl/log/internal/BUILD.gn',
'absl_memory': 'third_party/abseil-cpp/absl/memory/BUILD.gn',
'absl_meta': 'third_party/abseil-cpp/absl/meta/BUILD.gn',
'absl_numeric': 'third_party/abseil-cpp/absl/numeric/BUILD.gn',
--- a/build/linux/unbundle/absl_container.gn
+++ b/build/linux/unbundle/absl_container.gn
@@ -109,6 +109,8 @@
public_configs = [ ":system_absl_node_hash_set" ]
}
+source_set("common_policy_traits_test") {
+}
source_set("inlined_vector_test") {
}
source_set("node_slot_policy_test") {
--- a/build/linux/unbundle/absl_functional.gn
+++ b/build/linux/unbundle/absl_functional.gn
@@ -45,3 +45,5 @@
deps = [ ":function_ref_shim" ]
public_configs = [ ":system_absl_function_ref" ]
}
+
+source_set("any_invocable_test") {}

View File

@@ -1,6 +1,6 @@
diff -up chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h
--- chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash 2021-10-05 16:04:46.313586509 -0400
+++ chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h 2021-10-05 16:05:12.213732558 -0400
--- chromium-94.0.4606.71/ui/views/animation/ink_drop_host.h.InkDropHost-crash 2021-10-05 16:04:46.313586509 -0400
+++ chromium-94.0.4606.71/ui/views/animation/ink_drop_host.h 2021-10-05 16:05:12.213732558 -0400
@@ -228,6 +228,11 @@ class VIEWS_EXPORT InkDropHost {
// Used to observe View and inform the InkDrop of host-transform changes.
ViewLayerTransformObserver host_view_transform_observer_;

View File

@@ -114,7 +114,7 @@ index c147309d6f..48a8f6ad8c 100644
+ int64_t first_dts_;
int64_t last_packet_pos_;
int64_t last_packet_dts_;
};
// Requested buffer count. The actual returned buffer count could be less
--
2.35.1

View File

@@ -1,18 +1,3 @@
Index: electron-17.1.0/third_party/perfetto/src/trace_processor/containers/string_pool.cc
===================================================================
--- electron-17.1.0.orig/third_party/perfetto/src/trace_processor/containers/string_pool.cc 2022-03-07 17:28:24.814737660 +0100
+++ electron-17.1.0/third_party/perfetto/src/trace_processor/containers/string_pool.cc 2022-03-09 08:25:10.346569313 +0100
@@ -14,9 +14,9 @@
* limitations under the License.
*/
+#include <limits>
#include "src/trace_processor/containers/string_pool.h"
-#include <limits>
#include "perfetto/base/logging.h"
#include "perfetto/ext/base/utils.h"
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
@@ -25,59 +10,8 @@ Index: electron-17.1.0/third_party/perfetto/src/trace_processor/db/column.cc
#include "src/trace_processor/db/column.h"
#include "src/trace_processor/db/compare.h"
Index: electron-17.1.0/third_party/perfetto/src/trace_processor/types/variadic.cc
===================================================================
--- electron-17.1.0.orig/third_party/perfetto/src/trace_processor/types/variadic.cc 2022-03-07 17:28:24.838737758 +0100
+++ electron-17.1.0/third_party/perfetto/src/trace_processor/types/variadic.cc 2022-03-09 08:25:10.346569313 +0100
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#include <limits>
#include "src/trace_processor/types/variadic.h"
namespace perfetto {
Index: electron-17.1.0/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
===================================================================
--- electron-17.1.0.orig/ui/accessibility/platform/ax_platform_atk_hyperlink.cc 2022-03-07 17:20:48.460884710 +0100
+++ electron-17.1.0/ui/accessibility/platform/ax_platform_atk_hyperlink.cc 2022-03-09 08:25:10.346569313 +0100
@@ -245,7 +245,7 @@ static void AXPlatformAtkHyperlinkInit(A
}
GType ax_platform_atk_hyperlink_get_type() {
- static volatile gsize type_volatile = 0;
+ static gsize type_volatile = 0;
AXPlatformNodeAuraLinux::EnsureGTypeInit();
Index: electron-17.1.0/ui/accessibility/platform/ax_platform_node_auralinux.cc
===================================================================
--- electron-17.1.0.orig/ui/accessibility/platform/ax_platform_node_auralinux.cc 2022-03-07 17:20:48.460884710 +0100
+++ electron-17.1.0/ui/accessibility/platform/ax_platform_node_auralinux.cc 2022-03-09 08:25:10.346569313 +0100
@@ -2275,7 +2275,7 @@ void ClassInit(gpointer class_pointer, g
GType GetType() {
AXPlatformNodeAuraLinux::EnsureGTypeInit();
- static volatile gsize type_volatile = 0;
+ static gsize type_volatile = 0;
if (g_once_init_enter(&type_volatile)) {
static const GTypeInfo type_info = {
sizeof(AXPlatformNodeAuraLinuxClass), // class_size
Index: electron-17.1.0/ui/gtk/gtk_key_bindings_handler.cc
===================================================================
--- electron-17.1.0.orig/ui/gtk/gtk_key_bindings_handler.cc 2022-03-07 17:20:48.816886156 +0100
+++ electron-17.1.0/ui/gtk/gtk_key_bindings_handler.cc 2022-03-09 08:25:10.346569313 +0100
@@ -120,7 +120,7 @@ void GtkKeyBindingsHandler::HandlerClass
}
GType GtkKeyBindingsHandler::HandlerGetType() {
- static volatile gsize type_id_volatile = 0;
+ static gsize type_id_volatile = 0;
if (g_once_init_enter(&type_id_volatile)) {
GType type_id = g_type_register_static_simple(
GTK_TYPE_TEXT_VIEW, g_intern_static_string("GtkKeyBindingsHandler"),
Index: electron-17.1.0/chrome/browser/ui/bookmarks/bookmark_tab_helper.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 @@
@@ -88,18 +22,6 @@ Index: electron-17.1.0/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
#include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
#include "base/observer_list.h"
Index: electron-17.1.0/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
===================================================================
--- electron-17.1.0.orig/components/bookmarks/browser/bookmark_expanded_state_tracker.cc 2022-03-07 17:20:33.308823187 +0100
+++ electron-17.1.0/components/bookmarks/browser/bookmark_expanded_state_tracker.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 "components/bookmarks/browser/bookmark_expanded_state_tracker.h"
#include <stdint.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

View File

@@ -1,97 +0,0 @@
Index: electron-17.1.0/chrome/common/safe_browsing/BUILD.gn
===================================================================
--- electron-17.1.0.orig/chrome/common/safe_browsing/BUILD.gn 2022-03-07 17:20:32.164818543 +0100
+++ electron-17.1.0/chrome/common/safe_browsing/BUILD.gn 2022-03-09 08:25:16.218473339 +0100
@@ -58,39 +58,6 @@ if (safe_browsing_mode == 1) {
public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
}
- source_set("rar_analyzer") {
- sources = [
- "rar_analyzer.cc",
- "rar_analyzer.h",
- ]
-
- deps = [
- ":archive_analyzer_results",
- ":download_type_util",
- "//base",
- "//base:i18n",
- "//components/safe_browsing/content/common:file_type_policies",
- "//components/safe_browsing/core/common",
- "//third_party/unrar:unrar",
- ]
-
- defines = [
- "_FILE_OFFSET_BITS=64",
- "LARGEFILE_SOURCE",
- "RAR_SMP",
- "SILENT",
-
- # The following is set to disable certain macro definitions in the unrar
- # source code.
- "CHROMIUM_UNRAR",
-
- # Disables exceptions in unrar, replaces them with process termination.
- "UNRAR_NO_EXCEPTIONS",
- ]
-
- public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
- }
-
if (is_linux || is_win) {
source_set("document_analyzer") {
sources = [
@@ -189,7 +156,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing/core/common",
"//third_party/lzma_sdk/google:seven_zip_reader",
]
Index: electron-17.1.0/chrome/common/safe_browsing/DEPS
===================================================================
--- electron-17.1.0.orig/chrome/common/safe_browsing/DEPS 2022-03-07 17:20:32.164818543 +0100
+++ electron-17.1.0/chrome/common/safe_browsing/DEPS 2022-03-09 08:25:16.218473339 +0100
@@ -3,7 +3,6 @@ include_rules = [
"+components/safe_browsing/core/common",
"+third_party/maldoca",
"+third_party/protobuf",
- "+third_party/unrar",
"+third_party/zlib",
"+third_party/lzma_sdk/google",
]
Index: electron-17.1.0/chrome/services/file_util/BUILD.gn
===================================================================
--- electron-17.1.0.orig/chrome/services/file_util/BUILD.gn 2022-03-07 17:20:32.260818933 +0100
+++ electron-17.1.0/chrome/services/file_util/BUILD.gn 2022-03-09 08:25:16.218473339 +0100
@@ -60,7 +60,6 @@ source_set("file_util") {
deps += [
"//chrome/common/safe_browsing",
"//chrome/common/safe_browsing:archive_analyzer_results",
- "//chrome/common/safe_browsing:rar_analyzer",
]
if (is_linux || is_win) {
Index: electron-17.1.0/chrome/services/file_util/safe_archive_analyzer.cc
===================================================================
--- electron-17.1.0.orig/chrome/services/file_util/safe_archive_analyzer.cc 2022-03-07 17:20:32.264818949 +0100
+++ electron-17.1.0/chrome/services/file_util/safe_archive_analyzer.cc 2022-03-09 08:25:16.218473339 +0100
@@ -44,12 +44,16 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
base::File temporary_file,
AnalyzeRarFileCallback callback) {
+#if 0
DCHECK(rar_file.IsValid());
safe_browsing::ArchiveAnalyzerResults results;
safe_browsing::rar_analyzer::AnalyzeRarFile(
std::move(rar_file), std::move(temporary_file), &results);
std::move(callback).Run(results);
+#else
+ NOTREACHED();
+#endif
}
void SafeArchiveAnalyzer::AnalyzeSevenZipFile(

View File

@@ -2,38 +2,36 @@ This font is already available in opensuse and can be installed systemwide
--- a/ui/webui/resources/BUILD.gn 2022-06-15 15:58:23.822426713 +0200
+++ b/ui/webui/resources/BUILD.gn 2022-06-21 15:51:23.647223308 +0200
@@ -36,17 +36,6 @@
"$root_gen_dir/third_party/jstemplate/resources.grdp",
]
@@ -36,16 +36,6 @@
input_files = [ "test_loader.html" ]
input_files_base_dir = rebase_path(".", "//")
- if (!is_chromeos_ash && !is_android) {
- # Roboto Font. Roboto-Regular and Roboto-Light is already available on
- # Android, and Roboto-Medium is not used on Android. All 6 weights of
- # Roboto are available on Chrome OS.
- input_files_base_dir = rebase_path(".", "//")
- input_files = [
- input_files += [
- "roboto/roboto-bold.woff2",
- "roboto/roboto-medium.woff2",
- "roboto/roboto-regular.woff2",
- ]
- }
if (include_polymer) {
public_deps += [
public_deps = [
"cr_elements: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
@@ -2,28 +2,3 @@
@@ -2,26 +2,3 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
-<if expr="not chromeos_ash and not is_android">
-@font-face {
- font-family: 'Roboto';
- font-style: normal;
- font-weight: 400;
- src: local('Roboto'), local('Roboto-Regular'),
- url(chrome://resources/roboto/roboto-regular.woff2) format('woff2');
- url(//resources/roboto/roboto-regular.woff2) format('woff2');
-}
-
-@font-face {
@@ -41,7 +39,7 @@ This font is already available in opensuse and can be installed systemwide
- font-style: normal;
- font-weight: 500;
- src: local('Roboto Medium'), local('Roboto-Medium'),
- url(chrome://resources/roboto/roboto-medium.woff2) format('woff2');
- url(//resources/roboto/roboto-medium.woff2) format('woff2');
-}
-
-@font-face {
@@ -49,6 +47,5 @@ This font is already available in opensuse and can be installed systemwide
- font-style: normal;
- font-weight: 700;
- src: local('Roboto Bold'), local('Roboto-Bold'),
- url(chrome://resources/roboto/roboto-bold.woff2) format('woff2');
- url(//resources/roboto/roboto-bold.woff2) format('woff2');
-}
-</if>

View File

@@ -32,8 +32,8 @@ Index: electron-16.0.6/build/linux/unbundle/replace_gn_files.py
--- electron-16.0.6.orig/build/linux/unbundle/replace_gn_files.py 2022-01-10 16:06:45.861270275 +0100
+++ electron-16.0.6/build/linux/unbundle/replace_gn_files.py 2022-01-13 16:02:37.237389046 +0100
@@ -25,6 +25,7 @@ REPLACEMENTS = {
'libevent': 'third_party/libevent/BUILD.gn',
'libjpeg': 'third_party/libjpeg.gni',
'libjxl' : 'third_party/libjxl/BUILD.gn',
'libpng': 'third_party/libpng/BUILD.gn',
+ 'libusb': 'third_party/libusb/BUILD.gn',
'libvpx': 'third_party/libvpx/BUILD.gn',

View File

@@ -3,8 +3,8 @@ 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[] = {
flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop,
MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)},
FEATURE_VALUE_TYPE(device::features::kWebXrSharedBuffers)},
#endif // BUILDFLAG(IS_ANDROID)
#endif // ENABLE_VR
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))

View File

@@ -4,11 +4,14 @@ since we compile everything with -fasynchronous-unwind-tables anyway.
--- src/third_party/electron_node/common.gypi.old 2022-11-09 21:21:10.595238137 +0100
+++ src/third_party/electron_node/common.gypi 2022-11-09 22:07:29.480041964 +0100
@@ -243,9 +243,6 @@
@@ -243,12 +243,6 @@
# increase performance, number from experimentation
'cflags': [ '-qINLINE=::150:100000' ]
}],
- ['OS!="mac" and OS!="win" and OS!="zos"', {
- # -fno-omit-frame-pointer is necessary for the --perf_basic_prof
- # flag to work correctly. perf(1) gets confused about JS stack
- # frames otherwise, even with --call-graph dwarf.
- 'cflags': [ '-fno-omit-frame-pointer' ],
- }],
['OS=="linux"', {

View File

@@ -1,70 +0,0 @@
--- a/components/crash/core/app/crash_reporter_client.h
+++ b/components/crash/core/app/crash_reporter_client.h
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_CRASH_CORE_APP_CRASH_REPORTER_CLIENT_H_
#define COMPONENTS_CRASH_CORE_APP_CRASH_REPORTER_CLIENT_H_
+#include <cstdint>
#include <map>
#include <string>
--- src/components/feature_engagement/internal/event_storage_validator.h.old 2023-03-07 10:51:24.306756300 +0000
+++ src/components/feature_engagement/internal/event_storage_validator.h 2023-03-08 19:07:07.780289000 +0000
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
#define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
+#include <cstdint>
#include <string>
namespace feature_engagement {
--- a/components/password_manager/core/browser/generation/password_generator.h
+++ b/components/password_manager/core/browser/generation/password_generator.h
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
+#include <cstdint>
#include <string>
--- src/components/metrics/psi_memory_parser.h.old 2023-03-07 11:51:24.394756322 +0100
+++ src/components/metrics/psi_memory_parser.h 2023-03-08 14:04:15.470128894 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_METRICS_PSI_MEMORY_PARSER_H_
#define COMPONENTS_METRICS_PSI_MEMORY_PARSER_H_
+#include <cstdint>
#include <string>
#include "base/gtest_prod_util.h"
--- src/components/soda/constants.h.old 2023-03-07 10:51:24.794756800 +0000
+++ src/components/soda/constants.h 2023-03-08 20:58:33.789967200 +0000
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_SODA_CONSTANTS_H_
#define COMPONENTS_SODA_CONSTANTS_H_
+#include <cstdint>
#include <string>
#include "base/files/file_path.h"
--- src/components/viz/common/shared_element_resource_id.h.old 2023-03-07 10:51:25.094757000 +0000
+++ src/components/viz/common/shared_element_resource_id.h 2023-03-08 22:10:33.253309800 +0000
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_VIZ_COMMON_SHARED_ELEMENT_RESOURCE_ID_H_
#define COMPONENTS_VIZ_COMMON_SHARED_ELEMENT_RESOURCE_ID_H_
+#include <cstdint>
#include <string>
#include <vector>
--- src/components/autofill/core/browser/autofill_ablation_study.h.old 2023-03-07 11:51:24.058756000 +0100
+++ src/components/autofill/core/browser/autofill_ablation_study.h 2023-03-09 11:39:59.131542780 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
#define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
+#include <cstdint>
#include <string>
class GURL;

10
cpu-missing-uint8_t.patch Normal file
View File

@@ -0,0 +1,10 @@
--- src/base/cpu.h.old 2023-05-14 17:31:50.347217900 +0000
+++ src/base/cpu.h 2023-05-14 20:13:48.498518900 +0000
@@ -5,6 +5,7 @@
#ifndef BASE_CPU_H_
#define BASE_CPU_H_
+#include <cstdint>
#include <string>
#include "base/base_export.h"

View File

@@ -1,38 +0,0 @@
From 0acdadf032955add4a996332c19e08f7cecd7558 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Fri, 30 Sep 2022 14:07:07 +0200
Subject: [PATCH] snapshot: remove redundant template parameter
GCC 12 does not allow it in C++20 mode anymore.
Bug: chromium:819294
Change-Id: I025dda8046739fefc4ff449d4496ef496374eff5
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3929186
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
---
snapshot/elf/elf_image_reader.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/snapshot/elf/elf_image_reader.cc b/snapshot/elf/elf_image_reader.cc
index 9d3ba43ab..30e8b987c 100644
--- a/third_party/crashpad/crashpad/snapshot/elf/elf_image_reader.cc
+++ b/third_party/crashpad/crashpad/snapshot/elf/elf_image_reader.cc
@@ -56,14 +56,14 @@ template <typename PhdrType>
class ElfImageReader::ProgramHeaderTableSpecific
: public ElfImageReader::ProgramHeaderTable {
public:
- ProgramHeaderTableSpecific<PhdrType>() {}
+ ProgramHeaderTableSpecific() {}
- ProgramHeaderTableSpecific<PhdrType>(
+ ProgramHeaderTableSpecific(
const ProgramHeaderTableSpecific<PhdrType>&) = delete;
ProgramHeaderTableSpecific<PhdrType>& operator=(
const ProgramHeaderTableSpecific<PhdrType>&) = delete;
- ~ProgramHeaderTableSpecific<PhdrType>() {}
+ ~ProgramHeaderTableSpecific() {}
bool Initialize(const ProcessMemoryRange& memory,
VMAddress address,

View File

@@ -117,11 +117,12 @@ python3 src/tools/download_optimization_profile.py \
--output_name=src/chrome/android/profiles/afdo.prof \
--gs_url_base=chromeos-prebuilt/afdo-job/llvm
echo ">>>>>> Download pgo profiles"
python3 src/tools/update_pgo_profiles.py \
--target=linux \
update \
--gs-url-base=chromium-optimization-profiles/pgo_profiles
# it hangs as of electron 23 and we don't use it anyway (needs clang)
#echo ">>>>>> Download pgo profiles"
#python3 src/tools/update_pgo_profiles.py \
# --target=linux \
# update \
# --gs-url-base=chromium-optimization-profiles/pgo_profiles
# Needed to get typescript compiler
@@ -169,11 +170,10 @@ keeplibs=(
net/third_party/uri_template #Derived code, not vendored dependency.
third_party/abseil-cpp #15.4 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/common/third_party/base #Derived code, not vendored dependency.
third_party/angle/src/common/third_party/smhasher ##Derived code, not vendored dependency.
third_party/angle/src/third_party/ceval #not in any distro
third_party/angle/src/third_party/libXNVCtrl #Not in 15.4
third_party/angle/src/third_party/trace_event #Does not seem to be a separate library.
third_party/angle/src/third_party/volk #Not in Factory or Rawhide. Debian has it as vulkan-volk, CONSIDER UNBUNDLING when we have it
third_party/angle/src/third_party/systeminfo #Derived code, not vendored dep.
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
@@ -206,7 +206,9 @@ keeplibs=(
third_party/dawn/third_party/gn/webgpu-cts #Integral part of chrome, Needed even if you're building chrome without webgpu
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/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
@@ -214,7 +216,7 @@ keeplibs=(
third_party/electron_node #Integral part of electron
third_party/emoji-segmenter #not available as a shared library
third_party/fdlibm #derived code, not vendored dep
third_party/highway #Not in 15.4. Needed by libjxl
third_party/highway #Not in 15.4
third_party/hunspell #heavily forked version
third_party/iccjpeg #not in any distro
third_party/inspector_protocol #integral part of chrome
@@ -231,15 +233,14 @@ keeplibs=(
third_party/libaom/source/libaom/third_party/x86inc
third_party/libavif #leap too old
#third_party/libgav1 #Usage of private headers (ObuFrameHeader from utils/types.h) in VAAPI code only
third_party/libjxl #not in Leap
third_party/libphonenumber #Depends on protobuf which cannot be unbundled
third_party/libsrtp #Use of private headers. they were public in libsrtp1
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 #Use of private headers in VAAPI code only.
#third_party/libvpx/source/libvpx/third_party/x86inc
third_party/libvpx #15.5/FC37 too old
third_party/libvpx/source/libvpx/third_party/x86inc
third_party/libwebm #Usage of private headers (mkvparser/mkvmuxer)
third_party/libx11 #Derived code, not vendored dep
third_party/libxcb-keysyms #Derived code, not vendored dep
@@ -250,10 +251,12 @@ keeplibs=(
#third_party/maldoca #integral part of chrome, but not used in electron.
#third_party/maldoca/src/third_party
third_party/markupsafe #ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/lib64/python3.10/site-packages/markupsafe/__init__.py). CONSIDER UNBUNDLING when jinja is fixed
third_party/material_color_utilities #not in any distro
third_party/mesa_headers #ui/gl/gl_bindings.cc depends on GL_KHR_robustness not being defined.
third_party/metrics_proto #integral part of chrome
third_party/modp_b64 #not in Factory or Rawhide. pkgconfig(stringencoders) Mageia, AltLinux, Debian have it
third_party/node #javascript code
third_party/omnibox_proto #integral part of chrome
third_party/one_euro_filter #not in any distro
third_party/openscreen #Integral part of chrome, needed even if you're building without.
third_party/openscreen/src/third_party/mozilla #derived code, not vendored dependency
@@ -304,7 +307,6 @@ keeplibs=(
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.
third_party/wayland/stubs #added chromium code
third_party/wayland/wayland_scanner_wrapper.py #wrapper script
third_party/wayland-protocols/gtk/gdk/wayland/protocol #Imagine downloading 100MB of gtk source just to get one file.
third_party/wayland-protocols/mesa #egl-wayland-devel (Fedora) / libnvidia-egl-wayland1 (Tumbleweed). 15.4 has an old version that misses the file we need.

View File

@@ -1,30 +0,0 @@
From d0aa9ad9447025a42f17df1b93bd71183e9b2d1f Mon Sep 17 00:00:00 2001
From: Nicolas Capens <nicolas.capens@gmail.com>
Date: Thu, 22 Dec 2022 01:46:20 -0500
Subject: [PATCH] Support LLVM 16+ API change
Bug: b/165000222
Change-Id: I4a77e7740d0af3b72627db1bec7d3094c2e69d21
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/70528
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Commit-Queue: Alexis Hétu <sugoi@google.com>
---
diff --git src/third_party/swiftshader/src/Reactor/LLVMReactor.cpp src/third_party/swiftshader/src/Reactor/LLVMReactor.cpp
index 9a2cb0b..6f7e503 100644
--- src/third_party/swiftshader/src/Reactor/LLVMReactor.cpp
+++ src/third_party/swiftshader/src/Reactor/LLVMReactor.cpp
@@ -621,7 +621,11 @@
declaration = new llvm::AllocaInst(T(type), 0, (llvm::Value *)nullptr, align);
}
+#if LLVM_VERSION_MAJOR >= 16
+ declaration->insertInto(&entryBlock, entryBlock.begin());
+#else
entryBlock.getInstList().push_front(declaration);
+#endif
if(getPragmaState(InitializeLocalVariables))
{

View File

@@ -4,24 +4,24 @@ author: Michael Gilbert <mgilbert@debian.org>
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -242,7 +242,6 @@ group("gn_all") {
deps += [
"//google_apis/gcm:mcs_probe",
"//media/cast:cast_unittests",
- "//third_party/catapult/telemetry:bitmaptools($host_toolchain)",
]
if (!is_android) {
if (!is_castos) {
@@ -379,7 +378,6 @@ group("gn_all") {
"//services:services_junit_tests",
"//testing/android/junit:junit_unit_tests",
"//third_party/android_build_tools/lint:custom_lint_java",
- "//third_party/catapult/devil",
"//third_party/r8:custom_d8_java",
"//tools/android:android_tools",
"//tools/android:memconsumer",
if (!is_ios) {
deps += [
"//google_apis/gcm:mcs_probe",
- "//third_party/catapult/telemetry:bitmaptools($host_toolchain)",
]
if (!is_android) {
if (!is_castos) {
@@ -379,7 +378,6 @@ group("gn_all") {
"//testing/android/junit:junit_unit_tests",
"//third_party/android_build_tools/lint:custom_lint_java",
"//third_party/androidx_javascriptengine",
- "//third_party/catapult/devil",
"//third_party/r8:custom_d8_java",
"//tools/android:android_tools",
"//tools/android:memconsumer",
@@ -1104,7 +1101,6 @@ if (!is_ios) {
"//chrome:chrome",
"//chrome/test/chromedriver",
"//chrome/test/chromedriver:chromedriver_server",
"//testing:test_scripts_shared",
- "//third_party/catapult/third_party/typ",
]
@@ -44,9 +44,9 @@ author: Michael Gilbert <mgilbert@debian.org>
]
}
@@ -1521,10 +1515,6 @@ if (!is_ios) {
"//third_party/blink/web_tests/StaleTestExpectations",
"//third_party/blink/web_tests/TestExpectations",
"//third_party/blink/web_tests/VirtualTestSuites",
"//third_party/blink/web_tests/W3CImportExpectations",
- "//third_party/catapult/common/py_utils/",
- "//third_party/catapult/devil/",
- "//third_party/catapult/dependency_manager/",
@@ -104,8 +104,8 @@ author: Michael Gilbert <mgilbert@debian.org>
"//tools/grit/",
- "//third_party/catapult/third_party/typ/",
"//third_party/node/",
"//third_party/six/src/six.py",
]
}
--- a/tools/metrics/BUILD.gn
+++ b/tools/metrics/BUILD.gn
@@ -45,7 +45,6 @@ group("metrics_python_tests") {
@@ -158,17 +158,17 @@ author: Michael Gilbert <mgilbert@debian.org>
- },
# END content/ section.
# START ios/web/ section.
# START "everything else" section.
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -2530,7 +2530,6 @@ source_set("browser") {
if (!is_android) {
deps += [
"//components/speech:speech",
"//components/vector_icons",
- "//content/browser/tracing:resources",
]
sources += [
# Non-Android platforms that don't presently support
}
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -168,7 +168,6 @@ template("chrome_extra_paks") {
@@ -296,12 +296,12 @@ author: Michael Gilbert <mgilbert@debian.org>
}
@@ -607,7 +603,6 @@ if (rtc_include_tests && !build_with_chr
if (rtc_enable_protobuf) {
sources += [ "testsupport/perf_test_histogram_writer_unittest.cc" ]
- deps += [ "//third_party/catapult/tracing/tracing:histogram" ]
}
if (rtc_enable_protobuf) {
sources += [ "testsupport/perf_test_histogram_writer_unittest.cc" ]
- deps += [ "//third_party/catapult/tracing/tracing:histogram" ]
}
data = test_support_unittests_resources
data = test_support_unittests_resources
--- a/tools/perf/core/perfetto_binary_roller/BUILD.gn
+++ b/tools/perf/core/perfetto_binary_roller/BUILD.gn
@@ -7,7 +7,6 @@ import("//build/util/generate_wrapper.gn
@@ -335,8 +335,8 @@ author: Michael Gilbert <mgilbert@debian.org>
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/content/dev_ui_content_resources.pak",
@@ -73,7 +72,6 @@
"//content:content_resources",
"//content:dev_ui_content_resources",
"//content/browser/resources/gpu:resources",
"//content/browser/resources/media:resources",
- "//content/browser/tracing:resources",
"//content/browser/webrtc/resources",

View File

@@ -38,15 +38,11 @@ index 19b45dc1268..67dcd7752d0 100644
"speech/speech_synthesis_impl.cc",
"speech/speech_synthesis_impl.h",
"speech/tts_controller_impl.cc",
@@ -2956,21 +2951,6 @@ source_set("browser") {
@@ -2956,17 +2951,6 @@ source_set("browser") {
"serial/serial_service.cc",
"serial/serial_service.h",
- # Most speech code is non-Android.
- "speech/audio_buffer.cc",
- "speech/audio_buffer.h",
- "speech/audio_encoder.cc",
- "speech/audio_encoder.h",
- "speech/endpointer/endpointer.cc",
- "speech/endpointer/endpointer.h",
- "speech/endpointer/energy_endpointer.cc",
@@ -60,20 +56,16 @@ index 19b45dc1268..67dcd7752d0 100644
"tracing/tracing_ui.cc",
"tracing/tracing_ui.h",
@@ -2995,11 +2975,6 @@ source_set("browser") {
"webauth/virtual_fido_discovery_factory.cc",
"webauth/virtual_fido_discovery_factory.h",
@@ -2995,7 +2975,6 @@ source_set("browser") {
]
-
- deps += [
- "//components/speech",
- "//third_party/flac",
- ]
}
if (is_mac) {
deps += [
- "//components/speech:speech",
"//components/vector_icons",
]
}
@@ -3108,6 +3083,37 @@ source_set("browser") {
}
deps += [ "//ui/compositor" ]
}
+ if (enable_web_speech) {
@@ -125,7 +117,7 @@ index c5a6f0aea88..71d9bf41a71 100644
#include "content/browser/web_contents/file_chooser_impl.h"
#include "content/browser/web_contents/web_contents_impl.h"
@@ -144,7 +146,9 @@
#include "third_party/blink/public/mojom/quota/quota_manager_host.mojom.h"
#include "third_party/blink/public/mojom/runtime_feature_state/runtime_feature_state_controller.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"
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
@@ -250,9 +242,9 @@ index 01e0910666e..6ce78127e3f 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -47,6 +47,7 @@ buildflag_header("media_buildflags") {
"ENABLE_OPENH264=$media_use_openh264",
"ENABLE_PLATFORM_MPEG_H_AUDIO=$enable_platform_mpeg_h_audio",
"ENABLE_MSE_MPEG2TS_STREAM_PARSER=$enable_mse_mpeg2ts_stream_parser",
"PLATFORM_HAS_OPTIONAL_HEVC_SUPPORT=$platform_has_optional_hevc_support",
+ "ENABLE_WEB_SPEECH=$enable_web_speech",
"USE_ARC_PROTECTED_MEDIA=$use_arc_protected_media",
"USE_CHROMEOS_MEDIA_ACCELERATION=$use_vaapi||$use_v4l2_codec",
@@ -262,15 +254,38 @@ index 5667cac61f3..48ea95a99a6 100644
--- a/media/media_options.gni
+++ b/media/media_options.gni
@@ -66,6 +66,8 @@ declare_args() {
# still not supported. The actual support depends on platform capability.
enable_platform_encrypted_dolby_vision = false
# kAllowClearDolbyVisionInMseWhenPlatformEncryptedDvEnabled.
enable_platform_encrypted_dolby_vision = proprietary_codecs && is_win
+ enable_web_speech = true
+
# Enable HLS with SAMPLE-AES decryption.
#
# TODO(crbug.com/1329657): Remove the `is_fuchsia` condition once fuchsia
# Enable logging override, e.g. enable DVLOGs through level 2 at build time.
# On Cast devices, these are logged as INFO.
# When enabled on Fuchsia, these are logged as VLOGs.
--
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 @@
source_set("speech") {
sources = [
- "audio_buffer.cc",
- "audio_buffer.h",
- "audio_encoder.cc",
- "audio_encoder.h",
- "chunked_byte_buffer.cc",
- "chunked_byte_buffer.h",
"downstream_loader.cc",
"downstream_loader.h",
"downstream_loader_client.h",
@@ -24,7 +18,6 @@
"//mojo/public/cpp/system",
"//services/network/public/cpp",
"//services/network/public/mojom",
- "//third_party/flac",
]
}

View File

@@ -1,42 +0,0 @@
From 82827b0a8683c5c9c7285db48cefb7fa8ea92ffe Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Thu, 20 Oct 2022 16:27:27 +0000
Subject: [PATCH] GCC: declare DocumentLoader::DecodedBodyData as public
Fix build with GCC as DocumentLoader::DecodedBodyData was not
declaring SameSizeAsDocumentLoader. This works in Clang because
declaring it as friend of DocumentLoader implicitly declares it
as friend of its class members. But GCC does not accept that.
Bug: 819294
Change-Id: Iba6a4138fbd90831e7a65fae8445ad4b1736594f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3963839
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
Reviewed-by: Nate Chapin <japhet@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1061645}
---
diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h
index b22fe2a..37a4230 100644
--- a/third_party/blink/renderer/core/loader/document_loader.h
+++ b/third_party/blink/renderer/core/loader/document_loader.h
@@ -434,6 +434,11 @@
const KURL& url,
const ResourceResponse& response);
+ // This needs to be kept as public to be accessible from
+ // SameSizeAsDocumentLoader as GCC will fail to allow access
+ // even if it is friend of DocumentLoader
+ class DecodedBodyData;
+
protected:
// Based on its MIME type, if the main document's response corresponds to an
// MHTML archive, then every resources will be loaded from this archive.
@@ -465,7 +470,6 @@
friend struct SameSizeAsDocumentLoader;
class BodyData;
class EncodedBodyData;
- class DecodedBodyData;
Frame* CalculateOwnerFrame();
scoped_refptr<SecurityOrigin> CalculateOrigin(Document* owner_document);

View File

@@ -1,11 +0,0 @@
--- src/third_party/blink/renderer/platform/graphics/paint/effect_paint_property_node.h.old 2023-03-07 11:51:28.326760100 +0100
+++ src/third_party/blink/renderer/platform/graphics/paint/effect_paint_property_node.h 2023-03-09 21:56:47.418863400 +0100
@@ -122,7 +122,7 @@
// An identifier for a document transition shared element. `id.valid()`
// returns true if this has been set, and false otherwise.
- DocumentTransitionSharedElementId document_transition_shared_element_id;
+ blink::DocumentTransitionSharedElementId document_transition_shared_element_id;
// An identifier to tag shared element resources generated and cached in the
// Viz process. This generated resource can be used as content for other

View File

@@ -1,238 +0,0 @@
From 80368f8ba7a8bab13440463a254888311efe3986 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Tue, 4 May 2021 15:00:19 +0000
Subject: [PATCH] sql: make VirtualCursor standard layout type
sql::recover::VirtualCursor needs to be a standard layout type, but
has members of type std::unique_ptr. However, std::unique_ptr is not
guaranteed to be standard layout. Compiling with clang combined with
gcc-11 libstdc++ fails because of this. Replace std::unique_ptr with
raw pointers.
Bug: 1189788
Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c
---
sql/recover_module/btree.cc | 21 +++++++++++++++------
sql/recover_module/btree.h | 17 +++++++++++++----
sql/recover_module/cursor.cc | 24 ++++++++++++------------
sql/recover_module/cursor.h | 2 +-
sql/recover_module/pager.cc | 7 +++----
sql/recover_module/pager.h | 5 +++--
6 files changed, 47 insertions(+), 29 deletions(-)
Index: electron-17.1.0/sql/recover_module/btree.cc
===================================================================
--- electron-17.1.0.orig/sql/recover_module/btree.cc 2022-03-07 17:20:37.440839965 +0100
+++ electron-17.1.0/sql/recover_module/btree.cc 2022-03-09 08:27:33.744217386 +0100
@@ -136,16 +136,25 @@ static_assert(std::is_trivially_destruct
"Move the destructor to the .cc file if it's non-trival");
#endif // !DCHECK_IS_ON()
-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept
- : page_id_(db_reader->page_id()),
- db_reader_(db_reader),
- cell_count_(ComputeCellCount(db_reader)),
- next_read_index_(0),
- last_record_size_(0) {
+void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) {
+ DCHECK(db_reader);
DCHECK(IsOnValidPage(db_reader));
+ page_id_ = db_reader->page_id();
+ db_reader_ = db_reader;
+ cell_count_ = ComputeCellCount(db_reader);
+ next_read_index_ = 0;
+ last_record_size_ = 0;
DCHECK(DatabasePageReader::IsValidPageId(page_id_));
}
+void LeafPageDecoder::Reset() {
+ db_reader_ = nullptr;
+ page_id_ = 0;
+ cell_count_ = 0;
+ next_read_index_ = 0;
+ last_record_size_ = 0;
+}
+
bool LeafPageDecoder::TryAdvance() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(CanAdvance());
Index: electron-17.1.0/sql/recover_module/btree.h
===================================================================
--- electron-17.1.0.orig/sql/recover_module/btree.h 2022-03-07 17:20:37.440839965 +0100
+++ electron-17.1.0/sql/recover_module/btree.h 2022-03-09 08:27:33.744217386 +0100
@@ -103,7 +103,7 @@ class LeafPageDecoder {
//
// |db_reader| must have been used to read an inner page of a table B-tree.
// |db_reader| must outlive this instance.
- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept;
+ explicit LeafPageDecoder() noexcept = default;
~LeafPageDecoder() noexcept = default;
LeafPageDecoder(const LeafPageDecoder&) = delete;
@@ -151,6 +151,15 @@ class LeafPageDecoder {
// read as long as CanAdvance() returns true.
bool TryAdvance();
+ // Initialize with DatabasePageReader
+ void Initialize(DatabasePageReader* db_reader);
+
+ // Reset internal DatabasePageReader
+ void Reset();
+
+ // True if DatabasePageReader is valid
+ bool IsValid() { return (db_reader_ != nullptr); }
+
// True if the given reader may point to an inner page in a table B-tree.
//
// The last ReadPage() call on |db_reader| must have succeeded.
@@ -164,14 +173,14 @@ class LeafPageDecoder {
static int ComputeCellCount(DatabasePageReader* db_reader);
// The number of the B-tree page this reader is reading.
- const int64_t page_id_;
+ int64_t page_id_;
// Used to read the tree page.
//
// Raw pointer usage is acceptable because this instance's owner is expected
// to ensure that the DatabasePageReader outlives this.
- DatabasePageReader* const db_reader_;
+ DatabasePageReader* db_reader_;
// Caches the ComputeCellCount() value for this reader's page.
- const int cell_count_ = ComputeCellCount(db_reader_);
+ int cell_count_;
// The reader's cursor state.
//
Index: electron-17.1.0/sql/recover_module/cursor.cc
===================================================================
--- electron-17.1.0.orig/sql/recover_module/cursor.cc 2022-03-07 17:20:37.440839965 +0100
+++ electron-17.1.0/sql/recover_module/cursor.cc 2022-03-09 08:27:33.744217386 +0100
@@ -28,7 +28,7 @@ VirtualCursor::~VirtualCursor() {
int VirtualCursor::First() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
inner_decoders_.clear();
- leaf_decoder_ = nullptr;
+ leaf_decoder_.Reset();
AppendPageDecoder(table_->root_page_id());
return Next();
@@ -38,18 +38,18 @@ int VirtualCursor::Next() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
record_reader_.Reset();
- while (!inner_decoders_.empty() || leaf_decoder_.get()) {
- if (leaf_decoder_.get()) {
- if (!leaf_decoder_->CanAdvance()) {
+ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) {
+ if (leaf_decoder_.IsValid()) {
+ if (!leaf_decoder_.CanAdvance()) {
// The leaf has been exhausted. Remove it from the DFS stack.
- leaf_decoder_ = nullptr;
+ leaf_decoder_.Reset();
continue;
}
- if (!leaf_decoder_->TryAdvance())
+ if (!leaf_decoder_.TryAdvance())
continue;
- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(),
- leaf_decoder_->last_record_offset())) {
+ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(),
+ leaf_decoder_.last_record_offset())) {
continue;
}
if (!record_reader_.Initialize())
@@ -101,13 +101,13 @@ int VirtualCursor::ReadColumn(int column
int64_t VirtualCursor::RowId() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(record_reader_.IsInitialized());
- DCHECK(leaf_decoder_.get());
- return leaf_decoder_->last_record_rowid();
+ DCHECK(leaf_decoder_.IsValid());
+ return leaf_decoder_.last_record_rowid();
}
void VirtualCursor::AppendPageDecoder(int page_id) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- DCHECK(leaf_decoder_.get() == nullptr)
+ DCHECK(!leaf_decoder_.IsValid())
<< __func__
<< " must only be called when the current path has no leaf decoder";
@@ -115,7 +115,7 @@ void VirtualCursor::AppendPageDecoder(in
return;
if (LeafPageDecoder::IsOnValidPage(&db_reader_)) {
- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_);
+ leaf_decoder_.Initialize(&db_reader_);
return;
}
Index: electron-17.1.0/sql/recover_module/cursor.h
===================================================================
--- electron-17.1.0.orig/sql/recover_module/cursor.h 2022-03-07 17:20:37.440839965 +0100
+++ electron-17.1.0/sql/recover_module/cursor.h 2022-03-09 08:27:33.744217386 +0100
@@ -130,7 +130,7 @@ class VirtualCursor {
std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_;
// Decodes the leaf page containing records.
- std::unique_ptr<LeafPageDecoder> leaf_decoder_;
+ LeafPageDecoder leaf_decoder_;
SEQUENCE_CHECKER(sequence_checker_);
};
Index: electron-17.1.0/sql/recover_module/pager.cc
===================================================================
--- electron-17.1.0.orig/sql/recover_module/pager.cc 2022-03-07 17:20:37.440839965 +0100
+++ electron-17.1.0/sql/recover_module/pager.cc 2022-03-09 08:27:33.744217386 +0100
@@ -23,8 +23,7 @@ static_assert(DatabasePageReader::kMaxPa
"ints are not appropriate for representing page IDs");
DatabasePageReader::DatabasePageReader(VirtualTable* table)
- : page_data_(std::make_unique<uint8_t[]>(table->page_size())),
- table_(table) {
+ : page_data_(), table_(table) {
DCHECK(table != nullptr);
DCHECK(IsValidPageSize(table->page_size()));
}
@@ -57,8 +56,8 @@ int DatabasePageReader::ReadPage(int pag
std::numeric_limits<int64_t>::max(),
"The |read_offset| computation above may overflow");
- int sqlite_status =
- RawRead(sqlite_file, read_size, read_offset, page_data_.get());
+ int sqlite_status = RawRead(sqlite_file, read_size, read_offset,
+ const_cast<uint8_t*>(page_data_.data()));
// |page_id_| needs to be set to kInvalidPageId if the read failed.
// Otherwise, future ReadPage() calls with the previous |page_id_| value
Index: electron-17.1.0/sql/recover_module/pager.h
===================================================================
--- electron-17.1.0.orig/sql/recover_module/pager.h 2022-03-07 17:20:37.440839965 +0100
+++ electron-17.1.0/sql/recover_module/pager.h 2022-03-09 08:27:33.744217386 +0100
@@ -5,6 +5,7 @@
#ifndef SQL_RECOVER_MODULE_PAGER_H_
#define SQL_RECOVER_MODULE_PAGER_H_
+#include <array>
#include <cstdint>
#include <memory>
#include <ostream>
@@ -72,7 +73,7 @@ class DatabasePageReader {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK_NE(page_id_, kInvalidPageId)
<< "Successful ReadPage() required before accessing pager state";
- return page_data_.get();
+ return page_data_.data();
}
// The number of bytes in the page read by the last ReadPage() call.
@@ -139,7 +140,7 @@ class DatabasePageReader {
int page_id_ = kInvalidPageId;
// Stores the bytes of the last page successfully read by ReadPage().
// The content is undefined if the last call to ReadPage() did not succeed.
- const std::unique_ptr<uint8_t[]> page_data_;
+ const std::array<uint8_t, kMaxPageSize> page_data_;
// Raw pointer usage is acceptable because this instance's owner is expected
// to ensure that the VirtualTable outlives this.
const raw_ptr<VirtualTable> table_;

View File

@@ -3,8 +3,8 @@ Index: electron-16.0.9/base/third_party/symbolize/symbolize.h
--- electron-16.0.9.orig/base/third_party/symbolize/symbolize.h 2022-02-16 17:58:59.209168086 +0100
+++ electron-16.0.9/base/third_party/symbolize/symbolize.h 2022-02-17 08:39:25.070959581 +0100
@@ -54,6 +54,8 @@
#ifndef BASE_SYMBOLIZE_H_
#define BASE_SYMBOLIZE_H_
#include <sys/types.h> // for ssize_t
+#include <utility>
+

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:87e7cb24211d6c18b643c59d6019cbefeb1166332628592eb7ef7cdb397b6c90
size 530253814

View File

@@ -0,0 +1,20 @@
--- src/components/services/app_service/public/cpp/intent_filter.h.old 2023-05-14 17:31:53.807216000 +0000
+++ src/components/services/app_service/public/cpp/intent_filter.h 2023-05-14 20:08:25.985533800 +0000
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_INTENT_FILTER_H_
#define COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_INTENT_FILTER_H_
+#include <memory>
#include <set>
#include <string>
#include <utility>
--- src/components/services/app_service/public/cpp/permission.h.old 2023-05-14 17:31:53.811216000 +0000
+++ src/components/services/app_service/public/cpp/permission.h 2023-05-14 21:03:46.556546200 +0000
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_PERMISSION_H_
#define COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_PERMISSION_H_
+#include <memory>
#include <utility>
#include <vector>

3
electron-25.8.2.tar.zst Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2f0308e588b858a4ee5c8231edace90d76a033468e9955feb402296972122cd1
size 530609353

View File

@@ -0,0 +1,23 @@
[ 8128s] ../../electron/shell/browser/api/electron_api_app.cc: In function 'constexpr int electron::api::{anonymous}::GetPathConstant(base::StringPiece)':
[ 8128s] ../../electron/shell/browser/api/electron_api_app.cc:507:33: error: call to non-'constexpr' function 'base::internal::flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::const_iterator base::internal::flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::find(const Key&) const [with Key = base::BasicStringPiece<char>; GetKeyFromValue = base::internal::GetFirst; KeyCompare = std::less<void>; Container = std::array<std::pair<const base::BasicStringPiece<char>, int>, 18>; const_iterator = const std::pair<const base::BasicStringPiece<char>, int>*]'
[ 8128s] 507 | const auto* iter = Lookup.find(name);
[ 8128s] | ~~~~~~~~~~~^~~~~~
[ 8128s] In file included from ../../base/containers/flat_set.h:11,
[ 8128s] from ../../base/containers/id_map.h:20,
[ 8128s] from ../../content/public/browser/render_process_host.h:16:
[ 8128s] ../../base/containers/flat_tree.h:984:6: note: 'base::internal::flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::const_iterator base::internal::flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::find(const Key&) const [with Key = base::BasicStringPiece<char>; GetKeyFromValue = base::internal::GetFirst; KeyCompare = std::less<void>; Container = std::array<std::pair<const base::BasicStringPiece<char>, int>, 18>; const_iterator = const std::pair<const base::BasicStringPiece<char>, int>*]' declared here
[ 8128s] 984 | auto flat_tree<Key, GetKeyFromValue, KeyCompare, Container>::find(
[ 8128s] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- src/electron/shell/browser/api/electron_api_app.cc.old 2023-08-31 17:37:41.267399900 +0000
+++ src/electron/shell/browser/api/electron_api_app.cc 2023-09-03 10:12:16.007253000 +0000
@@ -474,7 +474,7 @@ IconLoader::IconSize GetIconSizeByString
}
// Return the path constant from string.
-constexpr int GetPathConstant(base::StringPiece name) {
+int GetPathConstant(base::StringPiece name) {
// clang-format off
constexpr auto Lookup = base::MakeFixedFlatMapSorted<base::StringPiece, int>({
{"appData", DIR_APP_DATA},

View File

@@ -0,0 +1,10 @@
--- src/electron/shell/browser/electron_browser_context.h.old 2023-08-31 17:37:41.299415900 +0000
+++ src/electron/shell/browser/electron_browser_context.h 2023-09-03 09:51:24.663398000 +0000
@@ -8,6 +8,7 @@
#include <map>
#include <memory>
#include <string>
+#include <variant>
#include <vector>
#include "base/memory/weak_ptr.h"

View File

@@ -1,14 +0,0 @@
--- a/electron/shell/browser/serial/electron_serial_delegate.h 2022-09-16 12:31:19.704082600 +0200
+++ b/electron/shell/browser/serial/electron_serial_delegate.h 2022-09-16 21:30:57.247975900 +0200
@@ -38,9 +38,9 @@
device::mojom::SerialPortManager* GetPortManager(
content::RenderFrameHost* frame) override;
void AddObserver(content::RenderFrameHost* frame,
- Observer* observer) override;
+ content::SerialDelegate::Observer* observer) override;
void RemoveObserver(content::RenderFrameHost* frame,
- Observer* observer) override;
+ content::SerialDelegate::Observer* observer) override;
void DeleteControllerForFrame(content::RenderFrameHost* render_frame_host);

View File

@@ -1,13 +0,0 @@
Enable JXL imageformat support, it is exposed by element-desktop.
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -767,7 +767,7 @@
"delay-in-ms", 0};
// Enables the JPEG XL Image File Format (JXL).
-BASE_FEATURE(kJXL, "JXL", base::FEATURE_DISABLED_BY_DEFAULT);
+BASE_FEATURE(kJXL, "JXL", base::FEATURE_ENABLED_BY_DEFAULT);
// Make all pending 'display: auto' web fonts enter the swap or failure period
// immediately before reaching the LCP time limit (~2500ms), so that web fonts

View File

@@ -1,22 +0,0 @@
--- src/extensions/common/constants.h.old 2023-03-07 10:51:25.826757700 +0000
+++ src/extensions/common/constants.h 2023-03-08 16:42:05.632267700 +0000
@@ -5,6 +5,9 @@
#ifndef EXTENSIONS_COMMON_CONSTANTS_H_
#define EXTENSIONS_COMMON_CONSTANTS_H_
+#include <cstddef>
+#include <cstdint>
+
#include "base/files/file_path.h"
#include "base/strings/string_piece_forward.h"
#include "build/chromeos_buildflags.h"
--- src/extensions/renderer/bindings/api_invocation_errors.h.old 2023-03-07 10:51:25.838757800 +0000
+++ src/extensions/renderer/bindings/api_invocation_errors.h 2023-03-09 17:57:28.682181200 +0000
@@ -5,6 +5,7 @@
#ifndef EXTENSIONS_RENDERER_BINDINGS_API_INVOCATION_ERRORS_H_
#define EXTENSIONS_RENDERER_BINDINGS_API_INVOCATION_ERRORS_H_
+#include <cstdint>
#include <set>
#include <string>

View File

@@ -1,29 +0,0 @@
--- src/content/browser/first_party_sets/first_party_set_parser.cc.old 2022-11-30 11:28:02.726199100 +0100
+++ src/content/browser/first_party_sets/first_party_set_parser.cc 2022-12-01 06:53:17.058993800 +0100
@@ -182,7 +182,7 @@
ParseSiteAndValidate(item, set_entries, elements, emit_errors);
if (!alias_or_error.has_value()) {
return base::unexpected(
- ParseError(alias_or_error.error(), {kCCTLDsField, site, i}));
+ ParseError(alias_or_error.error(), {kCCTLDsField, site, static_cast<int>(i)}));
}
const net::SchemefulSite alias = alias_or_error.value();
@@ -195,7 +195,7 @@
if (warnings) {
warnings->push_back(
ParseWarning(ParseWarningType::kAliasNotCctldVariant,
- {kCCTLDsField, site, i}));
+ {kCCTLDsField, site, static_cast<int>(i)}));
}
continue;
}
@@ -230,7 +230,7 @@
base::expected<net::SchemefulSite, ParseErrorType> site_or_error =
ParseSiteAndValidate(item, set_entries, other_sets_sites, emit_errors);
if (!site_or_error.has_value())
- return ParseError(site_or_error.error(), {descriptor.field_name, index});
+ return ParseError(site_or_error.error(), {descriptor.field_name, static_cast<int>(index)});
if (exempt_from_limits || !descriptor.size_limit.has_value() ||
static_cast<int>(index) < descriptor.size_limit.value()) {
set_entries.emplace_back(

View File

@@ -12,7 +12,7 @@ Index: electron-17.1.0/build/config/BUILDCONFIG.gn
is_clang = current_os != "linux" ||
(current_cpu != "s390x" && current_cpu != "s390" &&
@@ -352,6 +354,12 @@ default_compiler_configs = [
"//electron/build/config:mas_build",
"//build/config/sanitizers:default_sanitizer_flags",
]
+if (gcc_lto) {
@@ -38,6 +38,4 @@ Index: electron-17.1.0/build/config/compiler/BUILD.gn
+
config("default_stack_frames") { }
config("xdefault_stack_frames") {
if (is_posix || is_fuchsia) {
Index: electron-17.1.0/sandbox/linux/BUILD.gn
===================================================================
if (!is_win) {

View File

@@ -1,10 +0,0 @@
--- src/gpu/config/gpu_feature_info.h.old 2023-03-07 10:51:25.926757800 +0000
+++ src/gpu/config/gpu_feature_info.h 2023-03-09 05:36:10.635812200 +0000
@@ -5,6 +5,7 @@
#ifndef GPU_CONFIG_GPU_FEATURE_INFO_H_
#define GPU_CONFIG_GPU_FEATURE_INFO_H_
+#include <cstdint>
#include <string>
#include <vector>

View File

@@ -1,22 +0,0 @@
--- src/ui/gfx/half_float.cc.orig 2022-10-12 18:06:39.635381500 +0200
+++ src/ui/gfx/half_float.cc 2022-10-19 21:43:26.484063300 +0200
@@ -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 <cstring>
+
#include "ui/gfx/half_float.h"
namespace gfx {
@@ -9,7 +11,9 @@
void FloatToHalfFloat(const float* input, HalfFloat* output, size_t num) {
for (size_t i = 0; i < num; i++) {
float tmp = input[i] * 1.9259299444e-34f;
- uint32_t tmp2 = *reinterpret_cast<uint32_t*>(&tmp) + (1 << 12);
+ uint32_t tmp2;
+ std::memcpy(&tmp2, &tmp, 4);
+ tmp2 += (1 << 12);
output[i] = (tmp2 & 0x80000000UL) >> 16 | (tmp2 >> 13);
}
}

View File

@@ -0,0 +1,98 @@
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>
@@ -190,32 +191,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() { return ptr_; }
- void Set(T* ptr) { ptr_ = ptr; }
-
- private:
- T* ptr_;
- DestroyFunction destroy_;
-};
-
struct RangeData {
STACK_ALLOCATED();
@@ -908,8 +883,8 @@ scoped_refptr<ShapeResult> HarfBuzzShaper::Shape(const Font* font,
scoped_refptr<ShapeResult> result =
ShapeResult::Create(font, start, length, direction);
- HarfBuzzScopedPtr<hb_buffer_t> buffer(hb_buffer_create(), hb_buffer_destroy);
- RangeData range_data = CreateRangeData(font, direction, buffer.Get());
+ hb::unique_ptr<hb_buffer_t> buffer(hb_buffer_create());
+ RangeData range_data = CreateRangeData(font, direction, buffer.get());
range_data.start = start;
range_data.end = end;
@@ -965,8 +940,8 @@ scoped_refptr<ShapeResult> HarfBuzzShaper::Shape(
scoped_refptr<ShapeResult> result =
ShapeResult::Create(font, start, length, direction);
- HarfBuzzScopedPtr<hb_buffer_t> buffer(hb_buffer_create(), hb_buffer_destroy);
- RangeData range_data = CreateRangeData(font, direction, buffer.Get());
+ hb::unique_ptr<hb_buffer_t> buffer(hb_buffer_create());
+ RangeData range_data = CreateRangeData(font, direction, buffer.get());
for (const RunSegmenter::RunSegmenterRange& segmented_range : ranges) {
DCHECK_GE(segmented_range.end, segmented_range.start);
@@ -1001,8 +976,8 @@ scoped_refptr<ShapeResult> HarfBuzzShaper::Shape(
scoped_refptr<ShapeResult> result =
ShapeResult::Create(font, start, length, direction);
- HarfBuzzScopedPtr<hb_buffer_t> buffer(hb_buffer_create(), hb_buffer_destroy);
- RangeData range_data = CreateRangeData(font, direction, buffer.Get());
+ hb::unique_ptr<hb_buffer_t> buffer(hb_buffer_create());
+ RangeData range_data = CreateRangeData(font, direction, buffer.get());
range_data.start = start;
range_data.end = end;

View File

@@ -257,9 +257,9 @@ index b4bb5a3..b6ee0a8f 100644
// clang-format on
@@ -52,7 +53,6 @@
#include "third_party/blink/renderer/platform/resolution_units.h"
#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"
@@ -391,7 +391,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cac
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,7 +5,6 @@
@@ -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"
@@ -399,17 +399,35 @@ index 763f3a3..c50910df 100644
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,7 +7,6 @@
@@ -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"
namespace blink {
#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
@@ -445,7 +463,7 @@ index 522e164d..4b64e1b 100644
"src/src/hb-deprecated.h",
"src/src/hb-face.h",
"src/src/hb-font.h",
@@ -409,15 +410,9 @@
@@ -409,11 +410,6 @@
}
}
@@ -454,21 +472,9 @@ index 522e164d..4b64e1b 100644
- deps = [ "//third_party:freetype_harfbuzz" ]
-}
-
fuzzer_test("hb_shape_fuzzer") {
sources = [ "fuzz/hb_shape_fuzzer.cc" ]
deps = [
- ":hb_scoped_util",
"//base",
"//third_party:freetype_harfbuzz",
]
@@ -427,7 +422,6 @@
fuzzer_test("hb_subset_fuzzer") {
sources = [ "fuzz/hb_subset_fuzzer.cc" ]
deps = [
- ":hb_scoped_util",
"//base",
"//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

9
highway.gn Normal file
View File

@@ -0,0 +1,9 @@
import("//build/config/linux/pkg_config.gni")
pkg_config("libhwy_external_config") {
packages = [ "libhwy" ]
}
source_set("libhwy") {
public_configs = [ ":libhwy_external_config" ]
}

View File

@@ -28,18 +28,6 @@ Cr-Commit-Position: refs/heads/main@{#81286}
diff --git a/src/init/heap-symbols.h b/src/init/heap-symbols.h
index da2cdccf1d5..c00e2c45097 100644
--- a/v8/src/init/heap-symbols.h
+++ b/v8/src/init/heap-symbols.h
@@ -8,6 +8,7 @@
#ifdef V8_INTL_SUPPORT
#define INTERNALIZED_STRING_LIST_GENERATOR_INTL(V, _) \
V(_, adoptText_string, "adoptText") \
+ V(_, approximatelySign_string, "approximatelySign") \
V(_, baseName_string, "baseName") \
V(_, accounting_string, "accounting") \
V(_, breakType_string, "breakType") \
diff --git a/src/objects/intl-objects.cc b/src/objects/intl-objects.cc
index 93f7000bf5d..25cc4fdd04a 100644
--- a/v8/src/objects/intl-objects.cc
+++ b/v8/src/objects/intl-objects.cc
@@ -2744,6 +2744,9 @@ Handle<String> Intl::NumberFieldToType(Isolate* isolate,

View File

@@ -1,11 +0,0 @@
--- src/third_party/ipcz/src/ipcz/buffer_id.h.old 2022-10-12 18:06:37.711387200 +0200
+++ src/third_party/ipcz/src/ipcz/buffer_id.h 2022-10-19 20:24:24.333015000 +0200
@@ -16,7 +16,7 @@
// either side of the NodeLink.
using BufferId = StrongAlias<class BufferIdTag, uint64_t>;
-constexpr BufferId kInvalidBufferId{~0};
+constexpr BufferId kInvalidBufferId{UINT64_MAX};
} // namespace ipcz

View File

@@ -1,41 +0,0 @@
Do not put an expression with side effects inside an assert,
as the assert gets entirely removed in an optimized build.
See it for yourself: https://godbolt.org/z/GeG4zefK9
Very safe math, indeed.
--- src/third_party/ipcz/src/util/safe_math.h.old 2022-10-20 19:00:41.567140300 +0200
+++ src/third_party/ipcz/src/util/safe_math.h 2022-10-29 22:46:07.312067200 +0200
@@ -17,8 +17,8 @@
// This throws a compile-time error on evaluating the constexpr if it can be
// determined at compile-time as failing, otherwise it will fail an
// assertion at runtime.
- ABSL_HARDENING_ASSERT(
- ABSL_PREDICT_TRUE(value <= std::numeric_limits<Dst>::max()));
+ auto ass=ABSL_PREDICT_TRUE(value <= std::numeric_limits<Dst>::max());
+ ABSL_HARDENING_ASSERT(ass);
return static_cast<Dst>(value);
}
@@ -38,16 +38,16 @@
template <typename T>
constexpr T CheckAdd(T a, T b) {
T result;
- ABSL_HARDENING_ASSERT(
- !ABSL_PREDICT_FALSE(__builtin_add_overflow(a, b, &result)));
+ auto ass=!ABSL_PREDICT_FALSE(__builtin_add_overflow(a, b, &result));
+ ABSL_HARDENING_ASSERT(ass);
return result;
}
template <typename T>
constexpr T CheckMul(T a, T b) {
T result;
- ABSL_HARDENING_ASSERT(
- !ABSL_PREDICT_FALSE(__builtin_mul_overflow(a, b, &result)));
+ auto ass=!ABSL_PREDICT_FALSE(__builtin_mul_overflow(a, b, &result));
+ ABSL_HARDENING_ASSERT(ass);
return result;
}

View File

@@ -0,0 +1,10 @@
--- src/services/metrics/public/cpp/mojo_ukm_recorder.cc.old 2023-08-14 13:59:47.674968400 +0200
+++ src/services/metrics/public/cpp/mojo_ukm_recorder.cc 2023-08-14 22:47:52.938826800 +0200
@@ -12,6 +12,7 @@
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/metrics/public/mojom/ukm_interface.mojom-forward.h"
#include "services/metrics/public/mojom/ukm_interface.mojom.h"
+#include "third_party/abseil-cpp/absl/memory/memory.h"
namespace ukm {

View File

@@ -1,21 +0,0 @@
--- src/net/cookies/cookie_inclusion_status.h.old 2023-03-07 11:51:26.874758704 +0100
+++ src/net/cookies/cookie_inclusion_status.h 2023-03-08 16:26:46.505830726 +0100
@@ -6,6 +6,7 @@
#define NET_COOKIES_COOKIE_INCLUSION_STATUS_H_
#include <bitset>
+#include <cstdint>
#include <ostream>
#include <string>
#include <vector>
--- src/net/base/parse_number.h.old 2023-03-07 11:51:26.858758688 +0100
+++ src/net/base/parse_number.h 2023-03-08 14:54:32.174472371 +0100
@@ -5,6 +5,8 @@
#ifndef NET_BASE_PARSE_NUMBER_H_
#define NET_BASE_PARSE_NUMBER_H_
+#include <cstdint>
+
#include "base/strings/string_piece.h"
#include "net/base/net_export.h"

View File

@@ -1,30 +0,0 @@
--- src/net/third_party/quiche/src/quiche/http2/adapter/header_validator_base.h.old 2023-03-07 11:51:42.050773300 +0100
+++ src/net/third_party/quiche/src/quiche/http2/adapter/header_validator_base.h 2023-03-07 23:09:36.544902600 +0100
@@ -1,6 +1,7 @@
#ifndef QUICHE_HTTP2_ADAPTER_HEADER_VALIDATOR_BASE_H_
#define QUICHE_HTTP2_ADAPTER_HEADER_VALIDATOR_BASE_H_
+#include <cstdint>
#include <string>
#include "absl/strings/string_view.h"
--- src/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h.old 2023-03-07 10:51:42.086773400 +0000
+++ src/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h 2023-03-08 05:31:08.115134100 +0000
@@ -5,6 +5,7 @@
#ifndef QUICHE_QUIC_CORE_QUIC_CONNECTION_ID_H_
#define QUICHE_QUIC_CORE_QUIC_CONNECTION_ID_H_
+#include <cstdint>
#include <string>
#include <vector>
--- src/net/third_party/quiche/src/quiche/quic/core/crypto/quic_hkdf.h.old 2023-03-07 11:51:42.070773300 +0100
+++ src/net/third_party/quiche/src/quiche/quic/core/crypto/quic_hkdf.h 2023-03-08 00:06:05.139705800 +0100
@@ -5,6 +5,7 @@
#ifndef QUICHE_QUIC_CORE_CRYPTO_QUIC_HKDF_H_
#define QUICHE_QUIC_CORE_CRYPTO_QUIC_HKDF_H_
+#include <cstdint>
#include <vector>
#include "absl/strings/string_view.h"

View File

@@ -27,7 +27,7 @@ index 6dbc8b806dc4..ce658bac6fab 100644
--- a/third_party/electron_node/src/node_http_parser.cc
+++ b/third_party/electron_node/src/node_http_parser.cc
@@ -1148,28 +1148,51 @@ void ConnectionsList::Expired(const FunctionCallbackInfo<Value>& args) {
};
}
const llhttp_settings_t Parser::settings = {
- Proxy<Call, &Parser::on_message_begin>::Raw,

View File

@@ -1,3 +1,106 @@
-------------------------------------------------------------------
Thu Sep 21 17:34:33 UTC 2023 - Bruno Pitrus <brunopitrus@hotmail.com>
- New upstream release 25.8.2
* Fixed an issue where chrome://gpu failed to load.
* Fixed an issue where accelerators representing DOM keys were not correctly converted in webContents.sendInputEvent().
- Drop chrome-gpu-does-not-load.patch applied upstream
-------------------------------------------------------------------
Wed Sep 13 20:17:56 UTC 2023 - Bruno Pitrus <brunopitrus@hotmail.com>
- New upstream release 25.8.1
* Fixed an error where listening to certain chrome.tabs events would throw incorrectly.
* Fixed problem with promise resolved to early when browser initiated in-page navigation.
* Security fixes for Networks (CVE-2023-4763), V8 (CVE-2023-4762) and FedCM (CVE-2023-4761)
-------------------------------------------------------------------
Mon Sep 4 20:30:33 UTC 2023 - Bruno Pitrus <brunopitrus@hotmail.com>
- Update to 25.8.0
* ABI break: NODE_MODULE_VERSION is now 116
* Chromium 114.0.5735.289
* Node 18.15.0
* V8 11.4
* Removed BrowserWindow scroll-touch-* events (since Electron 23)
* Removed webContents.{de,in}crementCapturerCount(stayHidden, stayAwake) (since Electron 23)
* Removed JXL image format support (since Electron 23)
* API Changed: nativeImage.createThumbnailFromPath(path, size) (since Electron 24)
- Use bundled aom and vpx on Fedora ≤37 and Leap
- Drop support for Fedora 36 which is EOL
- Drop upstreamed patches
* CVE-2022-43548.patch
* aggregatable_attribution_utils-do-not-assume-abseil-ABI.patch
* angle-ShaderVars-missing-uint32_t.patch
* attribution_response_parsing-do-not-assume-abseil-ABI.patch
* blink-gcc13-missing-headers.patch
* bluetooth_uuid-missing-uint8_t.patch
* broker_file_permission-missing-uint64_t.patch
* chromium-108-abseil-shims.patch
* components-gcc13-missing-headers.patch
* crashpad-elf_image_reader-ProgramHeaderTableSpecific-expected-unqualified-id.patch
* d0aa9ad.patch
* document_loader-private-DecodedBodyData.patch
* effect_paint_property_node-Wchanges-meaning.patch
* electron_serial_delegate-ambiguous-Observer.patch
* extensions-gcc13-missing-headers.patch
* first_party_set_parser-IssueWithMetadata-no-known-conversion.patch
* gpu_feature_info-missing-uint32_t.patch
* half_float-Wstrict-aliasing.patch
* ipcz-buffer_id-Wnarrowing.patch
* ipcz-safe_math-Wuninitialized.patch
* net-gcc13-missing-headers.patch
* net-third_party-quiche-gcc13-missing-headers.patch
* one_writer_seqlock-missing-uintptr_t.patch
* openscreen-gcc13-missing-headers.patch
* passwords_counter-Wsubobject-linkage.patch
* perfetto-uuid-missing-uint8_t.patch
* print_dialog_gtk-no-kEnableOopPrintDriversJobPrint.patch
* profiler-missing-uintptr_t.patch
* reproducible-config.gypi.patch
* select_file_dialog_linux_kde-Wodr.patch
* shim_headers-fix-ninja.patch
* static_constructors-Wstrict-aliasing.patch
* string_hasher-type-pun-UB-causes-heap-corruption.patch
* swiftshader-Constants-Wstrict-aliasing.patch
* swiftshader-Half-Wstrict-aliasing.patch
* swiftshader-LRUCache-missing-uint64_t.patch
* target_property-missing-uint32_t.patch
* ui-gcc13-missing-headers.patch
* unzip-Wsubobject-linkage.patch
* v8_initializer-PageAllocator-fpermissive.patch
* vector_math_impl-Wstrict-aliasing.patch
* web_contents_impl-Wsubobject-linkage.patch
* webgl_image_conversion-Wstrict-aliasing.patch
* webrtc-base64-missing-uint8_t.patch
* xr_cube_map-Wstrict-aliasing.patch
- Drop no longer relevant patches`
* chromium-norar.patch
* electron-13-fix-sql-virtualcursor-type.patch
* enable-jxl.patch
* system-jsoncpp.patch
- Add patches to build with system libs
* abseil-remove-unused-targets.patch
* highway.gn
* system-wayland.patch
- Add patches to fix build errors
* absl-uint128-do-not-assume-abi.patch
* cpu-missing-uint8_t.patch
* electron-24-components-missing-headers.patch
* electron_api_app-GetPathConstant-non-constexpr.patch
* electron_browser_context-missing-variant.patch
* mojo_ukm_recorder-missing-WrapUnique.patch
- Conditionally reverse upstream changes to build against stable avif
* avif_image_decoder-repetitionCount-clli.patch
- …and harfbuzz 4
* harfbuzz-replace-HbScopedPointer.patch
- …and icu 69
* v8-regexp-parser-UCHAR_BASIC_EMOJI.patch
- …and wayland 19
* wayland-WL-SINCE-VERSION.patch
* wayland_data_drag_controller-WL_SURFACE_OFFSET_SINCE_VERSION.patch
- Add backported chrome-gpu-does-not-load.patch
-------------------------------------------------------------------
Thu Aug 31 19:31:29 UTC 2023 - Bruno Pitrus <brunopitrus@hotmail.com>

View File

@@ -22,7 +22,7 @@
%define mod_name electron
# https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json
%define abi_version 110
%define abi_version 116
# Do not provide libEGL.so, etc…
%define __provides_exclude ^lib.*\\.so.*$
@@ -56,12 +56,7 @@ BuildArch: i686
%bcond_with vaapi
%if %{with vaapi}
#vaapi still requires bundled libvpx
%bcond_with system_vpx
%else
%bcond_without system_vpx
%endif
@@ -112,74 +107,66 @@ BuildArch: i686
%bcond_without system_nghttp2
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500 || 0%{?fedora} >= 37
%bcond_without system_jxl
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500 || 0%{?fedora}
%bcond_without system_crc32c
%bcond_without system_dav1d
%bcond_without system_highway
%bcond_without system_nvctrl
%bcond_without wayland_21
%else
%bcond_with system_jxl
%bcond_with system_crc32c
%bcond_with system_dav1d
%bcond_with system_highway
%bcond_with system_nvctrl
%bcond_with wayland_21
%endif
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600 || 0%{?fedora} >= 37
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600 || 0%{?fedora}
%bcond_without harfbuzz_5
%bcond_without system_aom
%bcond_without link_vulkan
%bcond_without system_avif
%bcond_without icu_71
%bcond_without ffmpeg_5
%bcond_without system_spirv
%else
%bcond_with harfbuzz_5
%bcond_with system_aom
%bcond_with link_vulkan
%bcond_with system_avif
%bcond_with icu_71
%bcond_with ffmpeg_5
%bcond_with system_spirv
%endif
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500 || 0%{?fedora_version}
%bcond_without system_crc32c
%bcond_without system_nvctrl
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600 || 0%{?fedora} >= 38
%bcond_without system_aom
%bcond_without system_vpx
%else
%bcond_with system_crc32c
%bcond_with system_nvctrl
%bcond_with system_aom
%bcond_with system_vpx
%endif
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600 || 0%{?fedora_version}
%bcond_without link_vulkan
%else
%bcond_with link_vulkan
%endif
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600
%bcond_without system_yuv
%else
%bcond_with system_yuv
%endif
%if 0%{?fedora}
%bcond_without system_llhttp
%bcond_without llhttp_8
%bcond_without system_histogram
%else
%bcond_with system_llhttp
%bcond_with llhttp_8
%bcond_with system_histogram
%endif
%if 0%{?fedora} >= 37
%bcond_without llhttp_8
%else
%bcond_with llhttp_8
%endif
# Abseil is broken in Leap
# enable this when boo#1203378 and boo#1203379 get fixed
@@ -217,7 +204,7 @@ BuildArch: i686
Name: nodejs-electron
Version: 22.3.23
Version: 25.8.2
Release: 0
Summary: Build cross platform desktop apps with JavaScript, HTML, and CSS
License: AFL-2.0 AND Apache-2.0 AND blessing AND BSD-2-Clause AND BSD-3-Clause AND BSD-Protection AND BSD-Source-Code AND bzip2-1.0.6 AND IJG AND ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND MIT-CMU AND MIT-open-group AND (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND MPL-2.0 AND OpenSSL AND SGI-B-2.0 AND SUSE-Public-Domain AND X11
@@ -231,6 +218,7 @@ Source12: electron-logo-symbolic.svg
# Shim generators for unbundling libraries
Source50: flatbuffers.gn
Source51: libsecret.gn
Source52: highway.gn
# Reverse upstream changes to be able to build against ffmpeg-4
@@ -239,8 +227,13 @@ Source401: audio_file_reader-ffmpeg-AVFrame-duration.patch
# …and against icu-69
Source410: NumberFormat-icu71-incrementExact.patch
Source411: intl-objects-icu71-UNUM_APPROXIMATELY_SIGN_FIELD.patch
Source412: v8-regexp-parser-UCHAR_BASIC_EMOJI.patch
# and against harfbuzz 4
Source415: harfbuzz-replace-chromium-scoped-type.patch
Source416: harfbuzz-replace-HbScopedPointer.patch
# and against Wayland 1.19
Source418: wayland-WL-SINCE-VERSION.patch
Source419: wayland_data_drag_controller-WL_SURFACE_OFFSET_SINCE_VERSION.patch
#Reverse upstream changes to build against system libavif.
@@ -248,11 +241,11 @@ Source415: harfbuzz-replace-chromium-scoped-type.patch
Source420: avif_image_decoder-AVIF_PIXEL_FORMAT_COUNT.patch
# PATCHES for openSUSE-specific things
Patch0: chromium-102-compiler.patch
Patch1: fpic.patch
Patch3: gcc-enable-lto.patch
Patch5: chromium-norar.patch
Patch6: chromium-vaapi.patch
Patch7: chromium-91-java-only-allowed-in-android-builds.patch
Patch9: chromium-86-fix-vaapi-on-intel.patch
@@ -266,7 +259,6 @@ Patch39: support-i386.patch
Patch67: disable-catapult.patch
Patch69: nasm-generate-debuginfo.patch
Patch70: disable-fuses.patch
Patch71: enable-jxl.patch
Patch72: electron-version-from-env.patch
# https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?h=102-based&id=d617766b236a93749ddbb50b75573dd35238ffc9
Patch73: disable-webspeech.patch
@@ -283,8 +275,6 @@ Patch1002: chromium-system-libusb.patch
Patch1017: system-libdrm.patch
# http://svnweb.mageia.org/packages/updates/7/chromium-browser-stable/current/SOURCES/chromium-74-pdfium-system-libopenjpeg2.patch?view=markup
Patch1038: pdfium-fix-system-libs.patch
# https://sources.debian.org/patches/chromium/102.0.5005.115-1/system/jsoncpp.patch/
Patch1040: system-jsoncpp.patch
# https://sources.debian.org/patches/chromium/102.0.5005.115-1/system/zlib.patch/
Patch1041: system-zlib.patch
Patch1044: replace_gn_files-system-libs.patch
@@ -304,14 +294,12 @@ Patch1072: node-system-icu.patch
Patch1073: system-nasm.patch
Patch1074: no-zlib-headers.patch
Patch1076: crashpad-use-system-abseil.patch
Patch1077: chromium-108-abseil-shims.patch
Patch1077: system-wayland.patch
# PATCHES to fix interaction with third-party software
Patch2004: chromium-gcc11.patch
Patch2010: chromium-93-ffmpeg-4.4.patch
Patch2011: chromium-ffmpeg-first-dts.patch
# Fix building sql recover_module
Patch2020: electron-13-fix-sql-virtualcursor-type.patch
# Fixe builds with older clang versions that do not allow
# nomerge attributes on declaration. Otherwise, the following error
# is produced:
@@ -333,6 +321,8 @@ Source2033: node-upgrade-llhttp-to-8.patch
Patch2034: swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch
Patch2035: RenderFrameHostImpl-use-after-free.patch
Patch2036: avif_image_decoder-libavif-1-mode.patch
Patch2037: abseil-remove-unused-targets.patch
Patch2038: avif_image_decoder-repetitionCount-clli.patch
# PATCHES that should be submitted upstream verbatim or near-verbatim
Patch3016: chromium-98-EnumTable-crash.patch
@@ -345,61 +335,22 @@ Patch3033: chromium-94.0.4606.71-InkDropHost-crash.patch
Patch3056: async_shared_storage_database_impl-missing-absl-WrapUnique.patch
# https://salsa.debian.org/chromium-team/chromium/-/blob/456851fc808b2a5b5c762921699994e957645917/debian/patches/upstream/nested-nested-nested-nested-nested-nested-regex-patterns.patch
Patch3064: nested-nested-nested-nested-nested-nested-regex-patterns.patch
Patch3067: reproducible-config.gypi.patch
Patch3069: aggregatable_attribution_utils-do-not-assume-abseil-ABI.patch
Patch3071: electron_serial_delegate-ambiguous-Observer.patch
Patch3072: attribution_response_parsing-do-not-assume-abseil-ABI.patch
Patch3078: select_file_dialog_linux_kde-Wodr.patch
Patch3079: web_contents_impl-Wsubobject-linkage.patch
Patch3080: compact_enc_det_generated_tables-Wnarrowing.patch
Patch3081: string_hasher-type-pun-UB-causes-heap-corruption.patch
Patch3082: ipcz-buffer_id-Wnarrowing.patch
Patch3083: swiftshader-Half-Wstrict-aliasing.patch
Patch3084: swiftshader-Constants-Wstrict-aliasing.patch
Patch3085: half_float-Wstrict-aliasing.patch
Patch3086: unzip-Wsubobject-linkage.patch
Patch3087: v8_initializer-PageAllocator-fpermissive.patch
Patch3089: ipcz-safe_math-Wuninitialized.patch
Patch3090: passwords_counter-Wsubobject-linkage.patch
Patch3091: vector_math_impl-Wstrict-aliasing.patch
Patch3092: webgl_image_conversion-Wstrict-aliasing.patch
Patch3093: xr_cube_map-Wstrict-aliasing.patch
Patch3094: static_constructors-Wstrict-aliasing.patch
Patch3095: CVE-2022-43548.patch
Patch3096: remove-date-reproducible-builds.patch
Patch3097: shim_headers-fix-ninja.patch
Patch3098: document_loader-private-DecodedBodyData.patch
Patch3099: crashpad-elf_image_reader-ProgramHeaderTableSpecific-expected-unqualified-id.patch
Patch3100: first_party_set_parser-IssueWithMetadata-no-known-conversion.patch
Patch3101: print_dialog_gtk-no-kEnableOopPrintDriversJobPrint.patch
Patch3102: angle-ShaderVars-missing-uint32_t.patch
Patch3103: openscreen-gcc13-missing-headers.patch
Patch3104: perfetto-uuid-missing-uint8_t.patch
Patch3105: swiftshader-LRUCache-missing-uint64_t.patch
Patch3106: vulkan_memory_allocator-vk_mem_alloc-missing-snprintf.patch
Patch3107: profiler-missing-uintptr_t.patch
Patch3108: components-gcc13-missing-headers.patch
Patch3109: one_writer_seqlock-missing-uintptr_t.patch
Patch3110: bluetooth_uuid-missing-uint8_t.patch
Patch3111: broker_file_permission-missing-uint64_t.patch
Patch3112: net-third_party-quiche-gcc13-missing-headers.patch
Patch3113: webrtc-base64-missing-uint8_t.patch
Patch3114: ui-gcc13-missing-headers.patch
Patch3115: net-gcc13-missing-headers.patch
Patch3116: extensions-gcc13-missing-headers.patch
Patch3117: target_property-missing-uint32_t.patch
Patch3118: gpu_feature_info-missing-uint32_t.patch
Patch3119: blink-gcc13-missing-headers.patch
Patch3120: effect_paint_property_node-Wchanges-meaning.patch
Patch3121: services-network-optional-explicit-constructor.patch
# PATCH-FIX-UPSTREAM - https://swiftshader-review.googlesource.com/c/SwiftShader/+/70528
Patch3200: d0aa9ad.patch
# PATCH-FIX-UPSTREAM - https://swiftshader-review.googlesource.com/c/SwiftShader/+/70328
Patch3201: 647d3d2.patch
Patch3202: mojom-python3.12-imp.patch
# https://src.fedoraproject.org/rpms/qt6-qtwebengine/blob/rawhide/f/Partial-migration-from-imp-to-importlib.patch
Patch3203: Partial-migration-from-imp-to-importlib.patch
Patch3204: re2-11-StringPiece.patch
Patch3205: electron-24-components-missing-headers.patch
Patch3206: cpu-missing-uint8_t.patch
Patch3207: absl-uint128-do-not-assume-abi.patch
Patch3208: mojo_ukm_recorder-missing-WrapUnique.patch
Patch3209: electron_browser_context-missing-variant.patch
Patch3210: electron_api_app-GetPathConstant-non-constexpr.patch
%if %{with clang}
BuildRequires: clang
@@ -437,7 +388,8 @@ BuildRequires: hwdata
BuildRequires: libatomic
%endif
%if %{with system_aom}
BuildRequires: libaom-devel >= 3.4
# requires AV1E_SET_QUANTIZER_ONE_PASS
BuildRequires: libaom-devel >= 3.7~
%endif
BuildRequires: libbsd-devel
BuildRequires: libpng-devel
@@ -478,9 +430,13 @@ BuildRequires: npm
%endif
BuildRequires: pkgconfig
BuildRequires: plasma-wayland-protocols
%if 0%{?suse_version} && 0%{?suse_version} < 1550
BuildRequires: python3-dataclasses
%endif
BuildRequires: python3-json5
BuildRequires: python3-mako
BuildRequires: python3-ply
BuildRequires: python3-PyYAML
BuildRequires: python3-six
BuildRequires: snappy-devel
%if 0%{?suse_version}
@@ -488,7 +444,11 @@ BuildRequires: update-desktop-files
%endif
BuildRequires: util-linux
BuildRequires: vulkan-headers
%if %{with wayland_21}
BuildRequires: wayland-devel >= 1.20
%else
BuildRequires: wayland-devel
%endif
BuildRequires: zstd
%if %{with system_abseil}
BuildRequires: pkgconfig(absl_algorithm_container) >= 20211000
@@ -539,6 +499,7 @@ BuildRequires: pkgconfig(dav1d) >= 1
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(dri)
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(flac)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(glib-2.0)
@@ -583,8 +544,8 @@ BuildRequires: pkgconfig(libcares)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libevent)
%if %{with system_jxl}
BuildRequires: pkgconfig(libjxl) >= 0.7
%if %{with system_highway}
BuildRequires: pkgconfig(libhwy) >= 1
%endif
%if 0%{?fedora} >= 38
#Work around https://bugzilla.redhat.com/show_bug.cgi?id=2148612
@@ -606,7 +567,8 @@ BuildRequires: pkgconfig(libxml-2.0) >= 2.9.5
BuildRequires: pkgconfig(libxslt)
BuildRequires: pkgconfig(libxxhash)
%if %{with system_yuv}
BuildRequires: pkgconfig(libyuv)
# needs I410ToI420
BuildRequires: pkgconfig(libyuv) >= 1855
%endif
%if 0%{?fedora}
BuildRequires: minizip-compat-devel
@@ -642,7 +604,8 @@ BuildRequires: libjpeg-devel >= 8.1
BuildRequires: libjpeg-turbo-devel
%endif
%if %{with system_vpx}
BuildRequires: pkgconfig(vpx) >= 1.8.2
# requires VP9E_SET_QUANTIZER_ONE_PASS
BuildRequires: pkgconfig(vpx) >= 1.13~
%endif
%if %{without clang}
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600 || 0%{?fedora}
@@ -717,7 +680,6 @@ clang -v
%autosetup -n src -p1
# Sanity check if macro corresponds to the actual ABI
test $(grep ^node_module_version electron/build/args/all.gn | sed 's/.* = //') = %abi_version
@@ -736,21 +698,30 @@ patch -R -p1 < %SOURCE400
%if %{without harfbuzz_5}
patch -R -p1 < %SOURCE415
patch -R -p1 < %SOURCE416
%endif
%if %{without icu_71}
patch -R -p1 < %SOURCE410
patch -R -p1 < %SOURCE411
patch -R -p1 < %SOURCE412
%else
patch -R -p1 < %PATCH2030
%endif
%if %{without wayland_21}
patch -R -p1 < %SOURCE418
patch -R -p1 < %SOURCE419
%endif
# This one depends on an ffmpeg nightly, reverting unconditionally.
patch -R -p1 < %SOURCE401
# This one is dead code, we cen revert it even when using bundled avif.
patch -R -p1 < %SOURCE420
# Link system wayland-protocols-devel into where chrome expects them
mkdir -p third_party/wayland/src
mkdir -p third_party/wayland-protocols/kde/src
@@ -901,7 +872,7 @@ export LDFLAGS="${LDFLAGS} -Wl,--as-needed -fuse-ld=mold"
%ifarch %ix86 %arm
%limit_build -m 1200
%else
%limit_build -m 2600
%limit_build -m 3500
%endif
@@ -929,6 +900,7 @@ gn_system_libraries=(
freetype
harfbuzz-ng
icu
jsoncpp
libdrm
libevent
libjpeg
@@ -987,11 +959,6 @@ find third_party/crc32c -type f ! -name "*.gn" -a ! -name "*.gni" -delete
gn_system_libraries+=( crc32c )
%endif
%if %{with system_jxl}
find third_party/highway -type f ! -name "*.gn" -a ! -name "*.gni" -delete
find third_party/libjxl -type f ! -name "*.gn" -a ! -name "*.gni" -delete
gn_system_libraries+=( libjxl )
%endif
%if %{with system_dav1d}
@@ -999,6 +966,12 @@ find third_party/dav1d -type f ! -name "*.gn" -a ! -name "*.gni" -delete
gn_system_libraries+=( dav1d )
%endif
%if %{with system_highway}
find third_party/highway -type f ! -name "*.gn" -a ! -name "*.gni" -delete
gn_system_libraries+=( highway )
%endif
%if %{with system_nvctrl}
find third_party/angle/src/third_party/libXNVCtrl/ -type f ! -name "*.gn" -a ! -name "*.gni" -delete
gn_system_libraries+=( libXNVCtrl )
@@ -1011,7 +984,7 @@ find third_party/swiftshader/third_party/SPIRV-Tools/ -type f ! -name "*.gn" -a
rm -rf third_party/vulkan-deps/spirv-headers/src/include
find third_party/vulkan-deps/spirv-tools/ -type f ! -name "*.gn" -a ! -name "*.gni" -delete
gn_system_libraries+=(
gn_system_libraries+=(
swiftshader-SPIRV-Headers
swiftshader-SPIRV-Tools
#The following can only be unbundled if you don't build DAWN (WebGPU)
@@ -1124,6 +1097,7 @@ myconf_gn+=' angle_enable_abseil=true'
myconf_gn+=" enable_pdf=false"
myconf_gn+=" enable_pdf_viewer=false"
myconf_gn+=" enable_print_preview=false"
myconf_gn+=" enable_printing=false"
myconf_gn+=" enable_basic_printing=false"
#we don't build PDF support, so disabling the below:
#myconf_gn+=" use_system_lcms2=true"
@@ -1134,10 +1108,7 @@ myconf_gn+=" enable_basic_printing=false"
myconf_gn+=" enable_plugins=false"
myconf_gn+=" enable_ppapi=false"
# This requires the non-free closure_compiler.jar. If we ever need to build chrome with JS typecheck,
# we would need to package it separately and compile it from sources, since the chrome git repo
# provides only a compiled binary.
myconf_gn+=" enable_js_type_check=false"
# The option below get overriden by whatever is in CFLAGS/CXXFLAGS, so they affect only C++ code.
# symbol_level=2 is full debug
@@ -1155,7 +1126,7 @@ myconf_gn+=" v8_symbol_level=1"
%endif
%ifarch %ix86 %arm
#Sorry, no debug on 32bit.
myconf_gn+=" symbol_level=1"
myconf_gn+=" symbol_level=1"
myconf_gn+=" blink_symbol_level=0"
myconf_gn+=" v8_symbol_level=0"
%endif
@@ -1173,6 +1144,7 @@ myconf_gn+=" enable_reading_list=false"
myconf_gn+=" enable_reporting=false"
myconf_gn+=" build_with_tflite_lib=false"
myconf_gn+=" build_tflite_with_xnnpack=false"
myconf_gn+=" build_webnn_with_xnnpack=false"
myconf_gn+=" safe_browsing_mode=0"
myconf_gn+=" enable_maldoca=false"
myconf_gn+=" enable_captive_portal_detection=false"
@@ -1187,12 +1159,25 @@ myconf_gn+=" enable_click_to_call=false"
myconf_gn+=" enable_webui_tab_strip=false"
myconf_gn+=" enable_webui_certificate_viewer=false"
myconf_gn+=" enable_background_contents=false"
myconf_gn+=" enable_xz_extractor=false"
myconf_gn+=" enable_extractors=false"
myconf_gn+=" enable_feed_v2=false"
myconf_gn+=" ozone_platform_headless=false"
myconf_gn+=" angle_enable_gl_null=false"
myconf_gn+=" enable_paint_preview=false"
myconf_gn+=" use_bundled_weston=false"
myconf_gn+=" enable_component_updater=false"
myconf_gn+=" enable_lens_desktop=false"
myconf_gn+=' chrome_root_store_supported=false'
myconf_gn+=' chrome_root_store_optional=false'
myconf_gn+=' chrome_root_store_policy_supported=false'
myconf_gn+=' trial_comparison_cert_verifier_supported=false'
myconf_gn+=' disable_histogram_support=true'
#disable some tracing hooks, they increase size and we do not build chrome://tracing anyway (see disable-catapult.patch)
myconf_gn+=" enable_trace_logging=false"
myconf_gn+=" optional_trace_events_enabled=false"
#Do not build Chromecast
@@ -1215,7 +1200,6 @@ myconf_gn+=" use_pulseaudio=true link_pulseaudio=true"
myconf_gn+=" is_component_build=false"
myconf_gn+=" use_sysroot=false"
myconf_gn+=" fatal_linker_warnings=false"
myconf_gn+=" use_allocator=\"partition\""
myconf_gn+=" use_allocator_shim=true"
myconf_gn+=" use_partition_alloc=true"
@@ -1246,8 +1230,11 @@ myconf_gn+=" v8_use_external_startup_data=true"
myconf_gn+=" use_system_zlib=true"
myconf_gn+=" use_system_libjpeg=true"
myconf_gn+=" use_system_libpng=true"
myconf_gn+=" use_system_wayland_scanner=true"
myconf_gn+=" use_system_libwayland=true"
#we don't build PDF support, so disabling the below:
#myconf_gn+=" use_system_lcms2=true"
#myconf_gn+=" use_system_libopenjpeg2=true"
myconf_gn+=" use_system_harfbuzz=true"
myconf_gn+=" use_system_freetype=true"
myconf_gn+=" use_system_cares=true"
@@ -1289,7 +1276,7 @@ myconf_gn+=" use_thin_lto=true"
%ifarch %arm
# Bundled libaom is broken on ARMv7
%if %{without system_aom}
# [74796s] FAILED: v8_context_snapshot_generator
# [74796s] FAILED: v8_context_snapshot_generator
# [74796s] python3 "../../build/toolchain/gcc_link_wrapper.py" --output="./v8_context_snapshot_generator" -- g++ -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -rdynamic -Wl,-z,defs -Wl,--as-needed -pie -Wl,--disable-new-dtags -Wl,-rpath=\$ORIGIN -Wl,--as-needed -fuse-ld=lld -o "./v8_context_snapshot_generator" -Wl,--start-group @"./v8_context_snapshot_generator.rsp" -Wl,--end-group -latomic -ldl -lpthread -lrt -lgmodule-2.0 -lglib-2.0 -lgobject-2.0 -lgthread-2.0 -ljsoncpp -labsl_base -labsl_raw_logging_internal -labsl_log_severity -labsl_spinlock_wait -labsl_cord -labsl_cordz_info -labsl_cord_internal -labsl_cordz_functions -labsl_exponential_biased -labsl_cordz_handle -labsl_synchronization -labsl_graphcycles_internal -labsl_stacktrace -labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal -labsl_malloc_internal -labsl_time -labsl_civil_time -labsl_time_zone -labsl_bad_optional_access -labsl_strings -labsl_strings_internal -labsl_int128 -labsl_throw_delegate -labsl_hash -labsl_city -labsl_bad_variant_access -labsl_low_level_hash -labsl_raw_hash_set -labsl_hashtablez_sampler -labsl_failure_signal_handler -labsl_examine_stack -labsl_random_distributions -labsl_random_seed_sequences -labsl_random_internal_pool_urbg -labsl_random_internal_randen -labsl_random_internal_randen_hwaes -labsl_random_internal_randen_hwaes_impl -labsl_random_internal_randen_slow -labsl_random_internal_platform -labsl_random_internal_seed_material -labsl_random_seed_gen_exception -labsl_status -labsl_str_format_internal -labsl_strerror -labsl_statusor -licui18n -licuuc -licudata -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -ldouble-conversion -levent -lz -ljpeg -lpng16 -lxml2 -lxslt -lresolv -lgio-2.0 -lbrotlidec -lwebpdemux -lwebpmux -lwebp -lfreetype -lexpat -lfontconfig -lharfbuzz-subset -lharfbuzz -lyuv -lopus -lvpx -lm -ldav1d -lX11 -lXcomposite -lXdamage -lXext -lXfixes -lXrender -lXrandr -lXtst -lpipewire-0.3 -lgbm -lEGL -ldrm -lcrc32c -lbsd -lxcb -lxkbcommon -lwayland-client -ldbus-1 -lre2 -lpangocairo-1.0 -lpango-1.0 -lcairo -latk-1.0 -latk-bridge-2.0 -lasound -lpulse -lavcodec -lavformat -lavutil -lXi -lpci -lxxhash -lXNVCtrl -lsnappy -lavif -ljxl -lwoff2dec -latspi
# [74796s] ld.lld: error: undefined symbol: aom_arm_cpu_caps
# [74796s] >>> referenced by av1_rtcd.h:1079 (../../third_party/libaom/source/config/linux/arm/config/av1_rtcd.h:1079)

View File

@@ -1,11 +0,0 @@
--- src/device/base/synchronization/one_writer_seqlock.h.old 2023-03-07 10:51:25.662757600 +0000
+++ src/device/base/synchronization/one_writer_seqlock.h 2023-03-07 18:51:45.647766600 +0000
@@ -6,6 +6,8 @@
#define DEVICE_BASE_SYNCHRONIZATION_ONE_WRITER_SEQLOCK_H_
#include <atomic>
+#include <cstddef>
+#include <cstdint>
#include <type_traits>
#include "base/atomicops.h"

View File

@@ -1,20 +0,0 @@
--- src/third_party/openscreen/src/util/base64.h.old 2023-03-07 11:52:10.906800987 +0100
+++ src/third_party/openscreen/src/util/base64.h 2023-03-07 13:52:52.310335841 +0100
@@ -5,6 +5,7 @@
#ifndef UTIL_BASE64_H_
#define UTIL_BASE64_H_
+#include <cstdint>
#include <string>
#include <vector>
--- src/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.old
+++ src/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
@@ -5,6 +5,7 @@
#ifndef DISCOVERY_DNSSD_PUBLIC_DNS_SD_TXT_RECORD_H_
#define DISCOVERY_DNSSD_PUBLIC_DNS_SD_TXT_RECORD_H_
+#include <cstdint>
#include <functional>
#include <map>
#include <set>

View File

@@ -2,51 +2,58 @@ Compile files which declare functions in inline assembly without LTO due to http
--- src/base/allocator/partition_allocator/BUILD.gn.old 2022-10-01 13:53:03.367797474 +0200
+++ src/base/allocator/partition_allocator/BUILD.gn 2022-10-05 14:23:53.999860356 +0200
@@ -51,6 +51,24 @@
@@ -51,6 +51,30 @@
}
}
+static_library("partition_alloc_asm") {
+ defines = [ "PA_PCSCAN_STACK_SUPPORTED" ]
+if (use_starscan) {
+ static_library("partition_alloc_asm") {
+ if (gcc_lto) {
+ configs -= [ "//build/config/compiler:gcc_lto" ]
+ }
+ if (current_cpu == "x64") {
+ assert(pcscan_stack_supported)
+ sources = [ "starscan/stack/asm/x64/push_registers_asm.cc" ]
+ } else if (current_cpu == "x86") {
+ assert(pcscan_stack_supported)
+ sources = [ "starscan/stack/asm/x86/push_registers_asm.cc" ]
+ } else if (current_cpu == "arm") {
+ assert(pcscan_stack_supported)
+ sources = [ "starscan/stack/asm/arm/push_registers_asm.cc" ]
+ } else if (current_cpu == "arm64") {
+ assert(pcscan_stack_supported)
+ sources = [ "starscan/stack/asm/arm64/push_registers_asm.cc" ]
+ } else {
+ assert(!pcscan_stack_supported)
+ # To support a trampoline for another arch, please refer to v8/src/heap/base.
+ }
+ }
+}
+
component("partition_alloc") {
sources = [
"address_pool_manager.cc",
@@ -262,20 +278,10 @@
@@ -262,21 +278,9 @@
}
}
if (build_with_chromium) {
if (use_starscan) {
- if (current_cpu == "x64") {
- defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
- assert(pcscan_stack_supported)
- sources += [ "starscan/stack/asm/x64/push_registers_asm.cc" ]
- } else if (current_cpu == "x86") {
- defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
- assert(pcscan_stack_supported)
- sources += [ "starscan/stack/asm/x86/push_registers_asm.cc" ]
- } else if (current_cpu == "arm") {
- defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
- assert(pcscan_stack_supported)
- sources += [ "starscan/stack/asm/arm/push_registers_asm.cc" ]
- } else if (current_cpu == "arm64") {
+ deps = []
+ if (current_cpu == "x64" || current_cpu == "x86" || current_cpu == "arm" || current_cpu == "arm64") {
defines += [ "PA_PCSCAN_STACK_SUPPORTED" ]
- assert(pcscan_stack_supported)
- sources += [ "starscan/stack/asm/arm64/push_registers_asm.cc" ]
- } else {
- # To support a trampoline for another arch, please refer to v8/src/heap/base.
- assert(!pcscan_stack_supported)
+ deps = []
+ if (current_cpu == "x64" || current_cpu == "x86" || current_cpu == "arm" || current_cpu == "arm64") {
+ deps += [ ":partition_alloc_asm" ]
}
}

View File

@@ -1,32 +0,0 @@
--- src/components/browsing_data/core/counters/passwords_counter.cc.old 2022-10-20 19:00:23.009865700 +0200
+++ src/components/browsing_data/core/counters/passwords_counter.cc 2022-10-29 22:29:38.660589600 +0200
@@ -34,6 +34,8 @@
}
}
+} // namespace
+
// PasswordStoreFetcher ----------------------------------
// Fetches passswords and observes a PasswordStoreInterface.
@@ -168,8 +170,6 @@
weak_ptr_factory_.InvalidateWeakPtrs();
}
-} // namespace
-
// PasswordsCounter::PasswordsResult ----------------------------------
PasswordsCounter::PasswordsResult::PasswordsResult(
const BrowsingDataCounter* source,
--- src/components/browsing_data/core/counters/passwords_counter.h.old 2022-10-20 19:00:23.009865700 +0200
+++ src/components/browsing_data/core/counters/passwords_counter.h 2022-10-29 22:28:42.288402800 +0200
@@ -18,9 +18,7 @@
}
namespace browsing_data {
-namespace {
class PasswordStoreFetcher;
-}
class PasswordsCounter : public browsing_data::BrowsingDataCounter {
public:
// A subclass of SyncResult that stores the result value, a boolean

View File

@@ -1,10 +0,0 @@
--- a/third_party/perfetto/include/perfetto/ext/base/uuid.h
+++ b/third_party/perfetto/include/perfetto/ext/base/uuid.h
@@ -18,6 +18,7 @@
#define INCLUDE_PERFETTO_EXT_BASE_UUID_H_
#include <array>
+#include <cstdint>
#include <string>
#include "perfetto/ext/base/optional.h"

View File

@@ -1,97 +0,0 @@
From e3fcdb9c67501e7e4b86ea904e154ea615b5187e Mon Sep 17 00:00:00 2001
From: Lei Zhang <thestig@chromium.org>
Date: Tue, 18 Oct 2022 17:51:09 +0000
Subject: [PATCH] Fix build when enable_oop_printing=false.
https://crrev.com/1050907 changed print_dialog_gtk.cc to start checking
`kEnableOopPrintDriversJobPrint`, assuming it is unconditionally
defined.
Similarly, various CLs like https://crrev.com/992136 changed
print_browsertest.cc without the proper conditionals.
Change-Id: Ie7efe976bba4b7583be104fad37984bea07f8773
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3962532
Reviewed-by: Alan Screen <awscreen@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1060540}
---
diff --git a/chrome/browser/printing/print_browsertest.cc b/chrome/browser/printing/print_browsertest.cc
index a70cd643..c66456f 100644
--- a/chrome/browser/printing/print_browsertest.cc
+++ b/chrome/browser/printing/print_browsertest.cc
@@ -2733,6 +2733,7 @@
void PrimeAsRepeatingErrorGenerator() { reset_errors_after_check_ = false; }
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
void PrimeForSpoolingSharedMemoryErrors() {
simulate_spooling_memory_errors_ = true;
}
@@ -2784,6 +2785,7 @@
bool print_backend_service_use_detected() const {
return print_backend_service_use_detected_;
}
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
mojom::ResultCode use_default_settings_result() const {
return use_default_settings_result_;
@@ -2838,7 +2840,6 @@
return std::make_unique<TestPrintJobWorker>(
rfh_id, &test_print_job_worker_callbacks_);
}
-#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
void OnUseDefaultSettings() {
did_use_default_settings_ = true;
@@ -2861,6 +2862,7 @@
print_backend_service_use_detected_ = true;
}
}
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
void ErrorCheck(mojom::ResultCode result) {
// Interested to reset any trigger for causing access-denied errors, so
diff --git a/ui/gtk/printing/print_dialog_gtk.cc b/ui/gtk/printing/print_dialog_gtk.cc
index 98985bc..0596691 100644
--- a/ui/gtk/printing/print_dialog_gtk.cc
+++ b/ui/gtk/printing/print_dialog_gtk.cc
@@ -13,6 +13,7 @@
#include "base/bind.h"
#include "base/check_op.h"
+#include "base/dcheck_is_on.h"
#include "base/files/file_util.h"
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
@@ -22,6 +23,7 @@
#include "base/task/thread_pool.h"
#include "base/threading/sequenced_task_runner_handle.h"
#include "base/values.h"
+#include "printing/buildflags/buildflags.h"
#include "printing/metafile.h"
#include "printing/mojom/print.mojom.h"
#include "printing/print_job_constants.h"
@@ -419,11 +421,19 @@
void PrintDialogGtk::PrintDocument(const printing::MetafilePlayer& metafile,
const std::u16string& document_name) {
+#if DCHECK_IS_ON()
+#if BUILDFLAG(ENABLE_OOP_PRINTING)
+ const bool kOopPrinting =
+ printing::features::kEnableOopPrintDriversJobPrint.Get();
+#else
+ const bool kOopPrinting = false;
+#endif // BUILDFLAG(ENABLE_OOP_PRINTING)
+
// For in-browser printing, this runs on the print worker thread, so it does
// not block the UI thread. For OOP it runs on the service document task
// runner.
- DCHECK_EQ(owning_task_runner()->RunsTasksInCurrentSequence(),
- printing::features::kEnableOopPrintDriversJobPrint.Get());
+ DCHECK_EQ(owning_task_runner()->RunsTasksInCurrentSequence(), kOopPrinting);
+#endif // DCHECK_IS_ON()
// The document printing tasks can outlive the PrintingContext that created
// this dialog.

View File

@@ -1,10 +0,0 @@
--- a/base/debug/profiler.h
+++ b/base/debug/profiler.h
@@ -6,6 +6,7 @@
#define BASE_DEBUG_PROFILER_H_
#include <stddef.h>
+#include <stdint.h>
#include <string>

View File

@@ -38,8 +38,8 @@ index b2f7cd8ed0788f..272b933bab9625 100644
while (re->Match(*arg, start, arg->size(), re2::RE2::Anchor::UNANCHORED,
diff --git a/components/feedback/redaction_tool/redaction_tool.cc b/components/feedback/redaction_tool/redaction_tool.cc
index 876e8da509aa74..c81806e0fb029f 100644
--- a/components/feedback/redaction_tool.cc
+++ b/components/feedback/redaction_tool.cc
--- a/components/feedback/redaction_tool/redaction_tool.cc
+++ b/components/feedback/redaction_tool/redaction_tool.cc
@@ -1081,7 +1081,7 @@ std::string RedactionTool::RedactCustomPatternWithContext(
// Keep consuming, building up a result string as we go.
re2::StringPiece text(input);
@@ -54,7 +54,7 @@ index 6d516e86c9f1ed..cf73709add6d68 100644
--- a/extensions/browser/api/web_request/form_data_parser.cc
+++ b/extensions/browser/api/web_request/form_data_parser.cc
@@ -372,8 +372,7 @@ std::unique_ptr<FormDataParser> FormDataParser::CreateFromContentTypeHeader(
FormDataParser::FormDataParser() {}
FormDataParser::FormDataParser() = default;
FormDataParserUrlEncoded::FormDataParserUrlEncoded()
- : source_(nullptr),
@@ -86,8 +86,8 @@ Cr-Commit-Position: refs/heads/main@{#1146625}
diff --git a/components/feedback/redaction_tool/redaction_tool.cc b/components/feedback/redaction_tool/redaction_tool.cc
index f130fe7013a002..a623db131d2f48 100644
--- a/components/feedback/redaction_tool.cc
+++ b/components/feedback/redaction_tool.cc
--- a/components/feedback/redaction_tool/redaction_tool.cc
+++ b/components/feedback/redaction_tool/redaction_tool.cc
@@ -815,7 +815,8 @@ std::string RedactionTool::RedactAndroidAppStoragePaths(
// - Otherwise, remove all the characters in the component but the first
// one.
@@ -151,8 +151,8 @@ index 3bb5af9c1c56c6..3012f275be4793 100644
diff --git a/components/feedback/redaction_tool/redaction_tool.cc b/components/feedback/redaction_tool/redaction_tool.cc
index a623db131d2f48..07d19502f8d23b 100644
--- a/components/feedback/redaction_tool.cc
+++ b/components/feedback/redaction_tool.cc
--- a/components/feedback/redaction_tool/redaction_tool.cc
+++ b/components/feedback/redaction_tool/redaction_tool.cc
@@ -703,11 +703,11 @@ std::string RedactionTool::RedactMACAddresses(
if (detected != nullptr) {
(*detected)[PIIType::kMACAddress].insert(mac);
@@ -164,9 +164,9 @@ index a623db131d2f48..07d19502f8d23b 100644
- text.AppendToString(&result);
+ result.append(text.data(), text.size());
return result;
}
UMA_HISTOGRAM_ENUMERATION(kFeedbackRedactionToolHistogramName,
PIIType::kMACAddress);
@@ -733,8 +733,8 @@ std::string RedactionTool::RedactHashes(
re2::StringPiece skipped, pre_whitespace, hash_prefix, hash_suffix;
while (FindAndConsumeAndGetSkipped(&text, *hash_re, &skipped, &pre_whitespace,
@@ -195,9 +195,9 @@ index a623db131d2f48..07d19502f8d23b 100644
- text.AppendToString(&result);
+ result.append(text.data(), text.size());
return result;
}
UMA_HISTOGRAM_ENUMERATION(kFeedbackRedactionToolHistogramName,
PIIType::kStableIdentifier);
@@ -806,8 +806,8 @@ std::string RedactionTool::RedactAndroidAppStoragePaths(
while (FindAndConsumeAndGetSkipped(&text, *path_re, &skipped, &path_prefix,
&pre_data, &post_data, &app_specific)) {
@@ -215,9 +215,9 @@ index a623db131d2f48..07d19502f8d23b 100644
- text.AppendToString(&result);
+ result.append(text.data(), text.size());
return result;
#else
return input;
UMA_HISTOGRAM_ENUMERATION(kFeedbackRedactionToolHistogramName,
PIIType::kAndroidAppStoragePath);
@@ -1089,12 +1089,12 @@ std::string RedactionTool::RedactCustomPatternWithContext(
if (detected != nullptr) {
(*detected)[pattern.pii_type].insert(matched_id_as_string);
@@ -232,9 +232,9 @@ index a623db131d2f48..07d19502f8d23b 100644
}
- text.AppendToString(&result);
+ result.append(text.data(), text.size());
return result;
}
UMA_HISTOGRAM_ENUMERATION(kFeedbackRedactionToolHistogramName,
pattern.pii_type);
@@ -1176,8 +1176,8 @@ std::string RedactionTool::RedactCustomPatternWithoutContext(
re2::StringPiece matched_id;
while (FindAndConsumeAndGetSkipped(&text, *re, &skipped, &matched_id)) {
@@ -267,9 +267,9 @@ index a623db131d2f48..07d19502f8d23b 100644
}
- text.AppendToString(&result);
+ result.append(text.data(), text.size());
return result;
}
UMA_HISTOGRAM_ENUMERATION(kFeedbackRedactionToolHistogramName,
pattern.pii_type);
From eee5a88144edad47597163db8f26687a5bd24915 Mon Sep 17 00:00:00 2001
From: Paul Wankadia <junyer@chromium.org>
Date: Tue, 23 May 2023 18:42:42 +0000
@@ -292,17 +292,17 @@ Cr-Commit-Position: refs/heads/main@{#1148060}
diff --git a/components/feedback/redaction_tool/redaction_tool.cc b/components/feedback/redaction_tool/redaction_tool.cc
index 07d19502f8d23b..814ac96d80a5a5 100644
--- a/components/feedback/redaction_tool.cc
+++ b/components/feedback/redaction_tool.cc
--- a/components/feedback/redaction_tool/redaction_tool.cc
+++ b/components/feedback/redaction_tool/redaction_tool.cc
@@ -1105,7 +1105,7 @@ std::string RedactionTool::RedactCustomPatternWithContext(
bool IsUrlExempt(re2::StringPiece url,
const char* const* first_party_extension_ids) {
// We do not exempt anything with a query parameter.
- if (url.contains("?"))
+ if (url.find("?") != re2::StringPiece::npos)
- if (url.contains("?")) {
+ if (url.find("?") != re2::StringPiece::npos) {
return false;
}
// Last part of an SELinux context is misdetected as a URL.
From bbe41e215c64baf22faf257e7a9f8ce7bf7bc337 Mon Sep 17 00:00:00 2001
From: Paul Wankadia <junyer@chromium.org>
Date: Fri, 19 May 2023 19:13:27 +0000

View File

@@ -1,11 +1,12 @@
--- chromium-79.0.3945.29/build/linux/unbundle/replace_gn_files.py.system-dav1d 2019-11-09 14:30:17.297016975 +0100
+++ chromium-79.0.3945.29/build/linux/unbundle/replace_gn_files.py 2019-11-10 09:40:19.694662891 +0100
@@ -40,6 +40,8 @@ import sys
@@ -40,6 +40,9 @@ import sys
'double-conversion': 'base/third_party/double_conversion/BUILD.gn',
'ffmpeg': 'third_party/ffmpeg/BUILD.gn',
'flac': 'third_party/flac/BUILD.gn',
+ 'flatbuffers': 'third_party/flatbuffers/BUILD.gn',
+ 'libsecret' : 'third_party/libsecret/BUILD.gn',
+ 'highway' : 'third_party/highway/BUILD.gn',
'fontconfig': 'third_party/fontconfig/BUILD.gn',
'freetype': 'build/config/freetype/freetype.gni',
'harfbuzz-ng': 'third_party/harfbuzz-ng/harfbuzz.gni',

View File

@@ -1,11 +0,0 @@
Fix filesystem readdir order leaking into node_library_files list in /usr/include/electron/config.gypi
and a similar list compiled into the electron binary.
--- src/third_party/electron_node/tools/utils.py.old 2022-08-31 22:24:25.422512158 +0200
+++ src/third_party/electron_node/tools/utils.py 2022-09-02 08:52:51.061892033 +0200
@@ -112,4 +112,4 @@
list = glob.glob(dir+ '/**/*.' + ext, recursive=True)
if sys.platform == 'win32':
list = [ x.replace('\\', '/')for x in list]
- return list
+ return sorted(list)

View File

@@ -1,6 +1,6 @@
--- src/sandbox/linux/BUILD.gn.old 2022-10-12 18:06:31.399406000 +0200
+++ src/sandbox/linux/BUILD.gn 2022-10-22 11:55:59.621396300 +0200
@@ -196,6 +196,28 @@
@@ -196,6 +196,27 @@
}
}
@@ -17,7 +17,6 @@
+ deps = [
+ ":sandbox_services",
+ "//base",
+ "//base/third_party/dynamic_annotations",
+ "//build:chromeos_buildflags",
+ "//sandbox:sandbox_buildflags",
+ ]
@@ -44,5 +43,5 @@
":sandbox_services",
+ ":seccomp_bpf_asm",
"//base",
"//base/third_party/dynamic_annotations",
"//build:chromeos_buildflags",
"//sandbox:sandbox_buildflags",

View File

@@ -1,11 +0,0 @@
--- src/ui/shell_dialogs/select_file_dialog_linux_kde.cc.orig 2022-10-12 18:06:39.715381291 +0200
+++ src/ui/shell_dialogs/select_file_dialog_linux_kde.cc 2022-10-15 10:35:05.417119106 +0200
@@ -198,7 +198,7 @@
return base::GetAppOutput(command_line, &kdialog_version);
}
-SelectFileDialogLinuxKde* NewSelectFileDialogLinuxKde(
+SelectFileDialog* NewSelectFileDialogLinuxKde(
SelectFileDialog::Listener* listener,
std::unique_ptr<ui::SelectFilePolicy> policy,
base::nix::DesktopEnvironment desktop,

View File

@@ -1,18 +0,0 @@
Correct output path of ninja shim_headers rule
This is not needed for a succesful build on OBS but makes building it manually way easier
--- src/build/shim_headers.gni.orig
+++ src/build/shim_headers.gni
@@ -28,8 +28,10 @@
}
args += invoker.headers
- outputs = process_file_template(invoker.headers,
- "${shim_headers_path}/{{source_file_part}}")
+ outputs = []
+ foreach(h, invoker.headers) {
+ outputs += [ shim_headers_path + "/" + rebase_path(invoker.root_path,"//") + "/" + h ]
+ }
}
group(target_name) {

View File

@@ -3,7 +3,7 @@ Unbundle only Skia's vulkan headers. ANGLE needs the bleeding-edge ones in vulka
--- a/third_party/skia/include/private/gpu/vk/SkiaVulkan.h
+++ b/third_party/skia/include/private/gpu/vk/SkiaVulkan.h
@@ -11,7 +11,7 @@
#include "include/core/SkTypes.h"
// IWYU pragma: begin_exports
#if SKIA_IMPLEMENTATION || !defined(SK_VULKAN)
-#include "include/third_party/vulkan/vulkan/vulkan_core.h"

View File

@@ -1,35 +0,0 @@
Make DEFINE_GLOBAL C++17 compliant.
The pointer to an object is not interconvertible with the pointer to its underlying storage,
and GCC raises a Wstrict-aliasing warning about UB resulting from the dereference.
(This is really a pointer provenance issue, not a type aliasing issue, as the underlying
void*[] is never actually directly used)
Additionally, void* potentially has a too-small alignment for some types (eg. long double).
We fix the fist issue by memory laundering, and the second by switching to aligned_storage_t.
--- src/third_party/blink/renderer/platform/wtf/static_constructors.h.old 2022-10-20 19:00:30.237477900 +0200
+++ src/third_party/blink/renderer/platform/wtf/static_constructors.h 2022-10-29 21:48:44.336995700 +0200
@@ -21,8 +21,11 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_STATIC_CONSTRUCTORS_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_STATIC_CONSTRUCTORS_H_
+#include <new>
+#include <type_traits>
+
// We need to avoid having static constructors. This is accomplished by defining
-// a static array of the appropriate size and alignment, and defining a const
+// a buffer of the appropriate size and alignment, and defining a const
// reference that points to the buffer. During initialization, the object will
// be constructed with placement new into the buffer. This works with MSVC, GCC,
// and Clang without producing dynamic initialization code even at -O0. The only
@@ -33,7 +36,7 @@
// Use an array of pointers instead of an array of char in case there is some
// alignment issue.
#define DEFINE_GLOBAL(type, name) \
- void* name##Storage[(sizeof(type) + sizeof(void*) - 1) / sizeof(void*)]; \
- const type& name = *reinterpret_cast<type*>(&name##Storage)
+ std::aligned_storage_t<sizeof(type), alignof(type)> name##Storage; \
+ const type& name = *std::launder(reinterpret_cast<type*>(&name##Storage))
#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_STATIC_CONSTRUCTORS_H_

View File

@@ -1,147 +0,0 @@
--- src/third_party/blink/renderer/platform/wtf/text/string_hasher.h.orig 2022-10-12 18:06:32.355403100 +0200
+++ src/third_party/blink/renderer/platform/wtf/text/string_hasher.h 2022-10-19 18:34:04.317886800 +0200
@@ -22,6 +22,9 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_HASHER_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_HASHER_H_
+#include <cstring>
+#include <type_traits>
+
#include "base/dcheck_is_on.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_uchar.h"
@@ -92,38 +95,22 @@
template <typename T, UChar Converter(T)>
void AddCharactersAssumingAligned(const T* data, unsigned length) {
- DCHECK(!has_pending_character_);
-
- bool remainder = length & 1;
- length >>= 1;
-
- while (length--) {
- AddCharactersAssumingAligned(Converter(data[0]), Converter(data[1]));
- data += 2;
- }
-
- if (remainder)
- AddCharacter(Converter(*data));
+ AddCharactersAssumingAligned_internal<T, Converter>(reinterpret_cast<const unsigned char*>(data),length);
}
template <typename T>
void AddCharactersAssumingAligned(const T* data, unsigned length) {
- AddCharactersAssumingAligned<T, DefaultConverter>(data, length);
+ AddCharactersAssumingAligned_internal<T>(reinterpret_cast<const unsigned char*>(data),length);
}
template <typename T, UChar Converter(T)>
void AddCharacters(const T* data, unsigned length) {
- if (has_pending_character_ && length) {
- has_pending_character_ = false;
- AddCharactersAssumingAligned(pending_character_, Converter(*data++));
- --length;
- }
- AddCharactersAssumingAligned<T, Converter>(data, length);
+ AddCharacters_internal<T, Converter>(reinterpret_cast<const unsigned char*>(data),length);
}
template <typename T>
void AddCharacters(const T* data, unsigned length) {
- AddCharacters<T, DefaultConverter>(data, length);
+ AddCharacters_internal<T>(reinterpret_cast<const unsigned char*>(data),length);
}
unsigned HashWithTop8BitsMasked() const {
@@ -158,14 +145,12 @@
template <typename T, UChar Converter(T)>
static unsigned ComputeHashAndMaskTop8Bits(const T* data, unsigned length) {
- StringHasher hasher;
- hasher.AddCharactersAssumingAligned<T, Converter>(data, length);
- return hasher.HashWithTop8BitsMasked();
+ return ComputeHashAndMaskTop8Bits_internal<T, Converter>(reinterpret_cast<const unsigned char*>(data), length);
}
template <typename T>
static unsigned ComputeHashAndMaskTop8Bits(const T* data, unsigned length) {
- return ComputeHashAndMaskTop8Bits<T, DefaultConverter>(data, length);
+ return ComputeHashAndMaskTop8Bits_internal<T>(reinterpret_cast<const unsigned char*>(data), length);
}
template <typename T, UChar Converter(T)>
@@ -186,7 +171,7 @@
// bits in StringImpl and hash strings consistently, but I don't see why
// we'd want that for general memory hashing.
DCHECK(!(length % 2));
- return ComputeHashAndMaskTop8Bits<UChar>(static_cast<const UChar*>(data),
+ return ComputeHashAndMaskTop8Bits_internal<UChar>(static_cast<const unsigned char*>(data),
length / sizeof(UChar));
}
@@ -202,6 +187,65 @@
static UChar DefaultConverter(UChar character) { return character; }
static UChar DefaultConverter(LChar character) { return character; }
+ template <typename T, UChar Converter(T)>
+ void AddCharactersAssumingAligned_internal(const unsigned char* data, unsigned length) {
+ DCHECK(!has_pending_character_);
+
+ static_assert(std::is_pod<T>::value, "we only support hashing POD types");
+ bool remainder = length & 1;
+ length >>= 1;
+
+ while (length--) {
+ T data_converted[2];
+ std::memcpy(data_converted, data, sizeof(T)*2);
+ AddCharactersAssumingAligned(Converter(data_converted[0]), Converter(data_converted[1]));
+ data += sizeof(T)*2;
+ }
+
+ if (remainder) {
+ T data_converted;
+ std::memcpy(&data_converted, data, sizeof(T));
+ AddCharacter(Converter(data_converted));
+ }
+ }
+
+ template <typename T>
+ void AddCharactersAssumingAligned_internal(const unsigned char* data, unsigned length) {
+ AddCharactersAssumingAligned_internal<T, DefaultConverter>(data, length);
+ }
+
+ template <typename T, UChar Converter(T)>
+ void AddCharacters_internal(const unsigned char* data, unsigned length) {
+ static_assert(std::is_pod<T>::value, "we only support hashing POD types");
+
+ if (has_pending_character_ && length) {
+ has_pending_character_ = false;
+ T data_converted;
+ std::memcpy(&data_converted, data, sizeof(T));
+ AddCharactersAssumingAligned(pending_character_, Converter(data_converted));
+ data += sizeof(T);
+ --length;
+ }
+ AddCharactersAssumingAligned_internal<T, Converter>(data, length);
+ }
+
+ template <typename T>
+ void AddCharacters_internal(const unsigned char* data, unsigned length) {
+ AddCharacters_internal<T, DefaultConverter>(data, length);
+ }
+
+ template <typename T, UChar Converter(T)>
+ static unsigned ComputeHashAndMaskTop8Bits_internal(const unsigned char* data, unsigned length) {
+ StringHasher hasher;
+ hasher.AddCharactersAssumingAligned_internal<T, Converter>(data, length);
+ return hasher.HashWithTop8BitsMasked();
+ }
+
+ template <typename T>
+ static unsigned ComputeHashAndMaskTop8Bits_internal(const unsigned char* data, unsigned length) {
+ return ComputeHashAndMaskTop8Bits_internal<T, DefaultConverter>(data, length);
+ }
+
unsigned AvalancheBits() const {
unsigned result = hash_;

View File

@@ -1,13 +0,0 @@
--- src/third_party/swiftshader/src/Pipeline/Constants.cpp.orig 2022-10-12 18:07:57.855149000 +0200
+++ src/third_party/swiftshader/src/Pipeline/Constants.cpp 2022-10-19 21:36:18.341533500 +0200
@@ -306,7 +306,9 @@
for(int i = 0; i <= 0xFFFF; i++)
{
- half2float[i] = (float)reinterpret_cast<half &>(i);
+ half i_float;
+ std::memcpy(&i_float, &i, sizeof(half));
+ half2float[i] = static_cast<float>(i_float);
}
}

View File

@@ -1,78 +0,0 @@
--- src/third_party/swiftshader/src/System/Half.hpp.orig 2022-10-12 18:07:57.859149000 +0200
+++ src/third_party/swiftshader/src/System/Half.hpp 2022-10-19 21:30:33.133940800 +0200
@@ -19,6 +19,7 @@
#include <algorithm>
#include <cmath>
+#include <cstring>
namespace sw {
@@ -194,7 +195,8 @@
const unsigned int float32MinNormfloat11 = 0x38800000;
const unsigned int float32MinDenormfloat11 = 0x35000080;
- const unsigned int float32Bits = *reinterpret_cast<unsigned int *>(&fp32);
+ unsigned int float32Bits;
+ std::memcpy(&float32Bits, &fp32, 4);
const bool float32Sign = (float32Bits & float32SignMask) == float32SignMask;
unsigned int float32Val = float32Bits & float32ValueMask;
@@ -273,7 +275,8 @@
const unsigned int float32MinNormfloat10 = 0x38800000;
const unsigned int float32MinDenormfloat10 = 0x35800040;
- const unsigned int float32Bits = *reinterpret_cast<unsigned int *>(&fp32);
+ unsigned int float32Bits;
+ std::memcpy(&float32Bits, &fp32, 4);
const bool float32Sign = (float32Bits & float32SignMask) == float32SignMask;
unsigned int float32Val = float32Bits & float32ValueMask;
--- src/third_party/swiftshader/src/System/Half.cpp.orig 2022-10-12 18:07:57.859149000 +0200
+++ src/third_party/swiftshader/src/System/Half.cpp 2022-10-19 22:47:18.573634800 +0200
@@ -14,11 +14,14 @@
#include "Half.hpp"
+#include <cstring>
+
namespace sw {
half::half(float fp32)
{
- unsigned int fp32i = *(unsigned int *)&fp32;
+ unsigned int fp32i;
+ std::memcpy(&fp32i, &fp32, 4);
unsigned int sign = (fp32i & 0x80000000) >> 16;
unsigned int abs = fp32i & 0x7FFFFFFF;
@@ -51,7 +54,7 @@
half::operator float() const
{
unsigned int fp32i;
-
+ float ret;
int s = (fp16i >> 15) & 0x00000001;
int e = (fp16i >> 10) & 0x0000001F;
int m = fp16i & 0x000003FF;
@@ -61,8 +64,8 @@
if(m == 0)
{
fp32i = s << 31;
-
- return (float &)fp32i;
+ std::memcpy(&ret, &fp32i, 4);
+ return ret;
}
else
{
@@ -82,7 +85,8 @@
fp32i = (s << 31) | (e << 23) | m;
- return (float &)fp32i;
+ std::memcpy(&ret, &fp32i, 4);
+ return ret;
}
half &half::operator=(float f)

View File

@@ -1,10 +0,0 @@
--- a/third_party/swiftshader/src/System/LRUCache.hpp
+++ b/third_party/swiftshader/src/System/LRUCache.hpp
@@ -18,6 +18,7 @@
#include "System/Debug.hpp"
#include <cstddef>
+#include <cstdint>
#include <functional>
#include <unordered_set>
#include <vector>

View File

@@ -1,101 +0,0 @@
description: use system jsoncpp
author: Michael Gilbert <mgilbert@debian.org>
--- a/third_party/jsoncpp/BUILD.gn
+++ b/third_party/jsoncpp/BUILD.gn
@@ -3,6 +3,7 @@
# found in the LICENSE file.
import("//testing/libfuzzer/fuzzer_test.gni")
+import("//build/config/linux/pkg_config.gni")
declare_args() {
# Allow individual projects to remove the warning suppression
@@ -11,49 +12,12 @@ declare_args() {
jsoncpp_no_deprecated_declarations = true
}
-config("jsoncpp_config") {
- include_dirs = [ "source/include" ]
-
- # TODO(crbug.com/983223): Update JsonCpp BUILD.gn to remove deprecated
- # declaration flag.
- # This temporary flag allowing clients to update to the new version, and then
- # update to the new StreamWriter and CharReader classes.
- if (jsoncpp_no_deprecated_declarations &&
- (!is_win || (is_clang && !is_ios))) {
- cflags_cc = [ "-Wno-deprecated-declarations" ]
- }
+pkg_config("jsoncpp_config") {
+ packages = [ "jsoncpp" ]
}
-source_set("jsoncpp") {
- sources = [
- "source/include/json/allocator.h",
- "source/include/json/assertions.h",
- "source/include/json/config.h",
- "source/include/json/forwards.h",
- "source/include/json/json.h",
- "source/include/json/json_features.h",
- "source/include/json/reader.h",
- "source/include/json/value.h",
- "source/include/json/version.h",
- "source/include/json/writer.h",
- "source/src/lib_json/json_reader.cpp",
- "source/src/lib_json/json_tool.h",
- "source/src/lib_json/json_value.cpp",
- "source/src/lib_json/json_writer.cpp",
- ]
-
+group("jsoncpp") {
public_configs = [ ":jsoncpp_config" ]
-
- defines = [
- "JSON_USE_EXCEPTION=0",
- "JSON_USE_NULLREF=0",
- ]
-
- include_dirs = [ "source/src/lib_json" ]
-
- if (!is_win || is_clang) {
- cflags_cc = [ "-Wno-implicit-fallthrough" ]
- }
}
if (build_with_chromium) {
--- a/components/mirroring/service/receiver_response.cc
+++ b/components/mirroring/service/receiver_response.cc
@@ -10,8 +10,8 @@
#include "base/logging.h"
#include "base/strings/string_util.h"
#include "components/mirroring/service/value_util.h"
-#include "third_party/jsoncpp/source/include/json/reader.h"
-#include "third_party/jsoncpp/source/include/json/writer.h"
+#include <json/reader.h>
+#include <json/writer.h>
namespace mirroring {
namespace {
--- a/components/mirroring/service/receiver_response.h
+++ b/components/mirroring/service/receiver_response.h
@@ -11,7 +11,7 @@
#include "base/check.h"
#include "base/component_export.h"
-#include "third_party/jsoncpp/source/include/json/value.h"
+#include <json/value.h>
#include "third_party/openscreen/src/cast/streaming/answer_messages.h"
namespace mirroring {
--- a/third_party/openscreen/src/cast/streaming/answer_messages.h
+++ b/third_party/openscreen/src/cast/streaming/answer_messages.h
@@ -17,7 +17,7 @@
#include "absl/types/optional.h"
#include "cast/streaming/resolution.h"
#include "cast/streaming/ssrc.h"
-#include "json/value.h"
+#include <json/value.h>
#include "platform/base/error.h"
#include "util/simple_fraction.h"

View File

@@ -19,8 +19,8 @@ Index: chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/crtc_controller.h
--- chromium-98.0.4758.80.orig/ui/ozone/platform/drm/gpu/crtc_controller.h
+++ chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/crtc_controller.h
@@ -11,7 +11,7 @@
#include <xf86drmMode.h>
#include "base/memory/raw_ref.h"
#include "base/memory/weak_ptr.h"
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
+#include <drm_fourcc.h>
@@ -32,8 +32,8 @@ Index: chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controll
--- chromium-98.0.4758.80.orig/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
+++ chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
@@ -20,7 +20,7 @@
#include "base/metrics/histogram_macros.h"
#include "base/ranges/algorithm.h"
#include "base/strings/stringprintf.h"
#include "base/trace_event/typed_macros.h"
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
+#include <drm_fourcc.h>
@@ -45,7 +45,7 @@ Index: chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline_unittest.
--- chromium-98.0.4758.80.orig/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
+++ chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
@@ -23,7 +23,7 @@
#include "media/gpu/chromeos/mailbox_video_frame_converter.h"
#include "media/gpu/chromeos/dmabuf_video_frame_pool.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"

View File

@@ -125,3 +125,14 @@ Also excluding markupsafe, because jinja2 needs an ancient version. “ImportErr
../../build/scripts/blinkbuild/__init__.py
../../build/scripts/blinkbuild/name_style_converter.py
validate_web_idl.py
--- a/mojo/public/tools/bindings/mojom.gni
+++ b/mojo/public/tools/bindings/mojom.gni
@@ -699,7 +699,7 @@
allow_remote = true
custom_processor = "mojom_parser"
script = mojom_parser_script
- inputs = mojom_parser_sources + ply_sources + [ build_metadata_filename ]
+ inputs = mojom_parser_sources + [ build_metadata_filename ]
sources = sources_list
public_deps = parser_deps
outputs = []

90
system-wayland.patch Normal file
View File

@@ -0,0 +1,90 @@
--- src/third_party/wayland/BUILD.gn.old
+++ src/third_party/wayland/BUILD.gn
@@ -45,7 +45,14 @@
generator_type = "protocol-client"
}
+pkg_config("system_wayland_client") {
+ packages = [ "wayland-client" ]
+}
+
source_set("wayland_util") {
+ public_configs = [":system_wayland_client"]
+}
+source_set("xwayland_util") {
sources = [
"src/src/wayland-private.h",
"src/src/wayland-util.c",
@@ -77,7 +84,14 @@
public_configs = [ ":wayland_config" ]
}
-static_library("wayland_server") {
+pkg_config("system_wayland_server") {
+ packages = [ "wayland-server" ]
+}
+
+source_set("wayland_server") {
+ public_configs = [":system_wayland_server"]
+}
+static_library("xwayland_server") {
sources = [
"src/src/event-loop.c",
"src/src/wayland-server.c",
@@ -104,7 +118,10 @@
public_configs = [ ":wayland_config" ]
}
-static_library("wayland_client") {
+source_set("wayland_client") {
+ public_configs = [":system_wayland_client"]
+}
+static_library("xwayland_client") {
sources = [ "src/src/wayland-client.c" ]
deps = [
@@ -124,7 +141,14 @@
public_configs = [ ":wayland_config" ]
}
-static_library("wayland_egl") {
+pkg_config("system_wayland_egl") {
+ packages = [ "wayland-egl" ]
+}
+
+source_set("wayland_egl") {
+ public_configs = [":system_wayland_egl"]
+}
+static_library("xwayland_egl") {
sources = [
"src/egl/wayland-egl-backend.h",
"src/egl/wayland-egl-core.h",
@@ -143,7 +167,14 @@
public_configs = [ ":wayland_config" ]
}
-static_library("wayland_cursor") {
+pkg_config("system_wayland_cursor") {
+ packages = [ "wayland-cursor" ]
+}
+
+source_set("wayland_cursor") {
+ public_configs = [":system_wayland_cursor"]
+}
+static_library("xwayland_cursor") {
sources = [
"src/cursor/cursor-data.h",
"src/cursor/os-compatibility.c",
@@ -173,7 +204,11 @@
include_dirs = [ "include/" ]
}
-executable("wayland_scanner") {
+copy("wayland_scanner") {
+ sources = [ "/usr/bin/wayland-scanner" ]
+ outputs = [ "$root_out_dir/wayland_scanner" ]
+}
+executable("xwayland_scanner") {
sources = [ "src/src/scanner.c" ]
deps = [

View File

@@ -1,11 +0,0 @@
--- src/cc/trees/target_property.cc.old 2023-03-07 10:51:21.466753600 +0000
+++ src/cc/trees/target_property.cc 2023-03-08 17:47:48.197294200 +0000
@@ -4,6 +4,8 @@
#include "cc/trees/target_property.h"
+#include <cstdint>
+
#include "ui/gfx/animation/keyframe/target_property.h"
namespace cc {

View File

@@ -1,33 +0,0 @@
--- src/ui/base/prediction/kalman_filter.h.old 2023-03-07 10:51:36.714768200 +0000
+++ src/ui/base/prediction/kalman_filter.h 2023-03-08 08:32:35.533343500 +0000
@@ -5,6 +5,8 @@
#ifndef UI_BASE_PREDICTION_KALMAN_FILTER_H_
#define UI_BASE_PREDICTION_KALMAN_FILTER_H_
+#include <cstdint>
+
#include "base/component_export.h"
#include "ui/gfx/geometry/matrix3_f.h"
--- src/ui/gfx/geometry/linear_gradient.h.old 2023-03-07 11:51:36.862768295 +0100
+++ src/ui/gfx/geometry/linear_gradient.h 2023-03-08 13:03:18.500668734 +0100
@@ -6,6 +6,8 @@
#define UI_GFX_LINEAR_GRADIENT_H_
#include <array>
+#include <cstddef>
+#include <cstdint>
#include <string>
#include "ui/gfx/geometry/geometry_skia_export.h"
--- src/ui/events/types/scroll_types.h.old 2023-03-07 11:51:36.834768269 +0100
+++ src/ui/events/types/scroll_types.h 2023-03-08 11:07:48.696799233 +0100
@@ -5,6 +5,8 @@
#ifndef UI_EVENTS_TYPES_SCROLL_TYPES_H_
#define UI_EVENTS_TYPES_SCROLL_TYPES_H_
+#include <cstdint>
+
namespace ui {
enum class ScrollGranularity : uint8_t {

View File

@@ -1,39 +0,0 @@
--- src/components/services/unzip/public/cpp/unzip.cc.old 2022-10-12 18:06:29.371412000 +0200
+++ src/components/services/unzip/public/cpp/unzip.cc 2022-10-19 21:52:31.365276500 +0200
@@ -29,11 +29,6 @@
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
namespace unzip {
-namespace {
-
-std::string Redact(const base::FilePath& path) {
- return LOG_IS_ON(INFO) ? "'" + path.AsUTF8Unsafe() + "'" : "(redacted)";
-}
class UnzipParams : public base::RefCounted<UnzipParams>,
public unzip::mojom::UnzipFilter,
@@ -100,6 +95,12 @@
UnzipCallback callback_;
};
+namespace {
+
+std::string Redact(const base::FilePath& path) {
+ return LOG_IS_ON(INFO) ? "'" + path.AsUTF8Unsafe() + "'" : "(redacted)";
+}
+
class DetectEncodingParams : public base::RefCounted<DetectEncodingParams> {
public:
DetectEncodingParams(mojo::PendingRemote<mojom::Unzipper> unzipper,
--- src/components/services/unzip/public/cpp/unzip.h.old 2022-10-12 18:06:29.371412000 +0200
+++ src/components/services/unzip/public/cpp/unzip.h 2022-10-19 21:50:20.576045300 +0200
@@ -52,9 +52,7 @@
const base::FilePath& zip_file,
GetExtractedInfoCallback result_callback);
-namespace {
class UnzipParams;
-}
// Class that wraps the unzip service to manage the lifetime of its
// mojo conncections to enable cancellation, etc.

View File

@@ -0,0 +1,503 @@
From 0fec70aeb15c286cb696420616e2aeb3bc0eb03a Mon Sep 17 00:00:00 2001
From: pthier <pthier@chromium.org>
Date: Fri, 25 Nov 2022 11:27:06 +0100
Subject: [PATCH] [regexp] Support properties of strings in unicode sets mode
Add support for properties of strings in unicode sets mode (/v).
Bug: v8:11935
Change-Id: Iae2f0182b1c42bb900c524ca406784b7b1b52842
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4051247
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84481}
---
src/regexp/regexp-parser.cc | 162 ++++++++++++++++----
test/mjsunit/harmony/regexp-unicode-sets.js | 36 +++++
test/test262/test262.status | 153 ++++++++----------
3 files changed, 227 insertions(+), 124 deletions(-)
diff --git a/src/regexp/regexp-parser.cc b/src/regexp/regexp-parser.cc
index b5ead7c0054..f420b2eec42 100644
--- a/v8/src/regexp/regexp-parser.cc
+++ b/v8/src/regexp/regexp-parser.cc
@@ -450,7 +450,8 @@ class RegExpParserImpl final {
bool ParsePropertyClassName(ZoneVector<char>* name_1,
ZoneVector<char>* name_2);
- bool AddPropertyClassRange(ZoneList<CharacterRange>* add_to, bool negate,
+ bool AddPropertyClassRange(ZoneList<CharacterRange>* add_to_range,
+ CharacterClassStrings* add_to_strings, bool negate,
const ZoneVector<char>& name_1,
const ZoneVector<char>& name_2);
@@ -465,7 +466,7 @@ class RegExpParserImpl final {
bool TryParseCharacterClassEscape(base::uc32 next,
InClassEscapeState in_class_escape_state,
ZoneList<CharacterRange>* ranges,
- Zone* zone,
+ CharacterClassStrings* strings, Zone* zone,
bool add_unicode_case_equivalents);
RegExpTree* ParseClassStringDisjunction(ZoneList<CharacterRange>* ranges,
CharacterClassStrings* strings);
@@ -1094,16 +1095,14 @@ RegExpTree* RegExpParserImpl<CharT>::ParseDisjunction() {
case 's':
case 'S':
case 'w':
- case 'W':
- case 'p':
- case 'P': {
+ case 'W': {
base::uc32 next = Next();
ZoneList<CharacterRange>* ranges =
zone()->template New<ZoneList<CharacterRange>>(2, zone());
bool add_unicode_case_equivalents =
IsUnicodeMode() && ignore_case();
bool parsed_character_class_escape = TryParseCharacterClassEscape(
- next, InClassEscapeState::kNotInClass, ranges, zone(),
+ next, InClassEscapeState::kNotInClass, ranges, nullptr, zone(),
add_unicode_case_equivalents CHECK_FAILED);
if (parsed_character_class_escape) {
@@ -1117,6 +1116,38 @@ RegExpTree* RegExpParserImpl<CharT>::ParseDisjunction() {
}
break;
}
+ case 'p':
+ case 'P': {
+ base::uc32 next = Next();
+ ZoneList<CharacterRange>* ranges =
+ zone()->template New<ZoneList<CharacterRange>>(2, zone());
+ CharacterClassStrings* strings = nullptr;
+ if (unicode_sets()) {
+ strings = zone()->template New<CharacterClassStrings>(zone());
+ }
+ bool add_unicode_case_equivalents = ignore_case();
+ bool parsed_character_class_escape = TryParseCharacterClassEscape(
+ next, InClassEscapeState::kNotInClass, ranges, strings, zone(),
+ add_unicode_case_equivalents CHECK_FAILED);
+
+ if (parsed_character_class_escape) {
+ if (unicode_sets()) {
+ RegExpClassSetOperand* op =
+ zone()->template New<RegExpClassSetOperand>(ranges,
+ strings);
+ builder->AddTerm(op);
+ } else {
+ RegExpClassRanges* cc =
+ zone()->template New<RegExpClassRanges>(zone(), ranges);
+ builder->AddClassRanges(cc);
+ }
+ } else {
+ CHECK(!IsUnicodeMode());
+ Advance(2);
+ builder->AddCharacter(next); // IdentityEscape.
+ }
+ break;
+ }
// AtomEscape ::
// k GroupName
case 'k': {
@@ -1827,10 +1858,44 @@ bool IsExactPropertyValueAlias(const char* property_value_name,
return false;
}
+void ExtractStringsFromUnicodeSet(const icu::UnicodeSet& set,
+ CharacterClassStrings* strings,
+ RegExpFlags flags, Zone* zone) {
+ DCHECK(set.hasStrings());
+ DCHECK(IsUnicodeSets(flags));
+ DCHECK_NOT_NULL(strings);
+
+ RegExpTextBuilder::SmallRegExpTreeVector string_storage(
+ ZoneAllocator<RegExpTree*>{zone});
+ RegExpTextBuilder string_builder(zone, &string_storage, flags);
+ const bool needs_case_folding = IsIgnoreCase(flags);
+ icu::UnicodeSetIterator iter(set);
+ iter.skipToStrings();
+ while (iter.next()) {
+ const icu::UnicodeString& s = iter.getString();
+ const char16_t* p = s.getBuffer();
+ int32_t length = s.length();
+ ZoneList<base::uc32>* string =
+ zone->template New<ZoneList<base::uc32>>(length, zone);
+ for (int32_t i = 0; i < length;) {
+ UChar32 c;
+ U16_NEXT(p, i, length, c);
+ string_builder.AddUnicodeCharacter(c);
+ if (needs_case_folding) {
+ c = u_foldCase(c, U_FOLD_CASE_DEFAULT);
+ }
+ string->Add(c, zone);
+ }
+ strings->emplace(string->ToVector(), string_builder.ToRegExp());
+ string_storage.clear();
+ }
+}
+
bool LookupPropertyValueName(UProperty property,
const char* property_value_name, bool negate,
- bool needs_case_folding,
- ZoneList<CharacterRange>* result, Zone* zone) {
+ ZoneList<CharacterRange>* result_ranges,
+ CharacterClassStrings* result_strings,
+ RegExpFlags flags, Zone* zone) {
UProperty property_for_lookup = property;
if (property_for_lookup == UCHAR_SCRIPT_EXTENSIONS) {
// For the property Script_Extensions, we have to do the property value
@@ -1854,11 +1919,15 @@ bool LookupPropertyValueName(UProperty property,
bool success = ec == U_ZERO_ERROR && !set.isEmpty();
if (success) {
+ if (set.hasStrings()) {
+ ExtractStringsFromUnicodeSet(set, result_strings, flags, zone);
+ }
+ const bool needs_case_folding = IsUnicodeSets(flags) && IsIgnoreCase(flags);
if (needs_case_folding) CharacterRange::UnicodeSimpleCloseOver(set);
set.removeAllStrings();
if (negate) set.complement();
for (int i = 0; i < set.getRangeCount(); i++) {
- result->Add(
+ result_ranges->Add(
CharacterRange::Range(set.getRangeStart(i), set.getRangeEnd(i)),
zone);
}
@@ -1873,7 +1942,7 @@ inline bool NameEquals(const char* name, const char (&literal)[N]) {
bool LookupSpecialPropertyValueName(const char* name,
ZoneList<CharacterRange>* result,
- bool negate, bool needs_case_folding,
+ bool negate, RegExpFlags flags,
Zone* zone) {
if (NameEquals(name, "Any")) {
if (negate) {
@@ -1888,7 +1957,7 @@ bool LookupSpecialPropertyValueName(const char* name,
zone);
} else if (NameEquals(name, "Assigned")) {
return LookupPropertyValueName(UCHAR_GENERAL_CATEGORY, "Unassigned",
- !negate, needs_case_folding, result, zone);
+ !negate, result, nullptr, flags, zone);
} else {
return false;
}
@@ -1897,7 +1966,7 @@ bool LookupSpecialPropertyValueName(const char* name,
// Explicitly allowlist supported binary properties. The spec forbids supporting
// properties outside of this set to ensure interoperability.
-bool IsSupportedBinaryProperty(UProperty property) {
+bool IsSupportedBinaryProperty(UProperty property, bool unicode_sets) {
switch (property) {
case UCHAR_ALPHABETIC:
// 'Any' is not supported by ICU. See LookupSpecialPropertyValueName.
@@ -1953,6 +2022,30 @@ bool IsSupportedBinaryProperty(UProperty property) {
case UCHAR_XID_CONTINUE:
case UCHAR_XID_START:
return true;
+ case UCHAR_BASIC_EMOJI:
+ case UCHAR_EMOJI_KEYCAP_SEQUENCE:
+ case UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE:
+ case UCHAR_RGI_EMOJI_FLAG_SEQUENCE:
+ case UCHAR_RGI_EMOJI_TAG_SEQUENCE:
+ case UCHAR_RGI_EMOJI_ZWJ_SEQUENCE:
+ case UCHAR_RGI_EMOJI:
+ return unicode_sets;
+ default:
+ break;
+ }
+ return false;
+}
+
+bool IsBinaryPropertyOfStrings(UProperty property) {
+ switch (property) {
+ case UCHAR_BASIC_EMOJI:
+ case UCHAR_EMOJI_KEYCAP_SEQUENCE:
+ case UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE:
+ case UCHAR_RGI_EMOJI_FLAG_SEQUENCE:
+ case UCHAR_RGI_EMOJI_TAG_SEQUENCE:
+ case UCHAR_RGI_EMOJI_ZWJ_SEQUENCE:
+ case UCHAR_RGI_EMOJI:
+ return true;
default:
break;
}
@@ -2015,31 +2108,34 @@ bool RegExpParserImpl<CharT>::ParsePropertyClassName(ZoneVector<char>* name_1,
template <class CharT>
bool RegExpParserImpl<CharT>::AddPropertyClassRange(
- ZoneList<CharacterRange>* add_to, bool negate,
+ ZoneList<CharacterRange>* add_to_ranges,
+ CharacterClassStrings* add_to_strings, bool negate,
const ZoneVector<char>& name_1, const ZoneVector<char>& name_2) {
- // With /vi, we need to apply case folding to property values.
- // TODO(v8:11935): Change permalink once proposal is in stage 4.
- // See
- // https://arai-a.github.io/ecma262-compare/snapshot.html?pr=2418#prod-maybesimplecasefolding
- const bool needs_case_folding = unicode_sets() && ignore_case();
if (name_2.empty()) {
// First attempt to interpret as general category property value name.
const char* name = name_1.data();
if (LookupPropertyValueName(UCHAR_GENERAL_CATEGORY_MASK, name, negate,
- needs_case_folding, add_to, zone())) {
+ add_to_ranges, add_to_strings, flags(),
+ zone())) {
return true;
}
// Interpret "Any", "ASCII", and "Assigned".
- if (LookupSpecialPropertyValueName(name, add_to, negate, needs_case_folding,
+ if (LookupSpecialPropertyValueName(name, add_to_ranges, negate, flags(),
zone())) {
return true;
}
// Then attempt to interpret as binary property name with value name 'Y'.
UProperty property = u_getPropertyEnum(name);
- if (!IsSupportedBinaryProperty(property)) return false;
+ if (!IsSupportedBinaryProperty(property, unicode_sets())) return false;
if (!IsExactPropertyAlias(name, property)) return false;
+ // Negation of properties with strings is not allowed.
+ // TODO(v8:11935): Change permalink once proposal is in stage 4.
+ // See
+ // https://arai-a.github.io/ecma262-compare/snapshot.html?pr=2418#sec-static-semantics-maycontainstrings
+ if (negate && IsBinaryPropertyOfStrings(property)) return false;
return LookupPropertyValueName(property, negate ? "N" : "Y", false,
- needs_case_folding, add_to, zone());
+ add_to_ranges, add_to_strings, flags(),
+ zone());
} else {
// Both property name and value name are specified. Attempt to interpret
// the property name as enumerated property.
@@ -2054,8 +2150,8 @@ bool RegExpParserImpl<CharT>::AddPropertyClassRange(
property != UCHAR_SCRIPT_EXTENSIONS) {
return false;
}
- return LookupPropertyValueName(property, value_name, negate,
- needs_case_folding, add_to, zone());
+ return LookupPropertyValueName(property, value_name, negate, add_to_ranges,
+ add_to_strings, flags(), zone());
}
}
@@ -2069,7 +2165,8 @@ bool RegExpParserImpl<CharT>::ParsePropertyClassName(ZoneVector<char>* name_1,
template <class CharT>
bool RegExpParserImpl<CharT>::AddPropertyClassRange(
- ZoneList<CharacterRange>* add_to, bool negate,
+ ZoneList<CharacterRange>* add_to_ranges,
+ CharacterClassStrings* add_to_strings, bool negate,
const ZoneVector<char>& name_1, const ZoneVector<char>& name_2) {
return false;
}
@@ -2345,8 +2442,9 @@ void RegExpParserImpl<CharT>::ParseClassEscape(
static constexpr InClassEscapeState kInClassEscape =
InClassEscapeState::kInClass;
- *is_class_escape = TryParseCharacterClassEscape(
- next, kInClassEscape, ranges, zone, add_unicode_case_equivalents);
+ *is_class_escape =
+ TryParseCharacterClassEscape(next, kInClassEscape, ranges, nullptr, zone,
+ add_unicode_case_equivalents);
if (*is_class_escape) return;
bool dummy = false; // Unused.
@@ -2357,8 +2455,8 @@ void RegExpParserImpl<CharT>::ParseClassEscape(
template <class CharT>
bool RegExpParserImpl<CharT>::TryParseCharacterClassEscape(
base::uc32 next, InClassEscapeState in_class_escape_state,
- ZoneList<CharacterRange>* ranges, Zone* zone,
- bool add_unicode_case_equivalents) {
+ ZoneList<CharacterRange>* ranges, CharacterClassStrings* strings,
+ Zone* zone, bool add_unicode_case_equivalents) {
DCHECK_EQ(current(), '\\');
DCHECK_EQ(Next(), next);
@@ -2382,7 +2480,7 @@ bool RegExpParserImpl<CharT>::TryParseCharacterClassEscape(
ZoneVector<char> name_1(zone);
ZoneVector<char> name_2(zone);
if (!ParsePropertyClassName(&name_1, &name_2) ||
- !AddPropertyClassRange(ranges, negate, name_1, name_2)) {
+ !AddPropertyClassRange(ranges, strings, negate, name_1, name_2)) {
ReportError(in_class_escape_state == InClassEscapeState::kInClass
? RegExpError::kInvalidClassPropertyName
: RegExpError::kInvalidPropertyName);
@@ -2521,8 +2619,8 @@ RegExpTree* RegExpParserImpl<CharT>::ParseClassSetOperand(
static constexpr InClassEscapeState kInClassEscape =
InClassEscapeState::kInClass;
const bool add_unicode_case_equivalents = ignore_case();
- if (TryParseCharacterClassEscape(next, kInClassEscape, ranges, zone(),
- add_unicode_case_equivalents)) {
+ if (TryParseCharacterClassEscape(next, kInClassEscape, ranges, strings,
+ zone(), add_unicode_case_equivalents)) {
*type_out = ClassSetOperandType::kCharacterClassEscape;
return nullptr;
}
diff --git a/test/test262/test262.status b/test/test262/test262.status
index be60b2f8e46..48d24548df4 100644
--- a/v8/test/test262/test262.status
+++ b/v8/test/test262/test262.status
@@ -294,70 +294,6 @@
# See also https://github.com/tc39/test262/issues/3380
'built-ins/TypedArray/prototype/map/callbackfn-resize': [FAIL],
- # https://bugs.chromium.org/p/v8/issues/detail?id=11935
- # regexp-v-flag not yet fully implemented.
- 'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-u': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-CharacterClass': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-P': [SKIP],
- 'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-u': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-union-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-union-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-property-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-string-literal': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-property-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-string-literal': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-property-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-string-literal': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-difference-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-property-of-strings-escape': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-union-property-of-strings-escape': [SKIP],
-
# https://bugs.chromium.org/p/v8/issues/detail?id=13173
'built-ins/RegExp/duplicate-named-capturing-groups-syntax': [FAIL],
'built-ins/RegExp/named-groups/duplicate-names-group-property-enumeration-order': [FAIL],
@@ -1011,35 +947,68 @@
'built-ins/RegExp/property-escapes/*': [SKIP],
'built-ins/RegExp/named-groups/unicode-property-names': [SKIP],
'built-ins/RegExp/named-groups/unicode-property-names-valid': [SKIP],
- 'built-ins/RegExp/named-groups/non-unicode-property-names-valid': [FAIL],
+ 'built-ins/RegExp/named-groups/non-unicode-property-names-valid': [SKIP],
'built-ins/RegExp/match-indices/indices-array-unicode-property-names': [SKIP],
- 'built-ins/RegExp/unicodeSets/generated/character-class-difference-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-class-union-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-difference-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-intersection-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-string-literal': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-string-literal': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-string-literal': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/character-union-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-property-escape': [PASS,FAIL],
- 'built-ins/RegExp/unicodeSets/generated/string-literal-union-character-property-escape': [PASS,FAIL],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-class-union-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/character-union-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-string-literal': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-difference-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-property-of-strings-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-union-character-property-escape': [SKIP],
+ 'built-ins/RegExp/unicodeSets/generated/string-literal-union-property-of-strings-escape': [SKIP],
# Unicode in identifiers.
'language/identifiers/part-unicode-*': [FAIL],

View File

@@ -1,13 +0,0 @@
--- a/gin/public/v8_platform.h
+++ b/gin/public/v8_platform.h
@@ -29,8 +29,8 @@
// so we can be sure that the allocator used employs security features such as
// enabling Arm's Branch Target Instructions for executable pages. This is
// verified in the tests for gin::PageAllocator.
- PageAllocator* GetPageAllocator() override;
- static PageAllocator* PageAllocator();
+ gin::PageAllocator* GetPageAllocator() override;
+ static gin::PageAllocator* PageAllocator();
void OnCriticalMemoryPressure() override;
v8::ZoneBackingAllocator* GetZoneBackingAllocator() override;
#endif

View File

@@ -1,27 +0,0 @@
--- src/third_party/blink/renderer/platform/audio/cpu/x86/vector_math_impl.h.old 2022-10-20 19:00:30.057387900 +0200
+++ src/third_party/blink/renderer/platform/audio/cpu/x86/vector_math_impl.h 2022-10-29 23:03:21.785150600 +0200
@@ -13,6 +13,7 @@
#include <algorithm>
#include <cmath>
+#include <cstring>
#include "base/check_op.h"
#include "third_party/blink/renderer/platform/audio/audio_array.h"
@@ -208,13 +209,14 @@
// source_max = max(abs(source[k])) for all k
void Vmaxmgv(const float* source_p, float* max_p, uint32_t frames_to_process) {
constexpr uint32_t kMask = 0x7FFFFFFFu;
-
+ float kMask_float;
+ std::memcpy(&kMask_float, &kMask, 4);
const float* const source_end_p = source_p + frames_to_process;
DCHECK(IsAligned(source_p));
DCHECK_EQ(0u, frames_to_process % kPackedFloatsPerRegister);
- MType m_mask = MM_PS(set1)(*reinterpret_cast<const float*>(&kMask));
+ MType m_mask = MM_PS(set1)(kMask_float);
MType m_max = MM_PS(setzero)();
while (source_p < source_end_p) {

View File

@@ -0,0 +1,292 @@
From ce85cd0009fc01aa463db9919c66c5c91eb648ac Mon Sep 17 00:00:00 2001
From: Max Ihlenfeldt <max@igalia.com>
Date: Mon, 21 Nov 2022 19:24:45 +0000
Subject: [PATCH] ozone/wayland: remove obsolete `#ifdef ..._SINCE_VERSION`
guards
Since dropping support for building with `use_system_libwayland=true`,
we always build with the Wayland headers from //third_party. This means
we can remove the #ifdef guards that ensured support for building with
older Wayland header versions (and running these builds without
crashing).
Fixed: 1385736
Change-Id: I8083f5e849a6b52233e907e865d3d1766e903c3a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4043143
Reviewed-by: Alexander Dunaev <adunaev@igalia.com>
Commit-Queue: Max Ihlenfeldt <max@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1074142}
---
.../platform/wayland/host/wayland_output.cc | 14 ++-----------
.../platform/wayland/host/wayland_output.h | 4 ----
.../platform/wayland/host/wayland_pointer.cc | 9 ++-------
.../platform/wayland/host/wayland_pointer.h | 2 --
.../platform/wayland/host/wayland_touch.cc | 12 +----------
.../platform/wayland/host/wayland_touch.h | 4 ----
.../wayland/host/xdg_toplevel_wrapper_impl.cc | 20 ++++++-------------
.../wayland/host/xdg_toplevel_wrapper_impl.h | 6 ------
8 files changed, 11 insertions(+), 60 deletions(-)
diff --git a/ui/ozone/platform/wayland/host/wayland_output.cc b/ui/ozone/platform/wayland/host/wayland_output.cc
index 715a1da7d962b..6f87fde5fddb1 100644
--- a/ui/ozone/platform/wayland/host/wayland_output.cc
+++ b/ui/ozone/platform/wayland/host/wayland_output.cc
@@ -118,14 +118,8 @@ void WaylandOutput::Initialize(Delegate* delegate) {
DCHECK(!delegate_);
delegate_ = delegate;
static constexpr wl_output_listener output_listener = {
- &OutputHandleGeometry, &OutputHandleMode,
- &OutputHandleDone, &OutputHandleScale,
-#ifdef WL_OUTPUT_NAME_SINCE_VERSION
- &OutputHandleName,
-#endif
-#ifdef WL_OUTPUT_DESCRIPTION_SINCE_VERSION
- &OutputHandleDescription,
-#endif
+ &OutputHandleGeometry, &OutputHandleMode, &OutputHandleDone,
+ &OutputHandleScale, &OutputHandleName, &OutputHandleDescription,
};
wl_output_add_listener(output_.get(), &output_listener, this);
@@ -266,7 +260,6 @@ void WaylandOutput::OutputHandleScale(void* data,
wayland_output->scale_factor_ = factor;
}
-#ifdef WL_OUTPUT_NAME_SINCE_VERSION
// static
void WaylandOutput::OutputHandleName(void* data,
struct wl_output* wl_output,
@@ -274,9 +267,7 @@ void WaylandOutput::OutputHandleName(void* data,
if (WaylandOutput* wayland_output = static_cast<WaylandOutput*>(data))
wayland_output->name_ = name ? std::string(name) : std::string{};
}
-#endif
-#ifdef WL_OUTPUT_DESCRIPTION_SINCE_VERSION
// static
void WaylandOutput::OutputHandleDescription(void* data,
struct wl_output* wl_output,
@@ -286,6 +277,5 @@ void WaylandOutput::OutputHandleDescription(void* data,
description ? std::string(description) : std::string{};
}
}
-#endif
} // namespace ui
diff --git a/ui/ozone/platform/wayland/host/wayland_output.h b/ui/ozone/platform/wayland/host/wayland_output.h
index 8f052fa0e5859..e1b1beec9ddf9 100644
--- a/ui/ozone/platform/wayland/host/wayland_output.h
+++ b/ui/ozone/platform/wayland/host/wayland_output.h
@@ -154,16 +154,12 @@ class WaylandOutput : public wl::GlobalObjectRegistrar<WaylandOutput> {
static void OutputHandleScale(void* data,
struct wl_output* wl_output,
int32_t factor);
-#ifdef WL_OUTPUT_NAME_SINCE_VERSION
static void OutputHandleName(void* data,
struct wl_output* wl_output,
const char* name);
-#endif
-#ifdef WL_OUTPUT_DESCRIPTION_SINCE_VERSION
static void OutputHandleDescription(void* data,
struct wl_output* wl_output,
const char* description);
-#endif
const Id output_id_ = 0;
wl::Object<wl_output> output_;
diff --git a/ui/ozone/platform/wayland/host/wayland_pointer.cc b/ui/ozone/platform/wayland/host/wayland_pointer.cc
index c8271487beea3..ba9832cd52324 100644
--- a/ui/ozone/platform/wayland/host/wayland_pointer.cc
+++ b/ui/ozone/platform/wayland/host/wayland_pointer.cc
@@ -37,11 +37,8 @@ WaylandPointer::WaylandPointer(wl_pointer* pointer,
Delegate* delegate)
: obj_(pointer), connection_(connection), delegate_(delegate) {
static constexpr wl_pointer_listener listener = {
- &Enter, &Leave, &Motion, &Button, &Axis,
- &Frame, &AxisSource, &AxisStop, &AxisDiscrete,
-#ifdef WL_POINTER_AXIS_VALUE120_SINCE_VERSION
- &AxisValue120,
-#endif
+ &Enter, &Leave, &Motion, &Button, &Axis,
+ &Frame, &AxisSource, &AxisStop, &AxisDiscrete, &AxisValue120,
};
wl_pointer_add_listener(obj_.get(), &listener, this);
@@ -225,7 +222,6 @@ void WaylandPointer::AxisDiscrete(void* data,
NOTIMPLEMENTED_LOG_ONCE();
}
-#ifdef WL_POINTER_AXIS_VALUE120_SINCE_VERSION
// --- Version 8 ---
// static
@@ -237,7 +233,6 @@ void WaylandPointer::AxisValue120(void* data,
// events.
NOTIMPLEMENTED_LOG_ONCE();
}
-#endif
void WaylandPointer::SetupStylus() {
auto* stylus_v2 = connection_->stylus_v2();
diff --git a/ui/ozone/platform/wayland/host/wayland_pointer.h b/ui/ozone/platform/wayland/host/wayland_pointer.h
index ec80f29908724..9448d2159662c 100644
--- a/ui/ozone/platform/wayland/host/wayland_pointer.h
+++ b/ui/ozone/platform/wayland/host/wayland_pointer.h
@@ -82,12 +82,10 @@ class WaylandPointer {
wl_pointer* obj,
uint32_t axis,
int32_t discrete);
-#ifdef WL_POINTER_AXIS_VALUE120_SINCE_VERSION
static void AxisValue120(void* data,
wl_pointer* obj,
uint32_t axis,
int32_t value120);
-#endif
void SetupStylus();
diff --git a/ui/ozone/platform/wayland/host/wayland_touch.cc b/ui/ozone/platform/wayland/host/wayland_touch.cc
index b3b3664043925..503ef90695405 100644
--- a/ui/ozone/platform/wayland/host/wayland_touch.cc
+++ b/ui/ozone/platform/wayland/host/wayland_touch.cc
@@ -42,13 +42,7 @@ WaylandTouch::WaylandTouch(wl_touch* touch,
Delegate* delegate)
: obj_(touch), connection_(connection), delegate_(delegate) {
static constexpr wl_touch_listener listener = {
- &Down, &Up, &Motion, &Frame, &Cancel,
-#ifdef WL_TOUCH_SHAPE_SINCE_VERSION
- &Shape,
-#endif
-#ifdef WL_TOUCH_ORIENTATION_SINCE_VERSION
- &Orientation,
-#endif
+ &Down, &Up, &Motion, &Frame, &Cancel, &Shape, &Orientation,
};
wl_touch_add_listener(obj_.get(), &listener, this);
@@ -122,7 +116,6 @@ void WaylandTouch::Motion(void* data,
EventDispatchPolicyForPlatform());
}
-#ifdef WL_TOUCH_SHAPE_SINCE_VERSION
// static
void WaylandTouch::Shape(void* data,
wl_touch* obj,
@@ -131,9 +124,7 @@ void WaylandTouch::Shape(void* data,
wl_fixed_t minor) {
NOTIMPLEMENTED_LOG_ONCE();
}
-#endif
-#ifdef WL_TOUCH_ORIENTATION_SINCE_VERSION
// static
void WaylandTouch::Orientation(void* data,
wl_touch* obj,
@@ -141,7 +132,6 @@ void WaylandTouch::Orientation(void* data,
wl_fixed_t orientation) {
NOTIMPLEMENTED_LOG_ONCE();
}
-#endif
// static
void WaylandTouch::Cancel(void* data, wl_touch* obj) {
diff --git a/ui/ozone/platform/wayland/host/wayland_touch.h b/ui/ozone/platform/wayland/host/wayland_touch.h
index fda7076a0610e..4b8c4b0a5ccba 100644
--- a/ui/ozone/platform/wayland/host/wayland_touch.h
+++ b/ui/ozone/platform/wayland/host/wayland_touch.h
@@ -59,19 +59,15 @@ class WaylandTouch {
int32_t id,
wl_fixed_t x,
wl_fixed_t y);
-#ifdef WL_TOUCH_SHAPE_SINCE_VERSION
static void Shape(void* data,
wl_touch* obj,
int32_t id,
wl_fixed_t major,
wl_fixed_t minor);
-#endif
-#ifdef WL_TOUCH_ORIENTATION_SINCE_VERSION
static void Orientation(void* data,
wl_touch* obj,
int32_t id,
wl_fixed_t orientation);
-#endif
static void Cancel(void* data, wl_touch* obj);
static void Frame(void* data, wl_touch* obj);
diff --git a/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc b/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc
index e604780b93f9c..9116980aa068a 100644
--- a/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc
+++ b/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.cc
@@ -98,16 +98,12 @@ bool XDGToplevelWrapperImpl::Initialize() {
}
static constexpr xdg_toplevel_listener xdg_toplevel_listener = {
- &ConfigureTopLevel,
- &CloseTopLevel,
-#if defined(XDG_TOPLEVEL_CONFIGURE_BOUNDS_SINCE_VERSION)
- // Since v4
- &ConfigureBounds,
-#endif
-#if defined(XDG_TOPLEVEL_WM_CAPABILITIES_SINCE_VERSION)
- // Since v5
- &WmCapabilities,
-#endif
+ &ConfigureTopLevel,
+ &CloseTopLevel,
+ // Since v4
+ &ConfigureBounds,
+ // Since v5
+ &WmCapabilities,
};
if (!xdg_surface_wrapper_)
@@ -324,7 +320,6 @@ void XDGToplevelWrapperImpl::CloseTopLevel(void* data,
surface->wayland_window_->OnCloseRequest();
}
-#if defined(XDG_TOPLEVEL_CONFIGURE_BOUNDS_SINCE_VERSION)
// static
void XDGToplevelWrapperImpl::ConfigureBounds(void* data,
struct xdg_toplevel* xdg_toplevel,
@@ -332,16 +327,13 @@ void XDGToplevelWrapperImpl::ConfigureBounds(void* data,
int32_t height) {
NOTIMPLEMENTED_LOG_ONCE();
}
-#endif
-#if defined(XDG_TOPLEVEL_WM_CAPABILITIES_SINCE_VERSION)
// static
void XDGToplevelWrapperImpl::WmCapabilities(void* data,
struct xdg_toplevel* xdg_toplevel,
struct wl_array* capabilities) {
NOTIMPLEMENTED_LOG_ONCE();
}
-#endif
void XDGToplevelWrapperImpl::SetTopLevelDecorationMode(
DecorationMode requested_mode) {
diff --git a/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.h b/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.h
index 03cbeba08a0f9..a9a0bc1cb6bf7 100644
--- a/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.h
+++ b/ui/ozone/platform/wayland/host/xdg_toplevel_wrapper_impl.h
@@ -69,19 +69,13 @@ class XDGToplevelWrapperImpl : public ShellToplevelWrapper {
int32_t height,
struct wl_array* states);
static void CloseTopLevel(void* data, struct xdg_toplevel* xdg_toplevel);
-
-#if defined(XDG_TOPLEVEL_CONFIGURE_BOUNDS_SINCE_VERSION)
static void ConfigureBounds(void* data,
struct xdg_toplevel* xdg_toplevel,
int32_t width,
int32_t height);
-#endif
-
-#if defined(XDG_TOPLEVEL_WM_CAPABILITIES_SINCE_VERSION)
static void WmCapabilities(void* data,
struct xdg_toplevel* xdg_toplevel,
struct wl_array* capabilities);
-#endif
// zxdg_decoration_listener
static void ConfigureDecoration(

View File

@@ -0,0 +1,71 @@
From 758dd0a34bec51430123c25a52a2dc14183e5c6a Mon Sep 17 00:00:00 2001
From: Alexander Dunaev <adunaev@igalia.com>
Date: Wed, 30 Nov 2022 09:26:03 +0000
Subject: [PATCH] [linux/wayland] Adopted the new way of setting the buffer
offset.
Since version 5, the Wayland compositor wants the client to use the
dedicated method to set the offset for the buffer when attaching it to
the surface.
This patch fixes the logic in one place where Chromium uses non-zero
offset, and adds appropriate notes in other places where the offset is
currently zero.
Bug: 1382126
Change-Id: Ide0fa3c1cbc9326d6fb25cf177da65a590aafa1c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4061548
Commit-Queue: Alexander Dunaev <adunaev@igalia.com>
Reviewed-by: Maksim Sisov <msisov@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1077345}
---
ui/ozone/platform/wayland/host/wayland_cursor.cc | 1 +
.../wayland/host/wayland_data_drag_controller.cc | 9 +++++++--
ui/ozone/platform/wayland/host/wayland_surface.cc | 1 +
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/ui/ozone/platform/wayland/host/wayland_cursor.cc b/ui/ozone/platform/wayland/host/wayland_cursor.cc
index 891ca2e5e1f3c..ae10e43d93bfa 100644
--- a/ui/ozone/platform/wayland/host/wayland_cursor.cc
+++ b/ui/ozone/platform/wayland/host/wayland_cursor.cc
@@ -157,6 +157,7 @@ void WaylandCursor::AttachAndCommit(wl_buffer* buffer,
pointer_surface_.get(), hotspot_x_dip, hotspot_y_dip);
wl_surface_damage(pointer_surface_.get(), 0, 0, buffer_width, buffer_height);
+ // Note: should the offset be non-zero, use wl_surface_offset() to set it.
wl_surface_attach(pointer_surface_.get(), buffer, 0, 0);
wl_surface_commit(pointer_surface_.get());
diff --git a/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc b/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc
index 9fe196023dc18..40b1acd4aab3e 100644
--- a/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc
+++ b/ui/ozone/platform/wayland/host/wayland_data_drag_controller.cc
@@ -265,9 +265,16 @@ void WaylandDataDragController::DrawIconInternal() {
DVLOG(3) << "Drawing drag icon. size_px=" << size_px.ToString();
wl::DrawBitmap(*icon_bitmap_, icon_buffer_.get());
auto* const surface = icon_surface_->surface();
+ if (wl::get_version_of_object(surface) < WL_SURFACE_OFFSET_SINCE_VERSION) {
wl_surface_attach(surface, icon_buffer_->get(),
pending_icon_offset_.x() - current_icon_offset_.x(),
pending_icon_offset_.y() - current_icon_offset_.y());
+ } else {
+ wl_surface_attach(surface, icon_buffer_->get(), 0, 0);
+ wl_surface_offset(surface,
+ pending_icon_offset_.x() - current_icon_offset_.x(),
+ pending_icon_offset_.y() - current_icon_offset_.y());
+ }
if (connection_->UseViewporterSurfaceScaling() && icon_surface_->viewport()) {
wp_viewport_set_destination(icon_surface_->viewport(), size_dip.width(),
size_dip.height());
diff --git a/ui/ozone/platform/wayland/host/wayland_surface.cc b/ui/ozone/platform/wayland/host/wayland_surface.cc
index c94f30d2f57a0..b0b2701214da3 100644
--- a/ui/ozone/platform/wayland/host/wayland_surface.cc
+++ b/ui/ozone/platform/wayland/host/wayland_surface.cc
@@ -387,6 +387,7 @@ void WaylandSurface::ApplyPendingState() {
// The logic in DamageBuffer currently relies on attachment coordinates of
// (0, 0). If this changes, then the calculation in DamageBuffer will also
// need to be updated.
+ // Note: should the offset be non-zero, use wl_surface_offset() to set it.
wl_surface_attach(surface_.get(), pending_state_.buffer, 0, 0);
// Do not call GetOrCreateSurfaceSync() if the buffer management doesn't

View File

@@ -1,80 +0,0 @@
--- src/content/browser/web_contents/web_contents_impl.h.orig 2022-10-12 18:11:24.194407371 +0200
+++ src/content/browser/web_contents/web_contents_impl.h 2022-10-15 11:00:48.215200372 +0200
@@ -103,9 +103,7 @@
} // namespace service_manager
namespace content {
-namespace {
class JavaScriptDialogDismissNotifier;
-}
enum class PictureInPictureResult;
class BeforeUnloadBlockingDelegate; // content_browser_test_utils_internal.h
class BrowserPluginEmbedder;
--- src/content/browser/web_contents/web_contents_impl.cc.orig 2022-10-12 18:11:52.102315425 +0200
+++ src/content/browser/web_contents/web_contents_impl.cc 2022-10-15 14:52:19.403874437 +0200
@@ -284,32 +284,6 @@
CloseCallback callback_;
};
-// This is a small helper class created while a JavaScript dialog is showing
-// and destroyed when it's dismissed. Clients can register callbacks to receive
-// a notification when the dialog is dismissed.
-class JavaScriptDialogDismissNotifier {
- public:
- JavaScriptDialogDismissNotifier() = default;
-
- JavaScriptDialogDismissNotifier(const JavaScriptDialogDismissNotifier&) =
- delete;
- JavaScriptDialogDismissNotifier& operator=(
- const JavaScriptDialogDismissNotifier&) = delete;
-
- ~JavaScriptDialogDismissNotifier() {
- for (auto& callback : callbacks_) {
- std::move(callback).Run();
- }
- }
-
- void NotifyOnDismiss(base::OnceClosure callback) {
- callbacks_.push_back(std::move(callback));
- }
-
- private:
- std::vector<base::OnceClosure> callbacks_;
-};
-
bool FrameCompareDepth(RenderFrameHostImpl* a, RenderFrameHostImpl* b) {
return a->GetFrameDepth() < b->GetFrameDepth();
}
@@ -551,6 +525,32 @@
} // namespace
+// This is a small helper class created while a JavaScript dialog is showing
+// and destroyed when it's dismissed. Clients can register callbacks to receive
+// a notification when the dialog is dismissed.
+class JavaScriptDialogDismissNotifier {
+ public:
+ JavaScriptDialogDismissNotifier() = default;
+
+ JavaScriptDialogDismissNotifier(const JavaScriptDialogDismissNotifier&) =
+ delete;
+ JavaScriptDialogDismissNotifier& operator=(
+ const JavaScriptDialogDismissNotifier&) = delete;
+
+ ~JavaScriptDialogDismissNotifier() {
+ for (auto& callback : callbacks_) {
+ std::move(callback).Run();
+ }
+ }
+
+ void NotifyOnDismiss(base::OnceClosure callback) {
+ callbacks_.push_back(std::move(callback));
+ }
+
+ private:
+ std::vector<base::OnceClosure> callbacks_;
+};
+
CreatedWindow::CreatedWindow() = default;
CreatedWindow::CreatedWindow(std::unique_ptr<WebContentsImpl> contents,
GURL target_url)

View File

@@ -1,31 +0,0 @@
--- src/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc.old 2022-10-20 19:00:30.113415900 +0200
+++ src/third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.cc 2022-10-29 22:19:57.652611900 +0200
@@ -4,6 +4,7 @@
#include "third_party/blink/renderer/platform/graphics/gpu/webgl_image_conversion.h"
+#include <cstring>
#include <limits>
#include <memory>
@@ -416,7 +417,8 @@
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 13};
uint16_t ConvertFloatToHalfFloat(float f) {
- unsigned temp = *(reinterpret_cast<unsigned*>(&f));
+ unsigned temp;
+ std::memcpy(&temp, &f, 4);
uint16_t signexp = (temp >> 23) & 0x1ff;
return g_base_table[signexp] +
((temp & 0x007fffff) >> g_shift_table[signexp]);
@@ -834,7 +836,9 @@
uint32_t temp =
g_mantissa_table[g_offset_table[half >> 10] + (half & 0x3ff)] +
g_exponent_table[half >> 10];
- return *(reinterpret_cast<float*>(&temp));
+ float ret;
+ std::memcpy(&ret, &temp, 4);
+ return ret;
}
/* BEGIN CODE SHARED WITH MOZILLA FIREFOX */

View File

@@ -1,11 +0,0 @@
--- src/third_party/webrtc/rtc_base/third_party/base64/base64.h.old 2023-03-07 10:52:34.754823900 +0000
+++ src/third_party/webrtc/rtc_base/third_party/base64/base64.h 2023-03-08 06:56:05.662101900 +0000
@@ -12,6 +12,8 @@
#ifndef RTC_BASE_THIRD_PARTY_BASE64_BASE64_H_
#define RTC_BASE_THIRD_PARTY_BASE64_BASE64_H_
+#include <cstddef>
+#include <cstdint>
#include <string>
#include <vector>

View File

@@ -1,21 +0,0 @@
--- src/third_party/blink/renderer/modules/xr/xr_cube_map.cc.old 2022-10-20 19:00:30.045381900 +0200
+++ src/third_party/blink/renderer/modules/xr/xr_cube_map.cc 2022-10-29 22:07:43.236052800 +0200
@@ -4,6 +4,8 @@
#include "third_party/blink/renderer/modules/xr/xr_cube_map.h"
+#include <cstring>
+
#include "base/cxx17_backports.h"
#include "device/vr/public/mojom/vr_service.mojom-blink.h"
#include "third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h"
@@ -19,7 +21,8 @@
// This is an inversion of FloatToHalfFloat in ui/gfx/half_float.cc
float HalfFloatToFloat(const uint16_t input) {
uint32_t tmp = (input & 0x7fff) << 13 | (input & 0x8000) << 16;
- float tmp2 = *reinterpret_cast<float*>(&tmp);
+ float tmp2;
+ std::memcpy(&tmp2, &tmp, 4);
return tmp2 / 1.9259299444e-34f;
}