Overview

Request 5810 (accepted)

No description set
Submit package home:Kiel...es:Extra / chromium-...eg-extra to package Extra / chromium-ffmpeg-extra

chromium-ffmpeg-extra.changes Changed
x
 
1
@@ -1,4 +1,177 @@
2
 -------------------------------------------------------------------
3
+Sun Jul 16 07:54:55 UTC 2023 - Carsten Ziepke <kieltux@gmail.com>
4
+
5
+- Rebase chromium 114.0.5735.198 for use as chromium-ffmpeg-extra
6
+
7
+-------------------------------------------------------------------
8
+Tue Jun 27 07:39:29 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
9
+
10
+- Chromium 114.0.5735.198 (boo#1212755):
11
+  * CVE-2023-3420: Type Confusion in V8
12
+  * CVE-2023-3421: Use after free in Media
13
+  * CVE-2023-3422: Use after free in Guest View
14
+
15
+-------------------------------------------------------------------
16
+Sun Jun 25 09:54:37 UTC 2023 - Callum Farmer <gmbr3@opensuse.org>
17
+
18
+- Install Qt5 library & prepare for Qt6 in 115
19
+
20
+-------------------------------------------------------------------
21
+Wed Jun 14 05:23:16 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
22
+
23
+- Chromium 114.0.5735.133 (boo#1212302):
24
+  * CVE-2023-3214: Use after free in Autofill payments
25
+  * CVE-2023-3215: Use after free in WebRTC
26
+  * CVE-2023-3216: Type Confusion in V8
27
+  * CVE-2023-3217: Use after free in WebXR
28
+  * Various fixes from internal audits, fuzzing and other initiatives
29
+
30
+-------------------------------------------------------------------
31
+Wed Jun  7 18:13:06 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>
32
+
33
+- Fix Leap 15.4 build - chromium-114-revert-av1enc-lp154.patch
34
+
35
+-------------------------------------------------------------------
36
+Tue Jun  6 05:34:13 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
37
+
38
+- Chromium 114.0.5735.106 (boo#1212044):
39
+  * CVE-2023-3079: Type Confusion in V8
40
+
41
+-------------------------------------------------------------------
42
+Sun Jun  4 18:52:01 UTC 2023 - Callum Farmer <gmbr3@opensuse.org>
43
+
44
+- Chromium 114.0.5735.90 (boo#1211843):
45
+  * CSS text-wrap: balance is available
46
+  * Cookies partitioned by top level site (CHIPS)
47
+  * New Popover API
48
+- Security fixes:
49
+  * CVE-2023-2929: Out of bounds write in Swiftshader
50
+  * CVE-2023-2930: Use after free in Extensions
51
+  * CVE-2023-2931: Use after free in PDF
52
+  * CVE-2023-2932: Use after free in PDF
53
+  * CVE-2023-2933: Use after free in PDF
54
+  * CVE-2023-2934: Out of bounds memory access in Mojo
55
+  * CVE-2023-2935: Type Confusion in V8
56
+  * CVE-2023-2936: Type Confusion in V8
57
+  * CVE-2023-2937: Inappropriate implementation in Picture In Picture
58
+  * CVE-2023-2938: Inappropriate implementation in Picture In Picture
59
+  * CVE-2023-2939: Insufficient data validation in Installer
60
+  * CVE-2023-2940: Inappropriate implementation in Downloads
61
+  * CVE-2023-2941: Inappropriate implementation in Extensions API
62
+- Drop patches:
63
+  * chromium-103-VirtualCursor-std-layout.patch
64
+  * chromium-113-system-zlib.patch
65
+  * chromium-113-workaround_clang_bug-structured_binding.patch
66
+- Add patches
67
+  * chromium-114-workaround_clang_bug-structured_binding.patch
68
+  * chromium-114-lld-argument.patch
69
+
70
+-------------------------------------------------------------------
71
+Tue May 30 21:53:45 UTC 2023 - Callum Farmer <gmbr3@opensuse.org>
72
+
73
+- Un-bundle zlib again
74
+- Remove un-needed patches:
75
+  * chromium-112-default-comparison-operators.patch
76
+  * chromium-109-clang-lp154.patch
77
+  * chromium-clang-nomerge.patch
78
+  * chromium-ffmpeg-lp152.patch
79
+  * chromium-lp151-old-drm.patch
80
+- Added patches:
81
+  * chromium-113-system-zlib.patch
82
+
83
+-------------------------------------------------------------------
84
+Sun May 28 21:32:03 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
85
+
86
+- build with llvm15 on Leap
87
+
88
+-------------------------------------------------------------------
89
+Tue May 16 21:16:23 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>
90
+
91
+- Chromium 113.0.5672.126 (boo#1211442):
92
+  * CVE-2023-2721: Use after free in Navigation
93
+  * CVE-2023-2722: Use after free in Autofill UI
94
+  * CVE-2023-2723: Use after free in DevTools
95
+  * CVE-2023-2724: Type Confusion in V8
96
+  * CVE-2023-2725: Use after free in Guest View
97
+  * CVE-2023-2726: Inappropriate implementation in WebApp Installs
98
+  * Various fixes from internal audits, fuzzing and other initiatives
99
+
100
+-------------------------------------------------------------------
101
+Tue May  9 19:14:20 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>
102
+
103
+- Chromium 113.0.5672.92 (boo#1211211)
104
+- Multiple security fixes (boo#1211036):
105
+  * CVE-2023-2459: Inappropriate implementation in Prompts
106
+  * CVE-2023-2460: Insufficient validation of untrusted input in Extensions
107
+  * CVE-2023-2461: Use after free in OS Inputs
108
+  * CVE-2023-2462: Inappropriate implementation in Prompts
109
+  * CVE-2023-2463: Inappropriate implementation in Full Screen Mode
110
+  * CVE-2023-2464: Inappropriate implementation in PictureInPicture
111
+  * CVE-2023-2465: Inappropriate implementation in CORS
112
+  * CVE-2023-2466: Inappropriate implementation in Prompts
113
+  * CVE-2023-2467: Inappropriate implementation in Prompts
114
+  * CVE-2023-2468: Inappropriate implementation in PictureInPicture
115
+- drop chromium-94-sql-no-assert.patch
116
+- drop no-location-leap151.patch
117
+- add chromium-113-webview-namespace.patch
118
+- add chromium-113-webauth-include-variant.patch
119
+- add chromium-113-typename.patch
120
+- add chromium-113-workaround_clang_bug-structured_binding.patch
121
+
122
+-------------------------------------------------------------------
123
+Wed Apr 19 19:55:51 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>
124
+
125
+- Chromium 112.0.5615.165 (boo#1210618):
126
+  * CVE-2023-2133: Out of bounds memory access in Service Worker API
127
+  * CVE-2023-2134: Out of bounds memory access in Service Worker API
128
+  * CVE-2023-2135: Use after free in DevTools
129
+  * CVE-2023-2136: Integer overflow in Skia
130
+  * CVE-2023-2137: Heap buffer overflow in sqlite
131
+- drop chromium-112-feed_protos.patch
132
+
133
+-------------------------------------------------------------------
134
+Sun Apr 16 02:10:30 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
135
+
136
+- Fix Leap 15.4 build failures from default comparison operators
137
+  defined outside of the class definition, a C++20 feature
138
+  adding chromium-112-default-comparison-operators.patch
139
+
140
+-------------------------------------------------------------------
141
+Sat Apr 15 10:49:51 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
142
+
143
+- Chromium 112.0.5615.121:
144
+  * CVE-2023-2033: Type Confusion in V8 (boo#1210478)
145
+
146
+-------------------------------------------------------------------
147
+Fri Apr  7 07:57:40 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
148
+
149
+- Revert a breaking change with chromium-112-feed_protos.patch
150
+
151
+-------------------------------------------------------------------
152
+Tue Apr  4 22:38:23 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
153
+
154
+- Chromium 112.0.5615.49 
155
+  * CSS now supports nesting rules.
156
+  * The algorithm to set the initial focus on <dialog> elements was updated.
157
+  * No-op fetch() handlers on service workers are skipped from now on to make navigations faster
158
+  * The setter for document.domain is now deprecated.
159
+  * The recorder in devtools can now record with pierce selectors.
160
+  * Security fixes (boo#1210126):
161
+  * CVE-2023-1810: Heap buffer overflow in Visuals
162
+  * CVE-2023-1811: Use after free in Frames
163
+  * CVE-2023-1812: Out of bounds memory access in DOM Bindings
164
+  * CVE-2023-1813: Inappropriate implementation in Extensions
165
+  * CVE-2023-1814: Insufficient validation of untrusted input in Safe Browsing
166
+  * CVE-2023-1815: Use after free in Networking APIs
167
+  * CVE-2023-1816: Incorrect security UI in Picture In Picture
168
+  * CVE-2023-1817: Insufficient policy enforcement in Intents
169
+  * CVE-2023-1818: Use after free in Vulkan
170
+  * CVE-2023-1819: Out of bounds read in Accessibility
171
+  * CVE-2023-1820: Heap buffer overflow in Browser History
172
+  * CVE-2023-1821: Inappropriate implementation in WebShare
173
+  * CVE-2023-1822: Incorrect security UI in Navigation
174
+  * CVE-2023-1823: Inappropriate implementation in FedCM
175
+-------------------------------------------------------------------
176
 Sun Apr  2 10:10:49 UTC 2023 - Carsten Ziepke <kieltux@gmail.com>
177
 
178
 - Use gcc11/gcc11-c++ for openSUSE Leap, use gcc12/gcc12-c++
179
chromium-ffmpeg-extra.spec Changed
558
 
1
@@ -2,6 +2,8 @@
2
 # spec file for package chromium-ffmpeg-extra
3
 #
4
 # Copyright (c) 2023 SUSE LLC
5
+# Copyright (c) 2023 Callum Farmer <gmbr3@opensuse.org>
6
+# Copyright (c) 2023 Andreas Stieger <Andreas.Stieger@gmx.de>
7
 #
8
 # All modifications and additions to the file contributed by third parties
9
 # remain the property of their copyright owners, unless otherwise agreed
10
@@ -18,42 +20,56 @@
11
 
12
 %define rname chromium
13
 %define outputdir out
14
+%bcond_with is_beta # CHANNEL SWITCH
15
 # bsc#1108175
16
 %define __provides_exclude ^lib.*\\.so.*$
17
-%if 0%{?suse_version} >= 1550
18
-%bcond_without system_icu
19
-%else
20
-%bcond_with system_icu
21
-%endif
22
 %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
23
 %bcond_without gtk4
24
+%bcond_without qt
25
 %else
26
 %bcond_with gtk4
27
+%bcond_with qt
28
 %endif
29
-%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150200
30
-%bcond_without pipewire
31
-%else
32
-%bcond_with pipewire
33
-%endif
34
-%bcond_without system_zlib
35
-%bcond_with system_vpx
36
 %ifarch aarch64
37
 %bcond_with swiftshader
38
 %else
39
 %bcond_without swiftshader
40
 %endif
41
-%if 0%{?suse_version} >= 1550
42
+%if 0%{?suse_version} >= 1599
43
 %bcond_without system_harfbuzz
44
 %bcond_without system_freetype
45
+%bcond_without arm_bti
46
+%bcond_without system_icu
47
+%bcond_without ffmpeg_51
48
+%bcond_without qt6
49
 %else
50
 %bcond_with system_harfbuzz
51
 %bcond_with system_freetype
52
-%endif
53
-%bcond_with clang
54
+%bcond_with arm_bti
55
+%bcond_with system_icu
56
+%bcond_with ffmpeg_51
57
+%bcond_with qt6
58
+%endif
59
+%bcond_with system_avif
60
+# LLVM version
61
+%define llvm_version 15
62
+# GCC version
63
+%define gcc_version 12
64
+# Compiler
65
+%bcond_without clang
66
 # Chromium built with GCC 11 and LTO enabled crashes (boo#1194055)
67
-%bcond_with lto
68
+%bcond_without lto
69
+%bcond_without pipewire
70
+%bcond_without system_zlib
71
+%bcond_with system_vpx
72
+# FFmpeg version
73
+%if %{with ffmpeg_51}
74
+%define ffmpeg_version 59
75
+%else
76
+%define ffmpeg_version 58
77
+%endif
78
 Name:           chromium-ffmpeg-extra
79
-Version:        103.0.5060.114
80
+Version:        114.0.5735.198
81
 Release:        0
82
 Summary:        Google's open source browser project
83
 License:        BSD-3-Clause AND LGPL-2.1-or-later
84
@@ -81,33 +97,32 @@
85
 Patch6:         gcc-enable-lto.patch
86
 # Do not use unrar code, it is non-free
87
 Patch7:         chromium-norar.patch
88
-# revert location on old GCC on 15.1, 15.2 gets it right tho
89
-Patch8:         no-location-leap151.patch
90
 Patch9:         system-libdrm.patch
91
 Patch10:        chromium-disable-parallel-gold.patch
92
-Patch11:        chromium-lp151-old-drm.patch
93
 # gentoo/fedora/arch patchset
94
-Patch12:        chromium-78-protobuf-RepeatedPtrField-export.patch
95
-Patch15:        chromium-103-compiler.patch
96
-Patch17:        chromium-86-ImageMemoryBarrierData-init.patch
97
-Patch21:        chromium-gcc11.patch
98
+Patch15:        chromium-110-compiler.patch
99
 Patch40:        chromium-91-java-only-allowed-in-android-builds.patch
100
-Patch50:        chromium-clang-nomerge.patch
101
 Patch62:        chromium-93-ffmpeg-4.4.patch
102
-Patch63:        chromium-ffmpeg-lp152.patch
103
-Patch65:        chromium-94-sql-no-assert.patch
104
 Patch68:        chromium-94-ffmpeg-roll.patch
105
-Patch69:        chromium-93-InkDropHost-crash.patch
106
-Patch78:        chromium-98-EnumTable-crash.patch
107
 Patch87:        chromium-98-gtk4-build.patch
108
 Patch90:        chromium-100-InMilliseconds-constexpr.patch
109
 Patch98:        chromium-102-regex_pattern-array.patch
110
-Patch101:       chromium-103-FrameLoadRequest-type.patch
111
-Patch102:       chromium-103-SubstringSetMatcher-packed.patch
112
-Patch103:       chromium-103-VirtualCursor-std-layout.patch
113
 Patch201:       chromium-86-fix-vaapi-on-intel.patch
114
 # PATCH-FIX-SUSE: allow prop codecs to be set with chromium branding
115
 Patch202:       chromium-prop-codecs.patch
116
+Patch203:       chromium-106-ffmpeg-duration.patch
117
+Patch205:       chromium-disable-GlobalMediaControlsCastStartStop.patch
118
+Patch208:       chromium-icu72-2.patch
119
+Patch210:       chromium-110-system-libffi.patch
120
+Patch211:       gcc13-fix.patch
121
+Patch214:       chromium-113-webview-namespace.patch
122
+Patch215:       chromium-113-webauth-include-variant.patch
123
+Patch216:       chromium-113-typename.patch
124
+Patch217:       chromium-114-workaround_clang_bug-structured_binding.patch
125
+Patch218:       chromium-114-lld-argument.patch
126
+%if 0%{?sle_version} == 150400
127
+Patch300:       chromium-114-revert-av1enc-lp154.patch
128
+%endif
129
 BuildRequires:  SDL-devel
130
 BuildRequires:  bison
131
 BuildRequires:  cups-devel
132
@@ -119,10 +134,11 @@
133
 BuildRequires:  gn >= 0.1807
134
 BuildRequires:  gperf
135
 BuildRequires:  hicolor-icon-theme
136
+BuildRequires:  (python3 >= 3.7 or python3-dataclasses)
137
+BuildRequires:  (python3-importlib-metadata if python3-base < 3.8)
138
 BuildRequires:  golang(API)
139
 # Java used during build
140
 BuildRequires:  java-openjdk-headless
141
-BuildRequires:  libcap-devel
142
 BuildRequires:  libdc1394
143
 BuildRequires:  libgcrypt-devel
144
 BuildRequires:  libgsm-devel
145
@@ -130,7 +146,6 @@
146
 BuildRequires:  libpng-devel
147
 BuildRequires:  memory-constraints
148
 BuildRequires:  nasm
149
-BuildRequires:  ncurses-devel
150
 BuildRequires:  ninja >= 1.7.2
151
 BuildRequires:  nodejs >= 8.0
152
 BuildRequires:  pam-devel
153
@@ -151,6 +166,8 @@
154
 BuildRequires:  pkgconfig(dri)
155
 BuildRequires:  pkgconfig(expat)
156
 BuildRequires:  pkgconfig(flac++)
157
+BuildRequires:  pkgconfig(form)
158
+BuildRequires:  pkgconfig(formw)
159
 BuildRequires:  pkgconfig(gbm)
160
 BuildRequires:  pkgconfig(glib-2.0)
161
 BuildRequires:  pkgconfig(hunspell)
162
@@ -159,15 +176,13 @@
163
 BuildRequires:  pkgconfig(kadm-client)
164
 BuildRequires:  pkgconfig(kdb)
165
 BuildRequires:  pkgconfig(krb5)
166
-BuildRequires:  pkgconfig(libavcodec)
167
-BuildRequires:  pkgconfig(libavfilter)
168
-BuildRequires:  pkgconfig(libavformat) >= 58
169
-BuildRequires:  pkgconfig(libavutil)
170
+BuildRequires:  pkgconfig(libcap)
171
 BuildRequires:  pkgconfig(libcrypto)
172
 BuildRequires:  pkgconfig(libcurl)
173
 BuildRequires:  pkgconfig(libdc1394-2)
174
 BuildRequires:  pkgconfig(libdrm)
175
 BuildRequires:  pkgconfig(libelf)
176
+BuildRequires:  pkgconfig(libevdev)
177
 BuildRequires:  pkgconfig(libevent)
178
 BuildRequires:  pkgconfig(libexif)
179
 BuildRequires:  pkgconfig(libffi)
180
@@ -180,18 +195,28 @@
181
 BuildRequires:  pkgconfig(libwebp) >= 0.4.0
182
 BuildRequires:  pkgconfig(libxml-2.0) >= 2.9.5
183
 BuildRequires:  pkgconfig(libxslt)
184
+BuildRequires:  pkgconfig(menu)
185
+BuildRequires:  pkgconfig(menuw)
186
 BuildRequires:  pkgconfig(minizip)
187
+BuildRequires:  pkgconfig(ncurses)
188
+BuildRequires:  pkgconfig(ncurses++)
189
+BuildRequires:  pkgconfig(ncurses++w)
190
+BuildRequires:  pkgconfig(ncursesw)
191
 BuildRequires:  pkgconfig(nspr) >= 4.9.5
192
 BuildRequires:  pkgconfig(nss) >= 3.26
193
 BuildRequires:  pkgconfig(ogg)
194
 BuildRequires:  pkgconfig(openssl)
195
 BuildRequires:  pkgconfig(opus) >= 1.3.1
196
+BuildRequires:  pkgconfig(panel)
197
+BuildRequires:  pkgconfig(panelw)
198
 BuildRequires:  pkgconfig(python3)
199
 BuildRequires:  pkgconfig(re2)
200
 BuildRequires:  pkgconfig(schroedinger-1.0)
201
 BuildRequires:  pkgconfig(slang)
202
 BuildRequires:  pkgconfig(sqlite3)
203
 BuildRequires:  pkgconfig(theora) >= 1.1
204
+BuildRequires:  pkgconfig(tic)
205
+BuildRequires:  pkgconfig(tinfo)
206
 BuildRequires:  pkgconfig(vdpau)
207
 BuildRequires:  pkgconfig(vorbis)
208
 BuildRequires:  pkgconfig(wayland-client)
209
@@ -216,7 +241,6 @@
210
 BuildRequires:  pkgconfig(xtst)
211
 Requires:       xdg-utils
212
 Requires(pre):  permissions
213
-
214
 # no 32bit supported and it takes ages to build
215
 ExclusiveArch:  x86_64 aarch64 riscv64
216
 %if 0%{?suse_version} <= 1500
217
@@ -247,30 +271,45 @@
218
 %else
219
 BuildRequires:  pkgconfig(gtk+-3.0)
220
 %endif
221
+BuildRequires:  pkgconfig(libavcodec)
222
+BuildRequires:  pkgconfig(libavfilter)
223
+BuildRequires:  pkgconfig(libavformat) >= %{ffmpeg_version}
224
+BuildRequires:  pkgconfig(libavutil)
225
+%if %{with system_avif}
226
+BuildRequires:  pkgconfig(libavif)
227
+BuildRequires:  pkgconfig(libyuv)
228
+%endif
229
+%if %{with qt}
230
+BuildRequires:  pkgconfig(Qt5Core)
231
+BuildRequires:  pkgconfig(Qt5Widgets)
232
+%endif
233
+%if %{with qt6}
234
+BuildRequires:  pkgconfig(Qt6Core)
235
+BuildRequires:  pkgconfig(Qt6Widgets)
236
+%endif
237
 %if %{with clang}
238
-%if %{?suse_version} < 1550
239
-BuildRequires:  clang12
240
-BuildRequires:  gcc11
241
-BuildRequires:  libstdc++6-devel-gcc11
242
-BuildRequires:  lld11
243
-BuildRequires:  llvm11
244
-%else
245
+%if 0%{?suse_version} < 1550
246
+BuildRequires:  clang%{llvm_version}
247
+BuildRequires:  gcc%{gcc_version}
248
+BuildRequires:  libstdc++6-devel-gcc%{gcc_version}
249
+BuildRequires:  lld%{llvm_version}
250
+BuildRequires:  llvm%{llvm_version}
251
 #!BuildIgnore:  gcc
252
-BuildRequires:  clang11
253
-BuildRequires:  gcc11
254
-BuildRequires:  libstdc++6-devel-gcc11
255
+%else
256
+BuildRequires:  clang
257
+BuildRequires:  libstdc++-devel
258
 BuildRequires:  lld
259
 BuildRequires:  llvm
260
 %endif
261
 %endif
262
 %if %{without clang}
263
 BuildRequires:  binutils-gold
264
-%if %{?suse_version} >= 1550
265
-BuildRequires:  gcc12
266
-BuildRequires:  gcc12-c++
267
+%if 0%{?suse_version} >= 1550
268
+BuildRequires:  gcc
269
+BuildRequires:  gcc-c++
270
 %else
271
-BuildRequires:  gcc11
272
-BuildRequires:  gcc11-c++
273
+BuildRequires:  gcc%{gcc_version}
274
+BuildRequires:  gcc%{gcc_version}-c++
275
 %endif
276
 %endif
277
 
278
@@ -284,7 +323,9 @@
279
 %if 0%{?suse_version} >= 1550
280
 patch -R -p1 < %{PATCH68}
281
 %endif
282
+%if %{without ffmpeg_51}
283
 patch -R -p1 < %{SOURCE4}
284
+%endif
285
 
286
 %build
287
 # esbuild
288
@@ -312,9 +353,14 @@
289
 ln -sfn %{_bindir}/$PYTHON $HOME/bin/python
290
 export PATH="$HOME/bin/:$PATH"
291
 
292
-# use our wrapper (disabled)
293
-#rm chrome/installer/linux/common/wrapper
294
-#cp %{SOURCE106} chrome/installer/linux/common/wrapper
295
+# qt
296
+%if %{with qt}
297
+export PATH="$PATH:%{_libdir}/qt5/bin"
298
+%endif
299
+
300
+# use our wrapper
301
+rm chrome/installer/linux/common/wrapper
302
+cp %{SOURCE106} chrome/installer/linux/common/wrapper
303
 
304
 # Remove bundled libs
305
 keeplibs=(
306
@@ -340,14 +386,14 @@
307
     net/third_party/uri_template
308
     third_party/abseil-cpp
309
     third_party/angle
310
-    third_party/angle/src/common/third_party/base
311
-    third_party/angle/src/common/third_party/smhasher
312
     third_party/angle/src/common/third_party/xxhash
313
+    third_party/angle/src/third_party/ceval
314
     third_party/angle/src/third_party/libXNVCtrl
315
-    third_party/angle/src/third_party/trace_event
316
+    third_party/angle/src/third_party/systeminfo
317
     third_party/angle/src/third_party/volk
318
     third_party/apple_apsl
319
     third_party/axe-core
320
+    third_party/bidimapper
321
     third_party/blink
322
     third_party/boringssl
323
     third_party/boringssl/src/third_party/fiat
324
@@ -378,6 +424,7 @@
325
     third_party/crashpad/crashpad/third_party/zlib
326
     third_party/crc32c
327
     third_party/cros_system_api
328
+    third_party/content_analysis_sdk
329
     third_party/dav1d
330
     third_party/dawn
331
     third_party/dawn/third_party
332
@@ -394,10 +441,10 @@
333
     third_party/devtools-frontend/src/front_end/third_party/i18n
334
     third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
335
     third_party/devtools-frontend/src/front_end/third_party/lighthouse
336
-    third_party/devtools-frontend/src/front_end/third_party/lit-html
337
     third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
338
     third_party/devtools-frontend/src/front_end/third_party/marked
339
     third_party/devtools-frontend/src/front_end/third_party/puppeteer
340
+    third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
341
     third_party/devtools-frontend/src/front_end/third_party/wasmparser
342
     third_party/devtools-frontend/src/third_party
343
     third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
344
@@ -417,11 +464,11 @@
345
     third_party/google_input_tools/third_party/closure_library
346
     third_party/google_input_tools/third_party/closure_library/third_party/closure
347
     third_party/googletest
348
-    third_party/harfbuzz-ng/utils
349
     third_party/highway
350
     third_party/hunspell
351
     third_party/iccjpeg
352
     third_party/inspector_protocol
353
+    third_party/ipcz
354
     third_party/jinja2
355
     third_party/jsoncpp
356
     third_party/jstemplate
357
@@ -432,11 +479,9 @@
358
     third_party/libaom/source/libaom/third_party/fastfeat
359
     third_party/libaom/source/libaom/third_party/vector
360
     third_party/libaom/source/libaom/third_party/x86inc
361
-    third_party/libavif
362
+    third_party/libaom/source/libaom/third_party/SVT-AV1
363
     third_party/libgav1
364
-    third_party/libgifcodec
365
     third_party/libjingle
366
-    third_party/libjxl
367
     third_party/libphonenumber
368
     third_party/libsecret
369
     third_party/libsrtp
370
@@ -448,7 +493,6 @@
371
     third_party/libx11/src
372
     third_party/libxcb-keysyms/keysyms
373
     third_party/libxml/chromium
374
-    third_party/libyuv
375
     third_party/libzip
376
     third_party/lottie
377
     third_party/lss
378
@@ -457,6 +501,7 @@
379
     third_party/maldoca
380
     third_party/maldoca/src/third_party
381
     third_party/markupsafe
382
+    third_party/material_color_utilities
383
     third_party/mesa
384
     third_party/metrics_proto
385
     third_party/minigbm
386
@@ -464,7 +509,7 @@
387
     third_party/nasm
388
     third_party/nearby
389
     third_party/node
390
-    third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
391
+    third_party/omnibox_proto
392
     third_party/one_euro_filter
393
     third_party/openscreen
394
     third_party/openscreen/src/third_party/mozilla
395
@@ -476,10 +521,9 @@
396
     third_party/pdfium/third_party/bigint
397
     third_party/pdfium/third_party/freetype
398
     third_party/pdfium/third_party/lcms
399
-    third_party/pdfium/third_party/libopenjpeg20
400
-    third_party/pdfium/third_party/libpng16
401
     third_party/pdfium/third_party/libtiff
402
     third_party/pdfium/third_party/skia_shared
403
+    third_party/pdfium/third_party/libopenjpeg
404
     third_party/perfetto
405
     third_party/perfetto/protos/third_party/chromium
406
     third_party/pffft
407
@@ -488,20 +532,19 @@
408
     third_party/private-join-and-compute
409
     third_party/private_membership
410
     third_party/protobuf
411
-    third_party/protobuf/third_party/six
412
     third_party/pthreadpool
413
     third_party/pyjson5
414
+    third_party/pyyaml
415
     third_party/qcms
416
     third_party/rnnoise
417
     third_party/ruy
418
     third_party/s2cellid
419
     third_party/securemessage
420
+    third_party/selenium-atoms
421
     third_party/shell-encryption
422
     third_party/simplejson
423
     third_party/skia
424
-    third_party/skia/include/third_party/skcms/
425
     third_party/skia/include/third_party/vulkan/
426
-    third_party/skia/third_party/skcms
427
     third_party/skia/third_party/vulkan
428
     third_party/smhasher
429
     third_party/sqlite
430
@@ -513,6 +556,7 @@
431
     third_party/swiftshader/third_party/SPIRV-Headers
432
     third_party/swiftshader/third_party/SPIRV-Tools
433
     third_party/swiftshader/third_party/subzero
434
+    third_party/tensorflow_models
435
     third_party/tensorflow-text
436
     third_party/tflite
437
     third_party/tflite/src/third_party/eigen3
438
@@ -521,7 +565,6 @@
439
     third_party/utf
440
     third_party/vulkan
441
     third_party/wayland
442
-    third_party/web-animations-js
443
     third_party/webdriver
444
     third_party/webgpu-cts
445
     third_party/webrtc
446
@@ -544,6 +587,7 @@
447
     v8/src/third_party/siphash
448
     v8/src/third_party/utf8-decoder
449
     v8/src/third_party/valgrind
450
+    v8/third_party/glibc
451
     v8/third_party/inspector_protocol
452
     v8/third_party/v8/builtins
453
 )
454
@@ -570,6 +614,10 @@
455
     third_party/libvpx/source/libvpx/third_party/x86inc
456
 )
457
 %endif
458
+%if !%{with system_avif}
459
+keeplibs+=( third_party/libyuv )
460
+keeplibs+=( third_party/libavif )
461
+%endif
462
 # needed due to bugs in GN
463
 keeplibs+=(
464
     third_party/speech-dispatcher
465
@@ -583,25 +631,25 @@
466
 %if %{with clang}
467
 export CC=clang
468
 export CXX=clang++
469
+export AR=llvm-ar
470
+export NM=llvm-nm
471
+export RANLIB=llvm-ranlib
472
 %else
473
 %if 0%{?suse_version} <= 1500
474
-export CC=gcc-11
475
-export CXX=g++-11
476
+export CC=gcc-%{gcc_version}
477
+export CXX=g++-%{gcc_version}
478
 # some still call gcc/g++
479
 ln -sfn %{_bindir}/$CC $HOME/bin/gcc
480
 ln -sfn %{_bindir}/$CXX $HOME/bin/g++
481
 export PATH="$HOME/bin/:$PATH"
482
 %else
483
-export CC=gcc-12
484
-export CXX=g++-12
485
-# some still call gcc/g++
486
-ln -sfn %{_bindir}/$CC $HOME/bin/gcc
487
-ln -sfn %{_bindir}/$CXX $HOME/bin/g++
488
-export PATH="$HOME/bin/:$PATH"
489
-%endif
490
+export CC=gcc
491
+export CXX=g++
492
 %endif
493
 export AR=ar
494
 export NM=nm
495
+export RANLIB=ranlib
496
+%endif
497
 # REDUCE DEBUG as it gets TOO large
498
 ARCH_FLAGS="`echo %{optflags} | sed -e 's/^-g / /g' -e 's/ -g / /g' -e 's/ -g$//g'`"
499
 export CXXFLAGS="${ARCH_FLAGS} -Wno-return-type"
500
@@ -682,6 +730,10 @@
501
 %if %{with system_vpx}
502
 gn_system_libraries+=( libvpx )
503
 %endif
504
+%if %{with system_avif}
505
+gn_system_libraries+=( libyuv )
506
+gn_system_libraries+=( libavif )
507
+%endif
508
 build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries@}
509
 
510
 # Create the configuration for GN
511
@@ -716,7 +768,6 @@
512
 myconf_gn+=" is_component_build=false"
513
 myconf_gn+=" use_sysroot=false"
514
 myconf_gn+=" fatal_linker_warnings=false"
515
-myconf_gn+=" use_allocator=\"partition\""
516
 myconf_gn+=" use_allocator_shim=true"
517
 myconf_gn+=" use_partition_alloc=true"
518
 myconf_gn+=" disable_fieldtrial_testing_config=true"
519
@@ -731,9 +782,16 @@
520
 myconf_gn+=" rtc_use_h264=false"
521
 myconf_gn+=" use_v8_context_snapshot=true"
522
 myconf_gn+=" v8_use_external_startup_data=true"
523
+myconf_gn+=" enable_rust=false"
524
 %if %{with gtk4}
525
 myconf_gn+=" gtk_version=4"
526
 %endif
527
+%if %{without qt}
528
+myconf_gn+=" use_qt=false"
529
+%endif
530
+%if %{with qt6}
531
+myconf_gn+=" use_qt6=true"
532
+%endif
533
 # See dependency logic in third_party/BUILD.gn
534
 %if %{with system_harfbuzz}
535
 myconf_gn+=" use_system_harfbuzz=true"
536
@@ -758,7 +816,7 @@
537
 myconf_gn+=" is_clang=false"
538
 myconf_gn+=" use_gold=true"
539
 %endif
540
-%if %{with lto}
541
+%if %{with lto} && %{without clang}
542
 myconf_gn+=" gcc_lto=true"
543
 %endif
544
 %if %{with system_icu}
545
@@ -773,8 +831,12 @@
546
 
547
 %ifarch aarch64
548
 myconf_gn+=" host_cpu=\"arm64\""
549
+%if %{with arm_bti}
550
+myconf_gn+=" arm_control_flow_integrity=\"standard\""
551
+%else
552
 myconf_gn+=" arm_control_flow_integrity=\"none\""
553
 %endif
554
+%endif
555
 
556
 # GN does not support passing cflags:
557
 #  https://bugs.chromium.org/p/chromium/issues/detail?id=642016
558
chromium-103-FrameLoadRequest-type.patch Deleted
28
 
1
@@ -1,26 +0,0 @@
2
-From 491bf840da4f76fa3591cc0aa2f4c19cdbe57ec4 Mon Sep 17 00:00:00 2001
3
-From: Stephan Hartmann <stha09@googlemail.com>
4
-Date: Thu, 12 May 2022 11:58:29 +0000
5
-Subject: PATCH GCC: fix ambiguous references in blink::FrameLoadRequest
6
-
7
-Add namespace to avoid confusion.
8
----
9
- third_party/blink/renderer/core/loader/frame_load_request.h | 2 +-
10
- 1 file changed, 1 insertion(+), 1 deletion(-)
11
-
12
-diff --git a/third_party/blink/renderer/core/loader/frame_load_request.h b/third_party/blink/renderer/core/loader/frame_load_request.h
13
-index 444b25c..a86814d 100644
14
---- a/third_party/blink/renderer/core/loader/frame_load_request.h
15
-+++ b/third_party/blink/renderer/core/loader/frame_load_request.h
16
-@@ -179,7 +179,7 @@ struct CORE_EXPORT FrameLoadRequest {
17
-     impression_ = impression;
18
-   }
19
- 
20
--  const absl::optional<Impression>& Impression() const { return impression_; }
21
-+  const absl::optional<blink::Impression>& Impression() const { return impression_; }
22
- 
23
-   bool CanDisplay(const KURL&) const;
24
- 
25
--- 
26
-2.35.1
27
-
28
chromium-103-SubstringSetMatcher-packed.patch Deleted
72
 
1
@@ -1,70 +0,0 @@
2
-From 3d274856e792a361336eb4ae1670bc9c1905f0cb Mon Sep 17 00:00:00 2001
3
-From: Steinar H. Gunderson <sesse@chromium.org>
4
-Date: Thu, 12 May 2022 16:42:40 +0200
5
-Subject: PATCH Make AhoCorasickNode 4-aligned.
6
-
7
-This should fix an issue where std::vector could allocate unaligned
8
-memory for AhoCorasickNode, and we'd then return a pointer to
9
-inline_edges, where a caller would expect the pointer to be aligned
10
-but it wasn't.
11
-
12
-Change-Id: Id9dff044c61f8e46062c63b8480b18ebc68c4862
13
----
14
-
15
-diff --git a/base/substring_set_matcher/substring_set_matcher.cc b/base/substring_set_matcher/substring_set_matcher.cc
16
-index e110047..ef0b750 100644
17
---- a/base/substring_set_matcher/substring_set_matcher.cc
18
-+++ b/base/substring_set_matcher/substring_set_matcher.cc
19
-@@ -424,7 +424,12 @@
20
-     edges_.inline_edgesnum_edges() = AhoCorasickEdge{label, node};
21
-     if (label == kFailureNodeLabel) {
22
-       // Make sure that kFailureNodeLabel is first.
23
--      std::swap(edges_.inline_edges0, edges_.inline_edgesnum_edges());
24
-+      // NOTE: We don't use std::swap here, because GCC
25
-+      // doesn't understand that inline_edges is 4-aligned
26
-+      // and gives a warning.
27
-+      AhoCorasickEdge temp = edges_.inline_edges0;
28
-+      edges_.inline_edges0 = edges_.inline_edgesnum_edges();
29
-+      edges_.inline_edgesnum_edges() = temp;
30
-     }
31
-     --num_free_edges_;
32
-     return;
33
-diff --git a/base/substring_set_matcher/substring_set_matcher.cc b/base/substring_set_matcher/substring_set_matcher.cc
34
-index e110047..ef0b750 100644
35
---- a/base/substring_set_matcher/substring_set_matcher.h
36
-+++ b/base/substring_set_matcher/substring_set_matcher.h
37
-@@ -154,8 +154,9 @@
38
-   static constexpr uint32_t kEmptyLabel = 0x103;
39
- 
40
-   // A node in the trie, packed tightly together so that it occupies 12 bytes
41
--  // (both on 32- and 64-bit platforms).
42
--  class AhoCorasickNode {
43
-+  // (both on 32- and 64-bit platforms), but aligned to at least 4 (see the
44
-+  // comment on edges_).
45
-+  class alignas(AhoCorasickEdge) AhoCorasickNode {
46
-    public:
47
-     AhoCorasickNode();
48
-     ~AhoCorasickNode();
49
-@@ -178,6 +179,10 @@
50
-     NodeID GetEdgeNoInline(uint32_t label) const;
51
-     void SetEdge(uint32_t label, NodeID node);
52
-     const AhoCorasickEdge* edges() const {
53
-+      // NOTE: Returning edges_.inline_edges here is fine, because it's
54
-+      // the first thing in the struct (see the comment on edges_).
55
-+      DCHECK_EQ(0u, reinterpret_cast<uintptr_t>(edges_.inline_edges) %
56
-+                        alignof(AhoCorasickEdge));
57
-       return edges_capacity_ == 0 ? edges_.inline_edges : edges_.edges;
58
-     }
59
- 
60
-@@ -258,6 +263,11 @@
61
-     // in the first slot if it exists (ie., is not equal to kRootID), since we
62
-     // need to access that label during every single node we look at during
63
-     // traversal.
64
-+    //
65
-+    // NOTE: Keep this the first member in the struct, so that inline_edges gets
66
-+    // 4-aligned (since the class is marked as such, despite being packed.
67
-+    // Otherwise, edges() can return an unaligned pointer marked as aligned
68
-+    // (the unalignedness gets lost).
69
-     static constexpr int kNumInlineEdges = 2;
70
-     union {
71
-       // Out-of-line edge storage, having room for edges_capacity_ elements.
72
chromium-103-VirtualCursor-std-layout.patch Deleted
233
 
1
@@ -1,231 +0,0 @@
2
-From 144479ad7b4287bee4067f95e4218f614798a865 Mon Sep 17 00:00:00 2001
3
-From: Stephan Hartmann <stha09@googlemail.com>
4
-Date: Sun, 16 Jan 2022 19:15:26 +0000
5
-Subject: PATCH sql: make VirtualCursor standard layout type
6
-
7
-sql::recover::VirtualCursor needs to be a standard layout type, but
8
-has members of type std::unique_ptr. However, std::unique_ptr is not
9
-guaranteed to be standard layout. Compiling with clang combined with
10
-gcc-11 libstdc++ fails because of this.
11
-
12
-Bug: 1189788
13
-Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c
14
----
15
-
16
-diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc
17
-index cc9420e5..f12d8fa 100644
18
---- a/sql/recover_module/btree.cc
19
-+++ b/sql/recover_module/btree.cc
20
-@@ -136,16 +136,22 @@
21
-               "Move the destructor to the .cc file if it's non-trival");
22
- #endif  // !DCHECK_IS_ON()
23
- 
24
--LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept
25
--    : page_id_(db_reader->page_id()),
26
--      db_reader_(db_reader),
27
--      cell_count_(ComputeCellCount(db_reader)),
28
--      next_read_index_(0),
29
--      last_record_size_(0) {
30
-+LeafPageDecoder::LeafPageDecoder() noexcept = default;
31
-+
32
-+void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) {
33
-+  page_id_ = db_reader->page_id();
34
-+  db_reader_ = db_reader;
35
-+  cell_count_ = ComputeCellCount(db_reader);
36
-+  next_read_index_ = 0;
37
-+  last_record_size_ = 0;
38
-   DCHECK(IsOnValidPage(db_reader));
39
-   DCHECK(DatabasePageReader::IsValidPageId(page_id_));
40
- }
41
- 
42
-+void LeafPageDecoder::Reset() {
43
-+  db_reader_ = nullptr;
44
-+}
45
-+
46
- bool LeafPageDecoder::TryAdvance() {
47
-   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
48
-   DCHECK(CanAdvance());
49
-diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h
50
-index eaa087a5..df0e0c9 100644
51
---- a/sql/recover_module/btree.h
52
-+++ b/sql/recover_module/btree.h
53
-@@ -101,9 +101,7 @@
54
-  public:
55
-   // Creates a decoder for a DatabasePageReader's last read page.
56
-   //
57
--  // |db_reader| must have been used to read an inner page of a table B-tree.
58
--  // |db_reader| must outlive this instance.
59
--  explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept;
60
-+  LeafPageDecoder() noexcept;
61
-   ~LeafPageDecoder() noexcept = default;
62
- 
63
-   LeafPageDecoder(const LeafPageDecoder&) = delete;
64
-@@ -151,6 +149,17 @@
65
-   // read as long as CanAdvance() returns true.
66
-   bool TryAdvance();
67
- 
68
-+  // Initialize with DatabasePageReader
69
-+  // |db_reader| must have been used to read an inner page of a table B-tree.
70
-+  // |db_reader| must outlive this instance.
71
-+  void Initialize(DatabasePageReader* db_reader);
72
-+
73
-+  // Reset internal DatabasePageReader
74
-+  void Reset();
75
-+
76
-+  // True if DatabasePageReader is valid
77
-+  bool IsValid() { return (db_reader_ != nullptr); }
78
-+
79
-   // True if the given reader may point to an inner page in a table B-tree.
80
-   //
81
-   // The last ReadPage() call on |db_reader| must have succeeded.
82
-@@ -164,14 +173,14 @@
83
-   static int ComputeCellCount(DatabasePageReader* db_reader);
84
- 
85
-   // The number of the B-tree page this reader is reading.
86
--  const int64_t page_id_;
87
-+  int64_t page_id_;
88
-   // Used to read the tree page.
89
-   //
90
-   // Raw pointer usage is acceptable because this instance's owner is expected
91
-   // to ensure that the DatabasePageReader outlives this.
92
--  DatabasePageReader* const db_reader_;
93
-+  DatabasePageReader* db_reader_;
94
-   // Caches the ComputeCellCount() value for this reader's page.
95
--  const int cell_count_ = ComputeCellCount(db_reader_);
96
-+  int cell_count_;
97
- 
98
-   // The reader's cursor state.
99
-   //
100
-diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc
101
-index 4f827ed..240de499 100644
102
---- a/sql/recover_module/cursor.cc
103
-+++ b/sql/recover_module/cursor.cc
104
-@@ -28,7 +28,7 @@
105
- int VirtualCursor::First() {
106
-   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
107
-   inner_decoders_.clear();
108
--  leaf_decoder_ = nullptr;
109
-+  leaf_decoder_.Reset();
110
- 
111
-   AppendPageDecoder(table_->root_page_id());
112
-   return Next();
113
-@@ -38,18 +38,18 @@
114
-   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
115
-   record_reader_.Reset();
116
- 
117
--  while (!inner_decoders_.empty() || leaf_decoder_.get()) {
118
--    if (leaf_decoder_.get()) {
119
--      if (!leaf_decoder_->CanAdvance()) {
120
-+  while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) {
121
-+    if (leaf_decoder_.IsValid()) {
122
-+      if (!leaf_decoder_.CanAdvance()) {
123
-         // The leaf has been exhausted. Remove it from the DFS stack.
124
--        leaf_decoder_ = nullptr;
125
-+        leaf_decoder_.Reset();
126
-         continue;
127
-       }
128
--      if (!leaf_decoder_->TryAdvance())
129
-+      if (!leaf_decoder_.TryAdvance())
130
-         continue;
131
- 
132
--      if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(),
133
--                                      leaf_decoder_->last_record_offset())) {
134
-+      if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(),
135
-+                                      leaf_decoder_.last_record_offset())) {
136
-         continue;
137
-       }
138
-       if (!record_reader_.Initialize())
139
-@@ -101,13 +101,13 @@
140
- int64_t VirtualCursor::RowId() {
141
-   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
142
-   DCHECK(record_reader_.IsInitialized());
143
--  DCHECK(leaf_decoder_.get());
144
--  return leaf_decoder_->last_record_rowid();
145
-+  DCHECK(leaf_decoder_.IsValid());
146
-+  return leaf_decoder_.last_record_rowid();
147
- }
148
- 
149
- void VirtualCursor::AppendPageDecoder(int page_id) {
150
-   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
151
--  DCHECK(leaf_decoder_.get() == nullptr)
152
-+  DCHECK(!leaf_decoder_.IsValid())
153
-       << __func__
154
-       << " must only be called when the current path has no leaf decoder";
155
- 
156
-@@ -115,7 +115,7 @@
157
-     return;
158
- 
159
-   if (LeafPageDecoder::IsOnValidPage(&db_reader_)) {
160
--    leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_);
161
-+    leaf_decoder_.Initialize(&db_reader_);
162
-     return;
163
-   }
164
- 
165
-diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
166
-index 845b785..cc4e85f8 100644
167
---- a/sql/recover_module/cursor.h
168
-+++ b/sql/recover_module/cursor.h
169
-@@ -130,7 +130,7 @@
170
-   std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_;
171
- 
172
-   // Decodes the leaf page containing records.
173
--  std::unique_ptr<LeafPageDecoder> leaf_decoder_;
174
-+  LeafPageDecoder leaf_decoder_;
175
- 
176
-   SEQUENCE_CHECKER(sequence_checker_);
177
- };
178
-diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc
179
-index 58e75de..69d98cef 100644
180
---- a/sql/recover_module/pager.cc
181
-+++ b/sql/recover_module/pager.cc
182
-@@ -23,8 +23,7 @@
183
-               "ints are not appropriate for representing page IDs");
184
- 
185
- DatabasePageReader::DatabasePageReader(VirtualTable* table)
186
--    : page_data_(std::make_unique<uint8_t>(table->page_size())),
187
--      table_(table) {
188
-+    : page_data_(table->page_size()), table_(table) {
189
-   DCHECK(table != nullptr);
190
-   DCHECK(IsValidPageSize(table->page_size()));
191
- }
192
-@@ -58,7 +57,7 @@
193
-                 "The |read_offset| computation above may overflow");
194
- 
195
-   int sqlite_status =
196
--      RawRead(sqlite_file, read_size, read_offset, page_data_.get());
197
-+      RawRead(sqlite_file, read_size, read_offset, page_data_.data());
198
- 
199
-   // |page_id_| needs to be set to kInvalidPageId if the read failed.
200
-   // Otherwise, future ReadPage() calls with the previous |page_id_| value
201
-diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h
202
-index 07cac3cb..d08f093 100644
203
---- a/sql/recover_module/pager.h
204
-+++ b/sql/recover_module/pager.h
205
-@@ -6,8 +6,8 @@
206
- #define SQL_RECOVER_MODULE_PAGER_H_
207
- 
208
- #include <cstdint>
209
--#include <memory>
210
- #include <ostream>
211
-+#include <vector>
212
- 
213
- #include "base/check_op.h"
214
- #include "base/memory/raw_ptr.h"
215
-@@ -72,7 +72,7 @@
216
-     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
217
-     DCHECK_NE(page_id_, kInvalidPageId)
218
-         << "Successful ReadPage() required before accessing pager state";
219
--    return page_data_.get();
220
-+    return page_data_.data();
221
-   }
222
- 
223
-   // The number of bytes in the page read by the last ReadPage() call.
224
-@@ -139,7 +139,7 @@
225
-   int page_id_ = kInvalidPageId;
226
-   // Stores the bytes of the last page successfully read by ReadPage().
227
-   // The content is undefined if the last call to ReadPage() did not succeed.
228
--  const std::unique_ptr<uint8_t> page_data_;
229
-+  std::vector<uint8_t> page_data_;
230
-   // Raw pointer usage is acceptable because this instance's owner is expected
231
-   // to ensure that the VirtualTable outlives this.
232
-   const raw_ptr<VirtualTable> table_;
233
chromium-103-compiler.patch Deleted
237
 
1
@@ -1,235 +0,0 @@
2
-From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
3
-From: Mike Gilbert <floppym@gentoo.org>
4
-Date: Tue, 3 May 2022 10:51:55 +0000
5
-Subject: PATCH Disable various compiler configs
6
-
7
----
8
- build/config/compiler/BUILD.gn | 114 +++++----------------------------
9
- 1 file changed, 17 insertions(+), 97 deletions(-)
10
-
11
-diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
12
-index f378b95..cb2aeb3 100644
13
---- a/build/config/compiler/BUILD.gn
14
-+++ b/build/config/compiler/BUILD.gn
15
-@@ -286,9 +286,7 @@ config("compiler") {
16
- 
17
-   configs += 
18
-     # See the definitions below.
19
--    ":clang_revision",
20
-     ":rustc_revision",
21
--    ":compiler_cpu_abi",
22
-     ":compiler_codegen",
23
-     ":compiler_deterministic",
24
-   
25
-@@ -522,31 +520,6 @@ config("compiler") {
26
-     ldflags +=  "-Wl,-z,keep-text-section-prefix" 
27
-   }
28
- 
29
--  if (is_clang && !is_nacl && current_os != "zos") {
30
--    cflags +=  "-fcrash-diagnostics-dir=" + clang_diagnostic_dir 
31
--
32
--    # TODO(hans): Remove this once Clang generates better optimized debug info
33
--    # by default. https://crbug.com/765793
34
--    cflags += 
35
--      "-mllvm",
36
--      "-instcombine-lower-dbg-declare=0",
37
--    
38
--    if (!is_debug && use_thin_lto && is_a_target_toolchain) {
39
--      if (is_win) {
40
--        ldflags +=  "-mllvm:-instcombine-lower-dbg-declare=0" 
41
--      } else {
42
--        ldflags +=  "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" 
43
--      }
44
--    }
45
--
46
--    # TODO(crbug.com/1235145): Investigate why/if this should be needed.
47
--    if (is_win) {
48
--      cflags +=  "/clang:-ffp-contract=off" 
49
--    } else {
50
--      cflags +=  "-ffp-contract=off" 
51
--    }
52
--  }
53
--
54
-   # Rust compiler setup (for either clang or rustc).
55
-   if (enable_rust) {
56
-     defines +=  "RUST_ENABLED" 
57
-@@ -1231,45 +1204,6 @@ config("compiler_deterministic") {
58
-     }
59
-   }
60
- 
61
--  # Makes builds independent of absolute file path.
62
--  if (is_clang && strip_absolute_paths_from_debug_symbols) {
63
--    # If debug option is given, clang includes $cwd in debug info by default.
64
--    # For such build, this flag generates reproducible obj files even we use
65
--    # different build directory like "out/feature_a" and "out/feature_b" if
66
--    # we build same files with same compile flag.
67
--    # Other paths are already given in relative, no need to normalize them.
68
--    if (is_nacl) {
69
--      # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
70
--      cflags += 
71
--        "-Xclang",
72
--        "-fdebug-compilation-dir",
73
--        "-Xclang",
74
--        ".",
75
--      
76
--    } else {
77
--      # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
78
--      # and -fcoverage-compilation-dir=.
79
--      cflags +=  "-ffile-compilation-dir=." 
80
--    }
81
--    if (!is_win) {
82
--      # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
83
--      asmflags =  "-Wa,-fdebug-compilation-dir,." 
84
--    }
85
--
86
--    if (is_win && use_lld) {
87
--      if (symbol_level == 2 || (is_clang && using_sanitizer)) {
88
--        # Absolutize source file paths for PDB. Pass the real build directory
89
--        # if the pdb contains source-level debug information and if linker
90
--        # reproducibility is not critical.
91
--        ldflags +=  "/PDBSourcePath:" + rebase_path(root_build_dir) 
92
--      } else {
93
--        # Use a fake fixed base directory for paths in the pdb to make the pdb
94
--        # output fully deterministic and independent of the build directory.
95
--        ldflags +=  "/PDBSourcePath:o:\fake\prefix" 
96
--      }
97
--    }
98
--  }
99
--
100
-   # Tells the compiler not to use absolute paths when passing the default
101
-   # paths to the tools it invokes. We don't want this because we don't
102
-   # really need it and it can mess up the goma cache entries.
103
-@@ -1534,15 +1468,6 @@ config("default_warnings") {
104
-         cflags +=  "-Wno-unqualified-std-cast-call" 
105
-       }
106
- 
107
--      if (!is_nacl && !(is_chromeos ||
108
--                        default_toolchain == "//build/toolchain/cros:target")) {
109
--        # TODO(https://crbug.com/1316298): Re-enable once test failure is figured out
110
--        cflags += 
111
--          "-Xclang",
112
--          "-no-opaque-pointers",
113
--        
114
--      }
115
--
116
-       if (is_fuchsia) {
117
-         # TODO(https://bugs.chromium.org/p/fuchsia/issues/detail?id=77383)
118
-         cflags +=  "-Wno-deprecated-copy" 
119
-@@ -1611,7 +1536,7 @@ config("chromium_code") {
120
-       defines =  "_HAS_NODISCARD" 
121
-     }
122
-   } else {
123
--    cflags =  "-Wall" 
124
-+    cflags = 
125
-     if (treat_warnings_as_errors) {
126
-       cflags +=  "-Werror" 
127
- 
128
-@@ -1620,10 +1545,6 @@ config("chromium_code") {
129
-       # well.
130
-       ldflags =  "-Werror" 
131
-     }
132
--    if (is_clang) {
133
--      # Enable extra warnings for chromium_code when we control the compiler.
134
--      cflags +=  "-Wextra" 
135
--    }
136
- 
137
-     # In Chromium code, we define __STDC_foo_MACROS in order to get the
138
-     # C99 macros on Mac and Linux.
139
-@@ -1632,15 +1553,6 @@ config("chromium_code") {
140
-       "__STDC_FORMAT_MACROS",
141
-     
142
- 
143
--    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
144
--        current_cpu != "s390" && current_cpu != "ppc64" &&
145
--        current_cpu != "mips" && current_cpu != "mips64") {
146
--      # Non-chromium code is not guaranteed to compile cleanly with
147
--      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
148
--      # disabled, so only do that for Release build.
149
--      defines +=  "_FORTIFY_SOURCE=2" 
150
--    }
151
--
152
-     if (is_mac) {
153
-       cflags_objc =  "-Wobjc-missing-property-synthesis" 
154
-       cflags_objcc =  "-Wobjc-missing-property-synthesis" 
155
-@@ -2031,7 +1943,8 @@ config("default_stack_frames") {
156
- }
157
- 
158
- # Default "optimization on" config.
159
--config("optimize") {
160
-+config("optimize") { }
161
-+config("xoptimize") {
162
-   if (is_win) {
163
-     if (chrome_pgo_phase != 2) {
164
-       # Favor size over speed, /O1 must be before the common flags.
165
-@@ -2069,7 +1982,8 @@ config("optimize") {
166
- }
167
- 
168
- # Turn off optimizations.
169
--config("no_optimize") {
170
-+config("no_optimize") { }
171
-+config("xno_optimize") {
172
-   if (is_win) {
173
-     cflags = 
174
-       "/Od",  # Disable optimization.
175
-@@ -2109,7 +2023,8 @@ config("no_optimize") {
176
- # Turns up the optimization level. On Windows, this implies whole program
177
- # optimization and link-time code generation which is very expensive and should
178
- # be used sparingly.
179
--config("optimize_max") {
180
-+config("optimize_max") { }
181
-+config("xoptimize_max") {
182
-   if (is_nacl && is_nacl_irt) {
183
-     # The NaCl IRT is a special case and always wants its own config.
184
-     # Various components do:
185
-@@ -2142,7 +2057,8 @@ config("optimize_max") {
186
- #
187
- # TODO(crbug.com/621335) - rework how all of these configs are related
188
- # so that we don't need this disclaimer.
189
--config("optimize_speed") {
190
-+config("optimize_speed") { }
191
-+config("xoptimize_speed") {
192
-   if (is_nacl && is_nacl_irt) {
193
-     # The NaCl IRT is a special case and always wants its own config.
194
-     # Various components do:
195
-@@ -2168,7 +2084,8 @@ config("optimize_speed") {
196
-   }
197
- }
198
- 
199
--config("optimize_fuzzing") {
200
-+config("optimize_fuzzing") { }
201
-+config("xoptimize_fuzzing") {
202
-   cflags =  "-O1"  + common_optimize_on_cflags
203
-   rustflags =  "-Copt-level=1" 
204
-   ldflags = common_optimize_on_ldflags
205
-@@ -2287,7 +2204,8 @@ config("win_pdbaltpath") {
206
- }
207
- 
208
- # Full symbols.
209
--config("symbols") {
210
-+config("symbols") { }
211
-+config("xsymbols") {
212
-   if (is_win) {
213
-     if (is_clang) {
214
-       cflags =  "/Z7"   # Debug information in the .obj files.
215
-@@ -2415,7 +2333,8 @@ config("symbols") {
216
- # Minimal symbols.
217
- # This config guarantees to hold symbol for stack trace which are shown to user
218
- # when crash happens in unittests running on buildbot.
219
--config("minimal_symbols") {
220
-+config("minimal_symbols") { }
221
-+config("xminimal_symbols") {
222
-   if (is_win) {
223
-     # Functions, files, and line tables only.
224
-     cflags = 
225
-@@ -2488,7 +2407,8 @@ config("minimal_symbols") {
226
- # This configuration contains function names only. That is, the compiler is
227
- # told to not generate debug information and the linker then just puts function
228
- # names in the final debug information.
229
--config("no_symbols") {
230
-+config("no_symbols") { }
231
-+config("xno_symbols") {
232
-   if (is_win) {
233
-     ldflags =  "/DEBUG" 
234
- 
235
--- 
236
-2.35.1
237
chromium-106-ffmpeg-duration.patch Added
19
 
1
@@ -0,0 +1,17 @@
2
+Index: chromium-106.0.5249.91/media/filters/audio_file_reader.cc
3
+===================================================================
4
+--- chromium-106.0.5249.91.orig/media/filters/audio_file_reader.cc
5
++++ chromium-106.0.5249.91/media/filters/audio_file_reader.cc
6
+@@ -243,10 +243,10 @@ bool AudioFileReader::OnNewFrame(
7
+   // silence from being output. In the case where we are also discarding some
8
+   // portion of the packet (as indicated by a negative pts), we further want to
9
+   // adjust the duration downward by however much exists before zero.
10
+-  if (audio_codec_ == AudioCodec::kAAC && frame->duration) {
11
++  if (audio_codec_ == AudioCodec::kAAC && frame->pkt_duration) {
12
+     const base::TimeDelta pkt_duration = ConvertFromTimeBase(
13
+         glue_->format_context()->streamsstream_index_->time_base,
14
+-        frame->duration + std::min(static_cast<int64_t>(0), frame->pts));
15
++        frame->pkt_duration + std::min(static_cast<int64_t>(0), frame->pts));
16
+     const base::TimeDelta frame_duration =
17
+         base::Seconds(frames_read / static_cast<double>(sample_rate_));
18
+ 
19
chromium-110-compiler.patch Added
255
 
1
@@ -0,0 +1,253 @@
2
+From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
3
+From: Mike Gilbert <floppym@gentoo.org>
4
+Date: Tue, 15 Nov 2022 10:27:58 +0000
5
+Subject: PATCH Disable various compiler configs
6
+
7
+---
8
+ build/config/compiler/BUILD.gn | 134 +++++----------------------------
9
+ 1 file changed, 17 insertions(+), 117 deletions(-)
10
+
11
+Index: chromium-114.0.5735.90/build/config/compiler/BUILD.gn
12
+===================================================================
13
+--- chromium-114.0.5735.90.orig/build/config/compiler/BUILD.gn
14
++++ chromium-114.0.5735.90/build/config/compiler/BUILD.gn
15
+@@ -289,9 +289,7 @@ config("compiler") {
16
+ 
17
+   configs += 
18
+     # See the definitions below.
19
+-    ":clang_revision",
20
+     ":rustc_revision",
21
+-    ":compiler_cpu_abi",
22
+     ":compiler_codegen",
23
+     ":compiler_deterministic",
24
+   
25
+@@ -540,37 +538,6 @@ config("compiler") {
26
+     ldflags +=  "-Wl,-z,keep-text-section-prefix" 
27
+   }
28
+ 
29
+-  if (is_clang && !is_nacl && current_os != "zos") {
30
+-    cflags +=  "-fcrash-diagnostics-dir=" + clang_diagnostic_dir 
31
+-    if (save_reproducers_on_lld_crash && use_lld) {
32
+-      ldflags += 
33
+-        "-fcrash-diagnostics=all",
34
+-        "-fcrash-diagnostics-dir=" + clang_diagnostic_dir,
35
+-      
36
+-    }
37
+-
38
+-    # TODO(hans): Remove this once Clang generates better optimized debug info
39
+-    # by default. https://crbug.com/765793
40
+-    cflags += 
41
+-      "-mllvm",
42
+-      "-instcombine-lower-dbg-declare=0",
43
+-    
44
+-    if (!is_debug && use_thin_lto && is_a_target_toolchain) {
45
+-      if (is_win) {
46
+-        ldflags +=  "-mllvm:-instcombine-lower-dbg-declare=0" 
47
+-      } else {
48
+-        ldflags +=  "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" 
49
+-      }
50
+-    }
51
+-
52
+-    # TODO(crbug.com/1235145): Investigate why/if this should be needed.
53
+-    if (is_win) {
54
+-      cflags +=  "/clang:-ffp-contract=off" 
55
+-    } else {
56
+-      cflags +=  "-ffp-contract=off" 
57
+-    }
58
+-  }
59
+-
60
+   # C11/C++11 compiler flags setup.
61
+   # ---------------------------
62
+   if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
63
+@@ -1346,46 +1313,6 @@ config("compiler_deterministic") {
64
+     }
65
+   }
66
+ 
67
+-  # Makes builds independent of absolute file path.
68
+-  if (is_clang && strip_absolute_paths_from_debug_symbols) {
69
+-    # If debug option is given, clang includes $cwd in debug info by default.
70
+-    # For such build, this flag generates reproducible obj files even we use
71
+-    # different build directory like "out/feature_a" and "out/feature_b" if
72
+-    # we build same files with same compile flag.
73
+-    # Other paths are already given in relative, no need to normalize them.
74
+-    if (is_nacl) {
75
+-      # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
76
+-      cflags += 
77
+-        "-Xclang",
78
+-        "-fdebug-compilation-dir",
79
+-        "-Xclang",
80
+-        ".",
81
+-      
82
+-    } else {
83
+-      # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
84
+-      # and -fcoverage-compilation-dir=.
85
+-      cflags +=  "-ffile-compilation-dir=." 
86
+-      swiftflags +=  "-file-compilation-dir=." 
87
+-    }
88
+-    if (!is_win) {
89
+-      # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
90
+-      asmflags =  "-Wa,-fdebug-compilation-dir,." 
91
+-    }
92
+-
93
+-    if (is_win && use_lld) {
94
+-      if (symbol_level == 2 || (is_clang && using_sanitizer)) {
95
+-        # Absolutize source file paths for PDB. Pass the real build directory
96
+-        # if the pdb contains source-level debug information and if linker
97
+-        # reproducibility is not critical.
98
+-        ldflags +=  "/PDBSourcePath:" + rebase_path(root_build_dir) 
99
+-      } else {
100
+-        # Use a fake fixed base directory for paths in the pdb to make the pdb
101
+-        # output fully deterministic and independent of the build directory.
102
+-        ldflags +=  "/PDBSourcePath:o:\fake\prefix" 
103
+-      }
104
+-    }
105
+-  }
106
+-
107
+   # Tells the compiler not to use absolute paths when passing the default
108
+   # paths to the tools it invokes. We don't want this because we don't
109
+   # really need it and it can mess up the goma cache entries.
110
+@@ -1404,27 +1331,6 @@ config("compiler_deterministic") {
111
+   }
112
+ }
113
+ 
114
+-config("clang_revision") {
115
+-  if (is_clang && clang_base_path == default_clang_base_path) {
116
+-    update_args = 
117
+-      "--print-revision",
118
+-      "--verify-version=$clang_version",
119
+-    
120
+-    if (llvm_force_head_revision) {
121
+-      update_args +=  "--llvm-force-head-revision" 
122
+-    }
123
+-    clang_revision = exec_script("//tools/clang/scripts/update.py",
124
+-                                 update_args,
125
+-                                 "trim string")
126
+-
127
+-    # This is here so that all files get recompiled after a clang roll and
128
+-    # when turning clang on or off. (defines are passed via the command line,
129
+-    # and build system rebuild things when their commandline changes). Nothing
130
+-    # should ever read this define.
131
+-    defines =  "CR_CLANG_REVISION=\"$clang_revision\"" 
132
+-  }
133
+-}
134
+-
135
+ config("rustc_revision") {
136
+   if (rustc_revision != "") {
137
+     # Similar to the above config, this is here so that all files get recompiled
138
+@@ -1714,7 +1620,7 @@ config("chromium_code") {
139
+       defines =  "_HAS_NODISCARD" 
140
+     }
141
+   } else {
142
+-    cflags =  "-Wall" 
143
++    cflags = 
144
+     if (treat_warnings_as_errors) {
145
+       cflags +=  "-Werror" 
146
+ 
147
+@@ -1723,10 +1629,6 @@ config("chromium_code") {
148
+       # well.
149
+       ldflags =  "-Werror" 
150
+     }
151
+-    if (is_clang) {
152
+-      # Enable extra warnings for chromium_code when we control the compiler.
153
+-      cflags +=  "-Wextra" 
154
+-    }
155
+ 
156
+     if (treat_warnings_as_errors) {
157
+       # Turn rustc warnings into the "deny" lint level, which produce compiler
158
+@@ -1744,16 +1646,6 @@ config("chromium_code") {
159
+       "__STDC_FORMAT_MACROS",
160
+     
161
+ 
162
+-    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
163
+-        current_cpu != "s390" && current_cpu != "ppc64" &&
164
+-        current_cpu != "mips" && current_cpu != "mips64" &&
165
+-        current_cpu != "riscv64" && current_cpu != "loong64") {
166
+-      # Non-chromium code is not guaranteed to compile cleanly with
167
+-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
168
+-      # disabled, so only do that for Release build.
169
+-      defines +=  "_FORTIFY_SOURCE=2" 
170
+-    }
171
+-
172
+     if (is_apple) {
173
+       cflags_objc =  "-Wimplicit-retain-self" 
174
+       cflags_objcc =  "-Wimplicit-retain-self" 
175
+@@ -2122,7 +2014,8 @@ config("default_stack_frames") {
176
+ }
177
+ 
178
+ # Default "optimization on" config.
179
+-config("optimize") {
180
++config("optimize") { }
181
++config("xoptimize") {
182
+   if (is_win) {
183
+     if (chrome_pgo_phase != 2) {
184
+       # Favor size over speed, /O1 must be before the common flags.
185
+@@ -2181,7 +2074,8 @@ config("optimize") {
186
+ }
187
+ 
188
+ # Turn off optimizations.
189
+-config("no_optimize") {
190
++config("no_optimize") { }
191
++config("xno_optimize") {
192
+   if (is_win) {
193
+     cflags = 
194
+       "/Od",  # Disable optimization.
195
+@@ -2221,7 +2115,8 @@ config("no_optimize") {
196
+ # Turns up the optimization level. On Windows, this implies whole program
197
+ # optimization and link-time code generation which is very expensive and should
198
+ # be used sparingly.
199
+-config("optimize_max") {
200
++config("optimize_max") { }
201
++config("xoptimize_max") {
202
+   if (is_nacl && is_nacl_irt) {
203
+     # The NaCl IRT is a special case and always wants its own config.
204
+     # Various components do:
205
+@@ -2254,7 +2149,8 @@ config("optimize_max") {
206
+ #
207
+ # TODO(crbug.com/621335) - rework how all of these configs are related
208
+ # so that we don't need this disclaimer.
209
+-config("optimize_speed") {
210
++config("optimize_speed") { }
211
++config("xoptimize_speed") {
212
+   if (is_nacl && is_nacl_irt) {
213
+     # The NaCl IRT is a special case and always wants its own config.
214
+     # Various components do:
215
+@@ -2280,7 +2176,8 @@ config("optimize_speed") {
216
+   }
217
+ }
218
+ 
219
+-config("optimize_fuzzing") {
220
++config("optimize_fuzzing") { }
221
++config("xoptimize_fuzzing") {
222
+   cflags =  "-O1"  + common_optimize_on_cflags
223
+   rustflags =  "-Copt-level=1" 
224
+   ldflags = common_optimize_on_ldflags
225
+@@ -2405,7 +2302,8 @@ config("win_pdbaltpath") {
226
+ }
227
+ 
228
+ # Full symbols.
229
+-config("symbols") {
230
++config("symbols") { }
231
++config("xsymbols") {
232
+   rustflags = 
233
+   if (is_win) {
234
+     if (is_clang) {
235
+@@ -2548,7 +2446,8 @@ config("symbols") {
236
+ # Minimal symbols.
237
+ # This config guarantees to hold symbol for stack trace which are shown to user
238
+ # when crash happens in unittests running on buildbot.
239
+-config("minimal_symbols") {
240
++config("minimal_symbols") { }
241
++config("xminimal_symbols") {
242
+   if (is_win) {
243
+     # Functions, files, and line tables only.
244
+     cflags = 
245
+@@ -2622,7 +2521,8 @@ config("minimal_symbols") {
246
+ # This configuration contains function names only. That is, the compiler is
247
+ # told to not generate debug information and the linker then just puts function
248
+ # names in the final debug information.
249
+-config("no_symbols") {
250
++config("no_symbols") { }
251
++config("xno_symbols") {
252
+   if (is_win) {
253
+     ldflags =  "/DEBUG" 
254
+ 
255
chromium-110-system-libffi.patch Added
28
 
1
@@ -0,0 +1,26 @@
2
+Index: chromium-110.0.5481.30/build/config/linux/libffi/BUILD.gn
3
+===================================================================
4
+--- chromium-110.0.5481.30.orig/build/config/linux/libffi/BUILD.gn
5
++++ chromium-110.0.5481.30/build/config/linux/libffi/BUILD.gn
6
+@@ -4,21 +4,6 @@
7
+ 
8
+ import("//build/config/linux/pkg_config.gni")
9
+ 
10
+-declare_args() {
11
+-  # Controls whether the build should use the version of libffi library shipped
12
+-  # with the system. By default, we only use the system version on Chrome OS:
13
+-  # on Linux, libffi must be statically linked to prevent a situation where the
14
+-  # runtime version of libffi is different from the build-time version from the
15
+-  # sysroot.
16
+-  use_system_libffi = default_toolchain == "//build/toolchain/cros:target"
17
+-}
18
+-
19
+-if (use_system_libffi) {
20
+   pkg_config("libffi") {
21
+     packages =  "libffi" 
22
+   }
23
+-} else {
24
+-  config("libffi") {
25
+-    libs =  ":libffi_pic.a" 
26
+-  }
27
+-}
28
chromium-113-typename.patch Added
66
 
1
@@ -0,0 +1,64 @@
2
+diff -up chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc.me chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc
3
+--- chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc.me 2023-05-03 17:46:37.194000834 +0200
4
++++ chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc    2023-05-03 17:48:05.170317575 +0200
5
+@@ -87,7 +87,7 @@ ItemSortKey GetSortKey(const Item& item)
6
+ // Helper to get an iterator to the last element in the cache. The cache
7
+ // must not be empty.
8
+ template <typename Item>
9
+-SortedItems<Item>::iterator GetLastIter(SortedItems<Item>& cache) {
10
++typename SortedItems<Item>::iterator GetLastIter(SortedItems<Item>& cache) {
11
+   CHECK(!cache.empty());
12
+   auto it = cache.end();
13
+   return std::prev(it);
14
+@@ -789,9 +789,9 @@ bool DownloadBubbleUpdateService::Remove
15
+ }
16
+ 
17
+ template <typename Id, typename Item>
18
+-SortedItems<Item>::iterator
19
++typename SortedItems<Item>::iterator
20
+ DownloadBubbleUpdateService::RemoveItemFromCacheByIter(
21
+-    SortedItems<Item>::iterator iter,
22
++    typename SortedItems<Item>::iterator iter,
23
+     SortedItems<Item>& cache,
24
+     IterMap<Id, Item>& iter_map) {
25
+   CHECK(iter != cache.end());
26
+diff -up chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h.me chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h
27
+--- chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h.me  2023-05-03 17:48:14.079551820 +0200
28
++++ chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h 2023-05-03 17:49:24.702387180 +0200
29
+@@ -208,8 +208,8 @@ class DownloadBubbleUpdateService
30
+ 
31
+   // Removes item if we already have the iterator to it. Returns next iterator.
32
+   template <typename Id, typename Item>
33
+-  SortedItems<Item>::iterator RemoveItemFromCacheByIter(
34
+-      SortedItems<Item>::iterator iter,
35
++  typename SortedItems<Item>::iterator RemoveItemFromCacheByIter(
36
++      typename SortedItems<Item>::iterator iter,
37
+       SortedItems<Item>& cache,
38
+       IterMap<Id, Item>& iter_map);
39
+ 
40
+diff --git a/print_backend_service_manager.h b/print_backend_service_manager.h.new
41
+index d812f3b..3352148 100644
42
+--- a/chrome/browser/printing/print_backend_service_manager.h
43
++++ b/chrome/browser/printing/print_backend_service_manager.h
44
+@@ -587,7 +587,7 @@ class PrintBackendServiceManager {
45
+   template <class... T>
46
+   void RunSavedCallbacks(RemoteSavedCallbacks<T...>& saved_callbacks,
47
+                          const RemoteId& remote_id,
48
+-                         std::remove_reference<T>::type... result);
49
++                         typename std::remove_reference<T>::type... result);
50
+ 
51
+   // Test support for client ID management.
52
+   static void SetClientsForTesting(
53
+diff --git a/print_backend_service_manager.cc b/print_backend_service_manager.cc.new
54
+index b5a4b52..224369c 100644
55
+--- a/chrome/browser/printing/print_backend_service_manager.cc
56
++++ b/chrome/browser/printing/print_backend_service_manager.cc
57
+@@ -1477,7 +1477,7 @@ template <class... T>
58
+ void PrintBackendServiceManager::RunSavedCallbacks(
59
+     RemoteSavedCallbacks<T...>& saved_callbacks,
60
+     const RemoteId& remote_id,
61
+-    std::remove_reference<T>::type... result) {
62
++    typename std::remove_reference<T>::type... result) {
63
+   auto found_callbacks_map = saved_callbacks.find(remote_id);
64
+   if (found_callbacks_map == saved_callbacks.end())
65
+     return;  // No callbacks to run.
66
chromium-113-webauth-include-variant.patch Added
14
 
1
@@ -0,0 +1,12 @@
2
+Index: chromium-114.0.5735.90/chrome/browser/webauthn/authenticator_request_dialog_model.h
3
+===================================================================
4
+--- chromium-114.0.5735.90.orig/chrome/browser/webauthn/authenticator_request_dialog_model.h
5
++++ chromium-114.0.5735.90/chrome/browser/webauthn/authenticator_request_dialog_model.h
6
+@@ -7,6 +7,7 @@
7
+ 
8
+ #include <memory>
9
+ #include <string>
10
++#include <variant>
11
+ #include <vector>
12
+ #include <variant>
13
+ 
14
chromium-113-webview-namespace.patch Added
15
 
1
@@ -0,0 +1,13 @@
2
+diff --git a/web_view_impl.cc b/web_view_impl.cc.new
3
+index f726627..c1d4d14 100644
4
+--- a/chrome/test/chromedriver/chrome/web_view_impl.cc
5
++++ b/chrome/test/chromedriver/chrome/web_view_impl.cc
6
+@@ -75,7 +75,7 @@ absl::optional<std::pair<std::string, int>> GetElementId(
7
+   if (element_id == nullptr) {
8
+     return absl::nullopt;
9
+   }
10
+-  static const size_t separator_length = std::strlen(kElementIdSeparator);
11
++  static const size_t separator_length = strlen(kElementIdSeparator);
12
+   const size_t separator_pos = element_id->rfind(
13
+       kElementIdSeparator, std::string::npos, separator_length);
14
+   if (separator_pos == std::string::npos) {
15
chromium-114-lld-argument.patch Added
20
 
1
@@ -0,0 +1,18 @@
2
+diff --git a/BUILD.gn b/BUILD.gn.new
3
+index 28c2255..7f89fe6 100644
4
+--- a/build/config/compiler/BUILD.gn
5
++++ b/build/config/compiler/BUILD.gn
6
+@@ -727,13 +727,6 @@ config("compiler") {
7
+ 
8
+       ldflags +=  "-Wl,-mllvm,-import-instr-limit=$import_instr_limit" 
9
+ 
10
+-      if (!is_chromeos) {
11
+-        # TODO(https://crbug.com/972449): turn on for ChromeOS when that
12
+-        # toolchain has this flag.
13
+-        # We only use one version of LLVM within a build so there's no need to
14
+-        # upgrade debug info, which can be expensive since it runs the verifier.
15
+-        ldflags +=  "-Wl,-mllvm,-disable-auto-upgrade-debug-info" 
16
+-      }
17
+     }
18
+ 
19
+     # TODO(https://crbug.com/1211155): investigate why this isn't effective on
20
chromium-114-revert-av1enc-lp154.patch Added
89
 
1
@@ -0,0 +1,87 @@
2
+diff -up chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
3
+--- chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me    2023-05-21 10:05:00.357860329 +0200
4
++++ chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc   2023-05-21 10:18:09.665432735 +0200
5
+@@ -41,7 +41,6 @@
6
+ #include "media/gpu/gpu_video_encode_accelerator_helpers.h"
7
+ #include "media/gpu/h264_dpb.h"
8
+ #include "media/gpu/macros.h"
9
+-#include "media/gpu/vaapi/av1_vaapi_video_encoder_delegate.h"
10
+ #include "media/gpu/vaapi/h264_vaapi_video_encoder_delegate.h"
11
+ #include "media/gpu/vaapi/va_surface.h"
12
+ #include "media/gpu/vaapi/vaapi_common.h"
13
+@@ -200,7 +199,7 @@ bool VaapiVideoEncodeAccelerator::Initia
14
+ 
15
+   const VideoCodec codec = VideoCodecProfileToVideoCodec(config.output_profile);
16
+   if (codec != VideoCodec::kH264 && codec != VideoCodec::kVP8 &&
17
+-      codec != VideoCodec::kVP9 && codec != VideoCodec::kAV1) {
18
++      codec != VideoCodec::kVP9) {
19
+     MEDIA_LOG(ERROR, media_log.get())
20
+         << "Unsupported profile: " << GetProfileName(config.output_profile);
21
+     return false;
22
+@@ -293,7 +292,6 @@ void VaapiVideoEncodeAccelerator::Initia
23
+         break;
24
+       case VideoCodec::kVP8:
25
+       case VideoCodec::kVP9:
26
+-      case VideoCodec::kAV1:
27
+         mode = VaapiWrapper::kEncodeConstantQuantizationParameter;
28
+         break;
29
+       default:
30
+@@ -356,12 +354,6 @@ void VaapiVideoEncodeAccelerator::Initia
31
+             vaapi_wrapper_, error_cb);
32
+       }
33
+       break;
34
+-    case VideoCodec::kAV1:
35
+-      if (!IsConfiguredForTesting()) {
36
+-        encoder_ = std::make_unique<AV1VaapiVideoEncoderDelegate>(
37
+-            vaapi_wrapper_, error_cb);
38
+-      }
39
+-      break;
40
+     default:
41
+       NOTREACHED() << "Unsupported codec type " << GetCodecName(output_codec_);
42
+       return;
43
+@@ -835,10 +827,6 @@ VaapiVideoEncodeAccelerator::CreateEncod
44
+     case VideoCodec::kVP9:
45
+       picture = new VaapiVP9Picture(std::move(reconstructed_surface));
46
+       break;
47
+-    case VideoCodec::kAV1:
48
+-      picture = new VaapiAV1Picture(/*display_va_surface=*/nullptr,
49
+-                                    std::move(reconstructed_surface));
50
+-      break;
51
+     default:
52
+       return nullptr;
53
+   }
54
+diff -up chromium-114.0.5735.35/media/gpu/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/BUILD.gn
55
+--- chromium-114.0.5735.35/media/gpu/BUILD.gn.revert-av1enc    2023-05-18 00:37:57.000000000 +0200
56
++++ chromium-114.0.5735.35/media/gpu/BUILD.gn  2023-05-20 13:14:10.755183630 +0200
57
+@@ -373,10 +373,7 @@ source_set("common") {
58
+       "vp9_svc_layers.h",
59
+     
60
+     configs +=  "//third_party/libvpx:libvpx_config" 
61
+-    deps += 
62
+-      "//third_party/libaom:libaomrc",
63
+-      "//third_party/libvpx:libvpxrc",
64
+-    
65
++    deps +=  "//third_party/libvpx:libvpxrc" 
66
+   }
67
+   if (use_libgav1_parser) {
68
+     sources += 
69
+diff -up chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn
70
+--- chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc  2023-05-18 00:37:57.000000000 +0200
71
++++ chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn    2023-05-20 13:14:10.756183626 +0200
72
+@@ -38,8 +38,6 @@ source_set("vaapi") {
73
+   sources = 
74
+     "av1_vaapi_video_decoder_delegate.cc",
75
+     "av1_vaapi_video_decoder_delegate.h",
76
+-    "av1_vaapi_video_encoder_delegate.cc",
77
+-    "av1_vaapi_video_encoder_delegate.h",
78
+     "h264_vaapi_video_decoder_delegate.cc",
79
+     "h264_vaapi_video_decoder_delegate.h",
80
+     "h264_vaapi_video_encoder_delegate.cc",
81
+@@ -107,7 +105,6 @@ source_set("vaapi") {
82
+     "//media/gpu/chromeos:common",
83
+     "//media/parsers",
84
+     "//mojo/public/cpp/bindings",
85
+-    "//third_party/libaom:libaomrc",
86
+     "//third_party/libvpx:libvpxrc",
87
+     "//third_party/libyuv",
88
+     "//ui/gfx",
89
chromium-114-workaround_clang_bug-structured_binding.patch Added
83
 
1
@@ -0,0 +1,81 @@
2
+diff -up chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
3
+--- chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding  2023-05-11 03:36:27.000000000 +0200
4
++++ chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc  2023-05-14 11:49:42.558129164 +0200
5
+@@ -238,7 +238,10 @@ const NGLayoutResult* NGGridLayoutAlgori
6
+                               : BuildGridSizingTree(&oof_children);
7
+ 
8
+   LayoutUnit intrinsic_block_size;
9
+-  auto& grid_items, layout_data, tree_size = grid_sizing_tree.TreeRootData();
10
++  auto& g_i, l_d, t_s = grid_sizing_tree.TreeRootData();
11
++  auto& grid_items = g_i;
12
++  auto& layout_data = l_d;
13
++  auto& tree_size = t_s;
14
+ 
15
+   if (IsBreakInside(BreakToken())) {
16
+     // TODO(layout-dev): When we support variable inline-size fragments we'll
17
+@@ -520,8 +523,10 @@ wtf_size_t NGGridLayoutAlgorithm::BuildG
18
+                                 row_auto_repetitions);
19
+ 
20
+   bool has_nested_subgrid = false;
21
+-  auto& grid_items, layout_data, subtree_size =
22
+-      sizing_tree->CreateSizingData(opt_subgrid_data);
23
++  auto& g_i, l_d, s_s = sizing_tree->CreateSizingData(opt_subgrid_data);
24
++  auto& grid_items = g_i;
25
++  auto& layout_data = l_d;
26
++  auto& subtree_size = s_s;
27
+ 
28
+   if (!must_ignore_children) {
29
+     // Construct grid items that are not subgridded.
30
+@@ -650,8 +655,10 @@ NGGridSizingTree NGGridLayoutAlgorithm::
31
+   NGGridSizingTree sizing_tree;
32
+ 
33
+   if (const auto* layout_subtree = ConstraintSpace().GridLayoutSubtree()) {
34
+-    auto& grid_items, layout_data, subtree_size =
35
+-        sizing_tree.CreateSizingData();
36
++    auto& g_i, l_d, s_s = sizing_tree.CreateSizingData();
37
++    auto& grid_items = g_i;
38
++    auto& layout_data = l_d;
39
++    auto& subtree_size = s_s;
40
+ 
41
+     const auto& node = Node();
42
+     grid_items =
43
+@@ -1640,8 +1647,10 @@ void NGGridLayoutAlgorithm::InitializeTr
44
+     const absl::optional<GridTrackSizingDirection>& opt_track_direction) const {
45
+   DCHECK(sizing_subtree);
46
+ 
47
+-  auto& grid_items, layout_data, subtree_size =
48
+-      sizing_subtree.SubtreeRootData();
49
++  auto& g_i, l_d, s_s = sizing_subtree.SubtreeRootData();
50
++  auto& grid_items = g_i;
51
++  auto& layout_data = l_d;
52
++  auto& subtree_size = s_s;
53
+ 
54
+   auto InitAndCacheTrackSizes = &(GridTrackSizingDirection track_direction) {
55
+     InitializeTrackCollection(opt_subgrid_data, track_direction, &layout_data);
56
+@@ -1825,8 +1834,10 @@ void NGGridLayoutAlgorithm::CompleteTrac
57
+     bool* opt_needs_additional_pass) const {
58
+   DCHECK(sizing_subtree);
59
+ 
60
+-  auto& grid_items, layout_data, subtree_size =
61
+-      sizing_subtree.SubtreeRootData();
62
++  auto& g_i, l_d, s_s = sizing_subtree.SubtreeRootData();
63
++  auto& grid_items = g_i;
64
++  auto& layout_data = l_d;
65
++  auto& subtree_size = s_s;
66
+ 
67
+   const bool is_for_columns = track_direction == kForColumns;
68
+   const bool has_non_definite_track =
69
+diff -up chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc.me chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc
70
+--- chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc.me    2023-05-14 17:35:00.446844465 +0200
71
++++ chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc   2023-05-14 17:39:22.991733926 +0200
72
+@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
73
+ void CdmPromiseAdapter::Clear(ClearReason reason) {
74
+   // Reject all outstanding promises.
75
+   DCHECK(thread_checker_.CalledOnValidThread());
76
+-  for (auto& promise_id, promise : promises_) {
77
++  for (auto& p_i, p_e : promises_) {
78
++    auto& promise_id = p_i;
79
++    auto& promise = p_e;
80
+     TRACE_EVENT_NESTABLE_ASYNC_END1(
81
+         "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
82
+         "status", "cleared");
83
chromium-78-protobuf-RepeatedPtrField-export.patch Deleted
15
 
1
@@ -1,13 +0,0 @@
2
-diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h
3
-index b5b193c..4434854 100644
4
---- a/third_party/protobuf/src/google/protobuf/repeated_field.h
5
-+++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
6
-@@ -804,7 +804,7 @@ class StringTypeHandler {
7
- // RepeatedPtrField is like RepeatedField, but used for repeated strings or
8
- // Messages.
9
- template <typename Element>
10
--class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
11
-+class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
12
-  public:
13
-   RepeatedPtrField();
14
-   explicit RepeatedPtrField(Arena* arena);
15
chromium-86-ImageMemoryBarrierData-init.patch Deleted
33
 
1
@@ -1,31 +0,0 @@
2
-From 2879a6ba43b65c33e3c02432b4ae7a7462d24096 Mon Sep 17 00:00:00 2001
3
-From: Stephan Hartmann <stha09@googlemail.com>
4
-Date: Fri, 28 Aug 2020 07:23:29 +0000
5
-Subject: PATCH GCC: fix ImageMemoryBarrierData initialization
6
-
7
-GCC can't convert constant string to char40. Use const char * instead.
8
-Otherwise fails like this:
9
-
10
-src/libANGLE/renderer/vulkan/vk_helpers.cpp:121:1: error: could not convert
11
-'...' from '<brace-enclosed initializer list>' to
12
-'const angle::PackedEnumMap<rx::vk::ImageLayout, rx::vk::{anonymous}::ImageMemoryBarrierData>'
13
----
14
- third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp | 2 +-
15
- 1 file changed, 1 insertion(+), 1 deletion(-)
16
-
17
-diff --git a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
18
-index af957d7..7fe82ae 100644
19
---- a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
20
-+++ b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
21
-@@ -73,7 +73,7 @@ enum BarrierType
22
- 
23
- struct ImageMemoryBarrierData
24
- {
25
--    char name44;
26
-+    const char *name;
27
- 
28
-     // The Vk layout corresponding to the ImageLayout key.
29
-     VkImageLayout layout;
30
--- 
31
-2.26.2
32
-
33
chromium-93-InkDropHost-crash.patch Deleted
26
 
1
@@ -1,24 +0,0 @@
2
-diff -up chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h
3
---- chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash    2021-10-05 16:04:46.313586509 -0400
4
-+++ chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h  2021-10-05 16:05:12.213732558 -0400
5
-@@ -228,6 +228,11 @@ class VIEWS_EXPORT InkDropHost {
6
-   // Used to observe View and inform the InkDrop of host-transform changes.
7
-   ViewLayerTransformObserver host_view_transform_observer_;
8
- 
9
-+  // Declared before |ink_drop_|, because InkDropImpl may call
10
-+  // RemoveInkDropLayer on partly destructed InkDropHost. In
11
-+  // that case |ink_drop_mask_| must be still valid.
12
-+  std::unique_ptr<views::InkDropMask> ink_drop_mask_;
13
-+
14
-   // Should not be accessed directly. Use GetInkDrop() instead.
15
-   std::unique_ptr<InkDrop> ink_drop_;
16
- 
17
-@@ -249,8 +254,6 @@ class VIEWS_EXPORT InkDropHost {
18
-   int ink_drop_small_corner_radius_ = 2;
19
-   int ink_drop_large_corner_radius_ = 4;
20
- 
21
--  std::unique_ptr<views::InkDropMask> ink_drop_mask_;
22
--
23
-   base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
24
-   base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
25
-       create_ink_drop_ripple_callback_;
26
chromium-94-sql-no-assert.patch Deleted
17
 
1
@@ -1,15 +0,0 @@
2
---- a/sql/recover_module/cursor.h
3
-+++ b/sql/recover_module/cursor.h
4
-@@ -62,10 +62,12 @@
5
-   // |sqlite_cursor| must have been returned by VirtualTable::SqliteCursor().
6
-   static inline VirtualCursor* FromSqliteCursor(
7
-       sqlite3_vtab_cursor* sqlite_cursor) {
8
-+#ifndef NDEBUG
9
-     static_assert(std::is_standard_layout<VirtualCursor>::value,
10
-                   "needed for the reinterpret_cast below");
11
-     static_assert(offsetof(VirtualCursor, sqlite_cursor_) == 0,
12
-                   "sqlite_cursor_ must be the first member of the class");
13
-+#endif
14
-     VirtualCursor* result = reinterpret_cast<VirtualCursor*>(sqlite_cursor);
15
-     DCHECK_EQ(sqlite_cursor, &result->sqlite_cursor_);
16
-     return result;
17
chromium-98-EnumTable-crash.patch Deleted
78
 
1
@@ -1,76 +0,0 @@
2
-diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
3
-index 842553a..89de703 100644
4
---- a/components/cast_channel/enum_table.h
5
-+++ b/components/cast_channel/enum_table.h
6
-@@ -8,6 +8,7 @@
7
- #include <cstdint>
8
- #include <cstring>
9
- #include <ostream>
10
-+#include <vector>
11
- 
12
- #include "base/check_op.h"
13
- #include "base/notreached.h"
14
-@@ -187,7 +188,6 @@ class
15
-   inline constexpr GenericEnumTableEntry(int32_t value);
16
-   inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str);
17
- 
18
--  GenericEnumTableEntry(const GenericEnumTableEntry&) = delete;
19
-   GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete;
20
- 
21
-  private:
22
-@@ -253,7 +253,6 @@ class EnumTable {
23
-     constexpr Entry(E value, base::StringPiece str)
24
-         : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
25
- 
26
--    Entry(const Entry&) = delete;
27
-     Entry& operator=(const Entry&) = delete;
28
-   };
29
- 
30
-@@ -312,15 +311,14 @@ class EnumTable {
31
-     if (is_sorted_) {
32
-       const std::size_t index = static_cast<std::size_t>(value);
33
-       if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
34
--        const auto& entry = data_.begin()index;
35
-+        const auto& entry = data_index;
36
-         if (ANALYZER_ASSUME_TRUE(entry.has_str()))
37
-           return entry.str();
38
-       }
39
-       return absl::nullopt;
40
-     }
41
-     return GenericEnumTableEntry::FindByValue(
42
--        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
43
--        data_.size(), static_cast<int32_t>(value));
44
-+        &data_0, data_.size(), static_cast<int32_t>(value));
45
-   }
46
- 
47
-   // This overload of GetString is designed for cases where the argument is a
48
-@@ -348,8 +346,7 @@ class EnumTable {
49
-   // enum value directly.
50
-   absl::optional<E> GetEnum(base::StringPiece str) const {
51
-     auto* entry = GenericEnumTableEntry::FindByString(
52
--        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
53
--        data_.size(), str);
54
-+        &data_0, data_.size(), str);
55
-     return entry ? static_cast<E>(entry->value) : absl::optional<E>();
56
-   }
57
- 
58
-@@ -364,7 +361,7 @@ class EnumTable {
59
-   // Align the data on a cache line boundary.
60
-   alignas(64)
61
- #endif
62
--      std::initializer_list<Entry> data_;
63
-+      const std::vector<Entry> data_;
64
-   bool is_sorted_;
65
- 
66
-   constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
67
-@@ -376,8 +373,8 @@ class EnumTable {
68
- 
69
-     for (std::size_t i = 0; i < data.size(); i++) {
70
-       for (std::size_t j = i + 1; j < data.size(); j++) {
71
--        const Entry& ei = data.begin()i;
72
--        const Entry& ej = data.begin()j;
73
-+        const Entry& ei = datai;
74
-+        const Entry& ej = dataj;
75
-         DCHECK(ei.value != ej.value)
76
-             << "Found duplicate enum values at indices " << i << " and " << j;
77
-         DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
78
chromium-clang-nomerge.patch Deleted
45
 
1
@@ -1,43 +0,0 @@
2
-Upstream-status: Inapproriate
3
-
4
-Upstream suggests to use Chromium's hermetic clang
5
-instead.
6
-
7
-Signed-off-by: Maksim Sisov <msisov@igalia.com>
8
----
9
-From bde3186ccba169391fb428fcc296b2236ada0010 Mon Sep 17 00:00:00 2001
10
-From: Maksim Sisov <msisov@igalia.com>
11
-Date: Wed, 5 May 2021 15:20:43 +0300
12
-Subject: PATCH nomerge attribute on declaration is only available since
13
- clang 12
14
-
15
-This change fixes builds with older clangs that do not allow
16
-nomerge attributes on declaration. Otherwise, the following error
17
-is produced -
18
-
19
-build error: 'nomerge' attribute cannot be applied to a declaration
20
-
21
-See https://reviews.llvm.org/D92800
22
-
23
-Change-Id: I32e1f7dc9049737d54d8a16de5308aa5aae1ced1
24
----
25
- base/compiler_specific.h | 3 ++-
26
- 1 file changed, 2 insertions(+), 1 deletion(-)
27
-
28
-diff --git a/base/compiler_specific.h b/base/compiler_specific.h
29
-index 6693e9ea33e9..d3b425abe9ca 100644
30
---- a/base/compiler_specific.h
31
-+++ b/base/compiler_specific.h
32
-@@ -340,7 +340,8 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) {
33
- #endif  // defined(__clang_analyzer__)
34
- 
35
- // Use nomerge attribute to disable optimization of merging multiple same calls.
36
--#if defined(__clang__) && HAS_ATTRIBUTE(nomerge)
37
-+#if defined(__clang__) && (__clang_major__ >= 12) && \
38
-+    HAS_ATTRIBUTE(nomerge) && !defined(OS_CHROMEOS)
39
- #define NOMERGE clang::nomerge
40
- #else
41
- #define NOMERGE
42
--- 
43
-2.25.1
44
-
45
chromium-disable-GlobalMediaControlsCastStartStop.patch Added
15
 
1
@@ -0,0 +1,13 @@
2
+Index: chromium-113.0.5672.53/chrome/browser/media/router/media_router_feature.cc
3
+===================================================================
4
+--- chromium-113.0.5672.53.orig/chrome/browser/media/router/media_router_feature.cc
5
++++ chromium-113.0.5672.53/chrome/browser/media/router/media_router_feature.cc
6
+@@ -68,7 +68,7 @@ BASE_FEATURE(kGlobalMediaControlsCastSta
7
+ #else
8
+ BASE_FEATURE(kGlobalMediaControlsCastStartStop,
9
+              "GlobalMediaControlsCastStartStop",
10
+-             base::FEATURE_ENABLED_BY_DEFAULT);
11
++             base::FEATURE_DISABLED_BY_DEFAULT);
12
+ #endif  // BUILDFLAG(IS_CHROMEOS)
13
+ #endif  // BUILDFLAG(IS_ANDROID)
14
+ 
15
chromium-ffmpeg-lp152.patch Deleted
18
 
1
@@ -1,16 +0,0 @@
2
---- a/media/filters/ffmpeg_demuxer.cc
3
-+++ b/media/filters/ffmpeg_demuxer.cc
4
-@@ -50,7 +50,13 @@
5
- #include "media/formats/webm/webm_crypto_helpers.h"
6
- #include "media/media_buildflags.h"
7
- #include "third_party/ffmpeg/ffmpeg_features.h"
8
-+#include <libavcodec/version.h>
9
-+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(58, 78, 100)
10
- #include "third_party/ffmpeg/libavcodec/packet.h"
11
-+#else
12
-+#include "third_party/ffmpeg/libavcodec/avcodec.h"
13
-+#endif
14
-+
15
-
16
- #if BUILDFLAG(ENABLE_PLATFORM_HEVC)
17
- #include "media/filters/ffmpeg_h265_to_annex_b_bitstream_converter.h"
18
chromium-gcc11.patch Deleted
129
 
1
@@ -1,127 +0,0 @@
2
-diff --git a/third_party/angle/src/libANGLE/HandleAllocator.cpp b/third_party/angle/src/libANGLE/HandleAllocator.cpp
3
-index 013f1dfb2..3ce63c192 100644
4
---- a/third_party/angle/src/libANGLE/HandleAllocator.cpp
5
-+++ b/third_party/angle/src/libANGLE/HandleAllocator.cpp
6
-@@ -9,6 +9,7 @@
7
- 
8
- #include "libANGLE/HandleAllocator.h"
9
- 
10
-+#include <limits>
11
- #include <algorithm>
12
- #include <functional>
13
- 
14
-diff --git a/third_party/perfetto/src/trace_processor/containers/string_pool.cc b/third_party/perfetto/src/trace_processor/containers/string_pool.cc
15
-index fd651958f..1e8d0606c 100644
16
---- a/third_party/perfetto/src/trace_processor/containers/string_pool.cc
17
-+++ b/third_party/perfetto/src/trace_processor/containers/string_pool.cc
18
-@@ -14,9 +14,9 @@
19
-  * limitations under the License.
20
-  */
21
- 
22
-+#include <limits>
23
- #include "src/trace_processor/containers/string_pool.h"
24
- 
25
--#include <limits>
26
- 
27
- #include "perfetto/base/logging.h"
28
- #include "perfetto/ext/base/utils.h"
29
-diff --git a/third_party/perfetto/src/trace_processor/db/column.cc b/third_party/perfetto/src/trace_processor/db/column.cc
30
-index 00496b335..0dccfeb8a 100644
31
---- a/third_party/perfetto/src/trace_processor/db/column.cc
32
-+++ b/third_party/perfetto/src/trace_processor/db/column.cc
33
-@@ -14,6 +14,7 @@
34
-  * limitations under the License.
35
-  */
36
- 
37
-+#include <limits>
38
- #include "src/trace_processor/db/column.h"
39
- 
40
- #include "src/trace_processor/db/compare.h"
41
-diff --git a/third_party/perfetto/src/trace_processor/types/variadic.cc b/third_party/perfetto/src/trace_processor/types/variadic.cc
42
-index 837bfeba9..cdd56817d 100644
43
---- a/third_party/perfetto/src/trace_processor/types/variadic.cc
44
-+++ b/third_party/perfetto/src/trace_processor/types/variadic.cc
45
-@@ -14,6 +14,7 @@
46
-  * limitations under the License.
47
-  */
48
- 
49
-+#include <limits>
50
- #include "src/trace_processor/types/variadic.h"
51
- 
52
- namespace perfetto {
53
-diff --git a/ui/accessibility/platform/ax_platform_atk_hyperlink.cc b/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
54
-index be91def6b..73f202356 100644
55
---- a/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
56
-+++ b/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
57
-@@ -245,7 +245,7 @@ static void AXPlatformAtkHyperlinkInit(AXPlatformAtkHyperlink* self, gpointer) {
58
- }
59
- 
60
- GType ax_platform_atk_hyperlink_get_type() {
61
--  static volatile gsize type_volatile = 0;
62
-+  static gsize type_volatile = 0;
63
- 
64
-   AXPlatformNodeAuraLinux::EnsureGTypeInit();
65
- 
66
-diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc
67
-index 04125c6fd..6c64e5d8e 100644
68
---- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
69
-+++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
70
-@@ -2274,7 +2274,7 @@ void ClassInit(gpointer class_pointer, gpointer /* class_data */) {
71
- GType GetType() {
72
-   AXPlatformNodeAuraLinux::EnsureGTypeInit();
73
- 
74
--  static volatile gsize type_volatile = 0;
75
-+  static gsize type_volatile = 0;
76
-   if (g_once_init_enter(&type_volatile)) {
77
-     static const GTypeInfo type_info = {
78
-         sizeof(AXPlatformNodeAuraLinuxClass),  // class_size
79
-diff --git a/ui/gtk/gtk_key_bindings_handler.cc b/ui/gtk/gtk_key_bindings_handler.cc
80
-index c663a2074..38a342484 100644
81
---- a/ui/gtk/gtk_key_bindings_handler.cc
82
-+++ b/ui/gtk/gtk_key_bindings_handler.cc
83
-@@ -141,7 +141,7 @@ void GtkKeyBindingsHandler::HandlerClassInit(HandlerClass* klass) {
84
- }
85
- 
86
- GType GtkKeyBindingsHandler::HandlerGetType() {
87
--  static volatile gsize type_id_volatile = 0;
88
-+  static gsize type_id_volatile = 0;
89
-   if (g_once_init_enter(&type_id_volatile)) {
90
-     GType type_id = g_type_register_static_simple(
91
-         GTK_TYPE_TEXT_VIEW, g_intern_static_string("GtkKeyBindingsHandler"),
92
-diff --git a/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc b/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
93
-index c0b5a805b..e6f921926 100644
94
---- a/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
95
-+++ b/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
96
-@@ -2,6 +2,7 @@
97
- // Use of this source code is governed by a BSD-style license that can be
98
- // found in the LICENSE file.
99
- 
100
-+#include <cstddef>
101
- #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
102
- 
103
- #include "base/observer_list.h"
104
-diff --git a/components/bookmarks/browser/bookmark_expanded_state_tracker.cc b/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
105
-index 4ad2afa1f..5c4596e12 100644
106
---- a/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
107
-+++ b/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
108
-@@ -2,6 +2,7 @@
109
- // Use of this source code is governed by a BSD-style license that can be
110
- // found in the LICENSE file.
111
- 
112
-+#include <cstddef>
113
- #include "components/bookmarks/browser/bookmark_expanded_state_tracker.h"
114
- 
115
- #include <stdint.h>
116
-diff --git a/components/bookmarks/browser/base_bookmark_model_observer.cc b/components/bookmarks/browser/base_bookmark_model_observer.cc
117
-index 657a3c96b..ad641a082 100644
118
---- a/components/bookmarks/browser/base_bookmark_model_observer.cc
119
-+++ b/components/bookmarks/browser/base_bookmark_model_observer.cc
120
-@@ -2,6 +2,8 @@
121
- // Use of this source code is governed by a BSD-style license that can be
122
- // found in the LICENSE file.
123
- 
124
-+#include <cstddef>
125
-+
126
- #include "components/bookmarks/browser/base_bookmark_model_observer.h"
127
- 
128
- namespace bookmarks {
129
chromium-icu72-2.patch Added
57
 
1
@@ -0,0 +1,55 @@
2
+From 103e1ff08c00590be56c98aa5647e92c7fa78631 Mon Sep 17 00:00:00 2001
3
+From: Mustafa Emre Acer <meacer@chromium.org>
4
+Date: Fri, 18 Nov 2022 22:52:00 +0000
5
+Subject: PATCH IDN Spoof Checks: Disallow ZWJ and ZWNJ in ICU versions below
6
+ 72
7
+
8
+ICU 72 updates to Unicode 15 which changes the zero width joiner (ZWJ)
9
+and zero width non-joiner (ZWNJ) characters from
10
+Identifier_Status=Allowed to Identifier_Status=Restricted. These
11
+characters are therefore no longer allowed by default in ICU 72.
12
+
13
+crbug/694157 recently implemented Non-Transitional IDNA 2008 behind a
14
+flag. ZWJ and ZWNJ are disallowed in Transitional Mode but allowed in
15
+Non-Transitional Mode, so the test cases with the Non-Transitional Mode
16
+enabled fail in ICU 72.
17
+
18
+This CL removes ZWJ and ZWNJ from the allowed identifiers set for
19
+ICU versions below 72. This effectively disables these characters even
20
+in Non-Transitional Mode.
21
+
22
+This is a temporary fix. Once ICU 72 is rolled out, we should check if
23
+we can use UIDNA_CHECK_CONTEXTJ and explicitly add ZWJ and ZWNJ to
24
+the allowed sets again.
25
+
26
+Bug: 1386204, 694157
27
+Change-Id: I606c43b9d94fea0f2331e5aed530f633bb94517c
28
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4038542
29
+Reviewed-by: Frank Tang <ftang@chromium.org>
30
+Commit-Queue: Mustafa Emre Acer <meacer@chromium.org>
31
+Cr-Commit-Position: refs/heads/main@{#1073605}
32
+---
33
+ .../spoof_checks/idn_spoof_checker.cc         |  9 ++++++
34
+ .../idn_spoof_checker_unittest.cc             | 28 +++++++++++--------
35
+ 2 files changed, 25 insertions(+), 12 deletions(-)
36
+
37
+Index: chromium-110.0.5481.38/components/url_formatter/spoof_checks/idn_spoof_checker.cc
38
+===================================================================
39
+--- chromium-110.0.5481.38.orig/components/url_formatter/spoof_checks/idn_spoof_checker.cc
40
++++ chromium-110.0.5481.38/components/url_formatter/spoof_checks/idn_spoof_checker.cc
41
+@@ -722,6 +722,15 @@ void IDNSpoofChecker::SetAllowedUnicodeS
42
+   allowed_set.remove(0x200Du);  // Zero Width Joiner
43
+ #endif
44
+ 
45
++#if U_ICU_VERSION_MAJOR_NUM < 72
46
++  // Unicode 15 changes ZWJ and ZWNJ from allowed to restricted. Restrict them
47
++  // in lower versions too. This only relevant in Non-Transitional Mode as
48
++  // Transitional Mode maps these characters out.
49
++  // TODO(crbug.com/1386204): Remove these after ICU 72 is rolled out.
50
++  allowed_set.remove(0x200Cu);  // Zero Width Non-Joiner
51
++  allowed_set.remove(0x200Du);  // Zero Width Joiner
52
++#endif
53
++
54
+   uspoof_setAllowedUnicodeSet(checker_, &allowed_set, status);
55
+ }
56
+ 
57
chromium-lp151-old-drm.patch Deleted
34
 
1
@@ -1,32 +0,0 @@
2
-Index: chromium-85.0.4183.69/ui/gfx/linux/drm_util_linux.cc
3
-===================================================================
4
---- chromium-85.0.4183.69.orig/ui/gfx/linux/drm_util_linux.cc
5
-+++ chromium-85.0.4183.69/ui/gfx/linux/drm_util_linux.cc
6
-@@ -6,6 +6,27 @@
7
- 
8
- #include <drm_fourcc.h>
9
- 
10
-+#ifndef DRM_FORMAT_P010
11
-+/*
12
-+ * 2 plane YCbCr MSB aligned
13
-+ * index 0 = Y plane, 15:0 Y:x 10:6 little endian
14
-+ * index 1 = Cr:Cb plane, 31:0 Cr:x:Cb:x 10:6:10:6 little endian
15
-+ */
16
-+#define DRM_FORMAT_P010       fourcc_code('P', '0', '1', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel */
17
-+/*
18
-+ * 2 plane YCbCr MSB aligned
19
-+ * index 0 = Y plane, 15:0 Y:x 12:4 little endian
20
-+ * index 1 = Cr:Cb plane, 31:0 Cr:x:Cb:x 12:4:12:4 little endian
21
-+ */
22
-+#define DRM_FORMAT_P012       fourcc_code('P', '0', '1', '2') /* 2x2 subsampled Cr:Cb plane 12 bits per channel */
23
-+/*
24
-+ * 2 plane YCbCr MSB aligned
25
-+ * index 0 = Y plane, 15:0 Y little endian
26
-+ * index 1 = Cr:Cb plane, 31:0 Cr:Cb 16:16 little endian
27
-+ */
28
-+#define DRM_FORMAT_P016       fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
29
-+#endif
30
-+
31
- #include "base/notreached.h"
32
- 
33
- namespace ui {
34
chromium-norar.patch Changed
185
 
1
@@ -1,90 +1,105 @@
2
-diff -up chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn
3
---- chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn.nounrar 2021-09-02 08:22:31.280927364 -0400
4
-+++ chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn 2021-09-02 08:23:32.143189935 -0400
5
-@@ -43,39 +43,6 @@ if (safe_browsing_mode == 1) {
6
-     public_deps =  "//components/safe_browsing/core/common/proto:csd_proto" 
7
-   }
8
+diff -up chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
9
+--- chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar   2023-05-18 00:37:47.000000000 +0200
10
++++ chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc   2023-05-21 18:12:30.368425080 +0200
11
+@@ -77,8 +77,6 @@ void FileAnalyzer::Start(const base::Fil
12
  
13
--  source_set("rar_analyzer") {
14
--    sources = 
15
+   if (inspection_type == DownloadFileType::ZIP) {
16
+     StartExtractZipFeatures();
17
+-  } else if (inspection_type == DownloadFileType::RAR) {
18
+-    StartExtractRarFeatures();
19
+ #if BUILDFLAG(IS_MAC)
20
+   } else if (inspection_type == DownloadFileType::DMG) {
21
+     StartExtractDmgFeatures();
22
+diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc
23
+--- chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc.nounrar 2023-05-18 00:37:48.000000000 +0200
24
++++ chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc 2023-05-21 18:11:14.870058635 +0200
25
+@@ -8,7 +8,6 @@
26
+ #include "build/build_config.h"
27
+ #include "build/buildflag.h"
28
+ #include "chrome/common/safe_browsing/archive_analyzer_results.h"
29
+-#include "chrome/common/safe_browsing/rar_analyzer.h"
30
+ #include "chrome/common/safe_browsing/seven_zip_analyzer.h"
31
+ #include "chrome/common/safe_browsing/zip_analyzer.h"
32
+ #include "components/safe_browsing/content/common/proto/download_file_types.pb.h"
33
+@@ -23,9 +22,7 @@ namespace safe_browsing {
34
+ // static
35
+ std::unique_ptr<ArchiveAnalyzer> ArchiveAnalyzer::CreateForArchiveType(
36
+     DownloadFileType_InspectionType file_type) {
37
+-  if (file_type == DownloadFileType::RAR) {
38
+-    return std::make_unique<RarAnalyzer>();
39
+-  } else if (file_type == DownloadFileType::ZIP) {
40
++  if (file_type == DownloadFileType::ZIP) {
41
+     return std::make_unique<ZipAnalyzer>();
42
+   } else if (file_type == DownloadFileType::SEVEN_ZIP) {
43
+     return std::make_unique<SevenZipAnalyzer>();
44
+diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn
45
+--- chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn.nounrar    2023-05-18 00:37:48.000000000 +0200
46
++++ chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn    2023-05-21 18:11:14.869058617 +0200
47
+@@ -145,8 +145,6 @@ source_set("safe_browsing") {
48
+       "protobuf_message_log_macros.h",
49
+       "protobuf_message_read_macros.h",
50
+       "protobuf_message_write_macros.h",
51
 -      "rar_analyzer.cc",
52
 -      "rar_analyzer.h",
53
--    
54
--
55
--    deps = 
56
--      ":archive_analyzer_results",
57
--      ":download_type_util",
58
--      "//base",
59
--      "//base:i18n",
60
--      "//components/safe_browsing/content/common:file_type_policies",
61
--      "//components/safe_browsing/core/common",
62
--      "//third_party/unrar:unrar",
63
--    
64
--
65
--    defines = 
66
--      "_FILE_OFFSET_BITS=64",
67
--      "LARGEFILE_SOURCE",
68
--      "RAR_SMP",
69
--      "SILENT",
70
--
71
--      # The following is set to disable certain macro definitions in the unrar
72
--      # source code.
73
--      "CHROMIUM_UNRAR",
74
--
75
--      # Disables exceptions in unrar, replaces them with process termination.
76
--      "UNRAR_NO_EXCEPTIONS",
77
--    
78
--
79
--    public_deps =  "//components/safe_browsing/core/common/proto:csd_proto" 
80
--  }
81
--
82
-   if (is_linux || is_win) {
83
-     source_set("document_analyzer") {
84
-       sources = 
85
-@@ -149,7 +116,6 @@ source_set("safe_browsing") {
86
-       ":archive_analyzer_results",
87
-       ":binary_feature_extractor",
88
-       ":download_type_util",
89
--      ":rar_analyzer",
90
+       "seven_zip_analyzer.cc",
91
+       "seven_zip_analyzer.h",
92
+       "zip_analyzer.cc",
93
+@@ -162,7 +160,6 @@ source_set("safe_browsing") {
94
+       "//components/safe_browsing/content/common:file_type_policies",
95
        "//components/safe_browsing/core/common",
96
+       "//third_party/lzma_sdk/google:seven_zip_reader",
97
+-      "//third_party/unrar:unrar",
98
      
99
  
100
-diff -up chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS.nounrar chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS
101
---- chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS.nounrar 2021-09-02 08:22:31.280927364 -0400
102
-+++ chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS 2021-09-02 08:23:56.092293262 -0400
103
-@@ -2,6 +2,5 @@ include_rules = 
104
-   "+components/safe_browsing/core/common",
105
-   "+third_party/maldoca",
106
-   "+third_party/protobuf",
107
--  "+third_party/unrar",
108
-   "+third_party/zlib",
109
- 
110
-diff -up chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn.nounrar chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn
111
---- chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn.nounrar   2021-08-31 21:39:29.000000000 -0400
112
-+++ chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn   2021-09-02 08:22:31.280927364 -0400
113
-@@ -50,7 +50,6 @@ source_set("file_util") {
114
-     deps += 
115
-       "//chrome/common/safe_browsing",
116
-       "//chrome/common/safe_browsing:archive_analyzer_results",
117
--      "//chrome/common/safe_browsing:rar_analyzer",
118
-     
119
- 
120
-     if (is_linux || is_win) {
121
-diff -up chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc
122
---- chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc.nounrar   2021-08-31 21:39:29.000000000 -0400
123
-+++ chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc   2021-09-02 08:22:31.281927369 -0400
124
-@@ -45,10 +45,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
125
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
126
-                                          base::File temporary_file,
127
-                                          AnalyzeRarFileCallback callback) {
128
+     if (is_linux) {
129
+diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc
130
+--- chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc.nounrar 2023-05-18 00:37:48.000000000 +0200
131
++++ chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc 2023-05-21 18:11:14.869058617 +0200
132
+@@ -18,7 +18,6 @@
133
+ #include "base/time/time.h"
134
+ #include "build/build_config.h"
135
+ #include "chrome/common/safe_browsing/archive_analyzer_results.h"
136
+-#include "chrome/common/safe_browsing/rar_analyzer.h"
137
+ #include "components/safe_browsing/content/common/file_type_policies.h"
138
+ #include "components/safe_browsing/core/common/features.h"
139
+ #include "components/safe_browsing/core/common/proto/csd.pb.h"
140
+diff -up chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc
141
+--- chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc.nounrar  2023-05-18 00:37:48.000000000 +0200
142
++++ chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc  2023-05-21 18:11:14.870058635 +0200
143
+@@ -71,6 +71,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
144
+     base::File rar_file,
145
+     mojo::PendingRemote<chrome::mojom::TemporaryFileGetter> temp_file_getter,
146
+     AnalyzeRarFileCallback callback) {
147
 +#if 0
148
    DCHECK(rar_file.IsValid());
149
- 
150
-   safe_browsing::ArchiveAnalyzerResults results;
151
-   safe_browsing::rar_analyzer::AnalyzeRarFile(
152
-       std::move(rar_file), std::move(temporary_file), &results);
153
-   std::move(callback).Run(results);
154
+   temp_file_getter_.Bind(std::move(temp_file_getter));
155
+   callback_ = std::move(callback);
156
+@@ -86,6 +87,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
157
+   rar_analyzer_.Analyze(std::move(rar_file), base::FilePath(),
158
+                         std::move(analysis_finished_callback),
159
+                         std::move(temp_file_getter_callback), &results_);
160
 +#else
161
 +  NOTREACHED();
162
 +#endif
163
  }
164
+ 
165
+ void SafeArchiveAnalyzer::AnalyzeSevenZipFile(
166
+diff -up chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h.nounrar chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h
167
+--- chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h.nounrar   2023-05-18 00:37:48.000000000 +0200
168
++++ chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h   2023-05-21 18:11:14.870058635 +0200
169
+@@ -6,7 +6,6 @@
170
+ #define CHROME_SERVICES_FILE_UTIL_SAFE_ARCHIVE_ANALYZER_H_
171
+ 
172
+ #include "chrome/common/safe_browsing/archive_analyzer_results.h"
173
+-#include "chrome/common/safe_browsing/rar_analyzer.h"
174
+ #include "chrome/common/safe_browsing/seven_zip_analyzer.h"
175
+ #include "chrome/common/safe_browsing/zip_analyzer.h"
176
+ #include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
177
+@@ -63,7 +62,6 @@ class SafeArchiveAnalyzer : public chrom
178
+   void Timeout();
179
+ 
180
+   safe_browsing::ZipAnalyzer zip_analyzer_;
181
+-  safe_browsing::RarAnalyzer rar_analyzer_;
182
+   safe_browsing::SevenZipAnalyzer seven_zip_analyzer_;
183
+ #if BUILDFLAG(IS_MAC)
184
+   safe_browsing::dmg::DMGAnalyzer dmg_analyzer_;
185
chromium-prop-codecs.patch Changed
16
 
1
@@ -1,9 +1,9 @@
2
-Index: chromium-85.0.4183.69/media/BUILD.gn
3
+Index: chromium-106.0.5249.91/media/BUILD.gn
4
 ===================================================================
5
---- chromium-85.0.4183.69.orig/media/BUILD.gn
6
-+++ chromium-85.0.4183.69/media/BUILD.gn
7
-@@ -44,12 +44,6 @@ buildflag_header("media_buildflags") {
8
-   
9
+--- chromium-106.0.5249.91.orig/media/BUILD.gn
10
++++ chromium-106.0.5249.91/media/BUILD.gn
11
+@@ -64,12 +64,6 @@ buildflag_header("media_buildflags") {
12
+   }
13
  }
14
  
15
 -if (proprietary_codecs && media_use_ffmpeg) {
16
chromium-system-libusb.patch Changed
29
 
1
@@ -1,7 +1,7 @@
2
-Index: chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
3
+Index: chromium-110.0.5481.30/build/linux/unbundle/libusb.gn
4
 ===================================================================
5
 --- /dev/null
6
-+++ chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
7
++++ chromium-110.0.5481.30/build/linux/unbundle/libusb.gn
8
 @@ -0,0 +1,24 @@
9
 +# Copyright 2016 The Chromium Authors. All rights reserved.
10
 +# Use of this source code is governed by a BSD-style license that can be
11
@@ -27,12 +27,12 @@
12
 +  
13
 +  public_configs =  ":system_libusb" 
14
 +}
15
-Index: chromium-70.0.3538.54/build/linux/unbundle/replace_gn_files.py
16
+Index: chromium-110.0.5481.30/build/linux/unbundle/replace_gn_files.py
17
 ===================================================================
18
---- chromium-70.0.3538.54.orig/build/linux/unbundle/replace_gn_files.py
19
-+++ chromium-70.0.3538.54/build/linux/unbundle/replace_gn_files.py
20
-@@ -27,6 +27,7 @@ REPLACEMENTS = {
21
-   'libevent': 'base/third_party/libevent/BUILD.gn',
22
+--- chromium-110.0.5481.30.orig/build/linux/unbundle/replace_gn_files.py
23
++++ chromium-110.0.5481.30/build/linux/unbundle/replace_gn_files.py
24
+@@ -54,6 +54,7 @@ REPLACEMENTS = {
25
+   'libevent': 'third_party/libevent/BUILD.gn',
26
    'libjpeg': 'third_party/libjpeg.gni',
27
    'libpng': 'third_party/libpng/BUILD.gn',
28
 +  'libusb': 'third_party/libusb/BUILD.gn',
29
gcc-enable-lto.patch Changed
79
 
1
@@ -1,8 +1,8 @@
2
-Index: chromium-85.0.4183.69/build/config/BUILDCONFIG.gn
3
+Index: chromium-111.0.5563.64/build/config/BUILDCONFIG.gn
4
 ===================================================================
5
---- chromium-85.0.4183.69.orig/build/config/BUILDCONFIG.gn
6
-+++ chromium-85.0.4183.69/build/config/BUILDCONFIG.gn
7
-@@ -130,6 +130,8 @@ declare_args() {
8
+--- chromium-111.0.5563.64.orig/build/config/BUILDCONFIG.gn
9
++++ chromium-111.0.5563.64/build/config/BUILDCONFIG.gn
10
+@@ -135,6 +135,8 @@ declare_args() {
11
    # set "is_official_build" to true for any build intended to ship to end-users.
12
    is_official_build = false
13
  
14
@@ -11,7 +11,7 @@
15
    # Set to true when compiling with the Clang compiler.
16
    is_clang = current_os != "linux" ||
17
               (current_cpu != "s390x" && current_cpu != "s390" &&
18
-@@ -441,6 +443,12 @@ default_compiler_configs = 
19
+@@ -354,6 +356,12 @@ default_compiler_configs = 
20
    "//build/config/sanitizers:default_sanitizer_flags",
21
  
22
  
23
@@ -24,11 +24,11 @@
24
  if (is_win) {
25
    default_compiler_configs += 
26
      "//build/config/win:default_cfg_compiler",
27
-Index: chromium-85.0.4183.69/build/config/compiler/BUILD.gn
28
+Index: chromium-111.0.5563.64/build/config/compiler/BUILD.gn
29
 ===================================================================
30
---- chromium-85.0.4183.69.orig/build/config/compiler/BUILD.gn
31
-+++ chromium-85.0.4183.69/build/config/compiler/BUILD.gn
32
-@@ -1947,6 +1947,10 @@ if (is_win) {
33
+--- chromium-111.0.5563.64.orig/build/config/compiler/BUILD.gn
34
++++ chromium-111.0.5563.64/build/config/compiler/BUILD.gn
35
+@@ -2079,6 +2079,10 @@ if (is_win) {
36
    }
37
  }
38
  
39
@@ -37,13 +37,13 @@
40
 +}
41
 +
42
  config("default_stack_frames") {
43
-   if (is_posix || is_fuchsia) {
44
+   if (!is_win) {
45
      if (enable_frame_pointers) {
46
-Index: chromium-85.0.4183.69/sandbox/linux/BUILD.gn
47
+Index: chromium-111.0.5563.64/sandbox/linux/BUILD.gn
48
 ===================================================================
49
---- chromium-85.0.4183.69.orig/sandbox/linux/BUILD.gn
50
-+++ chromium-85.0.4183.69/sandbox/linux/BUILD.gn
51
-@@ -250,6 +250,9 @@ component("seccomp_bpf") {
52
+--- chromium-111.0.5563.64.orig/sandbox/linux/BUILD.gn
53
++++ chromium-111.0.5563.64/sandbox/linux/BUILD.gn
54
+@@ -253,6 +253,9 @@ component("seccomp_bpf") {
55
      "//build:chromeos_buildflags",
56
      "//sandbox:sandbox_buildflags",
57
    
58
@@ -53,14 +53,14 @@
59
  
60
    if (is_android) {
61
      sources += 
62
-Index: chromium-96.0.4664.93/base/BUILD.gn
63
-===================================================================     
64
---- a/base/BUILD.gn
65
-+++ b/base/BUILD.gn
66
-@@ -1986,6 +1986,10 @@
67
+Index: chromium-111.0.5563.64/base/BUILD.gn
68
+===================================================================
69
+--- chromium-111.0.5563.64.orig/base/BUILD.gn
70
++++ chromium-111.0.5563.64/base/BUILD.gn
71
+@@ -3748,6 +3748,10 @@ test("base_unittests") {
72
      }
73
    }
74
-
75
+ 
76
 +  if (gcc_lto) {
77
 +    configs -=  "//build/config/compiler:gcc_lto" 
78
 +  }
79
gcc13-fix.patch Added
426
 
1
@@ -0,0 +1,424 @@
2
+Index: chromium-114.0.5735.90/base/check_op.h
3
+===================================================================
4
+--- chromium-114.0.5735.90.orig/base/check_op.h
5
++++ chromium-114.0.5735.90/base/check_op.h
6
+@@ -5,6 +5,7 @@
7
+ #ifndef BASE_CHECK_OP_H_
8
+ #define BASE_CHECK_OP_H_
9
+ 
10
++#include <cstdint>
11
+ #include <cstddef>
12
+ #include <string>
13
+ #include <type_traits>
14
+Index: chromium-114.0.5735.90/base/debug/profiler.h
15
+===================================================================
16
+--- chromium-114.0.5735.90.orig/base/debug/profiler.h
17
++++ chromium-114.0.5735.90/base/debug/profiler.h
18
+@@ -8,6 +8,7 @@
19
+ #include <stddef.h>
20
+ #include <stdint.h>
21
+ 
22
++#include <cstdint>
23
+ #include <string>
24
+ 
25
+ #include "base/base_export.h"
26
+Index: chromium-114.0.5735.90/components/viz/common/view_transition_element_resource_id.h
27
+===================================================================
28
+--- chromium-114.0.5735.90.orig/components/viz/common/view_transition_element_resource_id.h
29
++++ chromium-114.0.5735.90/components/viz/common/view_transition_element_resource_id.h
30
+@@ -7,6 +7,7 @@
31
+ 
32
+ #include <stdint.h>
33
+ 
34
++#include <cstdint>
35
+ #include <string>
36
+ #include <vector>
37
+ 
38
+Index: chromium-114.0.5735.90/gpu/config/gpu_feature_info.h
39
+===================================================================
40
+--- chromium-114.0.5735.90.orig/gpu/config/gpu_feature_info.h
41
++++ chromium-114.0.5735.90/gpu/config/gpu_feature_info.h
42
+@@ -7,6 +7,7 @@
43
+ 
44
+ #include <stdint.h>
45
+ 
46
++#include <cstdint>
47
+ #include <string>
48
+ #include <vector>
49
+ 
50
+Index: chromium-114.0.5735.90/net/base/net_export.h
51
+===================================================================
52
+--- chromium-114.0.5735.90.orig/net/base/net_export.h
53
++++ chromium-114.0.5735.90/net/base/net_export.h
54
+@@ -5,6 +5,8 @@
55
+ #ifndef NET_BASE_NET_EXPORT_H_
56
+ #define NET_BASE_NET_EXPORT_H_
57
+ 
58
++#include <cstdint>
59
++
60
+ // Defines NET_EXPORT so that functionality implemented by the net module can
61
+ // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
62
+ // access features not intended to be used directly by real consumers.
63
+Index: chromium-114.0.5735.90/sandbox/linux/syscall_broker/broker_file_permission.h
64
+===================================================================
65
+--- chromium-114.0.5735.90.orig/sandbox/linux/syscall_broker/broker_file_permission.h
66
++++ chromium-114.0.5735.90/sandbox/linux/syscall_broker/broker_file_permission.h
67
+@@ -5,6 +5,7 @@
68
+ #ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
69
+ #define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
70
+ 
71
++#include <cstdint>
72
+ #include <bitset>
73
+ #include <cstdint>
74
+ #include <string>
75
+Index: chromium-114.0.5735.90/third_party/abseil-cpp/absl/strings/string_view.h
76
+===================================================================
77
+--- chromium-114.0.5735.90.orig/third_party/abseil-cpp/absl/strings/string_view.h
78
++++ chromium-114.0.5735.90/third_party/abseil-cpp/absl/strings/string_view.h
79
+@@ -27,6 +27,7 @@
80
+ #ifndef ABSL_STRINGS_STRING_VIEW_H_
81
+ #define ABSL_STRINGS_STRING_VIEW_H_
82
+ 
83
++#include <cstdint>
84
+ #include <algorithm>
85
+ #include <cassert>
86
+ #include <cstddef>
87
+Index: chromium-114.0.5735.90/third_party/angle/include/GLSLANG/ShaderVars.h
88
+===================================================================
89
+--- chromium-114.0.5735.90.orig/third_party/angle/include/GLSLANG/ShaderVars.h
90
++++ chromium-114.0.5735.90/third_party/angle/include/GLSLANG/ShaderVars.h
91
+@@ -10,6 +10,7 @@
92
+ #ifndef GLSLANG_SHADERVARS_H_
93
+ #define GLSLANG_SHADERVARS_H_
94
+ 
95
++#include <cstdint>
96
+ #include <algorithm>
97
+ #include <array>
98
+ #include <cstdint>
99
+Index: chromium-114.0.5735.90/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
100
+===================================================================
101
+--- chromium-114.0.5735.90.orig/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
102
++++ chromium-114.0.5735.90/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
103
+@@ -7,6 +7,7 @@
104
+ 
105
+ #include <stdint.h>
106
+ 
107
++#include <cstdint>
108
+ #include <array>
109
+ #include <cstdint>
110
+ #include <functional>
111
+Index: chromium-114.0.5735.90/third_party/dawn/src/tint/reader/spirv/namer.h
112
+===================================================================
113
+--- chromium-114.0.5735.90.orig/third_party/dawn/src/tint/reader/spirv/namer.h
114
++++ chromium-114.0.5735.90/third_party/dawn/src/tint/reader/spirv/namer.h
115
+@@ -15,6 +15,7 @@
116
+ #ifndef SRC_TINT_READER_SPIRV_NAMER_H_
117
+ #define SRC_TINT_READER_SPIRV_NAMER_H_
118
+ 
119
++#include <cstdint>
120
+ #include <string>
121
+ #include <unordered_map>
122
+ #include <vector>
123
+Index: chromium-114.0.5735.90/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
124
+===================================================================
125
+--- chromium-114.0.5735.90.orig/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
126
++++ chromium-114.0.5735.90/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
127
+@@ -7,6 +7,7 @@
128
+ 
129
+ #include <stdint.h>
130
+ 
131
++#include <cstdint>
132
+ #include <functional>
133
+ #include <map>
134
+ #include <set>
135
+Index: chromium-114.0.5735.90/third_party/swiftshader/src/System/LRUCache.hpp
136
+===================================================================
137
+--- chromium-114.0.5735.90.orig/third_party/swiftshader/src/System/LRUCache.hpp
138
++++ chromium-114.0.5735.90/third_party/swiftshader/src/System/LRUCache.hpp
139
+@@ -17,6 +17,7 @@
140
+ 
141
+ #include "System/Debug.hpp"
142
+ 
143
++#include <cstdint>
144
+ #include <cstddef>
145
+ #include <cstdint>
146
+ #include <functional>
147
+Index: chromium-114.0.5735.90/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
148
+===================================================================
149
+--- chromium-114.0.5735.90.orig/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
150
++++ chromium-114.0.5735.90/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
151
+@@ -2388,6 +2388,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeV
152
+ #ifdef VMA_IMPLEMENTATION
153
+ #undef VMA_IMPLEMENTATION
154
+ 
155
++#include <cstdio>
156
+ #include <cstdint>
157
+ #include <cstdlib>
158
+ #include <cstring>
159
+Index: chromium-114.0.5735.90/ui/gfx/geometry/linear_gradient.h
160
+===================================================================
161
+--- chromium-114.0.5735.90.orig/ui/gfx/geometry/linear_gradient.h
162
++++ chromium-114.0.5735.90/ui/gfx/geometry/linear_gradient.h
163
+@@ -7,6 +7,7 @@
164
+ 
165
+ #include <stdint.h>
166
+ 
167
++#include <cstdint>
168
+ #include <array>
169
+ #include <cstddef>
170
+ #include <cstdint>
171
+Index: chromium-114.0.5735.90/third_party/ruy/src/ruy/profiler/instrumentation.h
172
+===================================================================
173
+--- chromium-114.0.5735.90.orig/third_party/ruy/src/ruy/profiler/instrumentation.h
174
++++ chromium-114.0.5735.90/third_party/ruy/src/ruy/profiler/instrumentation.h
175
+@@ -17,6 +17,7 @@ limitations under the License.
176
+ #define RUY_RUY_PROFILER_INSTRUMENTATION_H_
177
+ 
178
+ #ifdef RUY_PROFILER
179
++#include <string>
180
+ #include <cstdio>
181
+ #include <mutex>
182
+ #include <vector>
183
+Index: chromium-114.0.5735.90/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
184
+===================================================================
185
+--- chromium-114.0.5735.90.orig/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
186
++++ chromium-114.0.5735.90/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
187
+@@ -31,6 +31,7 @@ limitations under the License.
188
+ #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
189
+ #define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
190
+ 
191
++#include <cstdint>
192
+ #include <complex>
193
+ #include <deque>
194
+ #include <vector>
195
+Index: chromium-114.0.5735.90/base/containers/flat_map.h
196
+===================================================================
197
+--- chromium-114.0.5735.90.orig/base/containers/flat_map.h
198
++++ chromium-114.0.5735.90/base/containers/flat_map.h
199
+@@ -5,6 +5,7 @@
200
+ #ifndef BASE_CONTAINERS_FLAT_MAP_H_
201
+ #define BASE_CONTAINERS_FLAT_MAP_H_
202
+ 
203
++#include <cstdint>
204
+ #include <functional>
205
+ #include <tuple>
206
+ #include <utility>
207
+Index: chromium-114.0.5735.90/components/crash/core/app/crash_reporter_client.h
208
+===================================================================
209
+--- chromium-114.0.5735.90.orig/components/crash/core/app/crash_reporter_client.h
210
++++ chromium-114.0.5735.90/components/crash/core/app/crash_reporter_client.h
211
+@@ -7,6 +7,7 @@
212
+ 
213
+ #include <stdint.h>
214
+ 
215
++#include <cstdint>
216
+ #include <string>
217
+ 
218
+ #include "build/build_config.h"
219
+Index: chromium-114.0.5735.90/ui/base/prediction/kalman_filter.h
220
+===================================================================
221
+--- chromium-114.0.5735.90.orig/ui/base/prediction/kalman_filter.h
222
++++ chromium-114.0.5735.90/ui/base/prediction/kalman_filter.h
223
+@@ -7,6 +7,8 @@
224
+ 
225
+ #include <stdint.h>
226
+ 
227
++#include <cstdint>
228
++
229
+ #include "base/component_export.h"
230
+ #include "ui/gfx/geometry/matrix3_f.h"
231
+ 
232
+Index: chromium-114.0.5735.90/components/password_manager/core/browser/generation/password_generator.h
233
+===================================================================
234
+--- chromium-114.0.5735.90.orig/components/password_manager/core/browser/generation/password_generator.h
235
++++ chromium-114.0.5735.90/components/password_manager/core/browser/generation/password_generator.h
236
+@@ -7,6 +7,7 @@
237
+ 
238
+ #include <stdint.h>
239
+ 
240
++#include <cstdint>
241
+ #include <string>
242
+ 
243
+ 
244
+Index: chromium-114.0.5735.90/components/feature_engagement/internal/event_storage_validator.h
245
+===================================================================
246
+--- chromium-114.0.5735.90.orig/components/feature_engagement/internal/event_storage_validator.h
247
++++ chromium-114.0.5735.90/components/feature_engagement/internal/event_storage_validator.h
248
+@@ -7,6 +7,7 @@
249
+ 
250
+ #include <stdint.h>
251
+ 
252
++#include <cstdint>
253
+ #include <string>
254
+ 
255
+ namespace feature_engagement {
256
+Index: chromium-114.0.5735.90/components/feature_engagement/internal/never_event_storage_validator.h
257
+===================================================================
258
+--- chromium-114.0.5735.90.orig/components/feature_engagement/internal/never_event_storage_validator.h
259
++++ chromium-114.0.5735.90/components/feature_engagement/internal/never_event_storage_validator.h
260
+@@ -5,6 +5,7 @@
261
+ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
262
+ #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
263
+ 
264
++#include <cstdint>
265
+ #include <string>
266
+ 
267
+ #include "components/feature_engagement/internal/event_storage_validator.h"
268
+Index: chromium-114.0.5735.90/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
269
+===================================================================
270
+--- chromium-114.0.5735.90.orig/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
271
++++ chromium-114.0.5735.90/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
272
+@@ -14,6 +14,7 @@
273
+ #ifndef LLVM_SUPPORT_SIGNALS_H
274
+ #define LLVM_SUPPORT_SIGNALS_H
275
+ 
276
++#include <cstdint>
277
+ #include <string>
278
+ 
279
+ namespace llvm {
280
+Index: chromium-114.0.5735.90/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
281
+===================================================================
282
+--- chromium-114.0.5735.90.orig/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
283
++++ chromium-114.0.5735.90/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
284
+@@ -45,6 +45,7 @@
285
+ #include "llvm/Support/SaveAndRestore.h"
286
+ #include "llvm/Support/raw_ostream.h"
287
+ #include <algorithm>
288
++#include <cstdint>
289
+ #include <string>
290
+ #include <sysexits.h>
291
+ #ifdef HAVE_BACKTRACE
292
+Index: chromium-114.0.5735.90/chrome/browser/privacy_budget/encountered_surface_tracker.h
293
+===================================================================
294
+--- chromium-114.0.5735.90.orig/chrome/browser/privacy_budget/encountered_surface_tracker.h
295
++++ chromium-114.0.5735.90/chrome/browser/privacy_budget/encountered_surface_tracker.h
296
+@@ -7,6 +7,7 @@
297
+ 
298
+ #include <stdint.h>
299
+ 
300
++#include <cstdint>
301
+ #include <map>
302
+ 
303
+ #include "base/containers/flat_set.h"
304
+Index: chromium-114.0.5735.90/components/autofill/core/browser/autofill_ablation_study.h
305
+===================================================================
306
+--- chromium-114.0.5735.90.orig/components/autofill/core/browser/autofill_ablation_study.h
307
++++ chromium-114.0.5735.90/components/autofill/core/browser/autofill_ablation_study.h
308
+@@ -7,6 +7,7 @@
309
+ 
310
+ #include <stdint.h>
311
+ 
312
++#include <cstdint>
313
+ #include <string>
314
+ 
315
+ class GURL;
316
+Index: chromium-114.0.5735.90/components/omnibox/browser/on_device_head_model.h
317
+===================================================================
318
+--- chromium-114.0.5735.90.orig/components/omnibox/browser/on_device_head_model.h
319
++++ chromium-114.0.5735.90/components/omnibox/browser/on_device_head_model.h
320
+@@ -7,6 +7,7 @@
321
+ 
322
+ #include <stdint.h>
323
+ 
324
++#include <cstdint>
325
+ #include <string>
326
+ #include <utility>
327
+ #include <vector>
328
+Index: chromium-114.0.5735.90/components/payments/content/utility/fingerprint_parser.h
329
+===================================================================
330
+--- chromium-114.0.5735.90.orig/components/payments/content/utility/fingerprint_parser.h
331
++++ chromium-114.0.5735.90/components/payments/content/utility/fingerprint_parser.h
332
+@@ -5,6 +5,7 @@
333
+ #ifndef COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
334
+ #define COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
335
+ 
336
++#include <cstdint>
337
+ #include <stddef.h>
338
+ #include <stdint.h>
339
+ 
340
+Index: chromium-114.0.5735.90/pdf/document_attachment_info.h
341
+===================================================================
342
+--- chromium-114.0.5735.90.orig/pdf/document_attachment_info.h
343
++++ chromium-114.0.5735.90/pdf/document_attachment_info.h
344
+@@ -7,6 +7,7 @@
345
+ 
346
+ #include <stdint.h>
347
+ 
348
++#include <cstdint>
349
+ #include <string>
350
+ 
351
+ 
352
+Index: chromium-114.0.5735.90/third_party/pdfium/constants/annotation_flags.h
353
+===================================================================
354
+--- chromium-114.0.5735.90.orig/third_party/pdfium/constants/annotation_flags.h
355
++++ chromium-114.0.5735.90/third_party/pdfium/constants/annotation_flags.h
356
+@@ -7,6 +7,8 @@
357
+ 
358
+ #include <stdint.h>
359
+ 
360
++#include <cstdint>
361
++
362
+ namespace pdfium {
363
+ namespace annotation_flags {
364
+ 
365
+Index: chromium-114.0.5735.90/base/cpu.h
366
+===================================================================
367
+--- chromium-114.0.5735.90.orig/base/cpu.h
368
++++ chromium-114.0.5735.90/base/cpu.h
369
+@@ -5,6 +5,7 @@
370
+ #ifndef BASE_CPU_H_
371
+ #define BASE_CPU_H_
372
+ 
373
++#include <cstdint>
374
+ #include <string>
375
+ 
376
+ #include "base/base_export.h"
377
+Index: chromium-114.0.5735.90/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
378
+===================================================================
379
+--- chromium-114.0.5735.90.orig/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
380
++++ chromium-114.0.5735.90/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
381
+@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N
382
+ 
383
+ // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
384
+ #if VMA_STATS_STRING_ENABLED
385
++#include <stdio.h>
386
+     static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
387
+     {
388
+         snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
389
+Index: chromium-114.0.5735.90/chrome/browser/webauthn/authenticator_request_dialog_model.h
390
+===================================================================
391
+--- chromium-114.0.5735.90.orig/chrome/browser/webauthn/authenticator_request_dialog_model.h
392
++++ chromium-114.0.5735.90/chrome/browser/webauthn/authenticator_request_dialog_model.h
393
+@@ -8,6 +8,7 @@
394
+ #include <memory>
395
+ #include <string>
396
+ #include <vector>
397
++#include <variant>
398
+ 
399
+ #include "base/containers/span.h"
400
+ #include "base/functional/callback_forward.h"
401
+Index: chromium-114.0.5735.90/gin/time_clamper.h
402
+===================================================================
403
+--- chromium-114.0.5735.90.orig/gin/time_clamper.h
404
++++ chromium-114.0.5735.90/gin/time_clamper.h
405
+@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
406
+     const int64_t micros = now_micros % 1000;
407
+     // abs() is necessary for devices with times before unix-epoch (most likely
408
+     // configured incorrectly).
409
+-    if (abs(micros) + kResolutionMicros < 1000) {
410
++    if (std::abs(micros) + kResolutionMicros < 1000) {
411
+       return now_micros / 1000;
412
+     }
413
+     return ClampTimeResolution(now_micros) / 1000;
414
+Index: chromium-114.0.5735.90/chrome/test/chromedriver/chrome/web_view_impl.cc
415
+===================================================================
416
+--- chromium-114.0.5735.90.orig/chrome/test/chromedriver/chrome/web_view_impl.cc
417
++++ chromium-114.0.5735.90/chrome/test/chromedriver/chrome/web_view_impl.cc
418
+@@ -11,6 +11,7 @@
419
+ #include <queue>
420
+ #include <utility>
421
+ #include <vector>
422
++#include <cstring>
423
+ 
424
+ #include "base/check.h"
425
+ #include "base/files/file_path.h"
426
no-location-leap151.patch Deleted
28
 
1
@@ -1,26 +0,0 @@
2
-Index: chromium-86.0.4240.75/base/location.h
3
-===================================================================
4
---- chromium-86.0.4240.75.orig/base/location.h
5
-+++ chromium-86.0.4240.75/base/location.h
6
-@@ -23,7 +23,7 @@ namespace base {
7
- #define SUPPORTS_LOCATION_BUILTINS                                       \
8
-   (__has_builtin(__builtin_FUNCTION) && __has_builtin(__builtin_FILE) && \
9
-    __has_builtin(__builtin_LINE))
10
--#elif defined(COMPILER_GCC) && __GNUC__ >= 7
11
-+#elif defined(COMPILER_GCC) && __GNUC__ >= 10
12
- // GCC has supported these for a long time, but they point at the function
13
- // declaration in the case of default arguments, rather than at the call site.
14
- #define SUPPORTS_LOCATION_BUILTINS 1
15
-Index: chromium-86.0.4240.75/base/location.cc
16
-===================================================================
17
---- chromium-86.0.4240.75.orig/base/location.cc
18
-+++ chromium-86.0.4240.75/base/location.cc
19
-@@ -92,7 +92,7 @@ NOINLINE Location Location::Current(cons
20
- #else
21
- // static
22
- NOINLINE Location Location::Current() {
23
--  return Location(nullptr, RETURN_ADDRESS());
24
-+  return Location("unknown file", RETURN_ADDRESS());
25
- }
26
- #endif
27
- 
28
system-libdrm.patch Changed
64
 
1
@@ -1,7 +1,7 @@
2
-Index: chromium-98.0.4758.80/build/linux/unbundle/libdrm.gn
3
+Index: chromium-114.0.5735.90/build/linux/unbundle/libdrm.gn
4
 ===================================================================
5
---- chromium-98.0.4758.80.orig/build/linux/unbundle/libdrm.gn
6
-+++ chromium-98.0.4758.80/build/linux/unbundle/libdrm.gn
7
+--- chromium-114.0.5735.90.orig/build/linux/unbundle/libdrm.gn
8
++++ chromium-114.0.5735.90/build/linux/unbundle/libdrm.gn
9
 @@ -11,7 +11,10 @@ pkg_config("system_libdrm") {
10
  
11
  shim_headers("libdrm_shim") {
12
@@ -14,38 +14,25 @@
13
  }
14
  
15
  source_set("libdrm") {
16
-Index: chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/crtc_controller.h
17
+Index: chromium-114.0.5735.90/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
18
 ===================================================================
19
---- chromium-98.0.4758.80.orig/ui/ozone/platform/drm/gpu/crtc_controller.h
20
-+++ chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/crtc_controller.h
21
-@@ -11,7 +11,7 @@
22
- 
23
- #include "base/memory/weak_ptr.h"
24
- #include "base/trace_event/traced_value.h"
25
--#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
26
-+#include <drm_fourcc.h>
27
- #include "ui/gfx/swap_result.h"
28
- #include "ui/ozone/platform/drm/common/scoped_drm_types.h"
29
- #include "ui/ozone/platform/drm/gpu/drm_overlay_plane.h"
30
-Index: chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
31
-===================================================================
32
---- chromium-98.0.4758.80.orig/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
33
-+++ chromium-98.0.4758.80/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
34
-@@ -20,7 +20,7 @@
35
- #include "base/trace_event/trace_conversion_helper.h"
36
- #include "base/trace_event/trace_event.h"
37
- #include "base/trace_event/traced_value.h"
38
+--- chromium-114.0.5735.90.orig/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
39
++++ chromium-114.0.5735.90/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
40
+@@ -18,7 +18,7 @@
41
+ #include "base/metrics/histogram_macros.h"
42
+ #include "base/ranges/algorithm.h"
43
+ #include "base/trace_event/typed_macros.h"
44
 -#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
45
 +#include <drm_fourcc.h>
46
+ #include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
47
  #include "third_party/skia/include/core/SkCanvas.h"
48
  #include "third_party/skia/include/core/SkImage.h"
49
- #include "ui/gfx/geometry/point.h"
50
-Index: chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
51
+Index: chromium-114.0.5735.90/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
52
 ===================================================================
53
---- chromium-98.0.4758.80.orig/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
54
-+++ chromium-98.0.4758.80/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
55
-@@ -23,7 +23,7 @@
56
- #include "media/gpu/chromeos/mailbox_video_frame_converter.h"
57
+--- chromium-114.0.5735.90.orig/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
58
++++ chromium-114.0.5735.90/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
59
+@@ -25,7 +25,7 @@
60
+ #include "media/gpu/chromeos/dmabuf_video_frame_pool.h"
61
  #include "testing/gmock/include/gmock/gmock.h"
62
  #include "testing/gtest/include/gtest/gtest.h"
63
 -#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
64
INSTALL.sh Changed
20
 
1
@@ -90,6 +90,18 @@
2
 # Install the ICD json file to point ANGLE to libvk_swiftshader.so
3
 install -m 644 "${OUTPUTDIR}/vk_swiftshader_icd.json" "${STAGEDIR}/${INSTALLDIR}/"
4
 
5
+# QT shim
6
+if  -f "${OUTPUTDIR}/libqt5_shim.so" ; then
7
+  file="libqt5_shim.so"
8
+  buildfile="${OUTPUTDIR}/${file}"
9
+  install -m ${SHLIB_PERMS} "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
10
+fi
11
+if  -f "${OUTPUTDIR}/libqt6_shim.so" ; then
12
+  file="libqt6_shim.so"
13
+  buildfile="${OUTPUTDIR}/${file}"
14
+  install -m ${SHLIB_PERMS} "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
15
+fi
16
+
17
 # default apps
18
 if  -d "${OUTPUTDIR}/default_apps" ; then
19
     cp -a "${OUTPUTDIR}/default_apps" "${STAGEDIR}/${INSTALLDIR}/"
20
chrome-wrapper Changed
33
 
1
@@ -9,15 +9,20 @@
2
 
3
 HERE="`dirname "$CHROME_WRAPPER"`"
4
 
5
-export CHROME_VERSION_EXTRA="@@CHANNEL@@"
6
+# Always use our versions of ffmpeg libs.
7
+# This also makes RPMs find the compatibly-named library symlinks.
8
+export LD_LIBRARY_PATH="$HERE${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
9
+
10
+export CHROME_VERSION_EXTRA="stable"
11
 
12
 # We don't want bug-buddy intercepting our crashes. http://crbug.com/24120
13
 export GNOME_DISABLE_CRASH_DIALOG=SET_BY_GOOGLE_CHROME
14
 
15
-# This provides a much better experience on Wayland.
16
-#if  "$XDG_SESSION_TYPE" == "wayland" ; then
17
-#  ARGS="--ozone-platform=wayland"
18
-#fi
19
+# Allow root usage
20
+no_sandbox=
21
+if  "`id -u`" == "0" ; then
22
+  no_sandbox=--no-sandbox
23
+fi
24
 
25
 # Sanitize std{in,out,err} because they'll be shared with untrusted child
26
 # processes (http://crbug.com/376567).
27
@@ -26,4 +31,4 @@
28
 exec 2> >(exec cat >&2)
29
 
30
 # Note: exec -a below is a bashism.
31
-exec -a "$0" "$HERE/@@PROGNAME@@" "$ARGS" "$@"
32
+exec -a "$0" "$HERE/chrome" $no_sandbox "$@"
33
chromium-103.0.5060.114.tar.xz -> chromium-114.0.5735.198.tar.xz Changed
chromium-symbolic.svg Changed
577
 
1
@@ -1,545 +1,30 @@
2
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
3
-<svg
4
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
5
-   xmlns:cc="http://creativecommons.org/ns#"
6
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7
-   xmlns:svg="http://www.w3.org/2000/svg"
8
-   xmlns="http://www.w3.org/2000/svg"
9
-   xmlns:xlink="http://www.w3.org/1999/xlink"
10
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
-   version="1.1"
13
-   id="svg2"
14
-   xml:space="preserve"
15
-   width="1056"
16
-   height="816"
17
-   viewBox="0 0 1056 816"
18
-   sodipodi:docname="chromium.ai"><metadata
19
-     id="metadata8"><rdf:RDF><cc:Work
20
-         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
21
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
22
-     id="defs6"><clipPath
23
-       clipPathUnits="userSpaceOnUse"
24
-       id="clipPath18"><path
25
-         d="m 332.315,306.427 c 0,-35.346 28.656,-64.001 64,-64.001 v 0 c 35.348,0 64.001,28.655 64.001,64.001 v 0 c 0,35.348 -28.653,64.003 -64.001,64.003 v 0 c -35.344,0 -64,-28.655 -64,-64.003"
26
-         id="path16" /></clipPath><clipPath
27
-       clipPathUnits="userSpaceOnUse"
28
-       id="clipPath26"><path
29
-         d="m 356.24,344.208 h 80.16 v -80.16 h -80.16 z"
30
-         id="path24" /></clipPath><clipPath
31
-       clipPathUnits="userSpaceOnUse"
32
-       id="clipPath30"><path
33
-         d="m 356.24,344.208 h 80.16 v -80.16 h -80.16 z"
34
-         id="path28" /></clipPath><mask
35
-       maskUnits="userSpaceOnUse"
36
-       x="0"
37
-       y="0"
38
-       width="1"
39
-       height="1"
40
-       id="mask32"><g
41
-         id="g42"><g
42
-           clip-path="url(#clipPath30)"
43
-           id="g40"><g
44
-             id="g38"><g
45
-               transform="matrix(80.160004,0,0,80.160004,356.24023,264.048)"
46
-               id="g36"><image
47
-                 width="1"
48
-                 height="1"
49
-                 style="image-rendering:optimizeSpeed"
50
-                 preserveAspectRatio="none"
51
-                 transform="matrix(1,0,0,-1,0,1)"
52
-                 xlink:href="data:image/png;base64,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"
53
-                 id="image34" /></g></g></g></g></mask><mask
54
-       maskUnits="userSpaceOnUse"
55
-       x="0"
56
-       y="0"
57
-       width="1"
58
-       height="1"
59
-       id="mask44"><image
60
-         width="1"
61
-         height="1"
62
-         style="image-rendering:optimizeSpeed"
63
-         preserveAspectRatio="none"
64
-         xlink:href="data:image/png;base64,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"
65
-         id="image46" /></mask><radialGradient
66
-       fx="0"
67
-       fy="0"
68
-       cx="0"
69
-       cy="0"
70
-       r="1"
71
-       gradientUnits="userSpaceOnUse"
72
-       gradientTransform="matrix(0,-79.311325,-79.311325,0,396.99658,321.95068)"
73
-       spreadMethod="pad"
74
-       id="radialGradient90"><stop
75
-         style="stop-opacity:1;stop-color:#89b7e1"
76
-         offset="0"
77
-         id="stop82" /><stop
78
-         style="stop-opacity:1;stop-color:#89b7e1"
79
-         offset="0.662109"
80
-         id="stop84" /><stop
81
-         style="stop-opacity:1;stop-color:#89b7e1"
82
-         offset="0.69573897"
83
-         id="stop86" /><stop
84
-         style="stop-opacity:1;stop-color:#659ad1"
85
-         offset="1"
86
-         id="stop88" /></radialGradient><radialGradient
87
-       fx="0"
88
-       fy="0"
89
-       cx="0"
90
-       cy="0"
91
-       r="1"
92
-       gradientUnits="userSpaceOnUse"
93
-       gradientTransform="matrix(0,-81.499085,-81.499085,0,395.0874,324.18262)"
94
-       spreadMethod="pad"
95
-       id="radialGradient114"><stop
96
-         style="stop-opacity:1;stop-color:#d0e2f1"
97
-         offset="0"
98
-         id="stop106" /><stop
99
-         style="stop-opacity:1;stop-color:#d0e2f1"
100
-         offset="0.662109"
101
-         id="stop108" /><stop
102
-         style="stop-opacity:1;stop-color:#d0e2f1"
103
-         offset="0.85976252"
104
-         id="stop110" /><stop
105
-         style="stop-opacity:1;stop-color:#89b7e1"
106
-         offset="1"
107
-         id="stop112" /></radialGradient><clipPath
108
-       clipPathUnits="userSpaceOnUse"
109
-       id="clipPath124"><path
110
-         d="m 332.315,306.427 c 0,-35.346 28.656,-64.001 64,-64.001 v 0 c 35.348,0 64.001,28.655 64.001,64.001 v 0 c 0,35.348 -28.653,64.003 -64.001,64.003 v 0 c -35.344,0 -64,-28.655 -64,-64.003"
111
-         id="path122" /></clipPath><clipPath
112
-       clipPathUnits="userSpaceOnUse"
113
-       id="clipPath132"><path
114
-         d="m 389.898,294.508 h 30.623 V 242.58 h -30.623 z"
115
-         id="path130" /></clipPath><clipPath
116
-       clipPathUnits="userSpaceOnUse"
117
-       id="clipPath136"><path
118
-         d="m 404.76,294.508 -14.862,-51.73 2.016,-0.198 28.607,49.551"
119
-         id="path134" /></clipPath><linearGradient
120
-       x1="0"
121
-       y1="0"
122
-       x2="1"
123
-       y2="0"
124
-       gradientUnits="userSpaceOnUse"
125
-       gradientTransform="matrix(-15.160248,-30.32016,-30.32016,15.160248,403.08984,274.21582)"
126
-       spreadMethod="pad"
127
-       id="linearGradient146"><stop
128
-         style="stop-opacity:0.77000076;stop-color:#ffffff"
129
-         offset="0"
130
-         id="stop142" /><stop
131
-         style="stop-opacity:0.25000381;stop-color:#ffffff"
132
-         offset="1"
133
-         id="stop144" /></linearGradient><mask
134
-       maskUnits="userSpaceOnUse"
135
-       x="0"
136
-       y="0"
137
-       width="1"
138
-       height="1"
139
-       id="mask148"><g
140
-         id="g158"><g
141
-           id="g156"><g
142
-             id="g154"><g
143
-               id="g152"><path
144
-                 d="M -32768,32767 H 32767 V -32767 H -32768 Z"
145
-                 style="fill:url(#linearGradient146);stroke:none"
146
-                 id="path150" /></g></g></g></g></mask><linearGradient
147
-       x1="0"
148
-       y1="0"
149
-       x2="1"
150
-       y2="0"
151
-       gradientUnits="userSpaceOnUse"
152
-       gradientTransform="matrix(-15.160248,-30.32016,-30.32016,15.160248,403.08984,274.21582)"
153
-       spreadMethod="pad"
154
-       id="linearGradient164"><stop
155
-         style="stop-opacity:1;stop-color:#3770b7"
156
-         offset="0"
157
-         id="stop160" /><stop
158
-         style="stop-opacity:1;stop-color:#3770b7"
159
-         offset="1"
160
-         id="stop162" /></linearGradient><clipPath
161
-       clipPathUnits="userSpaceOnUse"
162
-       id="clipPath190"><path
163
-         d="m 396.297,334.547 h 58.057 v -14.84 h -58.057 z"
164
-         id="path188" /></clipPath><clipPath
165
-       clipPathUnits="userSpaceOnUse"
166
-       id="clipPath194"><path
167
-         d="m 402.123,319.707 52.231,12.993 -0.837,1.847 h -57.22"
168
-         id="path192" /></clipPath><linearGradient
169
-       x1="0"
170
-       y1="0"
171
-       x2="1"
172
-       y2="0"
173
-       gradientUnits="userSpaceOnUse"
174
-       gradientTransform="matrix(32.638824,0,0,-32.638824,421.62012,327.12695)"
175
-       spreadMethod="pad"
176
-       id="linearGradient204"><stop
177
-         style="stop-opacity:0.8;stop-color:#ffffff"
178
-         offset="0"
179
-         id="stop200" /><stop
180
-         style="stop-opacity:0.25000381;stop-color:#ffffff"
181
-         offset="1"
182
-         id="stop202" /></linearGradient><mask
183
-       maskUnits="userSpaceOnUse"
184
-       x="0"
185
-       y="0"
186
-       width="1"
187
-       height="1"
188
-       id="mask206"><g
189
-         id="g216"><g
190
-           id="g214"><g
191
-             id="g212"><g
192
-               id="g210"><path
193
-                 d="M -32768,32767 H 32767 V -32767 H -32768 Z"
194
-                 style="fill:url(#linearGradient204);stroke:none"
195
-                 id="path208" /></g></g></g></g></mask><linearGradient
196
-       x1="0"
197
-       y1="0"
198
-       x2="1"
199
-       y2="0"
200
-       gradientUnits="userSpaceOnUse"
201
-       gradientTransform="matrix(32.638824,0,0,-32.638824,421.62012,327.12695)"
202
-       spreadMethod="pad"
203
-       id="linearGradient222"><stop
204
-         style="stop-opacity:1;stop-color:#7caada"
205
-         offset="0"
206
-         id="stop218" /><stop
207
-         style="stop-opacity:1;stop-color:#89b7e1"
208
-         offset="1"
209
-         id="stop220" /></linearGradient><clipPath
210
-       clipPathUnits="userSpaceOnUse"
211
-       id="clipPath248"><path
212
-         d="M 0,612 H 792 V 0 H 0 Z"
213
-         id="path246" /></clipPath><clipPath
214
-       clipPathUnits="userSpaceOnUse"
215
-       id="clipPath256"><path
216
-         d="m 343.211,343.807 h 38.546 v -51.201 h -38.546 z"
217
-         id="path254" /></clipPath><clipPath
218
-       clipPathUnits="userSpaceOnUse"
219
-       id="clipPath260"><path
220
-         d="m 381.757,305.075 -37.365,38.732 -1.181,-1.642 28.612,-49.559"
221
-         id="path258" /></clipPath><linearGradient
222
-       x1="0"
223
-       y1="0"
224
-       x2="1"
225
-       y2="0"
226
-       gradientUnits="userSpaceOnUse"
227
-       gradientTransform="matrix(-19.271973,29.807495,29.807495,19.271988,366.20312,315.21533)"
228
-       spreadMethod="pad"
229
-       id="linearGradient270"><stop
230
-         style="stop-opacity:1;stop-color:#ffffff"
231
-         offset="0"
232
-         id="stop266" /><stop
233
-         style="stop-opacity:0.25000381;stop-color:#ffffff"
234
-         offset="1"
235
-         id="stop268" /></linearGradient><mask
236
-       maskUnits="userSpaceOnUse"
237
-       x="0"
238
-       y="0"
239
-       width="1"
240
-       height="1"
241
-       id="mask272"><g
242
-         id="g282"><g
243
-           id="g280"><g
244
-             id="g278"><g
245
-               id="g276"><path
246
-                 d="M -32768,32767 H 32767 V -32767 H -32768 Z"
247
-                 style="fill:url(#linearGradient270);stroke:none"
248
-                 id="path274" /></g></g></g></g></mask><linearGradient
249
-       x1="0"
250
-       y1="0"
251
-       x2="1"
252
-       y2="0"
253
-       gradientUnits="userSpaceOnUse"
254
-       gradientTransform="matrix(-19.271973,29.807495,29.807495,19.271988,366.20312,315.21533)"
255
-       spreadMethod="pad"
256
-       id="linearGradient288"><stop
257
-         style="stop-opacity:1;stop-color:#0b63af"
258
-         offset="0"
259
-         id="stop284" /><stop
260
-         style="stop-opacity:1;stop-color:#3770b7"
261
-         offset="1"
262
-         id="stop286" /></linearGradient><radialGradient
263
-       fx="0"
264
-       fy="0"
265
-       cx="0"
266
-       cy="0"
267
-       r="1"
268
-       gradientUnits="userSpaceOnUse"
269
-       gradientTransform="matrix(-29.73175,-62.539185,-62.539185,29.73175,412.90723,310.08984)"
270
-       spreadMethod="pad"
271
-       id="radialGradient326"><stop
272
-         style="stop-opacity:1;stop-color:#d2deed"
273
-         offset="0"
274
-         id="stop320" /><stop
275
-         style="stop-opacity:1;stop-color:#d2deed"
276
-         offset="0.25885849"
277
-         id="stop322" /><stop
278
-         style="stop-opacity:1;stop-color:#d0e2f1"
279
-         offset="1"
280
-         id="stop324" /></radialGradient><radialGradient
281
-       fx="0"
282
-       fy="0"
283
-       cx="0"
284
-       cy="0"
285
-       r="1"
286
-       gradientUnits="userSpaceOnUse"
287
-       gradientTransform="matrix(12.815323,-64.076599,-64.076599,-12.815323,391.37793,336.23291)"
288
-       spreadMethod="pad"
289
-       id="radialGradient348"><stop
290
-         style="stop-opacity:1;stop-color:#ffffff"
291
-         offset="0"
292
-         id="stop342" /><stop
293
-         style="stop-opacity:1;stop-color:#ffffff"
294
-         offset="0.25885849"
295
-         id="stop344" /><stop
296
-         style="stop-opacity:1;stop-color:#d9e8f1"
297
-         offset="1"
298
-         id="stop346" /></radialGradient><radialGradient
299
-       fx="0"
300
-       fy="0"
301
-       cx="0"
302
-       cy="0"
303
-       r="1"
304
-       gradientUnits="userSpaceOnUse"
305
-       gradientTransform="matrix(0,-49.928345,-60.051315,0,396.47559,332.3208)"
306
-       spreadMethod="pad"
307
-       id="radialGradient372"><stop
308
-         style="stop-opacity:1;stop-color:#a0c2e6"
309
-         offset="0"
310
-         id="stop364" /><stop
311
-         style="stop-opacity:1;stop-color:#729ad0"
312
-         offset="0.552155"
313
-         id="stop366" /><stop
314
-         style="stop-opacity:1;stop-color:#729ad0"
315
-         offset="0.57266698"
316
-         id="stop368" /><stop
317
-         style="stop-opacity:1;stop-color:#3777bb"
318
-         offset="1"
319
-         id="stop370" /></radialGradient><clipPath
320
-       clipPathUnits="userSpaceOnUse"
321
-       id="clipPath382"><path
322
-         d="m 332.315,306.427 c 0,-35.346 28.656,-64.001 64,-64.001 v 0 c 35.348,0 64.001,28.655 64.001,64.001 v 0 c 0,35.348 -28.653,64.003 -64.001,64.003 v 0 c -35.344,0 -64,-28.655 -64,-64.003"
323
-         id="path380" /></clipPath><clipPath
324
-       clipPathUnits="userSpaceOnUse"
325
-       id="clipPath390"><path
326
-         d="M 326.792,421.854 H 462.467 V 336.595 H 326.792 Z"
327
-         id="path388" /></clipPath><clipPath
328
-       clipPathUnits="userSpaceOnUse"
329
-       id="clipPath394"><path
330
-         d="m 462.447,381.78 c 0.886,-23.494 -28.755,-43.697 -66.214,-45.108 -37.452,-1.408 -68.538,16.505 -69.422,39.997 -0.886,23.506 28.757,43.694 66.212,45.107 37.459,1.413 68.541,-16.488 69.424,-39.996"
331
-         id="path392" /></clipPath><radialGradient
332
-       fx="0"
333
-       fy="0"
334
-       cx="0"
335
-       cy="0"
336
-       r="1"
337
-       gradientUnits="userSpaceOnUse"
338
-       gradientTransform="matrix(67.818146,2.5594788,1.6003418,-42.551941,394.62842,379.22559)"
339
-       spreadMethod="pad"
340
-       id="radialGradient408"><stop
341
-         style="stop-opacity:1;stop-color:#ffffff"
342
-         offset="0"
343
-         id="stop400" /><stop
344
-         style="stop-opacity:1;stop-color:#ffffff"
345
-         offset="0.159515"
346
-         id="stop402" /><stop
347
-         style="stop-opacity:0;stop-color:#ffffff"
348
-         offset="0.89889041"
349
-         id="stop404" /><stop
350
-         style="stop-opacity:0;stop-color:#ffffff"
351
-         offset="1"
352
-         id="stop406" /></radialGradient><mask
353
-       maskUnits="userSpaceOnUse"
354
-       x="0"
355
-       y="0"
356
-       width="1"
357
-       height="1"
358
-       id="mask410"><g
359
-         id="g420"><g
360
-           id="g418"><g
361
-             id="g416"><g
362
-               id="g414"><path
363
-                 d="M -32767,32767 H 32767 V -32767 H -32767 Z"
364
-                 style="fill:url(#radialGradient408);stroke:none"
365
-                 id="path412" /></g></g></g></g></mask><radialGradient
366
-       fx="0"
367
-       fy="0"
368
-       cx="0"
369
-       cy="0"
370
-       r="1"
371
-       gradientUnits="userSpaceOnUse"
372
-       gradientTransform="matrix(67.818146,2.5594788,1.6003418,-42.551941,394.62842,379.22559)"
373
-       spreadMethod="pad"
374
-       id="radialGradient430"><stop
375
-         style="stop-opacity:1;stop-color:#729ad0"
376
-         offset="0"
377
-         id="stop422" /><stop
378
-         style="stop-opacity:1;stop-color:#729ad0"
379
-         offset="0.159515"
380
-         id="stop424" /><stop
381
-         style="stop-opacity:1;stop-color:#ffffff"
382
-         offset="0.89889041"
383
-         id="stop426" /><stop
384
-         style="stop-opacity:1;stop-color:#ffffff"
385
-         offset="1"
386
-         id="stop428" /></radialGradient></defs><sodipodi:namedview
387
-     pagecolor="#ffffff"
388
-     bordercolor="#666666"
389
-     borderopacity="1"
390
-     objecttolerance="10"
391
-     gridtolerance="10"
392
-     guidetolerance="10"
393
-     inkscape:pageopacity="0"
394
-     inkscape:pageshadow="2"
395
-     inkscape:window-width="640"
396
-     inkscape:window-height="480"
397
-     id="namedview4" /><g
398
-     id="g10"
399
-     inkscape:groupmode="layer"
400
-     inkscape:label="chromium"
401
-     transform="matrix(1.3333333,0,0,-1.3333333,0,816)"><g
402
-       id="g12"><g
403
-         id="g14"
404
-         clip-path="url(#clipPath18)"><g
405
-           id="g20"><g
406
-             id="g22" /><g
407
-             id="g60"><g
408
-               clip-path="url(#clipPath26)"
409
-               opacity="0.699997"
410
-               id="g58"><g
411
-                 id="g56"><g
412
-                   id="g48" /><g
413
-                   mask="url(#mask32)"
414
-                   id="g54"><g
415
-                     transform="matrix(80.160004,0,0,80.160004,356.24023,264.048)"
416
-                     id="g52"><image
417
-                       width="1"
418
-                       height="1"
419
-                       style="image-rendering:optimizeSpeed"
420
-                       preserveAspectRatio="none"
421
-                       transform="matrix(1,0,0,-1,0,1)"
422
-                       xlink:href="data:image/png;base64,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"
423
-                       mask="url(#mask44)"
424
-                       id="image50" /></g></g></g></g></g></g><g
425
-           id="g62"
426
-           transform="translate(427.584,306.3408)"><path
427
-             d="m 0,0 c 0,-17.277 -14.009,-31.284 -31.287,-31.284 -17.279,0 -31.286,14.007 -31.286,31.284 0,17.282 14.007,31.289 31.286,31.289 C -14.009,31.289 0,17.282 0,0"
428
-             style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
429
-             id="path64" /></g><g
430
-           id="g66"
431
-           transform="translate(396.2974,393.4492)"><path
432
-             d="m 0,0 c -26.13,0 -49.567,-11.518 -65.516,-29.759 l 41.173,-71.312 0.003,0.007 c -2.39,4.134 -3.765,8.929 -3.765,14.049 0,15.525 12.582,28.113 28.105,28.113 H 82.371 C 70.682,-24.644 38.222,0 0,0"
433
-             style="fill:#4072a1;fill-opacity:1;fill-rule:nonzero;stroke:none"
434
-             id="path68" /></g></g></g><g
435
-       id="g70"><g
436
-         id="g72"><g
437
-           id="g78"><g
438
-             id="g80"><path
439
-               d="m 332.315,306.427 c 0,-33.866 26.305,-61.59 59.596,-63.852 v 0 l 28.743,49.786 h -0.006 c -2.387,-4.141 -5.851,-7.732 -10.285,-10.291 v 0 c -13.442,-7.764 -30.636,-3.153 -38.398,10.291 v 0 l -28.753,49.8 c -6.881,-10.205 -10.897,-22.5 -10.897,-35.734"
440
-               style="fill:url(#radialGradient90);stroke:none"
441
-               id="path92" /></g></g></g></g><g
442
-       id="g94"><g
443
-         id="g96"><g
444
-           id="g102"><g
445
-             id="g104"><path
446
-               d="m 396.324,334.547 v -0.01 c 4.777,0.007 9.62,-1.2 14.052,-3.765 v 0 c 13.446,-7.752 18.05,-24.948 10.284,-38.389 v 0 l -28.751,-49.808 c 1.457,-0.099 2.924,-0.149 4.406,-0.149 v 0 c 35.348,0 64.001,28.655 64.001,64.001 v 0 c 0,10.089 -2.335,19.633 -6.492,28.12 v 0 z"
447
-               style="fill:url(#radialGradient114);stroke:none"
448
-               id="path116" /></g></g></g></g><g
449
-       id="g118"><g
450
-         id="g120"
451
-         clip-path="url(#clipPath124)"><g
452
-           id="g126"><g
453
-             id="g128" /><g
454
-             id="g182"><g
455
-               clip-path="url(#clipPath132)"
456
-               opacity="0.130005"
457
-               id="g180"><g
458
-                 id="g178"><g
459
-                   clip-path="url(#clipPath136)"
460
-                   id="g176"><g
461
-                     id="g174"><g
462
-                       id="g166" /><g
463
-                       mask="url(#mask148)"
464
-                       id="g172"><g
465
-                         id="g170"><path
466
-                           d="m 404.76,294.508 -14.862,-51.73 2.016,-0.198 28.607,49.551"
467
-                           style="fill:url(#linearGradient164);stroke:none"
468
-                           id="path168" /></g></g></g></g></g></g></g></g><g
469
-           id="g184"><g
470
-             id="g186" /><g
471
-             id="g240"><g
472
-               clip-path="url(#clipPath190)"
473
-               opacity="0.300003"
474
-               id="g238"><g
475
-                 id="g236"><g
476
-                   clip-path="url(#clipPath194)"
477
-                   id="g234"><g
478
-                     id="g232"><g
479
-                       id="g224" /><g
480
-                       mask="url(#mask206)"
481
-                       id="g230"><g
482
-                         id="g228"><path
483
-                           d="m 402.123,319.707 52.231,12.993 -0.837,1.847 h -57.22"
484
-                           style="fill:url(#linearGradient222);stroke:none"
485
-                           id="path226" /></g></g></g></g></g></g></g></g></g></g><g
486
-       id="g242"><g
487
-         id="g244"
488
-         clip-path="url(#clipPath248)"><g
489
-           id="g250"><g
490
-             id="g252" /><g
491
-             id="g306"><g
492
-               clip-path="url(#clipPath256)"
493
-               opacity="0.199997"
494
-               id="g304"><g
495
-                 id="g302"><g
496
-                   clip-path="url(#clipPath260)"
497
-                   id="g300"><g
498
-                     id="g298"><g
499
-                       id="g290" /><g
500
-                       mask="url(#mask272)"
501
-                       id="g296"><g
502
-                         id="g294"><path
503
-                           d="m 381.757,305.075 -37.365,38.732 -1.181,-1.642 28.612,-49.559"
504
-                           style="fill:url(#linearGradient288);stroke:none"
505
-                           id="path292" /></g></g></g></g></g></g></g></g></g></g><g
506
-       id="g308"><g
507
-         id="g310"><g
508
-           id="g316"><g
509
-             id="g318"><path
510
-               d="m 367.97,306.341 c 0,-15.64 12.685,-28.324 28.327,-28.324 v 0 c 15.639,0 28.323,12.684 28.323,28.324 v 0 c 0,15.641 -12.684,28.324 -28.323,28.324 v 0 c -15.642,0 -28.327,-12.683 -28.327,-28.324"
511
-               style="fill:url(#radialGradient326);stroke:none"
512
-               id="path328" /></g></g></g></g><g
513
-       id="g330"><g
514
-         id="g332"><g
515
-           id="g338"><g
516
-             id="g340"><path
517
-               d="m 367.97,306.341 c 0,-15.64 12.685,-28.324 28.327,-28.324 v 0 c 15.639,0 28.323,12.684 28.323,28.324 v 0 c 0,15.641 -12.684,28.324 -28.323,28.324 v 0 c -15.642,0 -28.327,-12.683 -28.327,-28.324"
518
-               style="fill:url(#radialGradient348);stroke:none"
519
-               id="path350" /></g></g></g></g><g
520
-       id="g352"><g
521
-         id="g354"><g
522
-           id="g360"><g
523
-             id="g362"><path
524
-               d="m 372.155,306.247 c 0,-13.316 10.796,-24.114 24.111,-24.114 v 0 c 13.319,0 24.113,10.798 24.113,24.114 v 0 c 0,13.313 -10.794,24.109 -24.113,24.109 v 0 c -13.315,0 -24.111,-10.796 -24.111,-24.109"
525
-               style="fill:url(#radialGradient372);stroke:none"
526
-               id="path374" /></g></g></g></g><g
527
-       id="g376"><g
528
-         id="g378"
529
-         clip-path="url(#clipPath382)"><g
530
-           id="g384"><g
531
-             id="g386" /><g
532
-             id="g448"><g
533
-               clip-path="url(#clipPath390)"
534
-               opacity="0.5"
535
-               id="g446"><g
536
-                 id="g444"><g
537
-                   clip-path="url(#clipPath394)"
538
-                   id="g442"><g
539
-                     id="g440"><g
540
-                       id="g432" /><g
541
-                       mask="url(#mask410)"
542
-                       id="g438"><g
543
-                         id="g436"><path
544
-                           d="m 462.447,381.78 c 0.886,-23.494 -28.755,-43.697 -66.214,-45.108 -37.452,-1.408 -68.538,16.505 -69.422,39.997 -0.886,23.506 28.757,43.694 66.212,45.107 37.459,1.413 68.541,-16.488 69.424,-39.996"
545
-                           style="fill:url(#radialGradient430);stroke:none"
546
-                           id="path434" /></g></g></g></g></g></g></g></g></g></g></g></svg>
547
+<svg version="1.1" id="svg44" width="511.98489" height="511.98489" viewBox="0 0 511.98489 511.98489" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
548
+  <defs id="defs18">
549
+    <linearGradient xlink:href="#linearGradient4975" id="linearGradient4633" gradientUnits="userSpaceOnUse" gradientTransform="matrix(231.62575,0,0,231.62472,111.11013,159.99363)" x2="0.5565635" x1="0.46521288" y1="-0.67390651" y2="0.81129867"/>
550
+    <linearGradient id="linearGradient4975">
551
+      <stop style="stop-color:#1972e7" offset="0" id="stop4971"/>
552
+      <stop style="stop-color:#1969d5" offset="1" id="stop4973"/>
553
+    </linearGradient>
554
+    <linearGradient xlink:href="#3" id="linearGradient1331" x1="101.74381" y1="33.726189" x2="101.59915" y2="135.466" gradientUnits="userSpaceOnUse" gradientTransform="matrix(3.7794235,0,0,3.7794067,0.00151555,0.00377865)"/>
555
+    <linearGradient id="3" x2="1" gradientTransform="matrix(61.286,0,0,61.286,29.399,42.333)" gradientUnits="userSpaceOnUse">
556
+      <stop offset="0" id="stop1397" style="stop-color:#afccfb"/>
557
+      <stop offset="1" id="stop1399" style="stop-color:#8bb5f8"/>
558
+    </linearGradient>
559
+    <linearGradient xlink:href="#1" id="linearGradient2962" gradientUnits="userSpaceOnUse" gradientTransform="matrix(94.931559,164.42687,-164.4276,94.931137,97.555991,173.61083)" x2="1.7695541" x1="0.018202547" y1="-0.51170158" y2="0.4994337"/>
560
+    <linearGradient id="1" x2="1" gradientTransform="matrix(25.118,43.506,-43.506,25.118,25.812,45.935)" gradientUnits="userSpaceOnUse">
561
+      <stop offset="0" id="stop3122" style="stop-color:#659cf6"/>
562
+      <stop offset="1" id="stop3124" style="stop-color:#4285f4"/>
563
+    </linearGradient>
564
+    <linearGradient xlink:href="#2" id="linearGradient2688" x1="67.452377" y1="40.320694" x2="67.733002" y2="95.25" gradientUnits="userSpaceOnUse" gradientTransform="matrix(3.7794235,0,0,3.7794067,0.00150043,0.00377865)"/>
565
+    <linearGradient id="2">
566
+      <stop style="stop-color:#3680f0" offset="0" id="stop2682"/>
567
+      <stop style="stop-color:#2678ec" offset="1" id="stop2684"/>
568
+    </linearGradient>
569
+  </defs>
570
+  <path d="m 255.99319,255.99433 110.85049,63.99671 -110.85049,191.99385 c 141.38068,0 255.9917,-114.61051 255.9917,-255.99056 0,-46.64165 -12.53559,-90.3316 -34.33115,-127.99716 h -221.6632 z" id="path34-4" style="fill:url(#linearGradient1331)"/>
571
+  <path d="M 255.99054,0 C 161.2404,0 78.576848,51.513314 34.31224,128.0274 l 110.82781,191.96363 110.85049,-63.9967 V 127.99717 h 221.6632 C 433.38157,51.501975 350.72936,0 255.99054,0 Z" id="path36-1" style="fill:url(#linearGradient4633)"/>
572
+  <path d="m 0.00151177,255.99433 c 0,141.38005 114.60723823,255.99056 255.99168823,255.99056 L 366.84368,319.99103 255.9932,255.99433 145.14271,319.99103 34.314897,128.0274 C 12.531434,165.68239 0,209.35646 0,255.99056" id="path38-7" style="fill:url(#linearGradient2962)"/>
573
+  <path d="m 383.99094,255.99433 c 0,70.69003 -57.30741,127.99717 -127.99775,127.99717 -70.69034,0 -127.99773,-57.30714 -127.99773,-127.99717 0,-70.69002 57.30739,-127.99716 127.99773,-127.99716 70.69034,0 127.99775,57.30714 127.99775,127.99716" fill="#ffffff" id="path40"/>
574
+  <path d="m 359.99158,255.99433 c 0,57.43565 -46.56249,103.99794 -103.99839,103.99794 -57.4359,0 -103.9984,-46.56229 -103.9984,-103.99794 0,-57.43564 46.5625,-103.99793 103.9984,-103.99793 57.4359,0 103.99839,46.56229 103.99839,103.99793" id="path42-5" style="fill:url(#linearGradient2688)"/>
575
+</svg>
576
\ No newline at end of file
577
Request History
Carsten Ziepke's avatar

Kieltux created request almost 2 years ago


Carsten Ziepke's avatar

Kieltux accepted request almost 2 years ago

Tested with openSUSE Leap 15.4 (build on OBS not at packman).
For openSUSE Leap 15.4 we would need openSUSE Backports for SLE 15 SP4, which contains gcc 12 and llvm 15.