parent
ebe9f27e23
commit
19a0fb38ce
@ -1,11 +0,0 @@
|
|||||||
diff -up chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c.me chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c
|
|
||||||
--- chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c.me 2022-12-27 16:14:22.507496575 +0100
|
|
||||||
+++ chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c 2022-12-27 16:35:17.617573610 +0100
|
|
||||||
@@ -26,6 +26,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "wayland-version.h"
|
|
||||||
+#include "config.h" // HAVE_STRNDUP
|
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include <stdio.h>
|
|
@ -1,141 +0,0 @@
|
|||||||
diff -up chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc.me chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc
|
|
||||||
--- chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc.me 2023-02-08 20:34:02.700010846 +0100
|
|
||||||
+++ chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc 2023-02-08 20:35:30.455580670 +0100
|
|
||||||
@@ -4,7 +4,9 @@
|
|
||||||
|
|
||||||
#include "sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.h"
|
|
||||||
|
|
||||||
-#include <linux/kcmp.h>
|
|
||||||
+#ifndef KCMP_FILE
|
|
||||||
+#define KCMP_FILE 0
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#include "media/gpu/buildflags.h"
|
|
||||||
#include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
|
|
||||||
diff -up chromium-99.0.4844.51/mojo/core/channel_linux.cc.epel7-header-workarounds chromium-99.0.4844.51/mojo/core/channel_linux.cc
|
|
||||||
--- chromium-99.0.4844.51/mojo/core/channel_linux.cc.epel7-header-workarounds 2022-02-28 19:05:54.000000000 -0500
|
|
||||||
+++ chromium-99.0.4844.51/mojo/core/channel_linux.cc 2022-03-05 14:50:49.876812909 -0500
|
|
||||||
@@ -44,6 +44,25 @@
|
|
||||||
#include "base/android/build_info.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef F_LINUX_SPECIFIC_BASE
|
|
||||||
+#define F_LINUX_SPECIFIC_BASE 1024
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_SEAL
|
|
||||||
+#define F_SEAL_SEAL 0x0001
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_SHRINK
|
|
||||||
+#define F_SEAL_SHRINK 0x0002
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_GROW
|
|
||||||
+#define F_SEAL_GROW 0x0004
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_ADD_SEALS
|
|
||||||
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_GET_SEALS
|
|
||||||
+#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#ifndef EFD_ZERO_ON_WAKE
|
|
||||||
#define EFD_ZERO_ON_WAKE O_NOFOLLOW
|
|
||||||
#endif
|
|
||||||
diff -up chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.epel7-header-workarounds chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
|
|
||||||
--- chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.epel7-header-workarounds 2022-03-05 14:50:49.877812915 -0500
|
|
||||||
+++ chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2022-03-05 15:15:02.536867009 -0500
|
|
||||||
@@ -53,6 +53,25 @@
|
|
||||||
|
|
||||||
#endif // BUILDFLAG(IS_ANDROID)
|
|
||||||
|
|
||||||
+#ifndef F_LINUX_SPECIFIC_BASE
|
|
||||||
+#define F_LINUX_SPECIFIC_BASE 1024
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_SEAL
|
|
||||||
+#define F_SEAL_SEAL 0x0001
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_SHRINK
|
|
||||||
+#define F_SEAL_SHRINK 0x0002
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_GROW
|
|
||||||
+#define F_SEAL_GROW 0x0004
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_ADD_SEALS
|
|
||||||
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_GET_SEALS
|
|
||||||
+#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#if defined(__arm__) && !defined(MAP_STACK)
|
|
||||||
#define MAP_STACK 0x20000 // Daisy build environment has old headers.
|
|
||||||
#endif
|
|
||||||
diff -up chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-header-workarounds chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
|
|
||||||
--- chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-header-workarounds 2022-02-28 19:05:55.000000000 -0500
|
|
||||||
+++ chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc 2022-03-05 14:50:49.877812915 -0500
|
|
||||||
@@ -6,7 +6,24 @@
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
-#include <linux/kcmp.h>
|
|
||||||
+#ifndef KCMP_FILE
|
|
||||||
+#define KCMP_FILE 0
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_LINUX_SPECIFIC_BASE
|
|
||||||
+#define F_LINUX_SPECIFIC_BASE 1024
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_SEAL
|
|
||||||
+#define F_SEAL_SEAL 0x0001
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_SHRINK
|
|
||||||
+#define F_SEAL_SHRINK 0x0002
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_GROW
|
|
||||||
+#define F_SEAL_GROW 0x0004
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_ADD_SEALS
|
|
||||||
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
|
|
||||||
+#endif
|
|
||||||
#include <sys/socket.h>
|
|
||||||
|
|
||||||
// Some arch's (arm64 for instance) unistd.h don't pull in symbols used here
|
|
||||||
diff -up chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc.epel7-header-workarounds chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc
|
|
||||||
--- chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc.epel7-header-workarounds 2022-02-28 19:05:55.000000000 -0500
|
|
||||||
+++ chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc 2022-03-05 14:50:49.877812915 -0500
|
|
||||||
@@ -22,6 +22,22 @@
|
|
||||||
#include "sandbox/policy/linux/sandbox_linux.h"
|
|
||||||
#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
|
|
||||||
|
|
||||||
+#ifndef F_LINUX_SPECIFIC_BASE
|
|
||||||
+#define F_LINUX_SPECIFIC_BASE 1024
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_SEAL
|
|
||||||
+#define F_SEAL_SEAL 0x0001
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_SHRINK
|
|
||||||
+#define F_SEAL_SHRINK 0x0002
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_SEAL_GROW
|
|
||||||
+#define F_SEAL_GROW 0x0004
|
|
||||||
+#endif
|
|
||||||
+#ifndef F_ADD_SEALS
|
|
||||||
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
using sandbox::bpf_dsl::AllOf;
|
|
||||||
using sandbox::bpf_dsl::Allow;
|
|
||||||
using sandbox::bpf_dsl::Arg;
|
|
||||||
diff -up chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc.epel7-header-workarounds chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc
|
|
||||||
--- chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc.epel7-header-workarounds 2022-02-28 19:06:49.000000000 -0500
|
|
||||||
+++ chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc 2022-03-05 14:50:49.877812915 -0500
|
|
||||||
@@ -23,6 +23,10 @@
|
|
||||||
#include "ui/events/ozone/evdev/numberpad_metrics.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef SW_PEN_INSERTED
|
|
||||||
+#define SW_PEN_INSERTED 0x0f /* set = pen inserted */
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
namespace ui {
|
|
||||||
|
|
||||||
namespace {
|
|
@ -1,22 +0,0 @@
|
|||||||
diff -up chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc.me chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc
|
|
||||||
--- chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc.me 2023-05-13 12:09:44.423727385 +0200
|
|
||||||
+++ chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc 2023-05-13 17:52:19.934347246 +0200
|
|
||||||
@@ -11,7 +11,6 @@
|
|
||||||
#include <linux/net.h>
|
|
||||||
#include <linux/netlink.h>
|
|
||||||
#include <linux/sockios.h>
|
|
||||||
-#include <linux/wireless.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
#include <netinet/tcp.h>
|
|
||||||
#include <sys/inotify.h>
|
|
||||||
@@ -48,6 +47,10 @@ using sandbox::syscall_broker::BrokerPro
|
|
||||||
#define F2FS_IOC_GET_FEATURES _IOR(0xf5, 12, uint32_t)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if !defined(SIOCGIWNAME)
|
|
||||||
+#define SIOCGIWNAME 0x8B01
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
namespace sandbox::policy {
|
|
||||||
|
|
||||||
namespace {
|
|
@ -1,21 +0,0 @@
|
|||||||
diff -up chromium-115.0.5790.24/components/omnibox/browser/omnibox_edit_model.cc.buildflag-el7 chromium-115.0.5790.24/components/omnibox/browser/omnibox_edit_model.cc
|
|
||||||
--- chromium-115.0.5790.24/components/omnibox/browser/omnibox_edit_model.cc.buildflag-el7 2023-06-07 21:48:29.000000000 +0200
|
|
||||||
+++ chromium-115.0.5790.24/components/omnibox/browser/omnibox_edit_model.cc 2023-06-17 16:50:46.373867625 +0200
|
|
||||||
@@ -79,7 +79,7 @@
|
|
||||||
#include "ui/gfx/vector_icon_types.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
|
||||||
+#ifdef GOOGLE_CHROME_BRANDING
|
|
||||||
#include "components/vector_icons/vector_icons.h" // nogncheck
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -631,7 +631,7 @@ bool OmniboxEditModel::ShouldShowCurrent
|
|
||||||
|
|
||||||
ui::ImageModel OmniboxEditModel::GetSuperGIcon(int image_size,
|
|
||||||
bool dark_mode) const {
|
|
||||||
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
|
||||||
+#ifdef GOOGLE_CHROME_BRANDING
|
|
||||||
if (dark_mode) {
|
|
||||||
return ui::ImageModel::FromVectorIcon(
|
|
||||||
vector_icons::kGoogleGLogoMonochromeIcon, ui::kColorRefPrimary100,
|
|
@ -1,26 +0,0 @@
|
|||||||
diff -up chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.me chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
|
|
||||||
--- chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.me 2023-06-24 10:38:11.011511463 +0200
|
|
||||||
+++ chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc 2023-06-24 13:07:35.865375884 +0200
|
|
||||||
@@ -84,6 +84,7 @@ CanvasStyle::CanvasStyle(const CanvasSty
|
|
||||||
|
|
||||||
void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
|
|
||||||
float global_alpha) const {
|
|
||||||
+ SkColor4f custom_color = SkColor4f{0.0f, 0.0f, 0.0f, global_alpha};
|
|
||||||
switch (type_) {
|
|
||||||
case kColor:
|
|
||||||
ApplyColorToFlags(flags, global_alpha);
|
|
||||||
@@ -91,12 +92,12 @@ void CanvasStyle::ApplyToFlags(cc::Paint
|
|
||||||
case kGradient:
|
|
||||||
GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(),
|
|
||||||
ImageDrawOptions());
|
|
||||||
- flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
|
|
||||||
+ flags.setColor(custom_color);
|
|
||||||
break;
|
|
||||||
case kImagePattern:
|
|
||||||
GetCanvasPattern()->GetPattern()->ApplyToFlags(
|
|
||||||
flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform()));
|
|
||||||
- flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
|
|
||||||
+ flags.setColor(custom_color);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
NOTREACHED();
|
|
@ -1,21 +0,0 @@
|
|||||||
diff -up chromium-117.0.5938.62/net/dns/host_resolver_cache.cc.me chromium-117.0.5938.62/net/dns/host_resolver_cache.cc
|
|
||||||
diff -up chromium-117.0.5938.62/net/dns/host_resolver_cache.h.me chromium-117.0.5938.62/net/dns/host_resolver_cache.h
|
|
||||||
--- chromium-117.0.5938.62/net/dns/host_resolver_cache.h.me 2023-09-14 15:21:24.632965004 +0200
|
|
||||||
+++ chromium-117.0.5938.62/net/dns/host_resolver_cache.h 2023-09-15 09:15:48.511300845 +0200
|
|
||||||
@@ -143,12 +143,14 @@ class NET_EXPORT HostResolverCache final
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator()(const Key& lhs, const KeyRef& rhs) const {
|
|
||||||
+ const std::string rhs_domain_name{rhs.domain_name};
|
|
||||||
return std::tie(lhs.domain_name, lhs.network_anonymization_key) <
|
|
||||||
- std::tie(rhs.domain_name, *rhs.network_anonymization_key);
|
|
||||||
+ std::tie(rhs_domain_name, *rhs.network_anonymization_key);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator()(const KeyRef& lhs, const Key& rhs) const {
|
|
||||||
- return std::tie(lhs.domain_name, *lhs.network_anonymization_key) <
|
|
||||||
+ const std::string lhs_domain_name{lhs.domain_name};
|
|
||||||
+ return std::tie(lhs_domain_name, *lhs.network_anonymization_key) <
|
|
||||||
std::tie(rhs.domain_name, rhs.network_anonymization_key);
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,24 +0,0 @@
|
|||||||
diff -up chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.cc.me chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.cc
|
|
||||||
--- chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.cc.me 2023-10-07 12:24:51.194618144 +0200
|
|
||||||
+++ chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.cc 2023-10-07 12:26:30.727448581 +0200
|
|
||||||
@@ -1219,7 +1219,7 @@ void V4L2CaptureDelegate::SetErrorState(
|
|
||||||
client_->OnError(error, from_here, reason);
|
|
||||||
}
|
|
||||||
|
|
||||||
-#if BUILDFLAG(IS_LINUX)
|
|
||||||
+#if 0 //BUILDFLAG(IS_LINUX)
|
|
||||||
gfx::ColorSpace V4L2CaptureDelegate::BuildColorSpaceFromv4l2() {
|
|
||||||
v4l2_colorspace v4l2_primary = (v4l2_colorspace)video_fmt_.fmt.pix.colorspace;
|
|
||||||
v4l2_quantization v4l2_range =
|
|
||||||
diff -up chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.h.me chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.h
|
|
||||||
--- chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.h.me 2023-10-07 12:29:35.588406023 +0200
|
|
||||||
+++ chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.h 2023-10-07 12:28:42.057036014 +0200
|
|
||||||
@@ -133,7 +133,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate
|
|
||||||
const base::Location& from_here,
|
|
||||||
const std::string& reason);
|
|
||||||
|
|
||||||
-#if BUILDFLAG(IS_LINUX)
|
|
||||||
+#if 0 //BUILDFLAG(IS_LINUX)
|
|
||||||
// Systems which describe a "color space" usually map that to one or more of
|
|
||||||
// {primary, matrix, transfer, range}. BuildColorSpaceFromv4l2() will use the
|
|
||||||
// matched value as first priority. Otherwise, if there is no best matching
|
|
@ -1,15 +0,0 @@
|
|||||||
--- chromium-121.0.6167.57/third_party/libc++/src/include/__config.orig 2024-01-16 18:38:00.995930774 +0100
|
|
||||||
+++ chromium-121.0.6167.57/third_party/libc++/src/include/__config 2024-01-16 18:43:47.056517289 +0100
|
|
||||||
@@ -32,11 +32,7 @@
|
|
||||||
|
|
||||||
// Warn if a compiler version is used that is not supported anymore
|
|
||||||
// LLVM RELEASE Update the minimum compiler versions
|
|
||||||
-# if defined(_LIBCPP_CLANG_VER)
|
|
||||||
-# if _LIBCPP_CLANG_VER < 1600
|
|
||||||
-# warning "Libc++ only supports Clang 16 and later"
|
|
||||||
-# endif
|
|
||||||
-# elif defined(_LIBCPP_APPLE_CLANG_VER)
|
|
||||||
+# if defined(_LIBCPP_APPLE_CLANG_VER)
|
|
||||||
# if _LIBCPP_APPLE_CLANG_VER < 1500
|
|
||||||
# warning "Libc++ only supports AppleClang 15 and later"
|
|
||||||
# endif
|
|
@ -1,11 +0,0 @@
|
|||||||
diff -up chromium-122.0.6261.69/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h.me chromium-122.0.6261.69/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h
|
|
||||||
--- chromium-122.0.6261.69/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h.me 2024-02-24 13:02:58.931586003 +0100
|
|
||||||
+++ chromium-122.0.6261.69/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h 2024-02-24 13:03:33.152251546 +0100
|
|
||||||
@@ -82,6 +82,7 @@ struct FxPartitionAllocAllocator {
|
|
||||||
}
|
|
||||||
|
|
||||||
// There's no state, so they are all the same,
|
|
||||||
+ bool operator==(const FxPartitionAllocAllocator&) const { return true; }
|
|
||||||
bool operator==(const FxPartitionAllocAllocator& that) { return true; }
|
|
||||||
bool operator!=(const FxPartitionAllocAllocator& that) { return false; }
|
|
||||||
};
|
|
@ -1,62 +0,0 @@
|
|||||||
|
|
||||||
ld.lld: error: undefined symbol: unsigned long cc::PaintOpWriter::SerializedSize<unsigned long>()
|
|
||||||
|
|
||||||
diff -up chromium-122.0.6261.69/cc/paint/paint_op_writer.h.me chromium-122.0.6261.69/cc/paint/paint_op_writer.h
|
|
||||||
--- chromium-122.0.6261.69/cc/paint/paint_op_writer.h.me 2024-02-25 12:04:07.008177603 +0100
|
|
||||||
+++ chromium-122.0.6261.69/cc/paint/paint_op_writer.h 2024-02-25 12:14:45.972117522 +0100
|
|
||||||
@@ -112,7 +112,17 @@ class CC_PAINT_EXPORT PaintOpWriter {
|
|
||||||
|
|
||||||
private:
|
|
||||||
template <typename T>
|
|
||||||
- static constexpr size_t SerializedSizeSimple();
|
|
||||||
+ static constexpr size_t SerializedSizeSimple() {
|
|
||||||
+ static_assert(!std::is_pointer_v<T>);
|
|
||||||
+ return base::bits::AlignUp(sizeof(T), kDefaultAlignment);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ // size_t is always serialized as two uint32_ts to make the serialized result
|
|
||||||
+ // portable between 32bit and 64bit processes.
|
|
||||||
+ template <>
|
|
||||||
+ constexpr size_t SerializedSizeSimple<size_t>() {
|
|
||||||
+ return base::bits::AlignUp(2 * sizeof(uint32_t), kDefaultAlignment);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
public:
|
|
||||||
// SerializedSize() returns the maximum serialized size of the given type or
|
|
||||||
@@ -123,7 +133,10 @@ class CC_PAINT_EXPORT PaintOpWriter {
|
|
||||||
// deserialization, and make it possible to allow dynamic sizing for some
|
|
||||||
// data types (see the specialized/overloaded functions).
|
|
||||||
template <typename T>
|
|
||||||
- static constexpr size_t SerializedSize();
|
|
||||||
+ static constexpr size_t SerializedSize() {
|
|
||||||
+ static_assert(std::is_arithmetic_v<T> || std::is_enum_v<T>);
|
|
||||||
+ return SerializedSizeSimple<T>();
|
|
||||||
+ }
|
|
||||||
template <typename T>
|
|
||||||
static constexpr size_t SerializedSize(const T& data);
|
|
||||||
static size_t SerializedSize(const PaintImage& image);
|
|
||||||
@@ -439,24 +452,6 @@ class CC_PAINT_EXPORT PaintOpWriter {
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
-constexpr size_t PaintOpWriter::SerializedSizeSimple() {
|
|
||||||
- static_assert(!std::is_pointer_v<T>);
|
|
||||||
- return base::bits::AlignUp(sizeof(T), kDefaultAlignment);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-// size_t is always serialized as two uint32_ts to make the serialized result
|
|
||||||
-// portable between 32bit and 64bit processes.
|
|
||||||
-template <>
|
|
||||||
-constexpr size_t PaintOpWriter::SerializedSizeSimple<size_t>() {
|
|
||||||
- return base::bits::AlignUp(2 * sizeof(uint32_t), kDefaultAlignment);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-template <typename T>
|
|
||||||
-constexpr size_t PaintOpWriter::SerializedSize() {
|
|
||||||
- static_assert(std::is_arithmetic_v<T> || std::is_enum_v<T>);
|
|
||||||
- return SerializedSizeSimple<T>();
|
|
||||||
-}
|
|
||||||
-template <typename T>
|
|
||||||
constexpr size_t PaintOpWriter::SerializedSize(const T& data) {
|
|
||||||
return SerializedSizeSimple<T>();
|
|
||||||
}
|
|
@ -1,228 +0,0 @@
|
|||||||
commit 57526b8dc45b2e6c67bba7306f1dde73b1f2910c
|
|
||||||
Author: sisidovski <sisidovski@chromium.org>
|
|
||||||
Date: Tue Oct 24 09:32:49 2023 +0000
|
|
||||||
|
|
||||||
Remove unused items from the RaceNetworkRequest hashmap
|
|
||||||
|
|
||||||
When the AutoPreload or the race-network-and-fetch-handler option in the
|
|
||||||
static routing API is enabled, network requests are dispatched and
|
|
||||||
URLLoaderFactories are held in a hashmap in ServiceWorkerGlobalScope.
|
|
||||||
Those are consumed inside the fetch handler when fetch(e.request) is
|
|
||||||
called. But if the fetch handler doesn't call fetch() e.g. fallback,
|
|
||||||
those hashmap items does not have a chance to be removed.
|
|
||||||
|
|
||||||
This CL changes the hashmap items to be removed when the fetch event
|
|
||||||
finishes, and the URLLoaderFactory is still not consumed at that time.
|
|
||||||
This may loose the dedupe capability if fetch() is called later e.g.
|
|
||||||
setTimeout(() => fetch()), but it makes sense to prioritize keeping the
|
|
||||||
hashmap small.
|
|
||||||
|
|
||||||
Change-Id: I51bdc9d5eb5185f2b5b4df6ee785715b1180c848
|
|
||||||
Bug: 1492640
|
|
||||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4964840
|
|
||||||
Reviewed-by: Minoru Chikamune <chikamune@chromium.org>
|
|
||||||
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
|
|
||||||
Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
|
|
||||||
Cr-Commit-Position: refs/heads/main@{#1214064}
|
|
||||||
|
|
||||||
diff -up chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc.me chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
|
|
||||||
--- chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc.me 2024-03-18 10:34:27.604707632 +0100
|
|
||||||
+++ chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc 2024-03-18 11:52:14.309983505 +0100
|
|
||||||
@@ -46,7 +46,6 @@
|
|
||||||
#include "services/network/public/cpp/cross_origin_embedder_policy.h"
|
|
||||||
#include "services/network/public/mojom/cookie_manager.mojom-blink.h"
|
|
||||||
#include "services/network/public/mojom/cross_origin_embedder_policy.mojom.h"
|
|
||||||
-#include "services/network/public/mojom/url_loader_factory.mojom-blink.h"
|
|
||||||
#include "third_party/blink/public/common/features.h"
|
|
||||||
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
|
|
||||||
#include "third_party/blink/public/mojom/notifications/notification.mojom-blink.h"
|
|
||||||
@@ -1097,10 +1096,6 @@ void ServiceWorkerGlobalScope::DidHandle
|
|
||||||
TRACE_ID_WITH_SCOPE(kServiceWorkerGlobalScopeTraceScope,
|
|
||||||
TRACE_ID_LOCAL(event_id)),
|
|
||||||
TRACE_EVENT_FLAG_FLOW_IN, "status", MojoEnumToString(status));
|
|
||||||
-
|
|
||||||
- // Delete the URLLoaderFactory for the RaceNetworkRequest if it's not used.
|
|
||||||
- RemoveItemFromRaceNetworkRequests(event_id);
|
|
||||||
-
|
|
||||||
if (!RunEventCallback(&fetch_event_callbacks_, event_queue_.get(), event_id,
|
|
||||||
status)) {
|
|
||||||
// The event may have been aborted. Its response callback also needs to be
|
|
||||||
@@ -1500,7 +1495,6 @@ void ServiceWorkerGlobalScope::AbortCall
|
|
||||||
response_callback_iter->value->TakeValue().reset();
|
|
||||||
fetch_response_callbacks_.erase(response_callback_iter);
|
|
||||||
}
|
|
||||||
- RemoveItemFromRaceNetworkRequests(event_id);
|
|
||||||
|
|
||||||
// Run the event callback with the error code.
|
|
||||||
auto event_callback_iter = fetch_event_callbacks_.find(event_id);
|
|
||||||
@@ -1588,11 +1582,52 @@ void ServiceWorkerGlobalScope::StartFetc
|
|
||||||
|
|
||||||
if (params->race_network_request_loader_factory &&
|
|
||||||
params->request->service_worker_race_network_request_token) {
|
|
||||||
- InsertNewItemToRaceNetworkRequests(
|
|
||||||
- event_id,
|
|
||||||
- params->request->service_worker_race_network_request_token.value(),
|
|
||||||
- std::move(params->race_network_request_loader_factory),
|
|
||||||
- params->request->url);
|
|
||||||
+ auto insert_result = race_network_request_loader_factories_.insert(
|
|
||||||
+ String(params->request->service_worker_race_network_request_token
|
|
||||||
+ ->ToString()),
|
|
||||||
+ std::move(params->race_network_request_loader_factory));
|
|
||||||
+
|
|
||||||
+ // DumpWithoutCrashing if the token is empty, or not inserted as a new entry
|
|
||||||
+ // to |race_network_request_loader_factories_|.
|
|
||||||
+ // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data
|
|
||||||
+ // and identify the cause.
|
|
||||||
+ static bool has_dumped_without_crashing_for_empty_token = false;
|
|
||||||
+ static bool has_dumped_without_crashing_for_not_new_entry = false;
|
|
||||||
+ if (!has_dumped_without_crashing_for_empty_token &&
|
|
||||||
+ params->request->service_worker_race_network_request_token
|
|
||||||
+ ->is_empty()) {
|
|
||||||
+ has_dumped_without_crashing_for_empty_token = true;
|
|
||||||
+ SCOPED_CRASH_KEY_BOOL(
|
|
||||||
+ "SWGlobalScope", "empty_race_token",
|
|
||||||
+ params->request->service_worker_race_network_request_token
|
|
||||||
+ ->is_empty());
|
|
||||||
+ SCOPED_CRASH_KEY_STRING64(
|
|
||||||
+ "SWGlobalScope", "race_token_string",
|
|
||||||
+ params->request->service_worker_race_network_request_token
|
|
||||||
+ ->ToString());
|
|
||||||
+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
|
|
||||||
+ insert_result.is_new_entry);
|
|
||||||
+ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
|
|
||||||
+ params->request->url.GetString().Utf8());
|
|
||||||
+ base::debug::DumpWithoutCrashing();
|
|
||||||
+ }
|
|
||||||
+ if (!has_dumped_without_crashing_for_not_new_entry &&
|
|
||||||
+ !insert_result.is_new_entry) {
|
|
||||||
+ has_dumped_without_crashing_for_not_new_entry = true;
|
|
||||||
+ SCOPED_CRASH_KEY_BOOL(
|
|
||||||
+ "SWGlobalScope", "empty_race_token",
|
|
||||||
+ params->request->service_worker_race_network_request_token
|
|
||||||
+ ->is_empty());
|
|
||||||
+ SCOPED_CRASH_KEY_STRING64(
|
|
||||||
+ "SWGlobalScope", "race_token_string",
|
|
||||||
+ params->request->service_worker_race_network_request_token
|
|
||||||
+ ->ToString());
|
|
||||||
+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
|
|
||||||
+ insert_result.is_new_entry);
|
|
||||||
+ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
|
|
||||||
+ params->request->url.GetString().Utf8());
|
|
||||||
+ base::debug::DumpWithoutCrashing();
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
Request* request = Request::Create(
|
|
||||||
@@ -2805,71 +2840,12 @@ bool ServiceWorkerGlobalScope::SetAttrib
|
|
||||||
std::optional<mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
|
|
||||||
ServiceWorkerGlobalScope::FindRaceNetworkRequestURLLoaderFactory(
|
|
||||||
const base::UnguessableToken& token) {
|
|
||||||
- std::unique_ptr<RaceNetworkRequestInfo> result =
|
|
||||||
- race_network_requests_.Take(String(token.ToString()));
|
|
||||||
+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory> result =
|
|
||||||
+ race_network_request_loader_factories_.Take(String(token.ToString()));
|
|
||||||
if (result) {
|
|
||||||
- race_network_request_fetch_event_ids_.erase(result->fetch_event_id);
|
|
||||||
- return std::optional<
|
|
||||||
- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>(
|
|
||||||
- std::move(result->url_loader_factory));
|
|
||||||
+ return result;
|
|
||||||
}
|
|
||||||
return std::nullopt;
|
|
||||||
}
|
|
||||||
|
|
||||||
-void ServiceWorkerGlobalScope::InsertNewItemToRaceNetworkRequests(
|
|
||||||
- int fetch_event_id,
|
|
||||||
- const base::UnguessableToken& token,
|
|
||||||
- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
|
|
||||||
- url_loader_factory,
|
|
||||||
- const KURL& request_url) {
|
|
||||||
- auto race_network_request_token = String(token.ToString());
|
|
||||||
- auto info = std::make_unique<RaceNetworkRequestInfo>(
|
|
||||||
- fetch_event_id, race_network_request_token,
|
|
||||||
- std::move(url_loader_factory));
|
|
||||||
- race_network_request_fetch_event_ids_.insert(fetch_event_id, info.get());
|
|
||||||
- auto insert_result = race_network_requests_.insert(race_network_request_token,
|
|
||||||
- std::move(info));
|
|
||||||
-
|
|
||||||
- // DumpWithoutCrashing if the token is empty, or not inserted as a new entry
|
|
||||||
- // to |race_network_request_loader_factories_|.
|
|
||||||
- // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data
|
|
||||||
- // and identify the cause.
|
|
||||||
- static bool has_dumped_without_crashing_for_empty_token = false;
|
|
||||||
- static bool has_dumped_without_crashing_for_not_new_entry = false;
|
|
||||||
- if (!has_dumped_without_crashing_for_empty_token && token.is_empty()) {
|
|
||||||
- has_dumped_without_crashing_for_empty_token = true;
|
|
||||||
- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token",
|
|
||||||
- token.is_empty());
|
|
||||||
- SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string",
|
|
||||||
- token.ToString());
|
|
||||||
- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
|
|
||||||
- insert_result.is_new_entry);
|
|
||||||
- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
|
|
||||||
- request_url.GetString().Utf8());
|
|
||||||
- base::debug::DumpWithoutCrashing();
|
|
||||||
- }
|
|
||||||
- if (!has_dumped_without_crashing_for_not_new_entry &&
|
|
||||||
- !insert_result.is_new_entry) {
|
|
||||||
- has_dumped_without_crashing_for_not_new_entry = true;
|
|
||||||
- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token",
|
|
||||||
- token.is_empty());
|
|
||||||
- SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string",
|
|
||||||
- token.ToString());
|
|
||||||
- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
|
|
||||||
- insert_result.is_new_entry);
|
|
||||||
- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
|
|
||||||
- request_url.GetString().Utf8());
|
|
||||||
- base::debug::DumpWithoutCrashing();
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-void ServiceWorkerGlobalScope::RemoveItemFromRaceNetworkRequests(
|
|
||||||
- int fetch_event_id) {
|
|
||||||
- RaceNetworkRequestInfo* info =
|
|
||||||
- race_network_request_fetch_event_ids_.Take(fetch_event_id);
|
|
||||||
- if (info) {
|
|
||||||
- race_network_requests_.erase(info->token);
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
} // namespace blink
|
|
||||||
diff -up chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h.me chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
|
|
||||||
--- chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h.me 2024-03-18 10:26:14.905817501 +0100
|
|
||||||
+++ chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h 2024-03-18 11:47:58.202198028 +0100
|
|
||||||
@@ -623,14 +623,6 @@ class MODULES_EXPORT ServiceWorkerGlobal
|
|
||||||
// ServiceWorker.FetchEvent.QueuingTime histogram.
|
|
||||||
void RecordQueuingTime(base::TimeTicks created_time);
|
|
||||||
|
|
||||||
- void InsertNewItemToRaceNetworkRequests(
|
|
||||||
- int fetch_event_id,
|
|
||||||
- const base::UnguessableToken& token,
|
|
||||||
- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
|
|
||||||
- url_loader_factory,
|
|
||||||
- const KURL& request_url);
|
|
||||||
- void RemoveItemFromRaceNetworkRequests(int fetch_event_id);
|
|
||||||
-
|
|
||||||
Member<ServiceWorkerClients> clients_;
|
|
||||||
Member<ServiceWorkerRegistration> registration_;
|
|
||||||
Member<::blink::ServiceWorker> service_worker_;
|
|
||||||
@@ -776,17 +768,10 @@ class MODULES_EXPORT ServiceWorkerGlobal
|
|
||||||
|
|
||||||
blink::BlinkStorageKey storage_key_;
|
|
||||||
|
|
||||||
- struct RaceNetworkRequestInfo {
|
|
||||||
- int fetch_event_id;
|
|
||||||
- String token;
|
|
||||||
- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
|
|
||||||
- url_loader_factory;
|
|
||||||
- };
|
|
||||||
// TODO(crbug.com/918702) WTF::HashMap cannot use base::UnguessableToken as a
|
|
||||||
// key. As a workaround uses WTF::String as a key instead.
|
|
||||||
- HashMap<String, std::unique_ptr<RaceNetworkRequestInfo>>
|
|
||||||
- race_network_requests_;
|
|
||||||
- HashMap<int, RaceNetworkRequestInfo*> race_network_request_fetch_event_ids_;
|
|
||||||
+ HashMap<String, mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
|
|
||||||
+ race_network_request_loader_factories_;
|
|
||||||
|
|
||||||
HeapMojoAssociatedRemote<mojom::blink::AssociatedInterfaceProvider>
|
|
||||||
remote_associated_interfaces_{this};
|
|
@ -1,16 +0,0 @@
|
|||||||
diff -up chromium-124.0.6367.118/third_party/perfetto/src/tracing/core/id_allocator.h.me chromium-124.0.6367.118/third_party/perfetto/src/tracing/core/id_allocator.h
|
|
||||||
--- chromium-124.0.6367.118/third_party/perfetto/src/tracing/core/id_allocator.h.me 2024-05-06 08:32:09.637210958 +0200
|
|
||||||
+++ chromium-124.0.6367.118/third_party/perfetto/src/tracing/core/id_allocator.h 2024-05-06 08:32:26.485518448 +0200
|
|
||||||
@@ -63,10 +63,10 @@ class IdAllocator : public IdAllocatorGe
|
|
||||||
|
|
||||||
// Tries to allocate `n` IDs. Returns a vector of `n` valid IDs or an empty
|
|
||||||
// vector, if not enough IDs are available.
|
|
||||||
- std::vector<T> AllocateMultiple(size_t n) {
|
|
||||||
+ std::vector<T> AllocateMultiple(std::size_t n) {
|
|
||||||
std::vector<T> res;
|
|
||||||
res.reserve(n);
|
|
||||||
- for (size_t i = 0; i < n; i++) {
|
|
||||||
+ for (std::size_t i = 0; i < n; i++) {
|
|
||||||
T id = Allocate();
|
|
||||||
if (id) {
|
|
||||||
res.push_back(id);
|
|
@ -1,78 +0,0 @@
|
|||||||
diff -up chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc
|
|
||||||
--- chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding 2023-06-07 21:48:37.000000000 +0200
|
|
||||||
+++ chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc 2023-06-17 16:53:20.216628557 +0200
|
|
||||||
@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
|
|
||||||
void CdmPromiseAdapter::Clear(ClearReason reason) {
|
|
||||||
// Reject all outstanding promises.
|
|
||||||
DCHECK(thread_checker_.CalledOnValidThread());
|
|
||||||
- for (auto& [promise_id, promise] : promises_) {
|
|
||||||
+ for (auto& [p_i, p_e] : promises_) {
|
|
||||||
+ auto& promise_id = p_i;
|
|
||||||
+ auto& promise = p_e;
|
|
||||||
TRACE_EVENT_NESTABLE_ASYNC_END1(
|
|
||||||
"media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
|
|
||||||
"status", "cleared");
|
|
||||||
diff -up chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc
|
|
||||||
--- chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me 2023-06-19 08:04:02.287072722 +0200
|
|
||||||
+++ chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc 2023-06-19 08:18:24.576814950 +0200
|
|
||||||
@@ -1393,7 +1393,8 @@ void ServiceWorkerContextWrapper::MaybeP
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- auto [document_url, key, callback] = std::move(*request);
|
|
||||||
+ auto [d_u, key, callback] = std::move(*request);
|
|
||||||
+ auto document_url = d_u;
|
|
||||||
|
|
||||||
DCHECK(document_url.is_valid());
|
|
||||||
TRACE_EVENT1("ServiceWorker",
|
|
||||||
diff -up chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.than chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc
|
|
||||||
--- chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.than 2023-12-19 17:57:56.205197246 +0100
|
|
||||||
+++ chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc 2023-12-19 18:10:13.778634531 +0100
|
|
||||||
@@ -3527,8 +3527,8 @@ void GridLayoutAlgorithm::PlaceGridItems
|
|
||||||
DCHECK(out_row_break_between);
|
|
||||||
|
|
||||||
const auto& container_space = GetConstraintSpace();
|
|
||||||
- const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData();
|
|
||||||
-
|
|
||||||
+ const auto& [grid_items, l_d, tree_size] = sizing_tree.TreeRootData();
|
|
||||||
+ const auto& layout_data = l_d;
|
|
||||||
const auto* cached_layout_subtree = container_space.GetGridLayoutSubtree();
|
|
||||||
const auto container_writing_direction =
|
|
||||||
container_space.GetWritingDirection();
|
|
||||||
@@ -3691,8 +3691,9 @@ void GridLayoutAlgorithm::PlaceGridItems
|
|
||||||
|
|
||||||
// TODO(ikilpatrick): Update |SetHasSeenAllChildren| and early exit if true.
|
|
||||||
const auto& constraint_space = GetConstraintSpace();
|
|
||||||
- const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData();
|
|
||||||
-
|
|
||||||
+ const auto& [g_i, l_d, tree_size] = sizing_tree.TreeRootData();
|
|
||||||
+ const auto& grid_items = g_i;
|
|
||||||
+ const auto& layout_data = l_d;
|
|
||||||
const auto* cached_layout_subtree = constraint_space.GetGridLayoutSubtree();
|
|
||||||
const auto container_writing_direction =
|
|
||||||
constraint_space.GetWritingDirection();
|
|
||||||
diff -up chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc.me chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc
|
|
||||||
--- chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc.me 2024-02-25 18:03:51.654579579 +0100
|
|
||||||
+++ chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc 2024-02-25 18:12:45.144287750 +0100
|
|
||||||
@@ -136,7 +136,8 @@ void PrewarmHttpDiskCacheManager::MaybeP
|
|
||||||
std::pair<url::Origin, GURL> origin_and_url;
|
|
||||||
std::swap(origin_and_url, queued_jobs_.front());
|
|
||||||
queued_jobs_.pop();
|
|
||||||
- const auto& [origin, url] = origin_and_url;
|
|
||||||
+ const auto& [origin, u] = origin_and_url;
|
|
||||||
+ const auto& url = u;
|
|
||||||
TRACE_EVENT_WITH_FLOW1(
|
|
||||||
"loading", "PrewarmHttpDiskCacheManager::MaybeProcessNextQueuedJob",
|
|
||||||
TRACE_ID_LOCAL(this),
|
|
||||||
--- chromium-124.0.6367.118/content/common/service_worker/race_network_request_url_loader_client.cc.workaround_clang_bug-structured_binding 2024-05-05 16:22:47.581070868 +0200
|
|
||||||
+++ chromium-124.0.6367.118/content/common/service_worker/race_network_request_url_loader_client.cc 2024-05-05 16:27:18.859972481 +0200
|
|
||||||
@@ -417,7 +417,8 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
SCOPED_CRASH_KEY_STRING256("SWRace", "request_url", request_.url.spec());
|
|
||||||
- auto [read_result, read_buffer] = read_buffer_manager_->ReadData();
|
|
||||||
+ auto [r, read_buffer] = read_buffer_manager_->ReadData();
|
|
||||||
+ auto read_result = r;
|
|
||||||
TRACE_EVENT_WITH_FLOW2("ServiceWorker",
|
|
||||||
"ServiceWorkerRaceNetworkRequestURLLoaderClient::Read",
|
|
||||||
TRACE_ID_LOCAL(this),
|
|
@ -1,24 +0,0 @@
|
|||||||
diff -up chromium-125.0.6422.60/chrome/browser/ui/webui/top_chrome/webui_contents_wrapper.h.assert chromium-125.0.6422.60/chrome/browser/ui/webui/top_chrome/webui_contents_wrapper.h
|
|
||||||
--- chromium-125.0.6422.60/chrome/browser/ui/webui/top_chrome/webui_contents_wrapper.h.assert 2024-05-18 19:33:37.165243577 +0200
|
|
||||||
+++ chromium-125.0.6422.60/chrome/browser/ui/webui/top_chrome/webui_contents_wrapper.h 2024-05-18 19:45:51.224995489 +0200
|
|
||||||
@@ -185,7 +185,7 @@ class WebUIContentsWrapperT : public Web
|
|
||||||
supports_draggable_regions,
|
|
||||||
T::GetWebUIName()),
|
|
||||||
webui_url_(webui_url) {
|
|
||||||
- static_assert(
|
|
||||||
+ assert(
|
|
||||||
views_metrics::IsValidWebUINameVariant("." + T::GetWebUIName()));
|
|
||||||
if (is_ready_to_show()) {
|
|
||||||
CHECK(GetWebUIController());
|
|
||||||
diff -up chromium-125.0.6422.60/v8/src/base/small-vector.h.assert chromium-125.0.6422.60/v8/src/base/small-vector.h
|
|
||||||
--- chromium-125.0.6422.60/v8/src/base/small-vector.h.assert 2024-05-15 23:48:18.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/v8/src/base/small-vector.h 2024-05-17 12:33:58.745651173 +0200
|
|
||||||
@@ -22,7 +22,7 @@ template <typename T, size_t kSize, type
|
|
||||||
class SmallVector {
|
|
||||||
// Currently only support trivially copyable and trivially destructible data
|
|
||||||
// types, as it uses memcpy to copy elements and never calls destructors.
|
|
||||||
- ASSERT_TRIVIALLY_COPYABLE(T);
|
|
||||||
+ //ASSERT_TRIVIALLY_COPYABLE(T);
|
|
||||||
static_assert(std::is_trivially_destructible<T>::value);
|
|
||||||
|
|
||||||
public:
|
|
@ -1,36 +0,0 @@
|
|||||||
diff -up chromium-125.0.6422.60/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union chromium-125.0.6422.60/components/variations/service/ui_string_overrider.cc
|
|
||||||
--- chromium-125.0.6422.60/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union 2024-05-15 23:46:17.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/components/variations/service/ui_string_overrider.cc 2024-05-17 12:33:58.684649909 +0200
|
|
||||||
@@ -12,7 +12,7 @@
|
|
||||||
|
|
||||||
namespace variations {
|
|
||||||
|
|
||||||
-UIStringOverrider::UIStringOverrider() = default;
|
|
||||||
+UIStringOverrider::UIStringOverrider() {}
|
|
||||||
|
|
||||||
UIStringOverrider::UIStringOverrider(base::span<const uint32_t> resource_hashes,
|
|
||||||
base::span<const int> resource_indices)
|
|
||||||
diff -up chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.cc
|
|
||||||
--- chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union 2024-05-15 23:46:17.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/content/browser/interest_group/header_direct_from_seller_signals.cc 2024-05-17 12:33:58.685649929 +0200
|
|
||||||
@@ -46,7 +46,7 @@ size_t GetResultSizeBytes(const HeaderDi
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
-HeaderDirectFromSellerSignals::Result::Result() = default;
|
|
||||||
+HeaderDirectFromSellerSignals::Result::Result() {}
|
|
||||||
|
|
||||||
HeaderDirectFromSellerSignals::Result::Result(
|
|
||||||
std::optional<std::string> seller_signals,
|
|
||||||
diff -up chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/frozen_array.h.default-constructor-involving-anonymous-union chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/frozen_array.h
|
|
||||||
--- chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/frozen_array.h.default-constructor-involving-anonymous-union 2024-05-18 09:52:22.385330304 +0200
|
|
||||||
+++ chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/frozen_array.h 2024-05-18 09:52:51.023891525 +0200
|
|
||||||
@@ -36,7 +36,7 @@ class FrozenArray final : public binding
|
|
||||||
using const_iterator = typename VectorType::const_iterator;
|
|
||||||
using const_reverse_iterator = typename VectorType::const_reverse_iterator;
|
|
||||||
|
|
||||||
- FrozenArray() = default;
|
|
||||||
+ FrozenArray() {}
|
|
||||||
explicit FrozenArray(VectorType array) : array_(std::move(array)) {}
|
|
||||||
~FrozenArray() override = default;
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
|||||||
diff -up chromium-125.0.6422.60/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm chromium-125.0.6422.60/ui/gfx/linux/drm_util_linux.cc
|
|
||||||
--- chromium-125.0.6422.60/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm 2024-05-16 20:43:26.619455300 +0200
|
|
||||||
+++ chromium-125.0.6422.60/ui/gfx/linux/drm_util_linux.cc 2024-05-16 20:45:18.120716278 +0200
|
|
||||||
@@ -9,6 +9,14 @@
|
|
||||||
#include "base/logging.h"
|
|
||||||
#include "base/notreached.h"
|
|
||||||
|
|
||||||
+// the libdrm in EL-7 is too old to have this define
|
|
||||||
+#ifndef DRM_FORMAT_P010
|
|
||||||
+#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0')
|
|
||||||
+#endif
|
|
||||||
+#ifndef DRM_FORMAT_ABGR16161616F
|
|
||||||
+#define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H')
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
namespace ui {
|
|
||||||
|
|
||||||
int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format) {
|
|
@ -1,11 +0,0 @@
|
|||||||
--- chromium-125.0.6422.60/optional.orig 2024-05-20 00:12:50.152306289 +0200
|
|
||||||
+++ chromium-125.0.6422.60/optional 2024-05-20 00:12:28.041823631 +0200
|
|
||||||
@@ -474,7 +474,7 @@
|
|
||||||
constexpr _Tp&
|
|
||||||
_M_get() noexcept
|
|
||||||
{
|
|
||||||
- __glibcxx_assert(this->_M_is_engaged());
|
|
||||||
+ //__glibcxx_assert(this->_M_is_engaged());
|
|
||||||
return static_cast<_Dp*>(this)->_M_payload._M_get();
|
|
||||||
}
|
|
||||||
|
|
@ -1,417 +0,0 @@
|
|||||||
diff -up chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.typename chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h
|
|
||||||
--- chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.typename 2024-05-15 23:45:49.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h 2024-05-17 12:33:58.735650966 +0200
|
|
||||||
@@ -26,7 +26,7 @@ PartitionRoot& InternalAllocatorRoot();
|
|
||||||
|
|
||||||
// A class that meets C++ named requirements, Allocator.
|
|
||||||
template <typename T>
|
|
||||||
-InternalAllocator<T>::value_type* InternalAllocator<T>::allocate(
|
|
||||||
+typename InternalAllocator<T>::value_type* InternalAllocator<T>::allocate(
|
|
||||||
std::size_t count) {
|
|
||||||
PA_CHECK(count <=
|
|
||||||
std::numeric_limits<std::size_t>::max() / sizeof(value_type));
|
|
||||||
diff -up chromium-125.0.6422.60/base/containers/heap_array.h.typename chromium-125.0.6422.60/base/containers/heap_array.h
|
|
||||||
--- chromium-125.0.6422.60/base/containers/heap_array.h.typename 2024-05-17 13:51:39.923426461 +0200
|
|
||||||
+++ chromium-125.0.6422.60/base/containers/heap_array.h 2024-05-17 13:54:01.866085730 +0200
|
|
||||||
@@ -32,8 +32,8 @@ class TRIVIAL_ABI GSL_OWNER HeapArray {
|
|
||||||
static_assert(!std::is_reference_v<T>,
|
|
||||||
"HeapArray cannot hold reference types");
|
|
||||||
|
|
||||||
- using iterator = base::span<T>::iterator;
|
|
||||||
- using const_iterator = base::span<const T>::iterator;
|
|
||||||
+ using iterator = typename base::span<T>::iterator;
|
|
||||||
+ using const_iterator = typename base::span<const T>::iterator;
|
|
||||||
// We don't put this default value in the template parameter list to allow the
|
|
||||||
// static_assert on is_reference_v to give a nicer error message.
|
|
||||||
using deleter_type = std::
|
|
||||||
diff -up chromium-125.0.6422.60/base/containers/map_util.h.typename chromium-125.0.6422.60/base/containers/map_util.h
|
|
||||||
--- chromium-125.0.6422.60/base/containers/map_util.h.typename 2024-05-15 23:45:49.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/base/containers/map_util.h 2024-05-17 12:33:58.735650966 +0200
|
|
||||||
@@ -44,7 +44,7 @@ constexpr internal::MappedType<Map>* Fin
|
|
||||||
template <typename Map,
|
|
||||||
typename Key,
|
|
||||||
typename MappedElementType =
|
|
||||||
- std::pointer_traits<internal::MappedType<Map>>::element_type>
|
|
||||||
+ typename std::pointer_traits<internal::MappedType<Map>>::element_type>
|
|
||||||
constexpr const MappedElementType* FindPtrOrNull(const Map& map,
|
|
||||||
const Key& key) {
|
|
||||||
auto it = map.find(key);
|
|
||||||
@@ -60,7 +60,7 @@ constexpr const MappedElementType* FindP
|
|
||||||
template <typename Map,
|
|
||||||
typename Key,
|
|
||||||
typename MappedElementType =
|
|
||||||
- std::pointer_traits<internal::MappedType<Map>>::element_type>
|
|
||||||
+ typename std::pointer_traits<internal::MappedType<Map>>::element_type>
|
|
||||||
constexpr MappedElementType* FindPtrOrNull(Map& map, const Key& key) {
|
|
||||||
auto it = map.find(key);
|
|
||||||
return it != map.end() ? base::to_address(it->second) : nullptr;
|
|
||||||
diff -up chromium-125.0.6422.60/base/containers/to_vector.h.typename chromium-125.0.6422.60/base/containers/to_vector.h
|
|
||||||
--- chromium-125.0.6422.60/base/containers/to_vector.h.typename 2024-05-15 23:45:49.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/base/containers/to_vector.h 2024-05-17 12:33:58.736650987 +0200
|
|
||||||
@@ -30,7 +30,7 @@ template <typename Range, typename Proj
|
|
||||||
std::indirectly_unary_invocable<Proj, ranges::iterator_t<Range>>
|
|
||||||
auto ToVector(Range&& range, Proj proj = {}) {
|
|
||||||
using ProjectedType =
|
|
||||||
- std::projected<ranges::iterator_t<Range>, Proj>::value_type;
|
|
||||||
+ typename std::projected<ranges::iterator_t<Range>, Proj>::value_type;
|
|
||||||
std::vector<ProjectedType> container;
|
|
||||||
container.reserve(std::size(range));
|
|
||||||
ranges::transform(std::forward<Range>(range), std::back_inserter(container),
|
|
||||||
diff -up chromium-125.0.6422.60/base/functional/bind_internal.h.typename chromium-125.0.6422.60/base/functional/bind_internal.h
|
|
||||||
--- chromium-125.0.6422.60/base/functional/bind_internal.h.typename 2024-05-15 23:45:49.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/base/functional/bind_internal.h 2024-05-17 12:33:58.736650987 +0200
|
|
||||||
@@ -1505,11 +1505,11 @@ template <int i,
|
|
||||||
typename Param>
|
|
||||||
struct ParamCanBeBound {
|
|
||||||
private:
|
|
||||||
- using UnwrappedParam = BindArgument<i>::template ForwardedAs<
|
|
||||||
+ using UnwrappedParam = typename BindArgument<i>::template ForwardedAs<
|
|
||||||
Unwrapped>::template ToParamWithType<Param>;
|
|
||||||
- using ParamStorage = BindArgument<i>::template ToParamWithType<
|
|
||||||
+ using ParamStorage = typename BindArgument<i>::template ToParamWithType<
|
|
||||||
Param>::template StoredAs<Storage>;
|
|
||||||
- using BoundStorage =
|
|
||||||
+ using BoundStorage = typename
|
|
||||||
BindArgument<i>::template BoundAs<Arg>::template StoredAs<Storage>;
|
|
||||||
|
|
||||||
template <bool v = !UnwrappedParam::kRawPtr ||
|
|
||||||
diff -up chromium-125.0.6422.60/base/functional/function_ref.h.typename chromium-125.0.6422.60/base/functional/function_ref.h
|
|
||||||
--- chromium-125.0.6422.60/base/functional/function_ref.h.typename 2024-05-15 23:45:49.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/base/functional/function_ref.h 2024-05-17 12:33:58.736650987 +0200
|
|
||||||
@@ -64,7 +64,7 @@ class FunctionRef;
|
|
||||||
template <typename R, typename... Args>
|
|
||||||
class FunctionRef<R(Args...)> {
|
|
||||||
template <typename Functor,
|
|
||||||
- typename RunType = internal::FunctorTraits<Functor>::RunType>
|
|
||||||
+ typename RunType = typename internal::FunctorTraits<Functor>::RunType>
|
|
||||||
static constexpr bool kCompatibleFunctor =
|
|
||||||
std::convertible_to<internal::ExtractReturnType<RunType>, R> &&
|
|
||||||
std::same_as<internal::ExtractArgs<RunType>, internal::TypeList<Args...>>;
|
|
||||||
diff -up chromium-125.0.6422.60/base/types/fixed_array.h.typename chromium-125.0.6422.60/base/types/fixed_array.h
|
|
||||||
--- chromium-125.0.6422.60/base/types/fixed_array.h.typename 2024-05-15 23:45:50.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/base/types/fixed_array.h 2024-05-17 12:33:58.737651008 +0200
|
|
||||||
@@ -27,8 +27,8 @@ template <typename T,
|
|
||||||
class FixedArray : public absl::FixedArray<T, N, A> {
|
|
||||||
public:
|
|
||||||
using absl::FixedArray<T, N, A>::FixedArray;
|
|
||||||
- explicit FixedArray(absl::FixedArray<T, N, A>::size_type n,
|
|
||||||
- const absl::FixedArray<T, N, A>::allocator_type& a =
|
|
||||||
+ explicit FixedArray(typename absl::FixedArray<T, N, A>::size_type n,
|
|
||||||
+ const typename absl::FixedArray<T, N, A>::allocator_type& a =
|
|
||||||
typename absl::FixedArray<T, N, A>::allocator_type())
|
|
||||||
: FixedArray(n, T(), a) {}
|
|
||||||
};
|
|
||||||
diff -up chromium-125.0.6422.60/chrome/browser/download/bubble/download_bubble_update_service.cc.typename chromium-125.0.6422.60/chrome/browser/download/bubble/download_bubble_update_service.cc
|
|
||||||
--- chromium-125.0.6422.60/chrome/browser/download/bubble/download_bubble_update_service.cc.typename 2024-05-15 23:46:00.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/chrome/browser/download/bubble/download_bubble_update_service.cc 2024-05-17 12:33:58.737651008 +0200
|
|
||||||
@@ -94,7 +94,7 @@ ItemSortKey GetSortKey(const Item& item)
|
|
||||||
// Helper to get an iterator to the last element in the cache. The cache
|
|
||||||
// must not be empty.
|
|
||||||
template <typename Item>
|
|
||||||
-SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
|
|
||||||
+typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
|
|
||||||
CHECK(!cache.empty());
|
|
||||||
auto it = cache.end();
|
|
||||||
return std::prev(it);
|
|
||||||
@@ -1173,9 +1173,9 @@ bool DownloadBubbleUpdateService::CacheM
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename Id, typename Item>
|
|
||||||
-SortedItems<Item>::iterator
|
|
||||||
+typename SortedItems<Item>::iterator
|
|
||||||
DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter(
|
|
||||||
- SortedItems<Item>::iterator iter,
|
|
||||||
+ typename SortedItems<Item>::iterator iter,
|
|
||||||
SortedItems<Item>& cache,
|
|
||||||
IterMap<Id, Item>& iter_map) {
|
|
||||||
CHECK(iter != cache.end());
|
|
||||||
diff -up chromium-125.0.6422.60/chrome/browser/web_applications/commands/internal/command_internal.h.typename chromium-125.0.6422.60/chrome/browser/web_applications/commands/internal/command_internal.h
|
|
||||||
--- chromium-125.0.6422.60/chrome/browser/web_applications/commands/internal/command_internal.h.typename 2024-05-15 23:46:06.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/chrome/browser/web_applications/commands/internal/command_internal.h 2024-05-17 12:33:58.737651008 +0200
|
|
||||||
@@ -121,7 +121,7 @@ class CommandBase {
|
|
||||||
template <typename LockType>
|
|
||||||
class CommandWithLock : public CommandBase {
|
|
||||||
public:
|
|
||||||
- using LockDescription = LockType::LockDescription;
|
|
||||||
+ using LockDescription = typename LockType::LockDescription;
|
|
||||||
explicit CommandWithLock(const std::string& name,
|
|
||||||
LockDescription initial_lock_request);
|
|
||||||
|
|
||||||
diff -up chromium-125.0.6422.60/chrome/browser/web_applications/commands/web_app_command.h.typename chromium-125.0.6422.60/chrome/browser/web_applications/commands/web_app_command.h
|
|
||||||
--- chromium-125.0.6422.60/chrome/browser/web_applications/commands/web_app_command.h.typename 2024-05-15 23:46:06.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/chrome/browser/web_applications/commands/web_app_command.h 2024-05-17 12:33:58.738651028 +0200
|
|
||||||
@@ -106,7 +106,7 @@ class WebAppLockManager;
|
|
||||||
template <typename LockType, typename... CallbackArgs>
|
|
||||||
class WebAppCommand : public internal::CommandWithLock<LockType> {
|
|
||||||
public:
|
|
||||||
- using LockDescription = LockType::LockDescription;
|
|
||||||
+ using LockDescription = typename LockType::LockDescription;
|
|
||||||
using CallbackType = base::OnceCallback<void(CallbackArgs...)>;
|
|
||||||
using ShutdownArgumentsTuple = std::tuple<std::decay_t<CallbackArgs>...>;
|
|
||||||
|
|
||||||
diff -up chromium-125.0.6422.60/chrome/browser/web_applications/web_app_command_scheduler.h.typename chromium-125.0.6422.60/chrome/browser/web_applications/web_app_command_scheduler.h
|
|
||||||
--- chromium-125.0.6422.60/chrome/browser/web_applications/web_app_command_scheduler.h.typename 2024-05-15 23:46:06.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/chrome/browser/web_applications/web_app_command_scheduler.h 2024-05-17 12:33:58.738651028 +0200
|
|
||||||
@@ -373,7 +373,7 @@ class WebAppCommandScheduler {
|
|
||||||
// command system.
|
|
||||||
template <typename LockType>
|
|
||||||
void ScheduleCallback(const std::string& operation_name,
|
|
||||||
- LockType::LockDescription lock_description,
|
|
||||||
+ typename LockType::LockDescription lock_description,
|
|
||||||
CallbackCommand<LockType, void> callback,
|
|
||||||
base::OnceClosure on_complete,
|
|
||||||
const base::Location& location = FROM_HERE) {
|
|
||||||
@@ -391,7 +391,7 @@ class WebAppCommandScheduler {
|
|
||||||
typename CallbackReturnValue = std::decay_t<CompletionCallbackArg>>
|
|
||||||
void ScheduleCallbackWithResult(
|
|
||||||
const std::string& operation_name,
|
|
||||||
- LockType::LockDescription lock_description,
|
|
||||||
+ typename LockType::LockDescription lock_description,
|
|
||||||
CallbackCommand<LockType, CallbackReturnValue> callback,
|
|
||||||
base::OnceCallback<void(CompletionCallbackArg)> on_complete,
|
|
||||||
CallbackReturnValue arg_for_shutdown,
|
|
||||||
diff -up chromium-125.0.6422.60/components/optimization_guide/core/model_execution/model_execution_util.h.typename chromium-125.0.6422.60/components/optimization_guide/core/model_execution/model_execution_util.h
|
|
||||||
--- chromium-125.0.6422.60/components/optimization_guide/core/model_execution/model_execution_util.h.typename 2024-05-15 23:46:13.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/components/optimization_guide/core/model_execution/model_execution_util.h 2024-05-17 12:33:58.738651028 +0200
|
|
||||||
@@ -26,7 +26,7 @@ void SetExecutionRequestTemplate(
|
|
||||||
|
|
||||||
// Request is set by the feature and should always be typed.
|
|
||||||
auto typed_request =
|
|
||||||
- static_cast<const FeatureType::Request&>(request_metadata);
|
|
||||||
+ static_cast<const typename FeatureType::Request&>(request_metadata);
|
|
||||||
*(logging_data->mutable_request_data()) = typed_request;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -up chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_log_entry.h
|
|
||||||
--- chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename 2024-05-15 23:46:13.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_log_entry.h 2024-05-17 12:33:58.738651028 +0200
|
|
||||||
@@ -33,7 +33,7 @@ class ModelQualityLogEntry {
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename FeatureType>
|
|
||||||
- FeatureType::Quality* quality_data() {
|
|
||||||
+ typename FeatureType::Quality* quality_data() {
|
|
||||||
return FeatureType::GetLoggingData(*log_ai_data_request_)
|
|
||||||
->mutable_quality_data();
|
|
||||||
}
|
|
||||||
diff -up chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_util.h.typename chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_util.h
|
|
||||||
--- chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_util.h.typename 2024-05-15 23:46:13.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/components/optimization_guide/core/model_quality/model_quality_util.h 2024-05-17 12:33:58.739651049 +0200
|
|
||||||
@@ -20,7 +20,7 @@ std::optional<UserVisibleFeatureKey> Get
|
|
||||||
// Helper method to get the quality_data from `log_ai_data_request` for
|
|
||||||
// different features.
|
|
||||||
template <typename FeatureType>
|
|
||||||
-FeatureType::Quality* GetModelQualityData(
|
|
||||||
+typename FeatureType::Quality* GetModelQualityData(
|
|
||||||
proto::LogAiDataRequest* log_ai_data_request) {
|
|
||||||
return FeatureType::GetLoggingData(*log_ai_data_request)
|
|
||||||
->mutable_quality_data();
|
|
||||||
diff -up chromium-125.0.6422.60/components/optimization_guide/core/tflite_model_executor.h.typename chromium-125.0.6422.60/components/optimization_guide/core/tflite_model_executor.h
|
|
||||||
--- chromium-125.0.6422.60/components/optimization_guide/core/tflite_model_executor.h.typename 2024-05-15 23:46:13.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/components/optimization_guide/core/tflite_model_executor.h 2024-05-17 12:33:58.739651049 +0200
|
|
||||||
@@ -242,7 +242,7 @@ class TFLiteModelExecutor : public Model
|
|
||||||
void SendForBatchExecution(
|
|
||||||
BatchExecutionCallback callback_on_complete,
|
|
||||||
base::TimeTicks start_time,
|
|
||||||
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
|
|
||||||
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
|
|
||||||
override {
|
|
||||||
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
|
|
||||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
|
||||||
@@ -264,7 +264,7 @@ class TFLiteModelExecutor : public Model
|
|
||||||
// Starts the synchronous execution of the model. Returns model outputs.
|
|
||||||
// Model needs to be loaded. Synchronous calls do not load or unload model.
|
|
||||||
std::vector<std::optional<OutputType>> SendForBatchExecutionSync(
|
|
||||||
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
|
|
||||||
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
|
|
||||||
override {
|
|
||||||
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
|
|
||||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
|
||||||
@@ -422,7 +422,7 @@ class TFLiteModelExecutor : public Model
|
|
||||||
// executes it on the model execution thread.
|
|
||||||
void LoadModelFileAndBatchExecute(
|
|
||||||
BatchExecutionCallback callback_on_complete,
|
|
||||||
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
|
|
||||||
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
|
|
||||||
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
|
|
||||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
|
||||||
|
|
||||||
@@ -439,7 +439,7 @@ class TFLiteModelExecutor : public Model
|
|
||||||
|
|
||||||
// Batch executes the loaded model for inputs.
|
|
||||||
void BatchExecuteLoadedModel(
|
|
||||||
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
|
|
||||||
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
|
|
||||||
std::vector<std::optional<OutputType>>* outputs) {
|
|
||||||
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
|
|
||||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
|
||||||
@@ -499,7 +499,7 @@ class TFLiteModelExecutor : public Model
|
|
||||||
// Unloads the model if needed.
|
|
||||||
void BatchExecuteLoadedModelAndRunCallback(
|
|
||||||
BatchExecutionCallback callback_on_complete,
|
|
||||||
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
|
|
||||||
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
|
|
||||||
ExecutionStatus execution_status) {
|
|
||||||
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
|
|
||||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
|
||||||
diff -up chromium-125.0.6422.60/components/supervised_user/core/browser/proto_fetcher.h.typename chromium-125.0.6422.60/components/supervised_user/core/browser/proto_fetcher.h
|
|
||||||
--- chromium-125.0.6422.60/components/supervised_user/core/browser/proto_fetcher.h.typename 2024-05-15 23:46:15.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/components/supervised_user/core/browser/proto_fetcher.h 2024-05-17 12:33:58.739651049 +0200
|
|
||||||
@@ -458,7 +458,7 @@ class RetryingFetcherImpl final : public
|
|
||||||
RetryingFetcherImpl(const RetryingFetcherImpl&) = delete;
|
|
||||||
RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete;
|
|
||||||
|
|
||||||
- void Start(ProtoFetcher<Response>::Callback callback) override {
|
|
||||||
+ void Start(typename ProtoFetcher<Response>::Callback callback) override {
|
|
||||||
callback_ = std::move(callback);
|
|
||||||
Retry();
|
|
||||||
}
|
|
||||||
@@ -504,7 +504,7 @@ class RetryingFetcherImpl final : public
|
|
||||||
}
|
|
||||||
|
|
||||||
// Client callback.
|
|
||||||
- TypedProtoFetcher<Response>::Callback callback_;
|
|
||||||
+ typename TypedProtoFetcher<Response>::Callback callback_;
|
|
||||||
|
|
||||||
// Retry controls.
|
|
||||||
base::OneShotTimer timer_;
|
|
||||||
@@ -525,7 +525,7 @@ class ParallelFetchManager {
|
|
||||||
// Deferred fetcher is required because it should be started after it is
|
|
||||||
// stored internally.
|
|
||||||
using Fetcher = ProtoFetcher<Response>;
|
|
||||||
- using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
|
|
||||||
+ using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
|
|
||||||
|
|
||||||
public:
|
|
||||||
// Provides fresh instances of a deferred fetcher for each fetch.
|
|
||||||
@@ -541,7 +541,7 @@ class ParallelFetchManager {
|
|
||||||
|
|
||||||
// Starts the fetch. Underlying fetcher is stored internally, and will be
|
|
||||||
// cleaned up after finish or when this manager is destroyed.
|
|
||||||
- void Fetch(const Request& request, Fetcher::Callback callback) {
|
|
||||||
+ void Fetch(const Request& request, typename Fetcher::Callback callback) {
|
|
||||||
CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
|
|
||||||
KeyType key = requests_in_flight_.Add(MakeFetcher(request));
|
|
||||||
requests_in_flight_.Lookup(key)->Start(
|
|
||||||
diff -up chromium-125.0.6422.60/mojo/public/cpp/bindings/array_traits.h.typename chromium-125.0.6422.60/mojo/public/cpp/bindings/array_traits.h
|
|
||||||
--- chromium-125.0.6422.60/mojo/public/cpp/bindings/array_traits.h.typename 2024-05-15 23:46:29.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/mojo/public/cpp/bindings/array_traits.h 2024-05-17 12:33:58.739651049 +0200
|
|
||||||
@@ -90,7 +90,7 @@ template <typename Container>
|
|
||||||
{ c[i] } -> std::same_as<typename Container::reference>;
|
|
||||||
}
|
|
||||||
struct ArrayTraits<Container> {
|
|
||||||
- using Element = Container::value_type;
|
|
||||||
+ using Element = typename Container::value_type;
|
|
||||||
|
|
||||||
// vector-like containers have no built-in null.
|
|
||||||
static bool IsNull(const Container& c) { return false; }
|
|
||||||
diff -up chromium-125.0.6422.60/mojo/public/cpp/bindings/type_converter.h.typename chromium-125.0.6422.60/mojo/public/cpp/bindings/type_converter.h
|
|
||||||
--- chromium-125.0.6422.60/mojo/public/cpp/bindings/type_converter.h.typename 2024-05-15 23:46:30.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/mojo/public/cpp/bindings/type_converter.h 2024-05-17 12:33:58.740651070 +0200
|
|
||||||
@@ -127,7 +127,7 @@ using VecValueType = typename Vec::value
|
|
||||||
|
|
||||||
template <typename Vec>
|
|
||||||
using VecPtrLikeUnderlyingValueType =
|
|
||||||
- std::pointer_traits<VecValueType<Vec>>::element_type;
|
|
||||||
+ typename std::pointer_traits<VecValueType<Vec>>::element_type;
|
|
||||||
|
|
||||||
} // namespace internal
|
|
||||||
|
|
||||||
diff -up chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/async_iterable.h
|
|
||||||
--- chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename 2024-05-15 23:46:40.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/async_iterable.h 2024-05-17 12:33:58.740651070 +0200
|
|
||||||
@@ -245,7 +245,7 @@ class PairAsyncIterable {
|
|
||||||
private:
|
|
||||||
virtual IterationSource* CreateIterationSource(
|
|
||||||
ScriptState* script_state,
|
|
||||||
- IterationSource::Kind kind,
|
|
||||||
+ typename IterationSource::Kind kind,
|
|
||||||
InitArgs... args,
|
|
||||||
ExceptionState& exception_state) = 0;
|
|
||||||
};
|
|
||||||
@@ -291,7 +291,7 @@ class ValueAsyncIterable {
|
|
||||||
private:
|
|
||||||
virtual IterationSource* CreateIterationSource(
|
|
||||||
ScriptState* script_state,
|
|
||||||
- IterationSource::Kind kind,
|
|
||||||
+ typename IterationSource::Kind kind,
|
|
||||||
InitArgs... args,
|
|
||||||
ExceptionState& exception_state) = 0;
|
|
||||||
};
|
|
||||||
diff -up chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/script_promise_property.h.typename chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/script_promise_property.h
|
|
||||||
--- chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/script_promise_property.h.typename 2024-05-15 23:46:40.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/third_party/blink/renderer/bindings/core/v8/script_promise_property.h 2024-05-17 12:33:58.740651070 +0200
|
|
||||||
@@ -171,7 +171,7 @@ class ScriptPromiseProperty final
|
|
||||||
template <typename T>
|
|
||||||
requires std::derived_from<T, bindings::EnumerationBase>
|
|
||||||
static T DefaultPromiseResultValue() {
|
|
||||||
- return T(static_cast<T::Enum>(0));
|
|
||||||
+ return T(static_cast<typename T::Enum>(0));
|
|
||||||
}
|
|
||||||
|
|
||||||
State state_ = kPending;
|
|
||||||
diff -up chromium-125.0.6422.60/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename chromium-125.0.6422.60/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
|
|
||||||
--- chromium-125.0.6422.60/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename 2024-05-15 23:46:41.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc 2024-05-17 12:33:58.741651090 +0200
|
|
||||||
@@ -210,7 +210,7 @@ class HTMLFastPathParser {
|
|
||||||
using Span = base::span<const Char>;
|
|
||||||
using USpan = base::span<const UChar>;
|
|
||||||
// 32 matches that used by HTMLToken::Attribute.
|
|
||||||
- typedef std::conditional<std::is_same_v<Char, UChar>,
|
|
||||||
+ typedef typename std::conditional<std::is_same_v<Char, UChar>,
|
|
||||||
UCharLiteralBuffer<32>,
|
|
||||||
LCharLiteralBuffer<32>>::type LiteralBufferType;
|
|
||||||
static_assert(std::is_same_v<Char, UChar> || std::is_same_v<Char, LChar>);
|
|
||||||
diff -up chromium-125.0.6422.60/third_party/blink/renderer/core/paint/object_paint_properties.h.typename chromium-125.0.6422.60/third_party/blink/renderer/core/paint/object_paint_properties.h
|
|
||||||
--- chromium-125.0.6422.60/third_party/blink/renderer/core/paint/object_paint_properties.h.typename 2024-05-15 23:46:41.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/third_party/blink/renderer/core/paint/object_paint_properties.h 2024-05-17 12:33:58.741651090 +0200
|
|
||||||
@@ -445,8 +445,8 @@ class CORE_EXPORT ObjectPaintProperties
|
|
||||||
PaintPropertyChangeType Update(
|
|
||||||
NodeId node_id,
|
|
||||||
const ParentType& parent,
|
|
||||||
- NodeType::State&& state,
|
|
||||||
- const NodeType::AnimationState& animation_state =
|
|
||||||
+ typename NodeType::State&& state,
|
|
||||||
+ const typename NodeType::AnimationState& animation_state =
|
|
||||||
NodeType::AnimationState()) {
|
|
||||||
// First, check if we need to add a new node.
|
|
||||||
if (!nodes_.HasField(node_id)) {
|
|
||||||
diff -up chromium-125.0.6422.60/third_party/blink/renderer/platform/wtf/hash_table.h.typename chromium-125.0.6422.60/third_party/blink/renderer/platform/wtf/hash_table.h
|
|
||||||
--- chromium-125.0.6422.60/third_party/blink/renderer/platform/wtf/hash_table.h.typename 2024-05-15 23:46:43.000000000 +0200
|
|
||||||
+++ chromium-125.0.6422.60/third_party/blink/renderer/platform/wtf/hash_table.h 2024-05-17 12:33:58.742651111 +0200
|
|
||||||
@@ -2013,7 +2013,7 @@ struct HashTableConstIteratorAdapter {
|
|
||||||
static_assert(!IsTraceable<typename Traits::TraitType>::value);
|
|
||||||
|
|
||||||
using iterator_category = std::bidirectional_iterator_tag;
|
|
||||||
- using value_type = HashTableType::ValueType;
|
|
||||||
+ using value_type = typename HashTableType::ValueType;
|
|
||||||
using difference_type = ptrdiff_t;
|
|
||||||
using pointer = value_type*;
|
|
||||||
using reference = value_type&;
|
|
||||||
@@ -2065,7 +2065,7 @@ struct HashTableConstIteratorAdapter<
|
|
||||||
|
|
||||||
public:
|
|
||||||
using iterator_category = std::bidirectional_iterator_tag;
|
|
||||||
- using value_type = HashTableType::ValueType;
|
|
||||||
+ using value_type = typename HashTableType::ValueType;
|
|
||||||
using difference_type = ptrdiff_t;
|
|
||||||
using pointer = value_type*;
|
|
||||||
using reference = value_type&;
|
|
||||||
@@ -2119,7 +2119,7 @@ struct HashTableIteratorAdapter {
|
|
||||||
static_assert(!IsTraceable<typename Traits::TraitType>::value);
|
|
||||||
|
|
||||||
using iterator_category = std::bidirectional_iterator_tag;
|
|
||||||
- using value_type = HashTableType::ValueType;
|
|
||||||
+ using value_type = typename HashTableType::ValueType;
|
|
||||||
using difference_type = ptrdiff_t;
|
|
||||||
using pointer = value_type*;
|
|
||||||
using reference = value_type&;
|
|
||||||
@@ -2167,7 +2167,7 @@ struct HashTableIteratorAdapter<
|
|
||||||
|
|
||||||
public:
|
|
||||||
using iterator_category = std::bidirectional_iterator_tag;
|
|
||||||
- using value_type = HashTableType::ValueType;
|
|
||||||
+ using value_type = typename HashTableType::ValueType;
|
|
||||||
using difference_type = ptrdiff_t;
|
|
||||||
using pointer = value_type*;
|
|
||||||
using reference = value_type&;
|
|
@ -1,681 +0,0 @@
|
|||||||
diff -up chromium-126.0.6478.26/ash/style/ash_color_mixer_unittest.cc.mee chromium-126.0.6478.26/ash/style/ash_color_mixer_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/ash/style/ash_color_mixer_unittest.cc.mee 2024-05-29 18:00:44.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ash/style/ash_color_mixer_unittest.cc 2024-06-03 16:22:10.549568854 +0200
|
|
||||||
@@ -37,6 +37,9 @@ void InitializeColorProvider(const ui::C
|
|
||||||
// Roughly mimics the ColorMixer configuration for Ash.
|
|
||||||
ash::AddCrosStylesColorMixer(&color_provider, key);
|
|
||||||
ash::AddAshColorMixer(&color_provider, key);
|
|
||||||
+
|
|
||||||
+ // Populates the color map with computed color values.
|
|
||||||
+ color_provider.GenerateColorMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initializes the `color_provider` with `seed_color` and the relevant
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/chrome_content_browser_client_browsertest.cc.mee chromium-126.0.6478.26/chrome/browser/chrome_content_browser_client_browsertest.cc
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/chrome_content_browser_client_browsertest.cc.mee 2024-05-29 18:00:52.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/chrome_content_browser_client_browsertest.cc 2024-06-03 16:22:10.550568873 +0200
|
|
||||||
@@ -602,6 +602,7 @@ class PrefersColorSchemeTest
|
|
||||||
explicit MockColorProviderSource(bool is_dark) {
|
|
||||||
key_.color_mode = is_dark ? ui::ColorProviderKey::ColorMode::kDark
|
|
||||||
: ui::ColorProviderKey::ColorMode::kLight;
|
|
||||||
+ provider_.GenerateColorMap();
|
|
||||||
}
|
|
||||||
MockColorProviderSource(const MockColorProviderSource&) = delete;
|
|
||||||
MockColorProviderSource& operator=(const MockColorProviderSource&) = delete;
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/themes/browser_theme_pack_unittest.cc.mee chromium-126.0.6478.26/chrome/browser/themes/browser_theme_pack_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/themes/browser_theme_pack_unittest.cc.mee 2024-05-29 18:00:57.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/themes/browser_theme_pack_unittest.cc 2024-06-03 16:22:10.550568873 +0200
|
|
||||||
@@ -750,6 +750,7 @@ TEST_F(BrowserThemePackTest, TestCreateC
|
|
||||||
"omnibox_background": [120, 140, 160] })";
|
|
||||||
LoadColorJSON(color_json);
|
|
||||||
theme_pack().AddColorMixers(&provider, ui::ColorProviderKey());
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
EXPECT_EQ(SkColorSetRGB(0, 20, 40), provider.GetColor(kColorToolbar));
|
|
||||||
EXPECT_EQ(SkColorSetRGB(60, 80, 100), provider.GetColor(kColorOmniboxText));
|
|
||||||
EXPECT_EQ(SkColorSetRGB(120, 140, 160),
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/color/material_new_tab_page_color_mixer_unittest.cc.mee chromium-126.0.6478.26/chrome/browser/ui/color/material_new_tab_page_color_mixer_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/color/material_new_tab_page_color_mixer_unittest.cc.mee 2024-05-29 18:00:58.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/color/material_new_tab_page_color_mixer_unittest.cc 2024-06-03 16:22:10.551568891 +0200
|
|
||||||
@@ -26,6 +26,7 @@ class MaterialNewTabPageColorMixerTest :
|
|
||||||
void AddMaterialColorMixers() {
|
|
||||||
AddColorMixers(&color_provider_, color_provider_key_);
|
|
||||||
AddChromeColorMixers(&color_provider_, color_provider_key_);
|
|
||||||
+ color_provider_.GenerateColorMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/color/new_tab_page_color_mixer_unittest.cc.mee chromium-126.0.6478.26/chrome/browser/ui/color/new_tab_page_color_mixer_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/color/new_tab_page_color_mixer_unittest.cc.mee 2024-05-29 18:00:58.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/color/new_tab_page_color_mixer_unittest.cc 2024-06-03 16:22:10.551568891 +0200
|
|
||||||
@@ -33,6 +33,7 @@ TEST(NewTabPageColorMixer, LightAndDarkT
|
|
||||||
if (color_utils::IsDark(toolbar_color))
|
|
||||||
key.color_mode = ui::ColorProviderKey::ColorMode::kDark;
|
|
||||||
AddNewTabPageColorMixer(&provider, key);
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
|
|
||||||
EXPECT_EQ(provider.GetColor(kColorToolbar), toolbar_color);
|
|
||||||
EXPECT_EQ(provider.GetColor(kColorNewTabPageBackground), toolbar_color);
|
|
||||||
@@ -51,6 +52,7 @@ TEST(NewTabPageColorMixer, CustomColorCo
|
|
||||||
key.custom_theme =
|
|
||||||
base::WrapRefCounted(new CustomThemeSupplier(ThemeType::kAutogenerated));
|
|
||||||
AddNewTabPageColorMixer(&provider, key);
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
|
|
||||||
EXPECT_EQ(provider.GetColor(kColorToolbar), gfx::kGoogleGreen300);
|
|
||||||
EXPECT_EQ(provider.GetColor(kColorNewTabPageBackground),
|
|
||||||
@@ -72,6 +74,7 @@ TEST(NewTabPageColorMixer, DefaultColorC
|
|
||||||
key.custom_theme =
|
|
||||||
base::WrapRefCounted(new CustomThemeSupplier(ThemeType::kAutogenerated));
|
|
||||||
AddNewTabPageColorMixer(&provider, key);
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
|
|
||||||
EXPECT_EQ(provider.GetColor(kColorToolbar), kSampleToolbarColor);
|
|
||||||
EXPECT_EQ(provider.GetColor(kColorNewTabPageBackground), kSampleToolbarColor);
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/color/tools/dump_colors.cc.mee chromium-126.0.6478.26/chrome/browser/ui/color/tools/dump_colors.cc
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/color/tools/dump_colors.cc.mee 2024-05-29 18:00:58.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/color/tools/dump_colors.cc 2024-06-03 16:22:10.551568891 +0200
|
|
||||||
@@ -56,6 +56,7 @@ int main(int argc, const char* argv[]) {
|
|
||||||
ui::AddColorMixers(provider, key);
|
|
||||||
color::AddComponentsColorMixers(provider, key);
|
|
||||||
AddChromeColorMixers(provider, key);
|
|
||||||
+ provider->GenerateColorMap();
|
|
||||||
};
|
|
||||||
ui::ColorProvider light_provider, dark_provider, light_high_contrast_provider,
|
|
||||||
dark_high_contrast_provider;
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc.mee chromium-126.0.6478.26/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc.mee 2024-05-29 18:00:59.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc 2024-06-03 16:22:10.552568911 +0200
|
|
||||||
@@ -117,7 +117,7 @@ class MockLogoService : public search_pr
|
|
||||||
|
|
||||||
class MockColorProviderSource : public ui::ColorProviderSource {
|
|
||||||
public:
|
|
||||||
- MockColorProviderSource() = default;
|
|
||||||
+ MockColorProviderSource() { color_provider_.GenerateColorMap(); }
|
|
||||||
MockColorProviderSource(const MockColorProviderSource&) = delete;
|
|
||||||
MockColorProviderSource& operator=(const MockColorProviderSource&) = delete;
|
|
||||||
~MockColorProviderSource() override = default;
|
|
||||||
diff -up chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_browsertest.cc.mee chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_browsertest.cc
|
|
||||||
--- chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_browsertest.cc.mee 2024-05-29 18:01:13.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_browsertest.cc 2024-06-03 16:22:10.553568929 +0200
|
|
||||||
@@ -6300,7 +6300,7 @@ IN_PROC_BROWSER_TEST_F(WebContentsImplSt
|
|
||||||
|
|
||||||
class MockColorProviderSource : public ui::ColorProviderSource {
|
|
||||||
public:
|
|
||||||
- MockColorProviderSource() = default;
|
|
||||||
+ MockColorProviderSource() { provider_.GenerateColorMap(); }
|
|
||||||
MockColorProviderSource(const MockColorProviderSource&) = delete;
|
|
||||||
MockColorProviderSource& operator=(const MockColorProviderSource&) = delete;
|
|
||||||
~MockColorProviderSource() override = default;
|
|
||||||
diff -up chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_unittest.cc.mee chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_unittest.cc.mee 2024-05-29 18:01:13.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/content/browser/web_contents/web_contents_impl_unittest.cc 2024-06-03 16:22:10.554568949 +0200
|
|
||||||
@@ -337,7 +337,7 @@ class MockPageBroadcast : public TestPag
|
|
||||||
|
|
||||||
class TestColorProviderSource : public ui::ColorProviderSource {
|
|
||||||
public:
|
|
||||||
- TestColorProviderSource() = default;
|
|
||||||
+ TestColorProviderSource() { provider_.GenerateColorMap(); }
|
|
||||||
|
|
||||||
const ui::ColorProvider* GetColorProvider() const override {
|
|
||||||
return &provider_;
|
|
||||||
diff -up chromium-126.0.6478.26/content/public/test/render_view_test.cc.mee chromium-126.0.6478.26/content/public/test/render_view_test.cc
|
|
||||||
--- chromium-126.0.6478.26/content/public/test/render_view_test.cc.mee 2024-05-29 18:01:14.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/content/public/test/render_view_test.cc 2024-06-03 16:22:10.554568949 +0200
|
|
||||||
@@ -150,7 +150,7 @@ class FailingURLLoaderFactory : public n
|
|
||||||
|
|
||||||
class MockColorProviderSource : public ui::ColorProviderSource {
|
|
||||||
public:
|
|
||||||
- explicit MockColorProviderSource() = default;
|
|
||||||
+ explicit MockColorProviderSource() { provider_.GenerateColorMap(); }
|
|
||||||
MockColorProviderSource(const MockColorProviderSource&) = delete;
|
|
||||||
MockColorProviderSource& operator=(const MockColorProviderSource&) = delete;
|
|
||||||
~MockColorProviderSource() override = default;
|
|
||||||
diff -up chromium-126.0.6478.26/extensions/browser/extension_host.cc.mee chromium-126.0.6478.26/extensions/browser/extension_host.cc
|
|
||||||
--- chromium-126.0.6478.26/extensions/browser/extension_host.cc.mee 2024-05-29 18:01:22.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/extensions/browser/extension_host.cc 2024-06-03 16:22:10.555568967 +0200
|
|
||||||
@@ -58,7 +58,7 @@ namespace {
|
|
||||||
// the UI-less extension background page.
|
|
||||||
class NoOpColorProviderSource : public ui::ColorProviderSource {
|
|
||||||
public:
|
|
||||||
- NoOpColorProviderSource() = default;
|
|
||||||
+ NoOpColorProviderSource() { color_provider_.GenerateColorMap(); }
|
|
||||||
NoOpColorProviderSource(const NoOpColorProviderSource&) = delete;
|
|
||||||
NoOpColorProviderSource& operator=(const NoOpColorProviderSource&) = delete;
|
|
||||||
~NoOpColorProviderSource() override = default;
|
|
||||||
diff -up chromium-126.0.6478.26/third_party/blink/renderer/core/layout/layout_theme.cc.mee chromium-126.0.6478.26/third_party/blink/renderer/core/layout/layout_theme.cc
|
|
||||||
--- chromium-126.0.6478.26/third_party/blink/renderer/core/layout/layout_theme.cc.mee 2024-05-29 18:01:39.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/third_party/blink/renderer/core/layout/layout_theme.cc 2024-06-03 16:22:10.555568967 +0200
|
|
||||||
@@ -677,7 +677,7 @@ Color LayoutTheme::SystemColorFromColorP
|
|
||||||
CSSValueID css_value_id,
|
|
||||||
mojom::blink::ColorScheme color_scheme,
|
|
||||||
const ui::ColorProvider* color_provider) const {
|
|
||||||
- CHECK(color_provider->HasMixers());
|
|
||||||
+ CHECK(!color_provider->IsColorMapEmpty());
|
|
||||||
SkColor system_theme_color;
|
|
||||||
switch (css_value_id) {
|
|
||||||
case CSSValueID::kActivetext:
|
|
||||||
diff -up chromium-126.0.6478.26/ui/base/models/image_model_unittest.cc.mee chromium-126.0.6478.26/ui/base/models/image_model_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/base/models/image_model_unittest.cc.mee 2024-05-29 18:02:31.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/base/models/image_model_unittest.cc 2024-06-03 16:22:10.555568967 +0200
|
|
||||||
@@ -224,6 +224,7 @@ TEST(ImageModelTest, ShouldRasterizeEmpt
|
|
||||||
|
|
||||||
TEST(ImageModelTest, ShouldRasterizeVectorIcon) {
|
|
||||||
ui::ColorProvider color_provider;
|
|
||||||
+ color_provider.GenerateColorMap();
|
|
||||||
gfx::ImageSkia image_skia =
|
|
||||||
ui::ImageModel::FromVectorIcon(vector_icons::kSyncIcon)
|
|
||||||
.Rasterize(&color_provider);
|
|
||||||
diff -up chromium-126.0.6478.26/ui/color/color_provider.cc.mee chromium-126.0.6478.26/ui/color/color_provider.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/color/color_provider.cc.mee 2024-06-03 16:03:15.596432761 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/color/color_provider.cc 2024-06-03 16:22:10.555568967 +0200
|
|
||||||
@@ -4,7 +4,6 @@
|
|
||||||
|
|
||||||
#include "ui/color/color_provider.h"
|
|
||||||
|
|
||||||
-#include <forward_list>
|
|
||||||
#include <map>
|
|
||||||
#include <set>
|
|
||||||
#include <utility>
|
|
||||||
@@ -18,106 +17,6 @@
|
|
||||||
|
|
||||||
namespace ui {
|
|
||||||
|
|
||||||
-////////////////////////////////////////////////////////////////////////////////
|
|
||||||
-// ColorProvider::ColorProviderInternal:
|
|
||||||
-
|
|
||||||
-class ColorProvider::ColorProviderInternal {
|
|
||||||
- public:
|
|
||||||
- using Mixers = std::forward_list<ColorMixer>;
|
|
||||||
-
|
|
||||||
- ColorProviderInternal() = default;
|
|
||||||
- ColorProviderInternal(const ColorProviderInternal&) = delete;
|
|
||||||
- ColorProviderInternal& operator=(const ColorProviderInternal&) = delete;
|
|
||||||
- ~ColorProviderInternal() = default;
|
|
||||||
-
|
|
||||||
- ColorMixer& AddMixer() {
|
|
||||||
- color_map_.clear();
|
|
||||||
- mixers_.emplace_after(
|
|
||||||
- first_postprocessing_mixer_,
|
|
||||||
- base::BindRepeating([](const ColorMixer* mixer) { return mixer; },
|
|
||||||
- GetLastNonPostprocessingMixer()),
|
|
||||||
- base::BindRepeating(&ColorProvider::ColorProviderInternal::
|
|
||||||
- GetLastNonPostprocessingMixer,
|
|
||||||
- base::Unretained(this)));
|
|
||||||
-
|
|
||||||
- return *std::next(first_postprocessing_mixer_, 1);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- ColorMixer& AddPostprocessingMixer() {
|
|
||||||
- color_map_.clear();
|
|
||||||
- if (first_postprocessing_mixer_ == mixers_.before_begin()) {
|
|
||||||
- // The first postprocessing mixer points to the last regular mixer.
|
|
||||||
- auto previous_mixer_getter = base::BindRepeating(
|
|
||||||
- &ColorProvider::ColorProviderInternal::GetLastNonPostprocessingMixer,
|
|
||||||
- base::Unretained(this));
|
|
||||||
- mixers_.emplace_front(previous_mixer_getter, previous_mixer_getter);
|
|
||||||
- first_postprocessing_mixer_ = mixers_.begin();
|
|
||||||
- } else {
|
|
||||||
- // Other postprocessing mixers point to the next postprocessing mixer.
|
|
||||||
- auto previous_mixer_getter =
|
|
||||||
- base::BindRepeating([](const ColorMixer* mixer) { return mixer; },
|
|
||||||
- base::Unretained(&mixers_.front()));
|
|
||||||
- mixers_.emplace_front(previous_mixer_getter, previous_mixer_getter);
|
|
||||||
- }
|
|
||||||
- return mixers_.front();
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- SkColor GetColor(ColorId id) const {
|
|
||||||
- auto i = color_map_.find(id);
|
|
||||||
- if (i == color_map_.end()) {
|
|
||||||
- if (mixers_.empty()) {
|
|
||||||
- DVLOG(2) << "ColorProvider::GetColor: No mixers defined!";
|
|
||||||
- return gfx::kPlaceholderColor;
|
|
||||||
- }
|
|
||||||
- DVLOG(2) << "ColorProvider::GetColor: Computing color for ColorId: "
|
|
||||||
- << ColorIdName(id);
|
|
||||||
- const SkColor color = mixers_.front().GetResultColor(id);
|
|
||||||
- if (color == gfx::kPlaceholderColor) {
|
|
||||||
- return gfx::kPlaceholderColor;
|
|
||||||
- }
|
|
||||||
- i = color_map_.insert({id, color}).first;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- DVLOG(2) << "ColorProvider::GetColor: ColorId: " << ColorIdName(id)
|
|
||||||
- << " Value: " << SkColorName(i->second);
|
|
||||||
- return i->second;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- const ColorMixer* GetLastNonPostprocessingMixer() const {
|
|
||||||
- const auto it = std::next(first_postprocessing_mixer_, 1);
|
|
||||||
- return (it == mixers_.cend()) ? nullptr : &(*it);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- bool HasMixers() const { return !mixers_.empty(); }
|
|
||||||
-
|
|
||||||
- void SetColorForTesting(ColorId id, SkColor color) { color_map_[id] = color; }
|
|
||||||
-
|
|
||||||
- void GenerateColorMapForTesting() {
|
|
||||||
- for (const auto& mixer : mixers_) {
|
|
||||||
- const auto mixer_color_ids = mixer.GetDefinedColorIds();
|
|
||||||
- for (const auto color_id : mixer_color_ids) {
|
|
||||||
- GetColor(color_id);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- const ColorProvider::ColorMap& color_map_for_testing() { return color_map_; }
|
|
||||||
-
|
|
||||||
- private:
|
|
||||||
- // The entire color pipeline, in reverse order (that is, the "last" mixer is
|
|
||||||
- // at the front).
|
|
||||||
- Mixers mixers_;
|
|
||||||
-
|
|
||||||
- // The first mixer in the chain that is a "postprocessing" mixer.
|
|
||||||
- Mixers::iterator first_postprocessing_mixer_ = mixers_.before_begin();
|
|
||||||
-
|
|
||||||
- // A cached map of ColorId => SkColor mappings for this provider.
|
|
||||||
- mutable ColorMap color_map_;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-////////////////////////////////////////////////////////////////////////////////
|
|
||||||
-// ColorProvider:
|
|
||||||
-
|
|
||||||
ColorProvider::ColorProvider() = default;
|
|
||||||
|
|
||||||
ColorProvider::ColorProvider(ColorProvider&&) = default;
|
|
||||||
@@ -127,31 +26,96 @@ ColorProvider& ColorProvider::operator=(
|
|
||||||
ColorProvider::~ColorProvider() = default;
|
|
||||||
|
|
||||||
ColorMixer& ColorProvider::AddMixer() {
|
|
||||||
- return internal_->AddMixer();
|
|
||||||
+ DCHECK(!color_map_);
|
|
||||||
+
|
|
||||||
+ mixers_.emplace_after(
|
|
||||||
+ first_postprocessing_mixer_,
|
|
||||||
+ base::BindRepeating([](const ColorMixer* mixer) { return mixer; },
|
|
||||||
+ GetLastNonPostprocessingMixer()),
|
|
||||||
+ base::BindRepeating(&ColorProvider::GetLastNonPostprocessingMixer,
|
|
||||||
+ base::Unretained(this)));
|
|
||||||
+
|
|
||||||
+ return *std::next(first_postprocessing_mixer_, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
ColorMixer& ColorProvider::AddPostprocessingMixer() {
|
|
||||||
- return internal_->AddPostprocessingMixer();
|
|
||||||
+ DCHECK(!color_map_);
|
|
||||||
+
|
|
||||||
+ if (first_postprocessing_mixer_ == mixers_.before_begin()) {
|
|
||||||
+ // The first postprocessing mixer points to the last regular mixer.
|
|
||||||
+ auto previous_mixer_getter = base::BindRepeating(
|
|
||||||
+ &ColorProvider::GetLastNonPostprocessingMixer, base::Unretained(this));
|
|
||||||
+ mixers_.emplace_front(previous_mixer_getter, previous_mixer_getter);
|
|
||||||
+ first_postprocessing_mixer_ = mixers_.begin();
|
|
||||||
+ } else {
|
|
||||||
+ // Other postprocessing mixers point to the next postprocessing mixer.
|
|
||||||
+ auto previous_mixer_getter =
|
|
||||||
+ base::BindRepeating([](const ColorMixer* mixer) { return mixer; },
|
|
||||||
+ base::Unretained(&mixers_.front()));
|
|
||||||
+ mixers_.emplace_front(previous_mixer_getter, previous_mixer_getter);
|
|
||||||
+ }
|
|
||||||
+ return mixers_.front();
|
|
||||||
}
|
|
||||||
|
|
||||||
SkColor ColorProvider::GetColor(ColorId id) const {
|
|
||||||
- return internal_->GetColor(id);
|
|
||||||
-}
|
|
||||||
+ CHECK(color_map_);
|
|
||||||
+ auto i = color_map_->find(id);
|
|
||||||
+ return i == color_map_->end() ? gfx::kPlaceholderColor : i->second;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void ColorProvider::GenerateColorMap() {
|
|
||||||
+ // This should only be called to generate the `color_map_` once.
|
|
||||||
+ DCHECK(!color_map_);
|
|
||||||
+
|
|
||||||
+ if (mixers_.empty())
|
|
||||||
+ DVLOG(2) << "ColorProvider::GenerateColorMap: No mixers defined!";
|
|
||||||
+
|
|
||||||
+ // Iterate over associated mixers and extract the ColorIds defined for this
|
|
||||||
+ // provider.
|
|
||||||
+ std::set<ColorId> color_ids;
|
|
||||||
+ for (const auto& mixer : mixers_) {
|
|
||||||
+ const auto mixer_color_ids = mixer.GetDefinedColorIds();
|
|
||||||
+ color_ids.insert(mixer_color_ids.begin(), mixer_color_ids.end());
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ // Iterate through all defined ColorIds and seed the `color_map` with the
|
|
||||||
+ // computed values. Use a std::map rather than a base::flat_map since it has
|
|
||||||
+ // frequent inserts and could grow very large.
|
|
||||||
+ std::map<ColorId, SkColor> color_map;
|
|
||||||
+ for (const auto& color_id : color_ids) {
|
|
||||||
+ SkColor resulting_color = mixers_.front().GetResultColor(color_id);
|
|
||||||
+ DVLOG(2) << "GenerateColorMap:"
|
|
||||||
+ << " Color Id: " << ColorIdName(color_id)
|
|
||||||
+ << " Resulting Color: " << SkColorName(resulting_color);
|
|
||||||
+ color_map.insert({color_id, resulting_color});
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ // Construct the color_map_.
|
|
||||||
+ color_map_ = ColorMap(color_map.begin(), color_map.end());
|
|
||||||
|
|
||||||
-bool ColorProvider::HasMixers() const {
|
|
||||||
- return internal_->HasMixers();
|
|
||||||
+ // Clear away all associated mixers as these are no longer needed.
|
|
||||||
+ mixers_.clear();
|
|
||||||
+ first_postprocessing_mixer_ = mixers_.before_begin();
|
|
||||||
}
|
|
||||||
|
|
||||||
-void ColorProvider::SetColorForTesting(ColorId id, SkColor color) {
|
|
||||||
- internal_->SetColorForTesting(id, color); // IN-TEST
|
|
||||||
+bool ColorProvider::IsColorMapEmpty() const {
|
|
||||||
+ DCHECK(color_map_);
|
|
||||||
+ return color_map_->empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
-void ColorProvider::GenerateColorMapForTesting() {
|
|
||||||
- internal_->GenerateColorMapForTesting(); // IN-TEST
|
|
||||||
+void ColorProvider::SetColorForTesting(ColorId id, SkColor color) {
|
|
||||||
+ if (color_map_) {
|
|
||||||
+ (*color_map_)[id] = color;
|
|
||||||
+ } else {
|
|
||||||
+ if (mixers_.empty())
|
|
||||||
+ AddMixer();
|
|
||||||
+ (*std::next(first_postprocessing_mixer_, 1))[id] = {color};
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
-const ColorProvider::ColorMap& ColorProvider::color_map_for_testing() {
|
|
||||||
- return internal_->color_map_for_testing(); // IN-TEST
|
|
||||||
+const ColorMixer* ColorProvider::GetLastNonPostprocessingMixer() const {
|
|
||||||
+ const auto it = std::next(first_postprocessing_mixer_, 1);
|
|
||||||
+ return (it == mixers_.cend()) ? nullptr : &(*it);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace ui
|
|
||||||
diff -up chromium-126.0.6478.26/ui/color/color_provider.h.mee chromium-126.0.6478.26/ui/color/color_provider.h
|
|
||||||
--- chromium-126.0.6478.26/ui/color/color_provider.h.mee 2024-06-03 16:13:48.739166275 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/color/color_provider.h 2024-06-03 16:22:10.555568967 +0200
|
|
||||||
@@ -5,11 +5,12 @@
|
|
||||||
#ifndef UI_COLOR_COLOR_PROVIDER_H_
|
|
||||||
#define UI_COLOR_COLOR_PROVIDER_H_
|
|
||||||
|
|
||||||
-#include <map>
|
|
||||||
+#include <forward_list>
|
|
||||||
#include <memory>
|
|
||||||
#include <optional>
|
|
||||||
|
|
||||||
#include "base/component_export.h"
|
|
||||||
+#include "base/containers/flat_map.h"
|
|
||||||
#include "third_party/skia/include/core/SkColor.h"
|
|
||||||
#include "ui/color/color_id.h"
|
|
||||||
#include "ui/color/color_mixer.h"
|
|
||||||
@@ -24,7 +25,7 @@ namespace ui {
|
|
||||||
// TODO(pkasting): Figure out ownership model and lifetime.
|
|
||||||
class COMPONENT_EXPORT(COLOR) ColorProvider {
|
|
||||||
public:
|
|
||||||
- using ColorMap = std::map<ColorId, SkColor>;
|
|
||||||
+ using ColorMap = base::flat_map<ColorId, SkColor>;
|
|
||||||
|
|
||||||
ColorProvider();
|
|
||||||
ColorProvider(const ColorProvider&) = delete;
|
|
||||||
@@ -48,25 +49,39 @@ class COMPONENT_EXPORT(COLOR) ColorProvi
|
|
||||||
// |id|.
|
|
||||||
SkColor GetColor(ColorId id) const;
|
|
||||||
|
|
||||||
- // Returns true if mixers is not empty. It's the case for some browser
|
|
||||||
+ // Generates the `color_map_` used by this provider for all ColorIds defined
|
|
||||||
+ // by attached mixers. After the map is generated attached mixers and their
|
|
||||||
+ // associated objects are discarded. Mixers should not be added to the
|
|
||||||
+ // provider after this has been called.
|
|
||||||
+ void GenerateColorMap();
|
|
||||||
+
|
|
||||||
+ // Returns true if the color_map_ is empty. It's the case for some browser
|
|
||||||
// tests that run in single process mode but access colors that are
|
|
||||||
// initialized on renderer process launch, for example, controls in
|
|
||||||
// NaiveThemeBase and its children classes. Please see more details:
|
|
||||||
// https://crbug.com/1376775.
|
|
||||||
- bool HasMixers() const;
|
|
||||||
+ bool IsColorMapEmpty() const;
|
|
||||||
|
|
||||||
void SetColorForTesting(ColorId id, SkColor color);
|
|
||||||
- void GenerateColorMapForTesting();
|
|
||||||
- const ColorMap& color_map_for_testing();
|
|
||||||
+ const ColorMap& color_map_for_testing() { return *color_map_; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
- // ColorProviderInternal provides the actual implementation of ColorProvider.
|
|
||||||
- // It's non-movable and non-copyable so that ColorMixer's callbacks can safely
|
|
||||||
- // bind to it.
|
|
||||||
- class ColorProviderInternal;
|
|
||||||
+ using Mixers = std::forward_list<ColorMixer>;
|
|
||||||
|
|
||||||
- std::unique_ptr<ColorProviderInternal> internal_ =
|
|
||||||
- std::make_unique<ColorProviderInternal>();
|
|
||||||
+ // Returns the last mixer in the chain that is not a "postprocessing" mixer,
|
|
||||||
+ // or nullptr.
|
|
||||||
+ const ColorMixer* GetLastNonPostprocessingMixer() const;
|
|
||||||
+
|
|
||||||
+ // The entire color pipeline, in reverse order (that is, the "last" mixer is
|
|
||||||
+ // at the front).
|
|
||||||
+ Mixers mixers_;
|
|
||||||
+
|
|
||||||
+ // The first mixer in the chain that is a "postprocessing" mixer.
|
|
||||||
+ Mixers::iterator first_postprocessing_mixer_ = mixers_.before_begin();
|
|
||||||
+
|
|
||||||
+ // A cached map of ColorId => SkColor mappings for this provider. This will be
|
|
||||||
+ // generated in the call to `GenerateColorMap()`.
|
|
||||||
+ std::optional<ColorMap> color_map_;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace ui
|
|
||||||
diff -up chromium-126.0.6478.26/ui/color/color_provider_manager.cc.mee chromium-126.0.6478.26/ui/color/color_provider_manager.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/color/color_provider_manager.cc.mee 2024-05-29 18:02:31.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/color/color_provider_manager.cc 2024-06-03 16:22:10.556568986 +0200
|
|
||||||
@@ -109,6 +109,7 @@ ColorProvider* ColorProviderManager::Get
|
|
||||||
if (!initializer_list_->empty())
|
|
||||||
initializer_list_->Notify(provider.get(), key);
|
|
||||||
|
|
||||||
+ provider->GenerateColorMap();
|
|
||||||
RecordTimeSpentInitializingColorProvider(timer.Elapsed());
|
|
||||||
++num_providers_initialized_;
|
|
||||||
|
|
||||||
diff -up chromium-126.0.6478.26/ui/color/color_provider_unittest.cc.mee chromium-126.0.6478.26/ui/color/color_provider_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/color/color_provider_unittest.cc.mee 2024-05-29 18:02:31.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/color/color_provider_unittest.cc 2024-06-03 16:22:10.556568986 +0200
|
|
||||||
@@ -17,6 +17,7 @@ namespace {
|
|
||||||
// Tests that when there are no mixers, GetColor() returns a placeholder value.
|
|
||||||
TEST(ColorProviderTest, GetColorNoMixers) {
|
|
||||||
ColorProvider provider;
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
EXPECT_EQ(gfx::kPlaceholderColor, provider.GetColor(kColorTest0));
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -25,6 +26,7 @@ TEST(ColorProviderTest, GetColorNoMixers
|
|
||||||
TEST(ColorProviderTest, SingleMixer) {
|
|
||||||
ColorProvider provider;
|
|
||||||
provider.AddMixer()[kColorTest0] = {SK_ColorGREEN};
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
EXPECT_EQ(SK_ColorGREEN, provider.GetColor(kColorTest0));
|
|
||||||
EXPECT_EQ(gfx::kPlaceholderColor, provider.GetColor(kColorTest1));
|
|
||||||
}
|
|
||||||
@@ -35,6 +37,7 @@ TEST(ColorProviderTest, NonOverlappingMi
|
|
||||||
ColorProvider provider;
|
|
||||||
provider.AddMixer()[kColorTest0] = {SK_ColorGREEN};
|
|
||||||
provider.AddMixer()[kColorTest1] = {SK_ColorRED};
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
EXPECT_EQ(SK_ColorGREEN, provider.GetColor(kColorTest0));
|
|
||||||
EXPECT_EQ(SK_ColorRED, provider.GetColor(kColorTest1));
|
|
||||||
}
|
|
||||||
@@ -45,6 +48,7 @@ TEST(ColorProviderTest, OverlappingMixer
|
|
||||||
ColorProvider provider;
|
|
||||||
provider.AddMixer()[kColorTest0] = {SK_ColorGREEN};
|
|
||||||
provider.AddMixer()[kColorTest0] = {SK_ColorRED};
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
EXPECT_EQ(SK_ColorRED, provider.GetColor(kColorTest0));
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -55,6 +59,7 @@ TEST(ColorProviderTest, WithProcessing)
|
|
||||||
provider.AddMixer()[kColorTest0] = {SK_ColorBLACK};
|
|
||||||
provider.AddPostprocessingMixer()[kColorTest0] =
|
|
||||||
GetColorWithMaxContrast(FromTransformInput());
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
EXPECT_EQ(SK_ColorWHITE, provider.GetColor(kColorTest0));
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -65,6 +70,7 @@ TEST(ColorProviderTest, WithProcessingAd
|
|
||||||
provider.AddPostprocessingMixer()[kColorTest0] =
|
|
||||||
GetColorWithMaxContrast(FromTransformInput());
|
|
||||||
provider.AddMixer()[kColorTest0] = {SK_ColorBLACK};
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
EXPECT_EQ(SK_ColorWHITE, provider.GetColor(kColorTest0));
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -76,6 +82,7 @@ TEST(ColorProviderTest, Redefinition) {
|
|
||||||
mixer0[kColorTest0] = {SK_ColorBLACK};
|
|
||||||
mixer0[kColorTest1] = AlphaBlend(SK_ColorRED, kColorTest0, 0x01);
|
|
||||||
provider.AddMixer()[kColorTest0] = {SK_ColorWHITE};
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
EXPECT_EQ(SK_ColorWHITE, provider.GetColor(kColorTest0));
|
|
||||||
EXPECT_FALSE(color_utils::IsDark(provider.GetColor(kColorTest1)));
|
|
||||||
}
|
|
||||||
@@ -90,6 +97,7 @@ TEST(ColorProviderTest, RedefinitionWith
|
|
||||||
provider.AddMixer()[kColorTest0] = {SK_ColorWHITE};
|
|
||||||
provider.AddPostprocessingMixer()[kColorTest0] =
|
|
||||||
GetColorWithMaxContrast(FromTransformInput());
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
EXPECT_NE(SK_ColorWHITE, provider.GetColor(kColorTest0));
|
|
||||||
EXPECT_FALSE(color_utils::IsDark(provider.GetColor(kColorTest1)));
|
|
||||||
}
|
|
||||||
@@ -97,6 +105,7 @@ TEST(ColorProviderTest, RedefinitionWith
|
|
||||||
TEST(ColorProviderTest, SetColorForTesting) {
|
|
||||||
ColorProvider provider;
|
|
||||||
provider.SetColorForTesting(kColorTest0, SK_ColorGREEN);
|
|
||||||
+ provider.GenerateColorMap();
|
|
||||||
EXPECT_EQ(SK_ColorGREEN, provider.GetColor(kColorTest0));
|
|
||||||
EXPECT_EQ(gfx::kPlaceholderColor, provider.GetColor(kColorTest1));
|
|
||||||
provider.SetColorForTesting(kColorTest1, SK_ColorBLUE);
|
|
||||||
diff -up chromium-126.0.6478.26/ui/color/color_provider_utils.cc.mee chromium-126.0.6478.26/ui/color/color_provider_utils.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/color/color_provider_utils.cc.mee 2024-05-29 18:02:31.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/color/color_provider_utils.cc 2024-06-03 16:22:10.556568986 +0200
|
|
||||||
@@ -367,6 +367,7 @@ ColorProvider CreateColorProviderFromRen
|
|
||||||
|
|
||||||
for (const auto& table : kRendererColorIdMap)
|
|
||||||
mixer[table.color_id] = {renderer_color_map.at(table.renderer_color_id)};
|
|
||||||
+ color_provider.GenerateColorMap();
|
|
||||||
|
|
||||||
return color_provider;
|
|
||||||
}
|
|
||||||
@@ -425,6 +426,7 @@ ColorProvider CreateEmulatedForcedColors
|
|
||||||
mixer[kColorSeparator] = {kColorMidground};
|
|
||||||
CompleteDefaultNonWebNativeRendererColorIdsDefinition(mixer);
|
|
||||||
|
|
||||||
+ color_provider.GenerateColorMap();
|
|
||||||
return color_provider;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -479,6 +481,7 @@ ColorProvider CreateEmulatedForcedColors
|
|
||||||
mixer[kColorWebNativeControlSliderHovered] = {SK_ColorCYAN};
|
|
||||||
mixer[kColorWebNativeControlSliderPressed] = {SK_ColorCYAN};
|
|
||||||
|
|
||||||
+ color_provider.GenerateColorMap();
|
|
||||||
return color_provider;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -652,6 +655,7 @@ ColorProvider COMPONENT_EXPORT(COLOR)
|
|
||||||
SkColorSetRGB(0x37, 0x93, 0xFF)};
|
|
||||||
}
|
|
||||||
|
|
||||||
+ color_provider.GenerateColorMap();
|
|
||||||
return color_provider;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -up chromium-126.0.6478.26/ui/color/color_provider_utils_unittest.cc.mee chromium-126.0.6478.26/ui/color/color_provider_utils_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/color/color_provider_utils_unittest.cc.mee 2024-05-29 18:02:31.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/color/color_provider_utils_unittest.cc 2024-06-03 16:22:10.556568986 +0200
|
|
||||||
@@ -49,6 +49,7 @@ TEST_F(ColorProviderUtilsTest, RendererC
|
|
||||||
ui::ColorMixer& mixer = color_provider.AddMixer();
|
|
||||||
for (int i = ui::kUiColorsStart + 1; i < ui::kUiColorsEnd; ++i)
|
|
||||||
mixer[i] = {static_cast<SkColor>(i)};
|
|
||||||
+ color_provider.GenerateColorMap();
|
|
||||||
|
|
||||||
// The size of the RendererColorMap should match number of defined
|
|
||||||
// RendererColorIds.
|
|
||||||
@@ -60,7 +61,6 @@ TEST_F(ColorProviderUtilsTest, RendererC
|
|
||||||
// also match the number of defined RendererColorIds.
|
|
||||||
auto new_color_provider =
|
|
||||||
ui::CreateColorProviderFromRendererColorMap(renderer_color_map);
|
|
||||||
- new_color_provider.GenerateColorMapForTesting();
|
|
||||||
EXPECT_EQ(kTotaltRendererColorIds,
|
|
||||||
new_color_provider.color_map_for_testing().size());
|
|
||||||
}
|
|
||||||
@@ -73,6 +73,7 @@ TEST_F(ColorProviderUtilsTest, ColorProv
|
|
||||||
for (int i = ui::kUiColorsStart + 1; i < ui::kUiColorsEnd; ++i) {
|
|
||||||
mixer[i] = {static_cast<SkColor>(i)};
|
|
||||||
}
|
|
||||||
+ color_provider.GenerateColorMap();
|
|
||||||
|
|
||||||
// A renderer color map generated from its source provider should have
|
|
||||||
// equivalent mappings.
|
|
||||||
@@ -84,6 +85,7 @@ TEST_F(ColorProviderUtilsTest, ColorProv
|
|
||||||
// Providers with different renderer color mappings should not be flagged as
|
|
||||||
// equivalent.
|
|
||||||
ui::ColorProvider new_color_provider;
|
|
||||||
+ new_color_provider.GenerateColorMap();
|
|
||||||
EXPECT_FALSE(IsRendererColorMappingEquivalent(&new_color_provider,
|
|
||||||
renderer_color_map));
|
|
||||||
}
|
|
||||||
@@ -119,6 +121,7 @@ TEST_F(ColorProviderUtilsTest, DefaultBl
|
|
||||||
ui::ColorProvider random_color_provider;
|
|
||||||
ui::ColorMixer& mixer = random_color_provider.AddMixer();
|
|
||||||
mixer[ui::kColorPrimaryBackground] = {SK_ColorWHITE};
|
|
||||||
+ random_color_provider.GenerateColorMap();
|
|
||||||
ui::RendererColorMap random_color_map =
|
|
||||||
ui::CreateRendererColorMap(random_color_provider);
|
|
||||||
|
|
||||||
diff -up chromium-126.0.6478.26/ui/color/sys_color_mixer_unittest.cc.mee chromium-126.0.6478.26/ui/color/sys_color_mixer_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/color/sys_color_mixer_unittest.cc.mee 2024-05-29 18:02:31.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/color/sys_color_mixer_unittest.cc 2024-06-03 16:22:10.556568986 +0200
|
|
||||||
@@ -36,6 +36,7 @@ class SysColorMixerTest
|
|
||||||
|
|
||||||
AddRefColorMixer(&color_provider_, key);
|
|
||||||
AddSysColorMixer(&color_provider_, key);
|
|
||||||
+ color_provider_.GenerateColorMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
diff -up chromium-126.0.6478.26/ui/native_theme/native_theme_base.cc.mee chromium-126.0.6478.26/ui/native_theme/native_theme_base.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/native_theme/native_theme_base.cc.mee 2024-05-29 18:02:32.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/native_theme/native_theme_base.cc 2024-06-03 16:22:10.556568986 +0200
|
|
||||||
@@ -1763,9 +1763,8 @@ bool NativeThemeBase::IsColorPipelineSup
|
|
||||||
ControlColorId color_id) const {
|
|
||||||
// Color providers are not yet supported on Android so we need to check that
|
|
||||||
// the color_provider is not null here.
|
|
||||||
- if (!color_provider || !color_provider->HasMixers()) {
|
|
||||||
+ if (!color_provider || color_provider->IsColorMapEmpty())
|
|
||||||
return false;
|
|
||||||
- }
|
|
||||||
|
|
||||||
static constexpr auto kControlColorIdsSet =
|
|
||||||
base::MakeFixedFlatSet<ControlColorId>({kBorder,
|
|
||||||
diff -up chromium-126.0.6478.26/ui/native_theme/native_theme_fluent_unittest.cc.mee chromium-126.0.6478.26/ui/native_theme/native_theme_fluent_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/native_theme/native_theme_fluent_unittest.cc.mee 2024-05-29 18:02:32.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/native_theme/native_theme_fluent_unittest.cc 2024-06-03 16:22:10.556568986 +0200
|
|
||||||
@@ -134,6 +134,7 @@ TEST_P(NativeThemeFluentTest, VerifyArro
|
|
||||||
TEST_F(NativeThemeFluentTest, PaintThumbRoundedCorners) {
|
|
||||||
cc::RecordPaintCanvas canvas;
|
|
||||||
ColorProvider color_provider;
|
|
||||||
+ color_provider.GenerateColorMap();
|
|
||||||
constexpr gfx::Rect kRect(15, 100);
|
|
||||||
// `is_web_test` is `false` by default.
|
|
||||||
const NativeTheme::ScrollbarThumbExtraParams extra_params;
|
|
||||||
diff -up chromium-126.0.6478.26/ui/wm/core/shadow_controller_unittest.cc.mee chromium-126.0.6478.26/ui/wm/core/shadow_controller_unittest.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/wm/core/shadow_controller_unittest.cc.mee 2024-05-29 18:02:32.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/wm/core/shadow_controller_unittest.cc 2024-06-03 16:22:10.556568986 +0200
|
|
||||||
@@ -285,6 +285,7 @@ TEST_F(ShadowControllerTest, SetColorsMa
|
|
||||||
mixer[ui::kColorShadowValueAmbientShadowElevationTwelve] = {SK_ColorRED};
|
|
||||||
mixer[ui::kColorShadowValueKeyShadowElevationTwentyFour] = {SK_ColorGREEN};
|
|
||||||
mixer[ui::kColorShadowValueAmbientShadowElevationTwentyFour] = {SK_ColorBLUE};
|
|
||||||
+ color_provider.GenerateColorMap();
|
|
||||||
|
|
||||||
shadow->SetElevationToColorsMap(
|
|
||||||
ShadowController::GenerateShadowColorsMap(&color_provider));
|
|
@ -1,248 +0,0 @@
|
|||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/lens/lens_untrusted_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/lens/lens_untrusted_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/lens/lens_untrusted_ui.h.constexpr 2024-05-29 18:00:58.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/lens/lens_untrusted_ui.h 2024-06-02 23:51:25.539916606 +0200
|
|
||||||
@@ -47,7 +47,7 @@ class LensUntrustedUI : public Untrusted
|
|
||||||
mojo::PendingReceiver<color_change_listener::mojom::PageHandler>
|
|
||||||
receiver);
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() { return "LensUntrusted"; }
|
|
||||||
+ static const std::string GetWebUIName() { return "LensUntrusted"; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// lens::mojom::LensPageHandlerFactory:
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/lens/search_bubble_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/lens/search_bubble_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/lens/search_bubble_ui.h.constexpr 2024-05-29 18:00:58.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/lens/search_bubble_ui.h 2024-06-02 23:51:25.539916606 +0200
|
|
||||||
@@ -25,7 +25,7 @@ class SearchBubbleUI : public TopChromeW
|
|
||||||
mojo::PendingReceiver<lens::mojom::SearchBubblePageHandlerFactory>
|
|
||||||
receiver);
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() { return "LensSearchBubble"; }
|
|
||||||
+ static const std::string GetWebUIName() { return "LensSearchBubble"; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// lens::mojom::SearchBubblePageHandlerFactory
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h.constexpr 2024-05-29 18:00:59.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/commerce/shopping_insights_side_panel_ui.h 2024-06-02 23:51:25.539916606 +0200
|
|
||||||
@@ -55,7 +55,7 @@ class ShoppingInsightsSidePanelUI
|
|
||||||
mojo::PendingReceiver<
|
|
||||||
shopping_service::mojom::ShoppingServiceHandlerFactory> receiver);
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() {
|
|
||||||
+ static const std::string GetWebUIName() {
|
|
||||||
return "ShoppingInsightsSidePanel";
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/compose/compose_untrusted_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/compose/compose_untrusted_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/compose/compose_untrusted_ui.h.constexpr 2024-05-29 18:00:59.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/compose/compose_untrusted_ui.h 2024-06-02 23:51:25.540916630 +0200
|
|
||||||
@@ -58,7 +58,7 @@ class ComposeUntrustedUI
|
|
||||||
triggering_web_contents_ = web_contents->GetWeakPtr();
|
|
||||||
}
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() { return "Compose"; }
|
|
||||||
+ static const std::string GetWebUIName() { return "Compose"; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
void CreateComposeSessionUntrustedPageHandler(
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h.constexpr 2024-05-29 18:00:59.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/bookmarks/bookmarks_side_panel_ui.h 2024-06-02 23:51:25.540916630 +0200
|
|
||||||
@@ -75,7 +75,7 @@ class BookmarksSidePanelUI
|
|
||||||
commerce::ShoppingListContextMenuController*
|
|
||||||
GetShoppingListContextMenuController();
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() { return "BookmarksSidePanel"; }
|
|
||||||
+ static const std::string GetWebUIName() { return "BookmarksSidePanel"; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// side_panel::mojom::BookmarksPageHandlerFactory:
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h.constexpr 2024-06-03 18:20:28.504604071 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/companion/companion_side_panel_untrusted_ui.h 2024-06-03 18:20:44.559016497 +0200
|
|
||||||
@@ -34,7 +34,7 @@ class CompanionSidePanelUntrustedUI
|
|
||||||
// Gets a weak pointer to this object.
|
|
||||||
base::WeakPtr<CompanionSidePanelUntrustedUI> GetWeakPtr();
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() {
|
|
||||||
+ static const std::string GetWebUIName() {
|
|
||||||
return "CompanionSidePanelUntrusted";
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h.constexpr 2024-06-03 18:13:52.741282949 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_ui.h 2024-06-03 18:14:34.718442888 +0200
|
|
||||||
@@ -111,7 +111,7 @@ class CustomizeChromeUI
|
|
||||||
side_panel::customize_chrome::mojom::CustomizeToolbarHandlerFactory>
|
|
||||||
receiver);
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() { return "CustomizeChrome"; }
|
|
||||||
+ static const std::string GetWebUIName() { return "CustomizeChrome"; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// side_panel::mojom::CustomizeChromePageHandlerFactory
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h.constexpr 2024-05-29 18:00:59.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/history_clusters/history_clusters_side_panel_ui.h 2024-06-02 23:51:25.540916630 +0200
|
|
||||||
@@ -70,7 +70,7 @@ class HistoryClustersSidePanelUI : publi
|
|
||||||
void DidFinishNavigation(
|
|
||||||
content::NavigationHandle* navigation_handle) override;
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() {
|
|
||||||
+ static const std::string GetWebUIName() {
|
|
||||||
return "HistoryClustersSidePanel";
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h.constexpr 2024-05-29 18:00:59.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/performance_controls/performance_side_panel_ui.h 2024-06-02 23:51:25.540916630 +0200
|
|
||||||
@@ -41,7 +41,7 @@ class PerformanceSidePanelUI
|
|
||||||
mojo::PendingReceiver<color_change_listener::mojom::PageHandler>
|
|
||||||
pending_receiver);
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() { return "PerformanceSidePanel"; }
|
|
||||||
+ static const std::string GetWebUIName() { return "PerformanceSidePanel"; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// side_panel::mojom::PerformancePageHandlerFactory:
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h.constexpr 2024-05-29 18:01:00.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.h 2024-06-02 23:51:25.541916654 +0200
|
|
||||||
@@ -55,7 +55,7 @@ class ReadAnythingUntrustedUI
|
|
||||||
mojo::PendingReceiver<read_anything::mojom::UntrustedPageHandlerFactory>
|
|
||||||
receiver);
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() {
|
|
||||||
+ static const std::string GetWebUIName() {
|
|
||||||
return "ReadAnythingUntrusted";
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h.constexpr 2024-05-29 18:01:00.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/reading_list/reading_list_ui.h 2024-06-02 23:51:25.541916654 +0200
|
|
||||||
@@ -58,7 +58,7 @@ class ReadingListUI : public TopChromeWe
|
|
||||||
|
|
||||||
void SetActiveTabURL(const GURL& url);
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() { return "ReadingList"; }
|
|
||||||
+ static const std::string GetWebUIName() { return "ReadingList"; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// reading_list::mojom::PageHandlerFactory:
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h.constexpr 2024-05-29 18:01:00.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/side_panel/user_notes/user_notes_side_panel_ui.h 2024-06-02 23:51:25.541916654 +0200
|
|
||||||
@@ -35,7 +35,7 @@ class UserNotesSidePanelUI
|
|
||||||
|
|
||||||
void set_browser(Browser* browser) { browser_ = browser; }
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() { return "UserNotesSidePanel"; }
|
|
||||||
+ static const std::string GetWebUIName() { return "UserNotesSidePanel"; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// user_notes::mojom::UserNotesPageHandlerFactory
|
|
||||||
diff -up chromium-126.0.6478.26/chrome/browser/ui/webui/tab_search/tab_search_ui.h.constexpr chromium-126.0.6478.26/chrome/browser/ui/webui/tab_search/tab_search_ui.h
|
|
||||||
--- chromium-126.0.6478.26/chrome/browser/ui/webui/tab_search/tab_search_ui.h.constexpr 2024-05-29 18:01:00.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/browser/ui/webui/tab_search/tab_search_ui.h 2024-06-02 23:51:25.542916677 +0200
|
|
||||||
@@ -58,7 +58,7 @@ class TabSearchUI : public TopChromeWebU
|
|
||||||
return page_handler_.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
- static constexpr std::string GetWebUIName() { return "TabSearch"; }
|
|
||||||
+ static const std::string GetWebUIName() { return "TabSearch"; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// tab_search::mojom::PageHandlerFactory
|
|
||||||
diff -up chromium-126.0.6478.26/components/autofill/core/browser/data_model/autofill_i18n_api.h.constexpr chromium-126.0.6478.26/components/autofill/core/browser/data_model/autofill_i18n_api.h
|
|
||||||
--- chromium-126.0.6478.26/components/autofill/core/browser/data_model/autofill_i18n_api.h.constexpr 2024-05-29 18:01:05.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/components/autofill/core/browser/data_model/autofill_i18n_api.h 2024-06-02 23:51:25.542916677 +0200
|
|
||||||
@@ -16,8 +16,8 @@ namespace autofill::i18n_model_definitio
|
|
||||||
// Country code that represents autofill's legacy address hierarchy model as
|
|
||||||
// stored `kAutofillModelRules`. As a workaround for GCC we declare the
|
|
||||||
// std::string constexpr first.
|
|
||||||
-constexpr inline std::string kLegacyHierarchyCountryCodeString{"XX"};
|
|
||||||
-constexpr AddressCountryCode kLegacyHierarchyCountryCode =
|
|
||||||
+const inline std::string kLegacyHierarchyCountryCodeString{"XX"};
|
|
||||||
+const AddressCountryCode kLegacyHierarchyCountryCode =
|
|
||||||
AddressCountryCode(kLegacyHierarchyCountryCodeString);
|
|
||||||
|
|
||||||
// Creates an instance of the address hierarchy model corresponding to the
|
|
||||||
diff -up chromium-126.0.6478.26/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py.constexpr chromium-126.0.6478.26/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py
|
|
||||||
--- chromium-126.0.6478.26/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py.constexpr 2024-05-29 18:01:05.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/components/autofill/core/browser/form_parsing/transpile_regex_patterns.py 2024-06-02 23:51:36.322172739 +0200
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/usr/bin/env python
|
|
||||||
+#!/opt/rh/rh-python38/root/usr/bin/python
|
|
||||||
|
|
||||||
# Copyright 2020 The Chromium Authors
|
|
||||||
# Use of this source code is governed by a BSD-style license that can be
|
|
||||||
@@ -54,7 +54,7 @@ def generate_matching_pattern_equals(nam
|
|
||||||
yield '// Checks if all the matching patterns for the given PatternSources'
|
|
||||||
yield '// and language are the same - meaning that computing predictions for'
|
|
||||||
yield '// both is unnecessary, since it will yield the same result.'
|
|
||||||
- yield 'constexpr bool AreMatchingPatternsEqualImpl(PatternSource a,'
|
|
||||||
+ yield 'const bool AreMatchingPatternsEqualImpl(PatternSource a,'
|
|
||||||
yield ' PatternSource b,'
|
|
||||||
yield ' LanguageCode lang_code) {'
|
|
||||||
yield ' if (a == b) {'
|
|
||||||
diff -up chromium-126.0.6478.26/components/autofill/core/browser/metrics/log_event.h.constexpr chromium-126.0.6478.26/components/autofill/core/browser/metrics/log_event.h
|
|
||||||
--- chromium-126.0.6478.26/components/autofill/core/browser/metrics/log_event.h.constexpr 2024-05-29 18:01:05.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/components/autofill/core/browser/metrics/log_event.h 2024-06-02 23:51:25.542916677 +0200
|
|
||||||
@@ -57,7 +57,7 @@ struct IsRequired {
|
|
||||||
// This function is not defined and consteval. Therefore, any evaluation will
|
|
||||||
// fail and fail at compile time.
|
|
||||||
template <typename T>
|
|
||||||
- consteval operator T(); // NOLINT
|
|
||||||
+ operator T(); // NOLINT
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace internal
|
|
||||||
diff -up chromium-126.0.6478.26/components/history/core/browser/history_types.h.constexpr chromium-126.0.6478.26/components/history/core/browser/history_types.h
|
|
||||||
--- chromium-126.0.6478.26/components/history/core/browser/history_types.h.constexpr 2024-05-29 18:01:06.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/components/history/core/browser/history_types.h 2024-06-02 23:51:25.542916677 +0200
|
|
||||||
@@ -70,7 +70,7 @@ constexpr VisitedLinkID kInvalidVisitedL
|
|
||||||
typedef std::map<VisitID, VisitSource> VisitSourceMap;
|
|
||||||
|
|
||||||
// Constant used to represent that no app_id is used for matching.
|
|
||||||
-inline constexpr std::optional<std::string> kNoAppIdFilter = std::nullopt;
|
|
||||||
+inline const std::optional<std::string> kNoAppIdFilter = std::nullopt;
|
|
||||||
|
|
||||||
// VisitRow -------------------------------------------------------------------
|
|
||||||
|
|
||||||
diff -up chromium-126.0.6478.26/components/omnibox/browser/on_device_tail_model_service.cc.constexpr chromium-126.0.6478.26/components/omnibox/browser/on_device_tail_model_service.cc
|
|
||||||
--- chromium-126.0.6478.26/components/omnibox/browser/on_device_tail_model_service.cc.constexpr 2024-05-29 18:01:07.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/components/omnibox/browser/on_device_tail_model_service.cc 2024-06-02 23:51:25.543916702 +0200
|
|
||||||
@@ -30,7 +30,7 @@ namespace {
|
|
||||||
// The maximum idle time before the model executor is unloaded from memory.
|
|
||||||
constexpr base::TimeDelta kMaxExecutorIdleSeconds = base::Seconds(60);
|
|
||||||
// Constants for TFlite model validation.
|
|
||||||
-constexpr std::string kTestPrefix = "face";
|
|
||||||
+const std::string kTestPrefix = "face";
|
|
||||||
constexpr std::string_view kModelValidationSwitchName =
|
|
||||||
"omnibox-on-device-tail-model-validation";
|
|
||||||
|
|
||||||
diff -up chromium-126.0.6478.26/services/network/shared_dictionary/simple_url_pattern_matcher.cc.constexpr chromium-126.0.6478.26/services/network/shared_dictionary/simple_url_pattern_matcher.cc
|
|
||||||
--- chromium-126.0.6478.26/services/network/shared_dictionary/simple_url_pattern_matcher.cc.constexpr 2024-05-29 18:01:36.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/services/network/shared_dictionary/simple_url_pattern_matcher.cc 2024-06-02 23:51:25.543916702 +0200
|
|
||||||
@@ -28,17 +28,17 @@ namespace network {
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
// https://urlpattern.spec.whatwg.org/#default-options
|
|
||||||
-constexpr liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
|
|
||||||
+const liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
|
|
||||||
.prefix_list = "",
|
|
||||||
.sensitive = true,
|
|
||||||
.strict = true};
|
|
||||||
// https://urlpattern.spec.whatwg.org/#hostname-options
|
|
||||||
-constexpr liburlpattern::Options kHostnameOptions = {.delimiter_list = ".",
|
|
||||||
+const liburlpattern::Options kHostnameOptions = {.delimiter_list = ".",
|
|
||||||
.prefix_list = "",
|
|
||||||
.sensitive = true,
|
|
||||||
.strict = true};
|
|
||||||
// https://urlpattern.spec.whatwg.org/#pathname-options
|
|
||||||
-constexpr liburlpattern::Options kPathnameOptions = {.delimiter_list = "/",
|
|
||||||
+const liburlpattern::Options kPathnameOptions = {.delimiter_list = "/",
|
|
||||||
.prefix_list = "/",
|
|
||||||
.sensitive = true,
|
|
||||||
.strict = true};
|
|
@ -1,47 +0,0 @@
|
|||||||
diff -up chromium-126.0.6478.26/third_party/wayland/src/cursor/os-compatibility.c.el7-memfd-fcntl-include chromium-126.0.6478.26/third_party/wayland/src/cursor/os-compatibility.c
|
|
||||||
--- chromium-126.0.6478.26/third_party/wayland/src/cursor/os-compatibility.c.el7-memfd-fcntl-include 2024-05-29 18:03:08.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/third_party/wayland/src/cursor/os-compatibility.c 2024-06-02 15:13:21.636638066 +0200
|
|
||||||
@@ -29,7 +29,8 @@
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
-#include <fcntl.h>
|
|
||||||
+#include <linux/fcntl.h> // for F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
|
|
||||||
+#include <linux/memfd.h> // for MFD_CLOEXEC
|
|
||||||
#include <errno.h>
|
|
||||||
#include <signal.h>
|
|
||||||
#include <string.h>
|
|
||||||
diff -up chromium-126.0.6478.26/third_party/wayland/src/src/wayland-shm.c.el7-memfd-fcntl-include chromium-126.0.6478.26/third_party/wayland/src/src/wayland-shm.c
|
|
||||||
--- chromium-126.0.6478.26/third_party/wayland/src/src/wayland-shm.c.el7-memfd-fcntl-include 2024-05-29 18:03:08.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/third_party/wayland/src/src/wayland-shm.c 2024-06-02 15:13:21.635638045 +0200
|
|
||||||
@@ -44,7 +44,7 @@
|
|
||||||
#include <signal.h>
|
|
||||||
#include <pthread.h>
|
|
||||||
#include <errno.h>
|
|
||||||
-#include <fcntl.h>
|
|
||||||
+#include <linux/fcntl.h>
|
|
||||||
|
|
||||||
#include "wayland-os.h"
|
|
||||||
#include "wayland-util.h"
|
|
||||||
diff -up chromium-126.0.6478.26/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.el7-memfd-fcntl-include chromium-126.0.6478.26/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc
|
|
||||||
--- chromium-126.0.6478.26/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.el7-memfd-fcntl-include 2024-06-02 15:13:21.636638066 +0200
|
|
||||||
+++ chromium-126.0.6478.26/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc 2024-06-02 15:16:18.202679909 +0200
|
|
||||||
@@ -5,6 +5,7 @@
|
|
||||||
#include "ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.h"
|
|
||||||
|
|
||||||
#include <sys/mman.h>
|
|
||||||
+#include <linux/memfd.h>
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <string_view>
|
|
||||||
diff -up chromium-126.0.6478.26/v8/src/base/platform/platform-posix.cc.el7-memfd-fcntl-include chromium-126.0.6478.26/v8/src/base/platform/platform-posix.cc
|
|
||||||
--- chromium-126.0.6478.26/v8/src/base/platform/platform-posix.cc.el7-memfd-fcntl-include 2024-05-29 18:03:35.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/v8/src/base/platform/platform-posix.cc 2024-06-02 15:13:21.635638045 +0200
|
|
||||||
@@ -60,6 +60,7 @@
|
|
||||||
|
|
||||||
#if V8_OS_LINUX
|
|
||||||
#include <sys/prctl.h> // for prctl
|
|
||||||
+#include <linux/memfd.h> // for MFD_CLOEXEC
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(V8_OS_FUCHSIA)
|
|
@ -1,12 +0,0 @@
|
|||||||
diff -up chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h.me chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h
|
|
||||||
--- chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h.me 2024-06-03 15:01:54.724207324 +0200
|
|
||||||
+++ chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h 2024-06-03 14:58:16.244189794 +0200
|
|
||||||
@@ -144,7 +144,7 @@ class QUICHE_NO_EXPORT QuicIntervalDeque
|
|
||||||
// for efficient std::lower_bound() calls.
|
|
||||||
class QUICHE_NO_EXPORT Iterator {
|
|
||||||
public:
|
|
||||||
- using iterator_category = std::random_access_iterator_tag;
|
|
||||||
+ using iterator_category = std::forward_iterator_tag;
|
|
||||||
using value_type = T;
|
|
||||||
using difference_type = std::ptrdiff_t;
|
|
||||||
using pointer = T*;
|
|
File diff suppressed because it is too large
Load Diff
@ -1,137 +0,0 @@
|
|||||||
diff -up chromium-126.0.6478.26/printing/backend/cups_helper.cc.el7cups chromium-126.0.6478.26/printing/backend/cups_helper.cc
|
|
||||||
--- chromium-126.0.6478.26/printing/backend/cups_helper.cc.el7cups 2024-06-03 17:16:32.197509643 +0200
|
|
||||||
+++ chromium-126.0.6478.26/printing/backend/cups_helper.cc 2024-06-03 17:32:23.028376333 +0200
|
|
||||||
@@ -41,18 +41,6 @@ namespace printing {
|
|
||||||
// This section contains helper code for PPD parsing for semantic capabilities.
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
-// Function availability can be tested by checking whether its address is not
|
|
||||||
-// nullptr. Weak symbols remove the need for platform specific build flags and
|
|
||||||
-// allow for appropriate CUPS usage on platforms with non-uniform version
|
|
||||||
-// support, namely Linux.
|
|
||||||
-#define WEAK_CUPS_FN(x) extern "C" __attribute__((weak)) decltype(x) x
|
|
||||||
-
|
|
||||||
-WEAK_CUPS_FN(httpConnect2);
|
|
||||||
-
|
|
||||||
-// Timeout for establishing a CUPS connection. It is expected that cupsd is
|
|
||||||
-// able to start and respond on all systems within this duration.
|
|
||||||
-constexpr base::TimeDelta kCupsTimeout = base::Seconds(5);
|
|
||||||
-
|
|
||||||
// CUPS default max copies value (parsed from kCupsMaxCopies PPD attribute).
|
|
||||||
constexpr int32_t kDefaultMaxCopies = 9999;
|
|
||||||
constexpr char kCupsMaxCopies[] = "cupsMaxCopies";
|
|
||||||
@@ -761,8 +749,7 @@ const int kDefaultIPPServerPort = 631;
|
|
||||||
// Helper wrapper around http_t structure, with connection and cleanup
|
|
||||||
// functionality.
|
|
||||||
HttpConnectionCUPS::HttpConnectionCUPS(const GURL& print_server_url,
|
|
||||||
- http_encryption_t encryption,
|
|
||||||
- bool blocking) {
|
|
||||||
+ http_encryption_t encryption) {
|
|
||||||
// If we have an empty url, use default print server.
|
|
||||||
if (print_server_url.is_empty())
|
|
||||||
return;
|
|
||||||
@@ -771,31 +758,22 @@ HttpConnectionCUPS::HttpConnectionCUPS(c
|
|
||||||
if (port == url::PORT_UNSPECIFIED)
|
|
||||||
port = kDefaultIPPServerPort;
|
|
||||||
|
|
||||||
- if (httpConnect2) {
|
|
||||||
- http_.reset(httpConnect2(print_server_url.host().c_str(), port,
|
|
||||||
- /*addrlist=*/nullptr, AF_UNSPEC, encryption,
|
|
||||||
- blocking ? 1 : 0, kCupsTimeout.InMilliseconds(),
|
|
||||||
- /*cancel=*/nullptr));
|
|
||||||
- } else {
|
|
||||||
- // Continue to use deprecated CUPS calls because because older Linux
|
|
||||||
- // distribution such as RHEL/CentOS 7 are shipped with CUPS 1.6.
|
|
||||||
- http_.reset(
|
|
||||||
+ http_.reset(
|
|
||||||
httpConnectEncrypt(print_server_url.host().c_str(), port, encryption));
|
|
||||||
- }
|
|
||||||
|
|
||||||
if (!http_) {
|
|
||||||
LOG(ERROR) << "CP_CUPS: Failed connecting to print server: "
|
|
||||||
<< print_server_url;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- if (!httpConnect2) {
|
|
||||||
- httpBlocking(http(), blocking ? 1 : 0);
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
|
|
||||||
HttpConnectionCUPS::~HttpConnectionCUPS() = default;
|
|
||||||
|
|
||||||
+void HttpConnectionCUPS::SetBlocking(bool blocking) {
|
|
||||||
+ httpBlocking(http(), blocking ? 1 : 0);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
http_t* HttpConnectionCUPS::http() {
|
|
||||||
return http_.get();
|
|
||||||
}
|
|
||||||
diff -up chromium-126.0.6478.26/printing/backend/cups_helper.h.el7cups chromium-126.0.6478.26/printing/backend/cups_helper.h
|
|
||||||
--- chromium-126.0.6478.26/printing/backend/cups_helper.h.el7cups 2024-06-03 17:23:35.923307842 +0200
|
|
||||||
+++ chromium-126.0.6478.26/printing/backend/cups_helper.h 2024-06-03 17:25:50.887855460 +0200
|
|
||||||
@@ -36,10 +36,11 @@ constexpr cups_ptype_t kDestinationsFilt
|
|
||||||
class COMPONENT_EXPORT(PRINT_BACKEND) HttpConnectionCUPS {
|
|
||||||
public:
|
|
||||||
HttpConnectionCUPS(const GURL& print_server_url,
|
|
||||||
- http_encryption_t encryption,
|
|
||||||
- bool blocking);
|
|
||||||
+ http_encryption_t encryption);
|
|
||||||
~HttpConnectionCUPS();
|
|
||||||
|
|
||||||
+ void SetBlocking(bool blocking);
|
|
||||||
+
|
|
||||||
http_t* http();
|
|
||||||
|
|
||||||
private:
|
|
||||||
diff -up chromium-126.0.6478.26/printing/backend/print_backend_cups.cc.el7cups chromium-126.0.6478.26/printing/backend/print_backend_cups.cc
|
|
||||||
--- chromium-126.0.6478.26/printing/backend/print_backend_cups.cc.el7cups 2024-06-03 17:26:44.607871149 +0200
|
|
||||||
+++ chromium-126.0.6478.26/printing/backend/print_backend_cups.cc 2024-06-03 17:29:15.889810651 +0200
|
|
||||||
@@ -149,7 +149,7 @@ mojom::ResultCode PrintBackendCUPS::Enum
|
|
||||||
// not showing as available. Using cupsEnumDests() allows us to do our own
|
|
||||||
// filtering should any duplicates occur.
|
|
||||||
CupsDestsData dests_data = {0, nullptr};
|
|
||||||
- ipp_status_t last_error = IPP_STATUS_OK;
|
|
||||||
+ ipp_status_t last_error = IPP_OK;
|
|
||||||
if (print_server_url_.is_empty()) {
|
|
||||||
VLOG(1) << "CUPS: using cupsEnumDests to enumerate printers";
|
|
||||||
if (!cupsEnumDests(CUPS_DEST_FLAGS_NONE, kCupsTimeoutMs,
|
|
||||||
@@ -176,7 +176,7 @@ mojom::ResultCode PrintBackendCUPS::Enum
|
|
||||||
// no printer drivers installed. Rely upon CUPS error code to distinguish
|
|
||||||
// between these.
|
|
||||||
DCHECK(!dests_data.dests);
|
|
||||||
- if (last_error != IPP_STATUS_ERROR_NOT_FOUND) {
|
|
||||||
+ if (last_error != IPP_NOT_FOUND) {
|
|
||||||
VLOG(1) << "CUPS: Error getting printers from CUPS server"
|
|
||||||
<< ", server: " << print_server_url_
|
|
||||||
<< ", error: " << static_cast<int>(last_error) << " - "
|
|
||||||
@@ -311,7 +311,8 @@ int PrintBackendCUPS::GetDests(cups_dest
|
|
||||||
if (print_server_url_.is_empty())
|
|
||||||
return cupsGetDests2(CUPS_HTTP_DEFAULT, dests);
|
|
||||||
|
|
||||||
- HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
|
|
||||||
+ HttpConnectionCUPS http(print_server_url_, cups_encryption_);
|
|
||||||
+ http.SetBlocking(blocking_);
|
|
||||||
|
|
||||||
// This call must be made in the same scope as `http` because its destructor
|
|
||||||
// closes the connection.
|
|
||||||
@@ -337,7 +338,8 @@ base::FilePath PrintBackendCUPS::GetPPD(
|
|
||||||
// connection will timeout after 10 seconds of no data period. And it will
|
|
||||||
// return the same way as if data was completely and successfully
|
|
||||||
// downloaded.
|
|
||||||
- HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
|
|
||||||
+ HttpConnectionCUPS http(print_server_url_, cups_encryption_);
|
|
||||||
+ http.SetBlocking(blocking_);
|
|
||||||
ppd_file_path = cupsGetPPD2(http.http(), name);
|
|
||||||
// Check if the get full PPD, since non-blocking call may simply return
|
|
||||||
// normally after timeout expired.
|
|
||||||
@@ -373,7 +375,8 @@ ScopedDestination PrintBackendCUPS::GetN
|
|
||||||
// Use default (local) print server.
|
|
||||||
dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, printer_name.c_str(), nullptr);
|
|
||||||
} else {
|
|
||||||
- HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
|
|
||||||
+ HttpConnectionCUPS http(print_server_url_, cups_encryption_);
|
|
||||||
+ http.SetBlocking(blocking_);
|
|
||||||
dest = cupsGetNamedDest(http.http(), printer_name.c_str(), nullptr);
|
|
||||||
}
|
|
||||||
return ScopedDestination(dest);
|
|
File diff suppressed because it is too large
Load Diff
@ -1,96 +0,0 @@
|
|||||||
diff -up chromium-126.0.6478.26/components/visited_url_ranking/internal/visited_url_ranking_service_impl.cc.std_variant chromium-126.0.6478.26/components/visited_url_ranking/internal/visited_url_ranking_service_impl.cc
|
|
||||||
--- chromium-126.0.6478.26/components/visited_url_ranking/internal/visited_url_ranking_service_impl.cc.std_variant 2024-06-04 12:31:10.602282813 +0200
|
|
||||||
+++ chromium-126.0.6478.26/components/visited_url_ranking/internal/visited_url_ranking_service_impl.cc 2024-06-04 13:21:50.121345183 +0200
|
|
||||||
@@ -7,7 +7,6 @@
|
|
||||||
#include <map>
|
|
||||||
#include <memory>
|
|
||||||
#include <queue>
|
|
||||||
-#include <variant>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include "base/barrier_callback.h"
|
|
||||||
@@ -41,20 +40,16 @@ std::vector<URLVisitAggregate> ComputeUR
|
|
||||||
for (std::pair<const URLMergeKey, URLVisitAggregate::URLVisitVariant>&
|
|
||||||
url_data : result.data) {
|
|
||||||
URLVisitAggregate& aggregate = url_visit_map[url_data.first];
|
|
||||||
- std::visit(
|
|
||||||
- URLVisitVariantHelper{
|
|
||||||
- [&aggregate](URLVisitAggregate::TabData& tab_data) {
|
|
||||||
- aggregate.fetcher_data_map.emplace(
|
|
||||||
- tab_data.last_active_tab.session_name.has_value()
|
|
||||||
- ? Fetcher::kSession
|
|
||||||
- : Fetcher::kTabModel,
|
|
||||||
- std::move(tab_data));
|
|
||||||
- },
|
|
||||||
- [&aggregate](URLVisitAggregate::HistoryData& history_data) {
|
|
||||||
- aggregate.fetcher_data_map.emplace(Fetcher::kHistory,
|
|
||||||
- std::move(history_data));
|
|
||||||
- }},
|
|
||||||
- url_data.second);
|
|
||||||
+ if (std::holds_alternative<URLVisitAggregate::TabData>(url_data.second)) {
|
|
||||||
+ auto& tab_data = std::get<URLVisitAggregate::TabData>(url_data.second);
|
|
||||||
+ aggregate.fetcher_data_map.emplace(
|
|
||||||
+ tab_data.last_active_tab.session_name.has_value()
|
|
||||||
+ ? Fetcher::kSession
|
|
||||||
+ : Fetcher::kTabModel,
|
|
||||||
+ std::move(tab_data));
|
|
||||||
+ }
|
|
||||||
+ // TODO(crbug.com/330580109): Add support for history fetcher and
|
|
||||||
+ // associated aggregate data type.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
diff -up chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.cc.std_variant chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.cc
|
|
||||||
--- chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.cc.std_variant 2024-06-04 12:29:20.593240495 +0200
|
|
||||||
+++ chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.cc 2024-06-04 12:29:57.253921979 +0200
|
|
||||||
@@ -37,14 +37,12 @@ URLVisitAggregate& URLVisitAggregate::op
|
|
||||||
std::set<const GURL*> URLVisitAggregate::GetAssociatedURLs() const {
|
|
||||||
std::set<const GURL*> urls = {};
|
|
||||||
for (const auto& fetcher_entry : fetcher_data_map) {
|
|
||||||
- std::visit(URLVisitVariantHelper{
|
|
||||||
- [&urls](const URLVisitAggregate::TabData& tab_data) {
|
|
||||||
- urls.insert(&tab_data.last_active_tab.visit.url);
|
|
||||||
- },
|
|
||||||
- [&urls](const URLVisitAggregate::HistoryData& history_data) {
|
|
||||||
- urls.insert(&history_data.last_visited.url_row.url());
|
|
||||||
- }},
|
|
||||||
- fetcher_entry.second);
|
|
||||||
+ if (std::holds_alternative<URLVisitAggregate::TabData>(
|
|
||||||
+ fetcher_entry.second)) {
|
|
||||||
+ const auto& tab_data =
|
|
||||||
+ std::get<URLVisitAggregate::TabData>(fetcher_entry.second);
|
|
||||||
+ urls.insert(&tab_data.last_active_tab.visit.url);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
return urls;
|
|
||||||
}
|
|
||||||
diff -up chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.h.std_variant chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.h
|
|
||||||
--- chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.h.std_variant 2024-06-04 11:05:39.505847241 +0200
|
|
||||||
+++ chromium-126.0.6478.26/components/visited_url_ranking/public/url_visit.h 2024-06-04 13:22:26.518007748 +0200
|
|
||||||
@@ -8,6 +8,7 @@
|
|
||||||
#include <memory>
|
|
||||||
#include <optional>
|
|
||||||
#include <set>
|
|
||||||
+#include <variant>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include "base/functional/callback.h"
|
|
||||||
@@ -140,18 +141,6 @@ struct URLVisitAggregate {
|
|
||||||
bool bookmarked = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
-// Helper to visit each variant of URLVisitVariant.
|
|
||||||
-// Usage:
|
|
||||||
-// std::visit(URLVisitVariantHelper{
|
|
||||||
-// [](Variant1& variant1) {},
|
|
||||||
-// [](Variant2& variant1) {},
|
|
||||||
-// [](Variant3& variant1) {},
|
|
||||||
-// variant_data);
|
|
||||||
-template <class... Ts>
|
|
||||||
-struct URLVisitVariantHelper : Ts... {
|
|
||||||
- using Ts::operator()...;
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
} // namespace visited_url_ranking
|
|
||||||
|
|
||||||
#endif // COMPONENTS_VISITED_URL_RANKING_PUBLIC_URL_VISIT_H_
|
|
@ -1,21 +0,0 @@
|
|||||||
diff -up chromium-126.0.6478.26/chrome/renderer/accessibility/read_anything_app_model.cc.stdformat chromium-126.0.6478.26/chrome/renderer/accessibility/read_anything_app_model.cc
|
|
||||||
--- chromium-126.0.6478.26/chrome/renderer/accessibility/read_anything_app_model.cc.stdformat 2024-06-03 22:52:18.596936767 +0200
|
|
||||||
+++ chromium-126.0.6478.26/chrome/renderer/accessibility/read_anything_app_model.cc 2024-06-03 23:26:46.024734453 +0200
|
|
||||||
@@ -1059,7 +1059,7 @@ std::string ReadAnythingAppModel::GetHtm
|
|
||||||
int32_t hierarchical_level =
|
|
||||||
ax_node->GetIntAttribute(ax::mojom::IntAttribute::kHierarchicalLevel);
|
|
||||||
if (hierarchical_level) {
|
|
||||||
- return std::format("h{}", hierarchical_level);
|
|
||||||
+ return std::string("h" + std::to_string(hierarchical_level));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1159,7 +1159,7 @@ std::string ReadAnythingAppModel::GetHea
|
|
||||||
int32_t hierarchical_level =
|
|
||||||
ax_node->GetIntAttribute(ax::mojom::IntAttribute::kHierarchicalLevel);
|
|
||||||
if (hierarchical_level) {
|
|
||||||
- return std::format("h{}", hierarchical_level);
|
|
||||||
+ return std::string("h" + std::to_string(hierarchical_level));
|
|
||||||
}
|
|
||||||
return html_tag;
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
diff -up chromium-126.0.6478.26/components/plus_addresses/plus_address_service.cc.el7-type-alias chromium-126.0.6478.26/components/plus_addresses/plus_address_service.cc
|
|
||||||
--- chromium-126.0.6478.26/components/plus_addresses/plus_address_service.cc.el7-type-alias 2024-05-29 18:01:08.000000000 +0200
|
|
||||||
+++ chromium-126.0.6478.26/components/plus_addresses/plus_address_service.cc 2024-06-02 17:32:29.917153207 +0200
|
|
||||||
@@ -196,7 +196,7 @@ std::vector<Suggestion> PlusAddressServi
|
|
||||||
bool is_off_the_record,
|
|
||||||
std::u16string_view focused_field_value,
|
|
||||||
autofill::AutofillSuggestionTriggerSource trigger_source) {
|
|
||||||
- using enum autofill::AutofillSuggestionTriggerSource;
|
|
||||||
+ using autofill::AutofillSuggestionTriggerSource;
|
|
||||||
if (!SupportsPlusAddresses(last_committed_primary_main_frame_origin,
|
|
||||||
is_off_the_record)) {
|
|
||||||
return {};
|
|
||||||
@@ -207,7 +207,7 @@ std::vector<Suggestion> PlusAddressServi
|
|
||||||
std::optional<std::string> maybe_address =
|
|
||||||
GetPlusAddress(OriginToFacet(last_committed_primary_main_frame_origin));
|
|
||||||
if (maybe_address == std::nullopt) {
|
|
||||||
- if (trigger_source != kManualFallbackPlusAddresses &&
|
|
||||||
+ if (trigger_source != AutofillSuggestionTriggerSource::kManualFallbackPlusAddresses &&
|
|
||||||
!normalized_field_value.empty()) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
@@ -222,7 +222,7 @@ std::vector<Suggestion> PlusAddressServi
|
|
||||||
|
|
||||||
// Only suggest filling a plus address whose prefix matches the field's value.
|
|
||||||
std::u16string address = base::UTF8ToUTF16(*maybe_address);
|
|
||||||
- if (trigger_source != kManualFallbackPlusAddresses &&
|
|
||||||
+ if (trigger_source != AutofillSuggestionTriggerSource::kManualFallbackPlusAddresses &&
|
|
||||||
!address.starts_with(normalized_field_value)) {
|
|
||||||
return {};
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
diff -up chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc.erase-fix chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc
|
|
||||||
--- chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc.erase-fix 2022-02-03 19:16:57.784979831 +0000
|
|
||||||
+++ chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc 2022-02-03 19:17:12.983633352 +0000
|
|
||||||
@@ -19,14 +19,14 @@ namespace {
|
|
||||||
// Remove any custom editor "prefixes" from the property name. The prefixes must
|
|
||||||
// not be valid identifier characters.
|
|
||||||
void StripPrefix(std::string& property_name) {
|
|
||||||
- auto cur = property_name.cbegin();
|
|
||||||
+ auto cur = property_name.begin();
|
|
||||||
for (; cur < property_name.cend(); ++cur) {
|
|
||||||
if ((*cur >= 'A' && *cur <= 'Z') || (*cur >= 'a' && *cur <= 'z') ||
|
|
||||||
*cur == '_') {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- property_name.erase(property_name.cbegin(), cur);
|
|
||||||
+ property_name.erase(property_name.begin(), cur);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace
|
|
Loading…
Reference in new issue