Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package chromium.16444 for 
openSUSE:Leap:15.2:Update checked in at 2021-06-06 12:38:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2:Update/chromium.16444 (Old)
 and      /work/SRC/openSUSE:Leap:15.2:Update/.chromium.16444.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chromium.16444"

Sun Jun  6 12:38:33 2021 rev:1 rq:897779 version:91.0.4472.77

Changes:
--------
New Changes file:

--- /dev/null   2021-05-27 11:03:55.685848939 +0200
+++ 
/work/SRC/openSUSE:Leap:15.2:Update/.chromium.16444.new.1898/chromium.changes   
    2021-06-06 12:38:48.836540630 +0200
@@ -0,0 +1,6507 @@
+-------------------------------------------------------------------
+Thu Jun  3 12:11:18 UTC 2021 - Callum Farmer <gm...@opensuse.org>
+
+- Add README.SUSE
+- Fix aarch64 build:
+  * chromium-91-libyuv-aarch64.patch
+  * Update highway to 0.12.2 (arm only)
+- Add -flax-vector-conversions to build flags
+
+-------------------------------------------------------------------
+Thu May 27 05:12:18 UTC 2021 - Andreas Stieger <andreas.stie...@gmx.de>
+
+- Chromium 91.0.4472.77 (boo#1186458):
+  * Support Managed configuration API for Web Applications
+  * WebOTP API: cross-origin iframe support
+  * CSS custom counter styles
+  * Support JSON Modules
+  * Clipboard: read-only files support
+  * Remove webkitBeforeTextInserted & webkitEditableCOntentChanged
+    JS events
+  * Honor media HTML attribute for link icon
+  * Import Assertions
+  * Class static initializer blocks
+  * Ergonomic brand checks for private fields
+  * Expose WebAssembly SIMD
+  * New Feature: WebTransport
+  * ES Modules for service workers ('module' type option)
+  * Suggested file name and location for the File System Access API
+  * adaptivePTime property for RTCRtpEncodingParameters
+  * Block HTTP port 10080 - mitigation for NAT Slipstream 2.0 attack
+  * Support WebSockets over HTTP/2
+  * Support 103 Early Hints for Navigation
+  * CVE-2021-30521: Heap buffer overflow in Autofill
+  * CVE-2021-30522: Use after free in WebAudio
+  * CVE-2021-30523: Use after free in WebRTC
+  * CVE-2021-30524: Use after free in TabStrip
+  * CVE-2021-30525: Use after free in TabGroups
+  * CVE-2021-30526: Out of bounds write in TabStrip
+  * CVE-2021-30527: Use after free in WebUI
+  * CVE-2021-30528: Use after free in WebAuthentication
+  * CVE-2021-30529: Use after free in Bookmarks
+  * CVE-2021-30530: Out of bounds memory access in WebAudio
+  * CVE-2021-30531: Insufficient policy enforcement in Content Security Policy
+  * CVE-2021-30532: Insufficient policy enforcement in Content Security Policy
+  * CVE-2021-30533: Insufficient policy enforcement in PopupBlocker
+  * CVE-2021-30534: Insufficient policy enforcement in iFrameSandbox
+  * CVE-2021-30535: Double free in ICU
+  * CVE-2021-21212: Insufficient data validation in networking
+  * CVE-2021-30536: Out of bounds read in V8
+  * CVE-2021-30537: Insufficient policy enforcement in cookies
+  * CVE-2021-30538: Insufficient policy enforcement in content security policy
+  * CVE-2021-30539: Insufficient policy enforcement in content security policy
+  * CVE-2021-30540: Incorrect security UI in payments
+  * Various fixes from internal audits, fuzzing and other initiatives
+  * drop chromium-90-TokenizedOutput-include.patch
+  * drop chromium-90-CrossThreadCopier-qualification.patch
+  * drop chromium-90-quantization_utils-include.patch
+  * drop chromium-90-angle-constexpr.patch
+  * add chromium-91-java-only-allowed-in-android-builds.patch
+  * add chromium-91-GCC_fix_vector_types_in_pcscan.patch
+  * add chromium-91-system-icu.patch
+
+-------------------------------------------------------------------
+Mon May 17 10:44:26 UTC 2021 - Marcus Meissner <meiss...@suse.com>
+
+- use asimdrdm CPU flag for aarch64 to select only more powerful buildhosts.
+
+-------------------------------------------------------------------
+Tue May 11 10:59:27 UTC 2021 - Andreas Stieger <andreas.stie...@gmx.de>
+
+- Chromium 90.0.4430.212 (boo#1185908)
+  * CVE-2021-30506: Incorrect security UI in Web App Installs
+  * CVE-2021-30507: Inappropriate implementation in Offline
+  * CVE-2021-30508: Heap buffer overflow in Media Feeds
+  * CVE-2021-30509: Out of bounds write in Tab Strip
+  * CVE-2021-30510: Race in Aura
+  * CVE-2021-30511: Out of bounds read in Tab Group
+  * CVE-2021-30512: Use after free in Notifications
+  * CVE-2021-30513: Type Confusion in V8
+  * CVE-2021-30514: Use after free in Autofill
+  * CVE-2021-30515: Use after free in File API
+  * CVE-2021-30516: Heap buffer overflow in History
+  * CVE-2021-30517: Type Confusion in V8
+  * CVE-2021-30518: Heap buffer overflow in Reader Mode
+  * CVE-2021-30519: Use after free in Payments
+  * CVE-2021-30520: Use after free in Tab Strip
+- FTP support disabled at runtime by default since release 88.
+  Chromium 91 will remove support for ftp altogether
+  (boo#1185496)
+
+-------------------------------------------------------------------
+Thu May  6 15:45:57 UTC 2021 - Callum Farmer <gm...@opensuse.org>
+
+  * Patch change *
+- Fix build with GCC 11 again (bsc#1185716)
+- Remove chromium-88-compiler.patch
+- Remove chromium-90-cstdint.patch
+- Remove chromium-90-gslang-linkage-fixup.patch
+- Added  chromium-90-compiler.patch
+- Added  chromium-90-angle-constexpr.patch
+- Added  chromium-90-TokenizedOutput-include.patch
+- Added  chromium-90-ruy-include.patch
+- Added  chromium-90-CrossThreadCopier-qualification.patch
+- Added  chromium-90-quantization_utils-include.patch
+
+-------------------------------------------------------------------
+Wed Apr 28 08:53:55 UTC 2021 - Marcus Meissner <meiss...@suse.com>
+
+- Chromium 90.0.4430.93 (boo#1185398):
+  - CVE-2021-21227: Insufficient data validation in V8. 
+  - CVE-2021-21232: Use after free in Dev Tools. 
+  - CVE-2021-21233: Heap buffer overflow in ANGLE.
+  - CVE-2021-21228: Insufficient policy enforcement in extensions.
+  - CVE-2021-21229: Incorrect security UI in downloads.
+  - CVE-2021-21230: Type Confusion in V8. 
+  - CVE-2021-21231: Insufficient data validation in V8.
+
+  - Reference: 
https://chromereleases.googleblog.com/2021/04/stable-channel-update-for-desktop_26.html
+
+-------------------------------------------------------------------
+Wed Apr 21 07:43:59 UTC 2021 - Andreas Stieger <andreas.stie...@gmx.de>
+
+- Chromium 90.0.4430.85 (boo#1185047):
+  * CVE-2021-21222: Heap buffer overflow in V8
+  * CVE-2021-21223: Integer overflow in Mojo
+  * CVE-2021-21224: Type Confusion in V8
+  * CVE-2021-21225: Out of bounds memory access in V8
+  * CVE-2021-21226: Use after free in navigation
+- Chromium 90.0.4430.72 (boo#1184764):
+  * CVE-2021-21201: Use after free in permissions
+  * CVE-2021-21202: Use after free in extensions
+  * CVE-2021-21203: Use after free in Blink
+  * CVE-2021-21204: Use after free in Blink
+  * CVE-2021-21205: Insufficient policy enforcement in navigation
+  * CVE-2021-21221: Insufficient validation of untrusted input in Mojo
+  * CVE-2021-21207: Use after free in IndexedDB
+  * CVE-2021-21208: Insufficient data validation in QR scanner
+  * CVE-2021-21209: Inappropriate implementation in storage
+  * CVE-2021-21210: Inappropriate implementation in Network
+  * CVE-2021-21211: Inappropriate implementation in Navigatio 
+  * CVE-2021-21212: Incorrect security UI in Network Config UI
+  * CVE-2021-21213: Use after free in WebMIDI
+  * CVE-2021-21214: Use after free in Network API
+  * CVE-2021-21215: Inappropriate implementation in Autofill
+  * CVE-2021-21216: Inappropriate implementation in Autofill
+  * CVE-2021-21217: Uninitialized Use in PDFium
+  * CVE-2021-21218: Uninitialized Use in PDFium
+  * CVE-2021-21219: Uninitialized Use in PDFiu
+  * drop chromium-89-quiche-private.patch
+  * drop chromium-89-quiche-dcheck.patch
+  * drop chromium-89-skia-CropRect.patch
+  * drop chromium-89-dawn-include.patch
+  * drop chromium-89-webcodecs-deps.patch
+  * drop chromium-89-AXTreeSerializer-include.patch
+  * drop libva-2.11.patch
+  * drop libva-2.11-nolegacy.patch
+  * drop chromium-84-blink-disable-clang-format.patch
+- chromium-90-gslang-linkage-fixup.patch: fixed a weird static/nonpic error
+- chromium-90-cstdint.patch: some cstd includes added
+- chromium-90-fseal.patch: F_SEAL defines added
+
+-------------------------------------------------------------------
+Wed Apr 14 16:09:27 UTC 2021 - Andreas Stieger <andreas.stie...@gmx.de>
+
+- Chromium 89.0.4389.128 (boo#1184700):
+  * CVE-2021-21206: Use after free in blink
+  * CVE-2021-21220: Insufficient validation of untrusted input in
+    v8 for x86_64
+
+-------------------------------------------------------------------
+Sat Apr  3 17:41:28 UTC 2021 - Callum Farmer <gm...@opensuse.org>
+
+- Update to 89.0.4389.114 bsc#1184256
+  - CVE-2021-21194: Use after free in screen capture
+  - CVE-2021-21195: Use after free in V8
+  - CVE-2021-21196: Heap buffer overflow in TabStrip
+  - CVE-2021-21197: Heap buffer overflow in TabStrip
+  - CVE-2021-21198: Out of bounds read in IPC
+  - CVE-2021-21199: Use Use after free in Aura
+- Add libva-2.11.patch to fix build with libva <2.11
+- Add libva-2.11-nolegacy.patch to fix build with libva 2.11
+- Remove x11-ozone-fix-two-edge-cases.patch
+
+-------------------------------------------------------------------
+Mon Mar 15 10:55:23 UTC 2021 - Callum Farmer <gm...@opensuse.org>
+
+- Update to 89.0.4389.90 bsc#1183515
+  - CVE-2021-21191: Use after free in WebRTC.
+  - CVE-2021-21192: Heap buffer overflow in tab groups.
+  - CVE-2021-21193: Use after free in Blink.
+
+-------------------------------------------------------------------
+Thu Mar 11 18:03:38 UTC 2021 - Callum Farmer <gm...@opensuse.org>
+
+- Update to 89.0.4389.82
+- Add x11-ozone-fix-two-edge-cases.patch to fix tab drag errors
+
++++ 6310 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:Leap:15.2:Update/.chromium.16444.new.1898/chromium.changes

New:
----
  README.SUSE
  _constraints
  chromium-78-protobuf-RepeatedPtrField-export.patch
  chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch
  chromium-86-ConsumeDurationNumber-constexpr.patch
  chromium-86-ImageMemoryBarrierData-init.patch
  chromium-86-f_seal.patch
  chromium-86-fix-vaapi-on-intel.patch
  chromium-86-nearby-explicit.patch
  chromium-86-nearby-include.patch
  chromium-88-gcc-fix-swiftshader-libEGL-visibility.patch
  chromium-89-EnumTable-crash.patch
  chromium-89-missing-cstring-header.patch
  chromium-90-compiler.patch
  chromium-90-fseal.patch
  chromium-90-ruy-include.patch
  chromium-91-GCC_fix_vector_types_in_pcscan.patch
  chromium-91-java-only-allowed-in-android-builds.patch
  chromium-91-libyuv-aarch64.patch
  chromium-91-system-icu.patch
  chromium-91.0.4472.77.tar.xz
  chromium-browser.desktop
  chromium-browser.sh
  chromium-browser.xml
  chromium-buildname.patch
  chromium-disable-parallel-gold.patch
  chromium-gcc11.patch
  chromium-glibc-2.33.patch
  chromium-libusb_interrupt_event_handler.patch
  chromium-lp151-old-drm.patch
  chromium-lp152-missing-includes.patch
  chromium-master-prefs-path.patch
  chromium-norar.patch
  chromium-prop-codecs.patch
  chromium-shim_headers.patch
  chromium-symbolic.svg
  chromium-system-libusb.patch
  chromium-vaapi.patch
  chromium.changes
  chromium.default
  chromium.spec
  exclude_ymp.patch
  fix_building_widevinecdm_with_chromium.patch
  gcc-enable-lto.patch
  highway-0.12.2.tar.gz
  master_preferences
  no-location-leap151.patch
  system-libdrm.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ chromium.spec ++++++
++++ 838 lines (skipped)

++++++ README.SUSE ++++++
README for SUSE packagers
=========================
Patches for chromium can typically be found in the following places:

Stephan Hartmann - https://github.com/stha09/chromium-patches/releases
Gentoo - 
https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files
Fedora - https://src.fedoraproject.org/rpms/chromium/tree/rawhide
Arch - 
https://github.com/archlinux/svntogit-packages/tree/packages/chromium/trunk
++++++ _constraints ++++++
<?xml version="1.0"?>
<constraints>
  <hardware>
    <disk>
      <size unit="G">16</size>
    </disk>
    <physicalmemory>
      <size unit="G">8</size>
    </physicalmemory>
  </hardware>
  <overwrite>
    <conditions>
      <arch>x86_64</arch>
    </conditions>
    <hardware>
      <memory>
        <size unit="G">24</size>
      </memory>
    </hardware>
  </overwrite>
  <overwrite>
    <conditions>
      <arch>aarch64</arch>
    </conditions>
    <hardware>
      <cpu>
      <flag>asimdrdm</flag>
      </cpu>
    </hardware>
  </overwrite>
</constraints>
++++++ chromium-78-protobuf-RepeatedPtrField-export.patch ++++++
diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h 
b/third_party/protobuf/src/google/protobuf/repeated_field.h
index b5b193c..4434854 100644
--- a/third_party/protobuf/src/google/protobuf/repeated_field.h
+++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
@@ -804,7 +804,7 @@ class StringTypeHandler {
 // RepeatedPtrField is like RepeatedField, but used for repeated strings or
 // Messages.
 template <typename Element>
-class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
+class PROTOBUF_EXPORT RepeatedPtrField final : private 
internal::RepeatedPtrFieldBase {
  public:
   RepeatedPtrField();
   explicit RepeatedPtrField(Arena* arena);
++++++ chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch ++++++
>From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001
From: vasilvv <vasi...@google.com>
Date: Wed, 03 Apr 2019 13:58:53 -0700
Subject: [PATCH] GCC: do not delete move constructor of QuicStreamSendBuffer

QuicStreamSendBuffer constructor is implicitely required in the
initialization of the vector of substreams in QuicCryptoStream.
Though clang apparently ignores that, GCC fails to build.

BUG=chromium:819294

Originally submitted by Jos?? Dapena Paz <jose.dap...@lge.com> at 
https://quiche-review.googlesource.com/c/quiche/+/2420

PiperOrigin-RevId: 241800134
Change-Id: I4e3c97d6e5895d85340e8c1b740e6196d9104066
---

diff --git a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h 
b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
index e34514b..74e9d0d 100644
--- a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
+++ b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
@@ -62,7 +62,7 @@
  public:
   explicit QuicStreamSendBuffer(QuicBufferAllocator* allocator);
   QuicStreamSendBuffer(const QuicStreamSendBuffer& other) = delete;
-  QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = delete;
+  QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = default;
   ~QuicStreamSendBuffer();
 
   // Save |data_length| of data starts at |iov_offset| in |iov| to send buffer.
++++++ chromium-86-ConsumeDurationNumber-constexpr.patch ++++++
>From f64e2d2daa64749995253f8ad00679ce74abdc1b Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdap...@igalia.com>
Date: Wed, 19 Aug 2020 11:02:00 +0200
Subject: [PATCH] GCC: ConsumeDurationNumber cannot be a constexpr

Declaring base::ConsumeDurationNumber as constexpr is not valid, as it
uses the BasicStringPiece::begin method, that is not constexpr.

build error in GCC:
../../base/time/time.cc: In function ???constexpr 
base::Optional<base::{anonymous}::ParsedDecimal> 
base::{anonymous}::ConsumeDurationNumber(base::StringPiece&)???:
../../base/time/time.cc:67:63: error: call to non-???constexpr??? function 
???const value_type* base::BasicStringPiece<STRING_TYPE>::begin() const [with 
STRING_TYPE = std::__cxx11::basic_string<char>; 
base::BasicStringPiece<STRING_TYPE>::const_iterator = const char*; 
base::BasicStringPiece<STRING_TYPE>::value_type = char]???
   67 |   StringPiece::const_iterator orig_start = number_string.begin();
      |                                            ~~~~~~~~~~~~~~~~~~~^~

Bug: 859294
Change-Id: Id987d003f66052848d7083bb33abc3acfd109b73
---

diff --git a/base/time/time.cc b/base/time/time.cc
index 1b1a830..7c47419 100644
--- a/base/time/time.cc
+++ b/base/time/time.cc
@@ -61,8 +61,7 @@
 //
 // Adapted from absl:
 // 
https://cs.chromium.org/chromium/src/third_party/abseil-cpp/absl/time/duration.cc?l=807&rcl=2c22e9135f107a4319582ae52e2e3e6b201b6b7c
-constexpr Optional<ParsedDecimal> ConsumeDurationNumber(
-    StringPiece& number_string) {
+Optional<ParsedDecimal> ConsumeDurationNumber(StringPiece& number_string) {
   ParsedDecimal res;
   StringPiece::const_iterator orig_start = number_string.begin();
   // Parse contiguous digits.
++++++ chromium-86-ImageMemoryBarrierData-init.patch ++++++
>From 2879a6ba43b65c33e3c02432b4ae7a7462d24096 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <sth...@googlemail.com>
Date: Fri, 28 Aug 2020 07:23:29 +0000
Subject: [PATCH] GCC: fix ImageMemoryBarrierData initialization

GCC can't convert constant string to char[40]. Use const char * instead.
Otherwise fails like this:

src/libANGLE/renderer/vulkan/vk_helpers.cpp:121:1: error: could not convert
'...' from '<brace-enclosed initializer list>' to
'const angle::PackedEnumMap<rx::vk::ImageLayout, 
rx::vk::{anonymous}::ImageMemoryBarrierData>'
---
 third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp 
b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
index af957d7..7fe82ae 100644
--- a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
+++ b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
@@ -73,7 +73,7 @@ enum BarrierType
 
 struct ImageMemoryBarrierData
 {
-    char name[40];
+    const char *name;
 
     // The Vk layout corresponding to the ImageLayout key.
     VkImageLayout layout;
-- 
2.26.2

++++++ chromium-86-f_seal.patch ++++++
Index: chromium-86.0.4240.75/sandbox/policy/linux/bpf_gpu_policy_linux.cc
===================================================================
--- chromium-86.0.4240.75.orig/sandbox/policy/linux/bpf_gpu_policy_linux.cc
+++ chromium-86.0.4240.75/sandbox/policy/linux/bpf_gpu_policy_linux.cc
@@ -6,6 +6,18 @@
 
 #include <errno.h>
 #include <fcntl.h>
+#ifndef F_SEAL_SEAL
+# define F_SEAL_SEAL    0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+# define F_SEAL_SHRINK        0x0002
+#endif
+#ifndef F_SEAL_GROW
+# define F_SEAL_GROW  0x0004
+#endif
+#ifndef F_ADD_SEALS
+# define F_ADD_SEALS    1033
+#endif
 #include <sys/socket.h>
 #include <sys/types.h>
 #include <unistd.h>
++++++ chromium-86-fix-vaapi-on-intel.patch ++++++
diff -up 
chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.vaapi-intel-fix
 chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
--- 
chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.vaapi-intel-fix
     2020-10-07 12:38:47.000000000 -0400
+++ chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc     
2020-10-14 16:20:46.938556042 -0400
@@ -58,6 +58,7 @@ unsigned int GetVaFormatForVideoCodecPro
   return VA_RT_FORMAT_YUV420;
 }
 
+#if defined(OS_ANDROID) || BUILDFLAG(IS_CHROMEOS_ASH)
 // Returns true if the CPU is an Intel Gemini Lake or later (including Kaby
 // Lake) Cpu platform id's are referenced from the following file in kernel
 // source arch/x86/include/asm/intel-family.h
@@ -70,6 +71,7 @@ bool IsGeminiLakeOrLater() {
       cpuid.model() >= kGeminiLakeModelId;
   return is_geminilake_or_later;
 }
+#endif
 
 }  // namespace
 
@@ -1214,6 +1216,8 @@ VaapiVideoDecodeAccelerator::DecideBuffe
   if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
     return BufferAllocationMode::kNormal;
 
+#if defined(OS_ANDROID) || BUILDFLAG(IS_CHROMEOS_ASH)
+  // Move this to chromeOs only as it is causing problem in some intel linux 
drivers
   // On Gemini Lake, Kaby Lake and later we can pass to libva the client's
   // PictureBuffers to decode onto, which skips the use of the Vpp unit and its
   // associated format reconciliation copy, avoiding all internal buffer
@@ -1229,6 +1233,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe
       num_extra_pics_ = 3;
     return BufferAllocationMode::kNone;
   }
+#endif
 
   // For H.264 on older devices, another +1 is experimentally needed for
   // high-to-high resolution changes.
++++++ chromium-86-nearby-explicit.patch ++++++
>From 849e5c6b3a8746d9205102bd3df4e140cead405a Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <sth...@googlemail.com>
Date: Sat, 18 Jul 2020 15:11:13 +0000
Subject: [PATCH] GCC: remove explicit from AtomicReference constructor

---
 .../nearby/src/cpp/platform/public/atomic_reference.h        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/third_party/nearby/src/cpp/platform/public/atomic_reference.h 
b/third_party/nearby/src/cpp/platform/public/atomic_reference.h
index 5742724..bbb8c01 100644
--- a/third_party/nearby/src/cpp/platform/public/atomic_reference.h
+++ b/third_party/nearby/src/cpp/platform/public/atomic_reference.h
@@ -37,7 +37,7 @@ class AtomicReference<T, std::enable_if_t<sizeof(T) <= 
sizeof(std::uint32_t) &&
     final {
  public:
   using Platform = api::ImplementationPlatform;
-  explicit AtomicReference(T value)
+  AtomicReference(T value)
       : impl_(Platform::CreateAtomicUint32(static_cast<std::uint32_t>(value))) 
{
   }
   ~AtomicReference() = default;
-- 
2.26.2

++++++ chromium-86-nearby-include.patch ++++++
>From a5b2ee9dd7dfb186e26ec6c0c06c2ae1a9d27195 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <sth...@googlemail.com>
Date: Sat, 18 Jul 2020 14:15:50 +0000
Subject: [PATCH] IWYU: memcpy is defined in cstring

---
 third_party/nearby/src/cpp/platform/base/byte_array.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/third_party/nearby/src/cpp/platform/base/byte_array.h 
b/third_party/nearby/src/cpp/platform/base/byte_array.h
index ee5d0eb..4b1d79b 100644
--- a/third_party/nearby/src/cpp/platform/base/byte_array.h
+++ b/third_party/nearby/src/cpp/platform/base/byte_array.h
@@ -18,6 +18,7 @@
 #include <algorithm>
 #include <array>
 #include <cstdint>
+#include <cstring>
 #include <string>
 #include <type_traits>
 #include <utility>
-- 
2.26.2

++++++ chromium-88-gcc-fix-swiftshader-libEGL-visibility.patch ++++++
diff -up 
chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn.gcc-swiftshader-visibility
 chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn
--- 
chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn.gcc-swiftshader-visibility
        2021-02-25 16:31:51.929335783 +0000
+++ chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn   
2021-02-25 16:31:51.929335783 +0000
@@ -42,7 +42,8 @@ config("swiftshader_libEGL_private_confi
     } else if (is_clang) {
       defines += [ "EGLAPI=__attribute__((visibility(\"protected\"))) 
__attribute__((no_sanitize(\"function\")))" ]
     } else {
-      defines += [ "EGLAPI= " ]
+      cflags += [ "-fvisibility=protected" ]
+      defines += [ "EGLAPI=__attribute__((visibility(\"protected\")))" ]
     }
   }
 }
diff -up 
chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn.gcc-swiftshader-visibility
 chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn
--- 
chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn.gcc-swiftshader-visibility
     2021-02-25 18:16:28.576901417 +0000
+++ 
chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn    
    2021-02-25 18:17:50.356567690 +0000
@@ -57,7 +57,8 @@ config("swiftshader_libGLESv2_private_co
     } else if (is_clang) {
       defines += [ "GL_APICALL=__attribute__((visibility(\"protected\"))) 
__attribute__((no_sanitize(\"function\")))" ]
     } else {
-      defines += [ "GL_APICALL= " ]
+      cflags += [ "-fvisibility=protected" ]
+      defines += [ "GL_APICALL=__attribute__((visibility(\"protected\")))" ]
     }
   }
 }
++++++ chromium-89-EnumTable-crash.patch ++++++
diff --git a/components/cast_channel/enum_table.h 
b/components/cast_channel/enum_table.h
index e3130c7..2ad16ea 100644
--- a/components/cast_channel/enum_table.h
+++ b/components/cast_channel/enum_table.h
@@ -212,7 +212,7 @@ class
 
   template <typename E>
   friend class EnumTable;
-  DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
+  DISALLOW_ASSIGN(GenericEnumTableEntry);
 };
 
 // Yes, these constructors really needs to be inlined.  Even though they look
@@ -250,8 +250,7 @@ class EnumTable {
     // Constructor for regular entries.
     constexpr Entry(E value, base::StringPiece str)
         : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
-
-    DISALLOW_COPY_AND_ASSIGN(Entry);
+    DISALLOW_ASSIGN(Entry);
   };
 
   static_assert(sizeof(E) <= sizeof(int32_t),
@@ -306,15 +305,14 @@ class EnumTable {
     if (is_sorted_) {
       const std::size_t index = static_cast<std::size_t>(value);
       if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
-        const auto& entry = data_.begin()[index];
+        const auto& entry = data_[index];
         if (ANALYZER_ASSUME_TRUE(entry.has_str()))
           return entry.str();
       }
       return base::nullopt;
     }
     return GenericEnumTableEntry::FindByValue(
-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
-        data_.size(), static_cast<int32_t>(value));
+        &data_[0], data_.size(), static_cast<int32_t>(value));
   }
 
   // This overload of GetString is designed for cases where the argument is a
@@ -342,8 +340,7 @@ class EnumTable {
   // enum value directly.
   base::Optional<E> GetEnum(base::StringPiece str) const {
     auto* entry = GenericEnumTableEntry::FindByString(
-        reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
-        data_.size(), str);
+        &data_[0], data_.size(), str);
     return entry ? static_cast<E>(entry->value) : base::Optional<E>();
   }
 
@@ -358,7 +355,7 @@ class EnumTable {
   // Align the data on a cache line boundary.
   alignas(64)
 #endif
-      std::initializer_list<Entry> data_;
+      const std::vector<Entry> data_;
   bool is_sorted_;
 
   constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
@@ -370,8 +367,8 @@ class EnumTable {
 
     for (std::size_t i = 0; i < data.size(); i++) {
       for (std::size_t j = i + 1; j < data.size(); j++) {
-        const Entry& ei = data.begin()[i];
-        const Entry& ej = data.begin()[j];
+        const Entry& ei = data[i];
+        const Entry& ej = data[j];
         DCHECK(ei.value != ej.value)
             << "Found duplicate enum values at indices " << i << " and " << j;
         DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
++++++ chromium-89-missing-cstring-header.patch ++++++
diff -up 
chromium-89.0.4389.72/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring
 chromium-89.0.4389.72/third_party/webrtc/audio/utility/channel_mixer.cc
--- 
chromium-89.0.4389.72/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring
     2021-03-02 12:48:16.000000000 -0500
+++ chromium-89.0.4389.72/third_party/webrtc/audio/utility/channel_mixer.cc     
2021-03-04 13:31:42.894817353 -0500
@@ -8,6 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+#include <cstring>
+
 #include "audio/utility/channel_mixer.h"
 
 #include "audio/utility/channel_mixing_matrix.h"
diff -up 
chromium-89.0.4389.72/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring
 
chromium-89.0.4389.72/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
--- 
chromium-89.0.4389.72/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring
    2021-03-04 13:31:42.895817359 -0500
+++ 
chromium-89.0.4389.72/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
    2021-03-04 13:45:27.795162431 -0500
@@ -23,6 +23,7 @@
 #include <sys/mman.h>
 #include <sys/syscall.h>
 
+#include <cstring>
 #include <memory>
 #include <utility>
 
diff -up 
chromium-89.0.4389.72/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring
 
chromium-89.0.4389.72/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
--- 
chromium-89.0.4389.72/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring
    2021-03-02 12:48:17.000000000 -0500
+++ 
chromium-89.0.4389.72/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
    2021-03-04 13:31:42.895817359 -0500
@@ -10,6 +10,7 @@
 
 #include "modules/video_coding/utility/ivf_file_reader.h"
 
+#include <cstring>
 #include <string>
 #include <vector>
 
++++++ chromium-90-compiler.patch ++++++
>From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <flop...@gentoo.org>
Date: Tue, 13 Apr 2021 07:59:41 +0000
Subject: [PATCH] Disable various compiler configs

---
 build/config/compiler/BUILD.gn | 59 ++++++++++------------------------
 1 file changed, 17 insertions(+), 42 deletions(-)

diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 2166af0..90ad0c1 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -267,8 +267,6 @@ config("compiler") {
 
   configs += [
     # See the definitions below.
-    ":clang_revision",
-    ":compiler_cpu_abi",
     ":compiler_codegen",
     ":compiler_deterministic",
   ]
@@ -509,24 +507,6 @@ config("compiler") {
     ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
   }
 
-  if (is_clang && !is_nacl && !use_xcode_clang) {
-    cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
-
-    # TODO(hans): Remove this once Clang generates better optimized debug info
-    # by default. https://crbug.com/765793
-    cflags += [
-      "-mllvm",
-      "-instcombine-lower-dbg-declare=0",
-    ]
-    if (!is_debug && use_thin_lto && is_a_target_toolchain) {
-      if (is_win) {
-        ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
-      } else {
-        ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
-      }
-    }
-  }
-
   # C11/C++11 compiler flags setup.
   # ---------------------------
   if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
@@ -1640,7 +1620,7 @@ config("chromium_code") {
       defines = [ "_HAS_NODISCARD" ]
     }
   } else {
-    cflags = [ "-Wall" ]
+    cflags = []
     if (treat_warnings_as_errors) {
       cflags += [ "-Werror" ]
 
@@ -1649,10 +1629,6 @@ config("chromium_code") {
       # well.
       ldflags = [ "-Werror" ]
     }
-    if (is_clang) {
-      # Enable extra warnings for chromium_code when we control the compiler.
-      cflags += [ "-Wextra" ]
-    }
 
     # In Chromium code, we define __STDC_foo_MACROS in order to get the
     # C99 macros on Mac and Linux.
@@ -1661,15 +1637,6 @@ config("chromium_code") {
       "__STDC_FORMAT_MACROS",
     ]
 
-    if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
-        current_cpu != "s390" && current_cpu != "ppc64" &&
-        current_cpu != "mips" && current_cpu != "mips64") {
-      # Non-chromium code is not guaranteed to compile cleanly with
-      # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
-      # disabled, so only do that for Release build.
-      defines += [ "_FORTIFY_SOURCE=2" ]
-    }
-
     if (is_mac) {
       cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
       cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
@@ -2069,7 +2036,8 @@ config("default_stack_frames") {
 }
 
 # Default "optimization on" config.
-config("optimize") {
+config("optimize") { }
+config("xoptimize") {
   if (is_win) {
     if (chrome_pgo_phase != 2) {
       # Favor size over speed, /O1 must be before the common flags.
@@ -2104,7 +2072,8 @@ config("optimize") {
 }
 
 # Turn off optimizations.
-config("no_optimize") {
+config("no_optimize") { }
+config("xno_optimize") {
   if (is_win) {
     cflags = [
       "/Od",  # Disable optimization.
@@ -2144,7 +2113,8 @@ config("no_optimize") {
 # Turns up the optimization level. On Windows, this implies whole program
 # optimization and link-time code generation which is very expensive and should
 # be used sparingly.
-config("optimize_max") {
+config("optimize_max") { }
+config("xoptimize_max") {
   if (is_nacl && is_nacl_irt) {
     # The NaCl IRT is a special case and always wants its own config.
     # Various components do:
@@ -2176,7 +2146,8 @@ config("optimize_max") {
 #
 # TODO(crbug.com/621335) - rework how all of these configs are related
 # so that we don't need this disclaimer.
-config("optimize_speed") {
+config("optimize_speed") { }
+config("xoptimize_speed") {
   if (is_nacl && is_nacl_irt) {
     # The NaCl IRT is a special case and always wants its own config.
     # Various components do:
@@ -2201,7 +2172,8 @@ config("optimize_speed") {
   }
 }
 
-config("optimize_fuzzing") {
+config("optimize_fuzzing") { }
+config("xoptimize_fuzzing") {
   cflags = [ "-O1" ] + common_optimize_on_cflags
   ldflags = common_optimize_on_ldflags
   visibility = [ ":default_optimization" ]
@@ -2320,7 +2292,8 @@ config("win_pdbaltpath") {
 }
 
 # Full symbols.
-config("symbols") {
+config("symbols") { }
+config("xsymbols") {
   if (is_win) {
     if (is_clang) {
       cflags = [ "/Z7" ]  # Debug information in the .obj files.
@@ -2423,7 +2396,8 @@ config("symbols") {
 # Minimal symbols.
 # This config guarantees to hold symbol for stack trace which are shown to user
 # when crash happens in unittests running on buildbot.
-config("minimal_symbols") {
+config("minimal_symbols") { }
+config("xminimal_symbols") {
   if (is_win) {
     # Functions, files, and line tables only.
     cflags = []
@@ -2482,7 +2456,8 @@ config("minimal_symbols") {
 # This configuration contains function names only. That is, the compiler is
 # told to not generate debug information and the linker then just puts function
 # names in the final debug information.
-config("no_symbols") {
+config("no_symbols") { }
+config("xno_symbols") {
   if (is_win) {
     ldflags = [ "/DEBUG" ]
 
-- 
2.26.3
++++++ chromium-90-fseal.patch ++++++
--- chromium-90.0.4430.85/mojo/core/channel_linux.cc.xx 2021-04-26 
10:31:10.188705842 +0200
+++ chromium-90.0.4430.85/mojo/core/channel_linux.cc    2021-04-26 
11:23:26.997161282 +0200
@@ -5,6 +5,21 @@
 #include "mojo/core/channel_linux.h"
 
 #include <fcntl.h>
+#ifndef F_SEAL_SEAL
+# define F_SEAL_SEAL    0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+# define F_SEAL_SHRINK        0x0002
+#endif
+#ifndef F_SEAL_GROW
+# define F_SEAL_GROW  0x0004
+#endif
+#ifndef F_ADD_SEALS
+# define F_ADD_SEALS    1033
+#endif
+#ifndef F_GET_SEALS
+# define F_GET_SEALS    1034
+#endif
 #include <linux/futex.h>
 #include <linux/memfd.h>
 #include <sys/eventfd.h>
--- 
chromium-90.0.4430.85/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.xx
       2021-04-26 16:39:18.387482941 +0200
+++ 
chromium-90.0.4430.85/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
  2021-04-26 16:40:10.866754337 +0200
@@ -6,6 +6,21 @@
 
 #include <errno.h>
 #include <fcntl.h>
+#ifndef F_SEAL_SEAL
+# define F_SEAL_SEAL    0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+# define F_SEAL_SHRINK        0x0002
+#endif
+#ifndef F_SEAL_GROW
+# define F_SEAL_GROW  0x0004
+#endif
+#ifndef F_ADD_SEALS
+# define F_ADD_SEALS    1033
+#endif
+#ifndef F_GET_SEALS
+# define F_GET_SEALS    1034
+#endif
 #include <linux/net.h>
 #include <sched.h>
 #include <signal.h>
++++++ chromium-90-ruy-include.patch ++++++
>From 714092f336bb14d2fcc27396ec323b3d843bb962 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <sth...@googlemail.com>
Date: Thu, 4 Mar 2021 15:05:46 +0000
Subject: [PATCH] IWYU: include limits for std::numeric_limits

---
 third_party/ruy/src/ruy/block_map.cc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/third_party/ruy/src/ruy/block_map.cc 
b/third_party/ruy/src/ruy/block_map.cc
index 44e5039..a7a7559 100644
--- a/third_party/ruy/src/ruy/block_map.cc
+++ b/third_party/ruy/src/ruy/block_map.cc
@@ -17,6 +17,7 @@ limitations under the License.
 
 #include <algorithm>
 #include <cstdint>
+#include <limits>
 
 #ifdef RUY_MAKEBLOCKMAP_DEBUG
 #include <cstdio>
-- 
2.26.2

++++++ chromium-91-GCC_fix_vector_types_in_pcscan.patch ++++++
From: Stephan Hartmann <sth...@googlemail.com>
Subject: GCC: fix vector types in pcscan
Date: Sat Apr 10 17:02:49 2021
References: 
https://chromium.googlesource.com/chromium/src/+/429e6f78a88473208e96689afa2f6e91f07a4f8c%5E!/#F0

Index: 
chromium-91.0.4472.57/base/allocator/partition_allocator/starscan/pcscan.cc
===================================================================
--- 
chromium-91.0.4472.57.orig/base/allocator/partition_allocator/starscan/pcscan.cc
+++ chromium-91.0.4472.57/base/allocator/partition_allocator/starscan/pcscan.cc
@@ -1143,7 +1143,7 @@ class PCScanTask::ScanLoop final {
       const __m128i maybe_ptrs =
           _mm_loadu_si128(reinterpret_cast<__m128i*>(payload));
       const __m128i vand = _mm_and_si128(maybe_ptrs, cage_mask);
-      const __m128d vcmp = _mm_cmpeq_epi64(vand, vbase);
+      const __m128i vcmp = _mm_cmpeq_epi64(vand, vbase);
       const int mask = _mm_movemask_pd(_mm_castsi128_pd(vcmp));
       if (LIKELY(!mask))
         continue;
@@ -1153,15 +1153,14 @@ class PCScanTask::ScanLoop final {
       if (mask & 0b01) {
         quarantine_size +=
             pcscan_task_.TryMarkObjectInNormalBuckets<GigaCageLookupPolicy>(
-                _mm_cvtsi128_si64(_mm_castpd_si128(maybe_ptrs)));
+                _mm_cvtsi128_si64(maybe_ptrs));
       }
       if (mask & 0b10) {
         // Extraction intrinsics for qwords are only supported in SSE4.1, so
         // instead we reshuffle dwords with pshufd. The mask is used to move 
the
         // 4th and 3rd dwords into the second and first position.
         static constexpr int kSecondWordMask = (3 << 2) | (2 << 0);
-        const __m128i shuffled =
-            _mm_shuffle_epi32(_mm_castpd_si128(maybe_ptrs), kSecondWordMask);
+       const __m128i shuffled = _mm_shuffle_epi32(maybe_ptrs, kSecondWordMask);
         quarantine_size +=
             pcscan_task_.TryMarkObjectInNormalBuckets<GigaCageLookupPolicy>(
                 _mm_cvtsi128_si64(shuffled));
++++++ chromium-91-java-only-allowed-in-android-builds.patch ++++++
References: https://bugs.chromium.org/p/chromium/issues/detail?id=1192875

Index: chromium-91.0.4472.57/third_party/closure_compiler/compiler.py
===================================================================
--- chromium-91.0.4472.57.orig/third_party/closure_compiler/compiler.py
+++ chromium-91.0.4472.57/third_party/closure_compiler/compiler.py
@@ -13,8 +13,7 @@ import subprocess
 
 
 _CURRENT_DIR = os.path.join(os.path.dirname(__file__))
-_JAVA_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java")
-assert os.path.isfile(_JAVA_PATH), "java only allowed in android builds"
+_JAVA_PATH = "java"
 
 class Compiler(object):
   """Runs the Closure compiler on given source files to typecheck them
++++++ chromium-91-libyuv-aarch64.patch ++++++
diff --git a/third_party/libyuv/source/row_neon64.cc 
b/third_party/libyuv/source/row_neon64.cc
index 350c964..2aab413 100644
--- a/third_party/libyuv/source/row_neon64.cc
+++ b/third_party/libyuv/source/row_neon64.cc
@@ -1835,7 +1835,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb,
       : "+r"(src_argb),          // %0
         "+r"(dst_ab64),          // %1
         "+r"(width)              // %2
-      : "m"(kShuffleARGBToABGR)  // %3
+      : "Q"(kShuffleARGBToABGR)  // %3
       : "cc", "memory", "v0", "v1", "v2", "v3", "v4");
 }
 
@@ -1859,7 +1859,7 @@ void AR64ToARGBRow_NEON(const uint16_t* src_ar64,
       : "+r"(src_ar64),          // %0
         "+r"(dst_argb),          // %1
         "+r"(width)              // %2
-      : "m"(kShuffleAR64ToARGB)  // %3
+      : "Q"(kShuffleAR64ToARGB)  // %3
       : "cc", "memory", "v0", "v1", "v2", "v3", "v4");
 }
 
@@ -1883,7 +1883,7 @@ void AB64ToARGBRow_NEON(const uint16_t* src_ab64,
       : "+r"(src_ab64),          // %0
         "+r"(dst_argb),          // %1
         "+r"(width)              // %2
-      : "m"(kShuffleAB64ToARGB)  // %3
+      : "Q"(kShuffleAB64ToARGB)  // %3
       : "cc", "memory", "v0", "v1", "v2", "v3", "v4");
 }
 
diff --git a/third_party/libyuv/source/scale_neon64.cc 
b/third_party/libyuv/source/scale_neon64.cc
index 8656fec..9f9636e 100644
--- a/third_party/libyuv/source/scale_neon64.cc
+++ b/third_party/libyuv/source/scale_neon64.cc
@@ -601,8 +601,8 @@ void ScaleRowUp2_Bilinear_NEON(const uint8_t* src_ptr,
       "umlal       v4.8h, v1.8b, v31.8b          \n"  // 3*near+far (2, odd)
       "umlal       v5.8h, v0.8b, v31.8b          \n"  // 3*near+far (2, even)
 
-      "mov         v0.8h, v4.8h                  \n"
-      "mov         v1.8h, v5.8h                  \n"
+      "mov         v0.16b, v4.16b                \n"
+      "mov         v1.16b, v5.16b                \n"
       "mla         v4.8h, v2.8h, v30.8h          \n"  // 9 3 3 1 (1, odd)
       "mla         v5.8h, v3.8h, v30.8h          \n"  // 9 3 3 1 (1, even)
       "mla         v2.8h, v0.8h, v30.8h          \n"  // 9 3 3 1 (2, odd)
@@ -642,7 +642,7 @@ void ScaleRowUp2_Linear_12_NEON(const uint16_t* src_ptr,
       "ld1         {v1.8h}, [%1], #16            \n"  // 12345678 (16b)
       "prfm        pldl1keep, [%0, 448]          \n"  // prefetch 7 lines ahead
 
-      "mov         v2.8h, v0.8h                  \n"
+      "mov         v2.16b, v0.16b                \n"
       "mla         v0.8h, v1.8h, v31.8h          \n"  // 3*near+far (odd)
       "mla         v1.8h, v2.8h, v31.8h          \n"  // 3*near+far (even)
 
@@ -679,7 +679,7 @@ void ScaleRowUp2_Bilinear_12_NEON(const uint16_t* src_ptr,
       "ld1         {v3.8h}, [%2], #16            \n"  // 12345678 (16b)
       "prfm        pldl1keep, [%0, 448]          \n"  // prefetch 7 lines ahead
 
-      "mov         v0.8h, v2.8h                  \n"
+      "mov         v0.16b, v2.16b                \n"
       "mla         v2.8h, v3.8h, v31.8h          \n"  // 3*near+far (odd)
       "mla         v3.8h, v0.8h, v31.8h          \n"  // 3*near+far (even)
 
@@ -687,12 +687,12 @@ void ScaleRowUp2_Bilinear_12_NEON(const uint16_t* src_ptr,
       "ld1         {v5.8h}, [%3], #16            \n"  // 12345678 (16b)
       "prfm        pldl1keep, [%1, 448]          \n"  // prefetch 7 lines ahead
 
-      "mov         v0.8h, v4.8h                  \n"
+      "mov         v0.16b, v4.16b                \n"
       "mla         v4.8h, v5.8h, v31.8h          \n"  // 3*near+far (odd)
       "mla         v5.8h, v0.8h, v31.8h          \n"  // 3*near+far (even)
 
-      "mov         v0.8h, v4.8h                  \n"
-      "mov         v1.8h, v5.8h                  \n"
+      "mov         v0.16b, v4.16b                \n"
+      "mov         v1.16b, v5.16b                \n"
       "mla         v4.8h, v2.8h, v31.8h          \n"  // 9 3 3 1 (1, odd)
       "mla         v5.8h, v3.8h, v31.8h          \n"  // 9 3 3 1 (1, even)
       "mla         v2.8h, v0.8h, v31.8h          \n"  // 9 3 3 1 (2, odd)
@@ -887,8 +887,8 @@ void ScaleUVRowUp2_Bilinear_NEON(const uint8_t* src_ptr,
       "umlal       v4.8h, v1.8b, v31.8b          \n"  // 3*near+far (2, odd)
       "umlal       v5.8h, v0.8b, v31.8b          \n"  // 3*near+far (2, even)
 
-      "mov         v0.8h, v4.8h                  \n"
-      "mov         v1.8h, v5.8h                  \n"
+      "mov         v0.16b, v4.16b                \n"
+      "mov         v1.16b, v5.16b                \n"
       "mla         v4.8h, v2.8h, v30.8h          \n"  // 9 3 3 1 (1, odd)
       "mla         v5.8h, v3.8h, v30.8h          \n"  // 9 3 3 1 (1, even)
       "mla         v2.8h, v0.8h, v30.8h          \n"  // 9 3 3 1 (2, odd)
++++++ chromium-91-system-icu.patch ++++++
>From a0ddb153bdaf0ef83c8bfec744fedb97bf4ccfd0 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <sth...@googlemail.com>
Date: Fri, 16 Apr 2021 14:09:29 +0000
Subject: [PATCH] [unbundle] Use char16_t as UCHAR_TYPE

Overriding UCHAR_TYPE was dropped with:
https://chromium-review.googlesource.com/c/chromium/deps/icu/+/2732628
---
 build/linux/unbundle/icu.gn | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
index 0f52fc1..33a0121 100644
--- a/build/linux/unbundle/icu.gn
+++ b/build/linux/unbundle/icu.gn
@@ -16,7 +16,6 @@ config("icu_config") {
   defines = [
     "USING_SYSTEM_ICU=1",
     "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
-    "UCHAR_TYPE=uint16_t",
 
     # U_EXPORT (defined in unicode/platform.h) is used to set public visibility
     # on classes through the U_COMMON_API and U_I18N_API macros (among others).
   ]
 }
 
-- 
2.26.3

++++++ chromium-browser.desktop ++++++
[Desktop Entry]
Version=1.0
Name=Chromium
Comment=Browse the World Wide Web
GenericName=Web Browser
Exec=chromium %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=chromium-browser
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=Chromium

++++++ chromium-browser.sh ++++++
#!/bin/sh

# Chromium launcher

# Authors:
#  Fabien Tassin <f...@sofaraway.org>
# License: GPLv2 or later

APPNAME=chromium
LIBDIR=/usr/lib/chromium
GDB=/usr/bin/gdb

usage () {
  echo "$APPNAME [-h|--help] [-g|--debug] [options] [URL]"
  echo
  echo "        -g or --debug           Start within $GDB"
  echo "        -h or --help            This help screen"
}

# FFmpeg needs to know where its libs are located
if [ "Z$LD_LIBRARY_PATH" != Z ] ; then
  LD_LIBRARY_PATH=$LIBDIR:$LD_LIBRARY_PATH
else
  LD_LIBRARY_PATH=$LIBDIR
fi
export LD_LIBRARY_PATH

# in case chromium runs in a Wayland session ensure GTK falls back to X11
# if we are in a X-session, there is no difference
export GDK_BACKEND=x11

# xdg-settings should in PATH
PATH=$PATH:$LIBDIR
export PATH

want_debug=0
while [ $# -gt 0 ]; do
  case "$1" in
    -h | --help | -help )
      usage
      exit 0 ;;
    -g | --debug )
      want_debug=1
      shift ;;
    -- ) # Stop option prcessing
      shift
      break ;;
    * )
      break ;;
  esac
done

# Setup the default profile if this is none
# Set the default theme as GTK+ with system window decoration
if [ ! -d ~/.config/chromium/Default ]; then
    mkdir -p ~/.config/chromium/Default
    cp /etc/chromium/master_preferences ~/.config/chromium/Default/Preferences
fi

# Allow users to override command-line options
# Based on Gentoo's chromium package (and by extension, Debian's)
if [ -f /etc/default/chromium ]; then
        . /etc/default/chromium
fi

# Detect if PepperFlash has been installed (based on the package in packman)
# If so, automatically enable it
if [ -f /usr/lib/chromium/PepperFlash/libpepflashplayer.so ]; then
      PEPPER_FLASH_VERSION=$(grep '"version":' 
/usr/lib/chromium/PepperFlash/manifest.json| grep -Po '(?<=version": 
")(?:\d|\.)*')
      
PEPPERFLASH="--ppapi-flash-path=/usr/lib/chromium/PepperFlash/libpepflashplayer.so
 --ppapi-flash-version=$PEPPER_FLASH_VERSION"
fi

# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
# default CHROMIUM_FLAGS (from /etc/chromium/default)
CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-$CHROMIUM_FLAGS}

if [ $want_debug -eq 1 ] ; then
  if [ ! -x $GDB ] ; then
    echo "Sorry, can't find usable $GDB. Please install it."
    exit 1
  fi
  tmpfile=`mktemp /tmp/chromiumargs.XXXXXX` || { echo "Cannot create temporary 
file" >&2; exit 1; }
  trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15
  echo "set args ${1+"$@"}" > $tmpfile
  echo "# Env:"
  echo "#     LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
  echo "$GDB $LIBDIR/$APPNAME -x $tmpfile"
  $GDB "$LIBDIR/$APPNAME" -x $tmpfile
  exit $?
else
  exec $LIBDIR/$APPNAME ${PEPPERFLASH} "--password-store=detect" 
"--enable-threaded-compositing" "--ui-disable-partial-swap" ${CHROMIUM_FLAGS} 
"$@"
fi

++++++ chromium-browser.xml ++++++
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE default-apps SYSTEM "gnome-da-list.dtd">
<default-apps>
  <web-browsers>
    <web-browser>
      <name>Chromium</name>
      <executable>chromium</executable>
      <command>chromium %s</command>
      <icon-name>chromium-browser</icon-name>
      <run-in-terminal>false</run-in-terminal>
      <netscape-remote>true</netscape-remote>
      <tab-command>false</tab-command>
      <win-command>false</win-command>
    </web-browser>
  </web-browsers>
</default-apps>
++++++ chromium-buildname.patch ++++++
Index: chromium-73.0.3683.27/components/version_ui_strings.grdp
===================================================================
--- chromium-73.0.3683.27.orig/components/version_ui_strings.grdp
+++ chromium-73.0.3683.27/components/version_ui_strings.grdp
@@ -7,7 +7,7 @@
     Official Build
   </message>
   <message name="IDS_VERSION_UI_UNOFFICIAL" desc="unofficial build on the 
about:version page">
-    Developer Build
+    openSUSE Build
   </message>
   <message name="IDS_VERSION_UI_32BIT" desc="32-bit on the chrome://version 
page">
     (32-bit)
++++++ chromium-disable-parallel-gold.patch ++++++
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 01d97a360..a9a721403 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -415,8 +415,6 @@ config("compiler") {
         # 
https://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/281527606915bb36
         # Only apply this to the target linker, since the host
         # linker might not be gold, but isn't used much anyway.
-        "-Wl,--threads",
-        "-Wl,--thread-count=4",
       ]
     }
 
++++++ chromium-gcc11.patch ++++++
diff --git a/third_party/angle/src/libANGLE/HandleAllocator.cpp 
b/third_party/angle/src/libANGLE/HandleAllocator.cpp
index 013f1dfb2..3ce63c192 100644
--- a/third_party/angle/src/libANGLE/HandleAllocator.cpp
+++ b/third_party/angle/src/libANGLE/HandleAllocator.cpp
@@ -9,6 +9,7 @@
 
 #include "libANGLE/HandleAllocator.h"
 
+#include <limits>
 #include <algorithm>
 #include <functional>
 
diff --git a/third_party/perfetto/src/trace_processor/containers/string_pool.cc 
b/third_party/perfetto/src/trace_processor/containers/string_pool.cc
index fd651958f..1e8d0606c 100644
--- a/third_party/perfetto/src/trace_processor/containers/string_pool.cc
+++ b/third_party/perfetto/src/trace_processor/containers/string_pool.cc
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
+#include <limits>
 #include "src/trace_processor/containers/string_pool.h"
 
-#include <limits>
 
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/utils.h"
diff --git a/third_party/perfetto/src/trace_processor/db/column.cc 
b/third_party/perfetto/src/trace_processor/db/column.cc
index 00496b335..0dccfeb8a 100644
--- a/third_party/perfetto/src/trace_processor/db/column.cc
+++ b/third_party/perfetto/src/trace_processor/db/column.cc
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include <limits>
 #include "src/trace_processor/db/column.h"
 
 #include "src/trace_processor/db/compare.h"
diff --git a/third_party/perfetto/src/trace_processor/types/variadic.cc 
b/third_party/perfetto/src/trace_processor/types/variadic.cc
index 837bfeba9..cdd56817d 100644
--- a/third_party/perfetto/src/trace_processor/types/variadic.cc
+++ b/third_party/perfetto/src/trace_processor/types/variadic.cc
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include <limits>
 #include "src/trace_processor/types/variadic.h"
 
 namespace perfetto {
diff --git a/ui/accessibility/platform/ax_platform_atk_hyperlink.cc 
b/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
index be91def6b..73f202356 100644
--- a/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
+++ b/ui/accessibility/platform/ax_platform_atk_hyperlink.cc
@@ -245,7 +245,7 @@ static void 
AXPlatformAtkHyperlinkInit(AXPlatformAtkHyperlink* self, gpointer) {
 }
 
 GType ax_platform_atk_hyperlink_get_type() {
-  static volatile gsize type_volatile = 0;
+  static gsize type_volatile = 0;
 
   AXPlatformNodeAuraLinux::EnsureGTypeInit();
 
diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc 
b/ui/accessibility/platform/ax_platform_node_auralinux.cc
index 04125c6fd..6c64e5d8e 100644
--- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
+++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
@@ -2274,7 +2274,7 @@ void ClassInit(gpointer class_pointer, gpointer /* 
class_data */) {
 GType GetType() {
   AXPlatformNodeAuraLinux::EnsureGTypeInit();
 
-  static volatile gsize type_volatile = 0;
+  static gsize type_volatile = 0;
   if (g_once_init_enter(&type_volatile)) {
     static const GTypeInfo type_info = {
         sizeof(AXPlatformNodeAuraLinuxClass),  // class_size
diff --git a/ui/gtk/gtk_key_bindings_handler.cc 
b/ui/gtk/gtk_key_bindings_handler.cc
index c663a2074..38a342484 100644
--- a/ui/gtk/gtk_key_bindings_handler.cc
+++ b/ui/gtk/gtk_key_bindings_handler.cc
@@ -141,7 +141,7 @@ void GtkKeyBindingsHandler::HandlerClassInit(HandlerClass* 
klass) {
 }
 
 GType GtkKeyBindingsHandler::HandlerGetType() {
-  static volatile gsize type_id_volatile = 0;
+  static gsize type_id_volatile = 0;
   if (g_once_init_enter(&type_id_volatile)) {
     GType type_id = g_type_register_static_simple(
         GTK_TYPE_TEXT_VIEW, g_intern_static_string("GtkKeyBindingsHandler"),
diff --git a/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc 
b/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
index c0b5a805b..e6f921926 100644
--- a/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <cstddef>
 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
 
 #include "base/observer_list.h"
diff --git a/components/bookmarks/browser/bookmark_expanded_state_tracker.cc 
b/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
index 4ad2afa1f..5c4596e12 100644
--- a/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
+++ b/components/bookmarks/browser/bookmark_expanded_state_tracker.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <cstddef>
 #include "components/bookmarks/browser/bookmark_expanded_state_tracker.h"
 
 #include <stdint.h>
diff --git a/components/bookmarks/browser/base_bookmark_model_observer.cc 
b/components/bookmarks/browser/base_bookmark_model_observer.cc
index 657a3c96b..ad641a082 100644
--- a/components/bookmarks/browser/base_bookmark_model_observer.cc
+++ b/components/bookmarks/browser/base_bookmark_model_observer.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <cstddef>
+
 #include "components/bookmarks/browser/base_bookmark_model_observer.h"
 
 namespace bookmarks {
++++++ chromium-glibc-2.33.patch ++++++
# Patch made by Kevin Kofler <ke...@tigcc.ticalc.org>
# https://bugzilla.redhat.com/show_bug.cgi?id=1904652

Index: 
chromium-90.0.4430.72/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
===================================================================
--- 
chromium-90.0.4430.72.orig/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+++ chromium-90.0.4430.72/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
@@ -269,6 +269,18 @@ ResultExpr EvaluateSyscallImpl(int fs_de
     return Allow();
   }
 
+#if defined(__NR_newfstatat)
+  if (sysno == __NR_newfstatat) {
+    return RewriteFstatatSIGSYS();
+  }
+#endif
+
+#if defined(__NR_fstatat64)
+  if (sysno == __NR_fstatat64) {
+    return RewriteFstatatSIGSYS();
+  }
+#endif
+
   if (SyscallSets::IsFileSystem(sysno) ||
       SyscallSets::IsCurrentDirectory(sysno)) {
     return Error(fs_denied_errno);
Index: 
chromium-90.0.4430.72/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
===================================================================
--- 
chromium-90.0.4430.72.orig/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+++ chromium-90.0.4430.72/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
@@ -6,6 +6,8 @@
 
 #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
 
+#include <errno.h>
+#include <fcntl.h>
 #include <stddef.h>
 #include <stdint.h>
 #include <string.h>
@@ -355,6 +357,35 @@ intptr_t SIGSYSSchedHandler(const struct
   return -ENOSYS;
 }
 
+intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args,
+                              void* aux) {
+  switch (args.nr) {
+#if defined(__NR_newfstatat)
+    case __NR_newfstatat:
+#endif
+#if defined(__NR_fstatat64)
+    case __NR_fstatat64:
+#endif
+#if defined(__NR_newfstatat) || defined(__NR_fstatat64)
+      if (*reinterpret_cast<const char *>(args.args[1]) == '\0'
+          && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) {
+        return sandbox::sys_fstat64(static_cast<int>(args.args[0]),
+                                    reinterpret_cast<struct stat64 
*>(args.args[2]));
+      } else {
+        errno = EACCES;
+        return -1;
+      }
+      break;
+#endif
+  }
+
+  CrashSIGSYS_Handler(args, aux);
+
+  // Should never be reached.
+  RAW_CHECK(false);
+  return -ENOSYS;
+}
+
 bpf_dsl::ResultExpr CrashSIGSYS() {
   return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL);
 }
@@ -387,6 +418,10 @@ bpf_dsl::ResultExpr RewriteSchedSIGSYS()
   return bpf_dsl::Trap(SIGSYSSchedHandler, NULL);
 }
 
+bpf_dsl::ResultExpr RewriteFstatatSIGSYS() {
+  return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL);
+}
+
 void AllocateCrashKeys() {
 #if !defined(OS_NACL_NONSFI)
   if (seccomp_crash_key)
Index: chromium-90.0.4430.72/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
===================================================================
--- 
chromium-90.0.4430.72.orig/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
+++ chromium-90.0.4430.72/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
@@ -62,6 +62,10 @@ SANDBOX_EXPORT intptr_t SIGSYSPtraceFail
 // sched_setparam(), sched_setscheduler()
 SANDBOX_EXPORT intptr_t SIGSYSSchedHandler(const arch_seccomp_data& args,
                                            void* aux);
+// If the fstatat syscall is actually a disguised fstat, calls the regular 
fstat
+// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler.
+SANDBOX_EXPORT intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& 
args, 
+                                             void* aux);
 
 // Variants of the above functions for use with bpf_dsl.
 SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS();
@@ -72,6 +76,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr Crash
 SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex();
 SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace();
 SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS();
+SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS();
 
 // Allocates a crash key so that Seccomp information can be recorded.
 void AllocateCrashKeys();
Index: chromium-90.0.4430.72/sandbox/linux/services/syscall_wrappers.cc
===================================================================
--- chromium-90.0.4430.72.orig/sandbox/linux/services/syscall_wrappers.cc
+++ chromium-90.0.4430.72/sandbox/linux/services/syscall_wrappers.cc
@@ -261,4 +261,13 @@ int sys_sigaction(int signum,
 
 #endif  // defined(MEMORY_SANITIZER)
 
+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf)
+{
+#if defined(__NR_fstat64)
+    return syscall(__NR_fstat64, fd, buf);
+#else
+    return syscall(__NR_fstat, fd, buf);
+#endif
+}
+
 }  // namespace sandbox
Index: chromium-90.0.4430.72/sandbox/linux/services/syscall_wrappers.h
===================================================================
--- chromium-90.0.4430.72.orig/sandbox/linux/services/syscall_wrappers.h
+++ chromium-90.0.4430.72/sandbox/linux/services/syscall_wrappers.h
@@ -17,6 +17,7 @@ struct sock_fprog;
 struct rlimit64;
 struct cap_hdr;
 struct cap_data;
+struct stat64;
 
 namespace sandbox {
 
@@ -84,6 +85,9 @@ SANDBOX_EXPORT int sys_sigaction(int sig
                                  const struct sigaction* act,
                                  struct sigaction* oldact);
 
+// Recent glibc rewrites fstat to fstatat.
+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf);
+
 }  // namespace sandbox
 
 #endif  // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_
++++++ chromium-libusb_interrupt_event_handler.patch ++++++
diff -up 
chromium-48.0.2564.116/services/device/usb/usb_context.cc.modern-libusbx 
chromium-48.0.2564.116/device/usb/usb_context.cc
--- chromium-48.0.2564.116/services/device/usb/usb_context.cc.modern-libusbx    
2016-02-24 10:21:10.534996028 -0500
+++ chromium-48.0.2564.116/services/device/usb/usb_context.cc   2016-02-24 
10:22:28.270499864 -0500
@@ -57,7 +57,11 @@ void UsbContext::UsbEventHandler::Run()
 
 void UsbContext::UsbEventHandler::Stop() {
   base::subtle::Release_Store(&running_, 0);
+#ifdef LIBUSB_API_VERSION >= 0x01000105
+  libusb_interrupt_event_handler(context_);
+#else
   libusb_interrupt_handle_event(context_);
+#endif
 }
 
 UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
++++++ chromium-lp151-old-drm.patch ++++++
Index: chromium-85.0.4183.69/ui/gfx/linux/drm_util_linux.cc
===================================================================
--- chromium-85.0.4183.69.orig/ui/gfx/linux/drm_util_linux.cc
+++ chromium-85.0.4183.69/ui/gfx/linux/drm_util_linux.cc
@@ -6,6 +6,27 @@
 
 #include <drm_fourcc.h>
 
+#ifndef DRM_FORMAT_P010
+/*
+ * 2 plane YCbCr MSB aligned
+ * index 0 = Y plane, [15:0] Y:x [10:6] little endian
+ * index 1 = Cr:Cb plane, [31:0] Cr:x:Cb:x [10:6:10:6] little endian
+ */
+#define DRM_FORMAT_P010                fourcc_code('P', '0', '1', '0') /* 2x2 
subsampled Cr:Cb plane 10 bits per channel */
+/*
+ * 2 plane YCbCr MSB aligned
+ * index 0 = Y plane, [15:0] Y:x [12:4] little endian
+ * index 1 = Cr:Cb plane, [31:0] Cr:x:Cb:x [12:4:12:4] little endian
+ */
+#define DRM_FORMAT_P012                fourcc_code('P', '0', '1', '2') /* 2x2 
subsampled Cr:Cb plane 12 bits per channel */
+/*
+ * 2 plane YCbCr MSB aligned
+ * index 0 = Y plane, [15:0] Y little endian
+ * index 1 = Cr:Cb plane, [31:0] Cr:Cb [16:16] little endian
+ */
+#define DRM_FORMAT_P016                fourcc_code('P', '0', '1', '6') /* 2x2 
subsampled Cr:Cb plane 16 bits per channel */
+#endif
+
 #include "base/notreached.h"
 
 namespace ui {
++++++ chromium-lp152-missing-includes.patch ++++++
--- a/components/autofill/core/browser/pattern_provider/pattern_provider.h
+++ b/components/autofill/core/browser/pattern_provider/pattern_provider.h
@@ -5,6 +5,7 @@
 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PATTERN_PROVIDER_PATTERN_PROVIDER_H_
 #define COMPONENTS_AUTOFILL_CORE_BROWSER_PATTERN_PROVIDER_PATTERN_PROVIDER_H_

+#include <vector>
 #include <string>

 #include "base/gtest_prod_util.h"
++++++ chromium-master-prefs-path.patch ++++++
Index: 
chromium-91.0.4472.57/chrome/browser/first_run/first_run_internal_linux.cc
===================================================================
--- 
chromium-91.0.4472.57.orig/chrome/browser/first_run/first_run_internal_linux.cc
+++ chromium-91.0.4472.57/chrome/browser/first_run/first_run_internal_linux.cc
@@ -21,9 +21,7 @@ bool IsOrganicFirstRun() {
 base::FilePath InitialPrefsPath() {
   // The standard location of the initial prefs is next to the chrome binary.
   base::FilePath initial_prefs;
-  if (!base::PathService::Get(base::DIR_EXE, &initial_prefs))
-    return base::FilePath();
-
+  initial_prefs = base::FilePath("/etc/chromium");
   base::FilePath new_path = 
initial_prefs.AppendASCII(installer::kInitialPrefs);
   if (base::PathIsReadable(new_path))
     return new_path;
++++++ chromium-norar.patch ++++++
Index: chromium-86.0.4240.75/chrome/common/safe_browsing/BUILD.gn
===================================================================
--- chromium-86.0.4240.75.orig/chrome/common/safe_browsing/BUILD.gn
+++ chromium-86.0.4240.75/chrome/common/safe_browsing/BUILD.gn
@@ -43,38 +43,6 @@
     public_deps = [ "//components/safe_browsing/core:csd_proto" ]
   }

-  source_set("rar_analyzer") {
-    sources = [
-      "rar_analyzer.cc",
-      "rar_analyzer.h",
-    ]
-
-    deps = [
-      ":archive_analyzer_results",
-      ":download_type_util",
-      "//base",
-      "//base:i18n",
-      "//components/safe_browsing/core:features",
-      "//components/safe_browsing/core:file_type_policies",
-      "//third_party/unrar:unrar",
-    ]
-
-    defines = [
-      "_FILE_OFFSET_BITS=64",
-      "LARGEFILE_SOURCE",
-      "RAR_SMP",
-      "SILENT",
-
-      # The following is set to disable certain macro definitions in the unrar
-      # source code.
-      "CHROMIUM_UNRAR",
-
-      # Disables exceptions in unrar, replaces them with process termination.
-      "UNRAR_NO_EXCEPTIONS",
-    ]
-
-    public_deps = [ "//components/safe_browsing/core:csd_proto" ]
-  }

   if (is_mac) {
     source_set("disk_image_type_sniffer_mac") {
@@ -138,7 +105,6 @@ source_set("safe_browsing") {
       ":archive_analyzer_results",
       ":binary_feature_extractor",
       ":download_type_util",
-      ":rar_analyzer",
       "//components/safe_browsing/core:features",
     ]
 
Index: chromium-86.0.4240.75/chrome/common/safe_browsing/DEPS
===================================================================
--- chromium-86.0.4240.75.orig/chrome/common/safe_browsing/DEPS
+++ chromium-86.0.4240.75/chrome/common/safe_browsing/DEPS
@@ -1,6 +1,5 @@
 include_rules = [
   "+components/safe_browsing",
   "+third_party/protobuf",
-  "+third_party/unrar",
   "+third_party/zlib",
 ]
Index: chromium-86.0.4240.75/chrome/services/file_util/safe_archive_analyzer.cc
===================================================================
--- 
chromium-86.0.4240.75.orig/chrome/services/file_util/safe_archive_analyzer.cc
+++ chromium-86.0.4240.75/chrome/services/file_util/safe_archive_analyzer.cc
@@ -45,10 +45,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
 void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
                                          base::File temporary_file,
                                          AnalyzeRarFileCallback callback) {
+#if 0
   DCHECK(rar_file.IsValid());
 
   safe_browsing::ArchiveAnalyzerResults results;
   safe_browsing::rar_analyzer::AnalyzeRarFile(
       std::move(rar_file), std::move(temporary_file), &results);
   std::move(callback).Run(results);
+#else
+  NOTREACHED();
+#endif
 }
Index: chromium-86.0.4240.75/chrome/services/file_util/BUILD.gn
===================================================================
--- chromium-86.0.4240.75.orig/chrome/services/file_util/BUILD.gn
+++ chromium-86.0.4240.75/chrome/services/file_util/BUILD.gn
@@ -15,7 +15,6 @@ source_set("file_util") {
     "//build:chromeos_buildflags",
     "//chrome/common/safe_browsing",
     "//chrome/common/safe_browsing:archive_analyzer_results",
-    "//chrome/common/safe_browsing:rar_analyzer",
     "//components/safe_browsing:buildflags",
     "//mojo/public/cpp/bindings",
   ]
++++++ chromium-prop-codecs.patch ++++++
Index: chromium-85.0.4183.69/media/BUILD.gn
===================================================================
--- chromium-85.0.4183.69.orig/media/BUILD.gn
+++ chromium-85.0.4183.69/media/BUILD.gn
@@ -44,12 +44,6 @@ buildflag_header("media_buildflags") {
   ]
 }
 
-if (proprietary_codecs && media_use_ffmpeg) {
-  assert(
-      ffmpeg_branding != "Chromium",
-      "proprietary codecs and ffmpeg_branding set to Chromium are 
incompatible")
-}
-
 # Common configuration for targets in the media directory; these must not be
 # exported since things like USE_NEON and USE_CRAS have different meanings
 # elsewhere in the code base.
Index: chromium-85.0.4183.69/third_party/webrtc/webrtc.gni
===================================================================
--- chromium-85.0.4183.69.orig/third_party/webrtc/webrtc.gni
+++ chromium-85.0.4183.69/third_party/webrtc/webrtc.gni
@@ -156,8 +156,7 @@ declare_args() {
   #
   # Enabling H264 when building with MSVC is currently not supported, see
   # bugs.webrtc.org/9213#c13 for more info.
-  rtc_use_h264 =
-      proprietary_codecs && !is_android && !is_ios && !(is_win && !is_clang)
+  rtc_use_h264 = false
 
   # Enable this flag to make webrtc::Mutex be implemented by absl::Mutex.
   rtc_use_absl_mutex = false
++++++ chromium-shim_headers.patch ++++++
>From e273172bbafedca36984fc40f4aa6c44b79ac2ef Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <sth...@googlemail.com>
Date: Fri, 25 Dec 2020 09:10:32 +0000
Subject: [PATCH] shim_headers: fix outputs generation

---
 build/shim_headers.gni | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/build/shim_headers.gni b/build/shim_headers.gni
index 0900cba..5138647 100644
--- a/build/shim_headers.gni
+++ b/build/shim_headers.gni
@@ -6,6 +6,8 @@ template("shim_headers") {
   action_name = "gen_${target_name}"
   config_name = "${target_name}_config"
   shim_headers_path = "${root_gen_dir}/shim_headers/${target_name}"
+  shim_root_path    = rebase_path(invoker.root_path)
+  shim_rel_path     = rebase_path("${shim_root_path}", rebase_path("//"))
 
   config(config_name) {
     include_dirs = [ shim_headers_path ]
@@ -16,7 +18,7 @@ template("shim_headers") {
     args = [
       "--generate",
       "--headers-root",
-      rebase_path(invoker.root_path),
+      "${shim_root_path}",
       "--output-directory",
       rebase_path(shim_headers_path),
     ]
@@ -27,9 +29,10 @@ template("shim_headers") {
       ]
     }
     args += invoker.headers
-
-    outputs = process_file_template(invoker.headers,
-                                    
"${shim_headers_path}/{{source_file_part}}")
+    outputs = []
+    foreach(shim_header, invoker.headers) {
+      outputs += [ "${shim_headers_path}/${shim_rel_path}/" + shim_header ]
+    }
   }
 
   group(target_name) {
-- 
2.26.2

++++++ chromium-system-libusb.patch ++++++
Index: chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
===================================================================
--- /dev/null
+++ chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
@@ -0,0 +1,24 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+
+pkg_config("system_libusb") {
+  packages = [ "libusb-1.0" ]
+}
+
+shim_headers("libusb_shim") {
+  root_path = "src/libusb"
+  headers = [
+    "libusb.h",
+  ]
+}
+
+source_set("libusb") {
+  deps = [
+    ":libusb_shim",
+  ]
+  public_configs = [ ":system_libusb" ]
+}
Index: chromium-70.0.3538.54/build/linux/unbundle/replace_gn_files.py
===================================================================
--- chromium-70.0.3538.54.orig/build/linux/unbundle/replace_gn_files.py
+++ chromium-70.0.3538.54/build/linux/unbundle/replace_gn_files.py
@@ -27,6 +27,7 @@ REPLACEMENTS = {
   'libevent': 'base/third_party/libevent/BUILD.gn',
   'libjpeg': 'third_party/libjpeg.gni',
   'libpng': 'third_party/libpng/BUILD.gn',
+  'libusb': 'third_party/libusb/BUILD.gn',
   'libvpx': 'third_party/libvpx/BUILD.gn',
   'libwebp': 'third_party/libwebp/BUILD.gn',
   'libxml': 'third_party/libxml/BUILD.gn',
++++++ chromium-vaapi.patch ++++++
diff -up chromium-88.0.4324.11/chrome/browser/about_flags.cc.accel-mjpeg 
chromium-88.0.4324.11/chrome/browser/about_flags.cc
--- chromium-88.0.4324.11/chrome/browser/about_flags.cc.accel-mjpeg     
2020-11-19 20:51:19.000000000 -0500
+++ chromium-88.0.4324.11/chrome/browser/about_flags.cc 2020-11-30 
16:14:32.393366384 -0500
@@ -3526,12 +3526,12 @@
      flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop,
      MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)},
 #endif  // ENABLE_VR
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
     {"disable-accelerated-mjpeg-decode",
      flag_descriptions::kAcceleratedMjpegDecodeName,
-     flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
+     flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
      SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
-#endif  // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif  // BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && 
!defined(OS_ANDROID))
     {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
      flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
      FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
diff -up chromium-88.0.4324.11/chrome/browser/flag_descriptions.cc.accel-mjpeg 
chromium-88.0.4324.11/chrome/browser/flag_descriptions.cc
--- chromium-88.0.4324.11/chrome/browser/flag_descriptions.cc.accel-mjpeg       
2020-11-30 16:14:32.393366384 -0500
+++ chromium-88.0.4324.11/chrome/browser/flag_descriptions.cc   2020-11-30 
16:20:50.174195910 -0500
@@ -3704,12 +3704,24 @@
     "Settings. "
     "See go/betterAM";

+#endif
+
+// Chrome OS and Linux --------------------------------------------------------
+
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
 const char kAcceleratedMjpegDecodeName[] =
     "Hardware-accelerated mjpeg decode for captured frame";
 const char kAcceleratedMjpegDecodeDescription[] =
     "Enable hardware-accelerated mjpeg decode for captured frame where "
     "available.";

+#endif
+
+// Chrome OS ------------------------------------------------------------------
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+
 const char kAllowDisableMouseAccelerationName[] =
     "Allow disabling mouse acceleration";
 const char kAllowDisableMouseAccelerationDescription[] =
diff -up chromium-88.0.4324.11/chrome/browser/flag_descriptions.h.accel-mjpeg 
chromium-88.0.4324.11/chrome/browser/flag_descriptions.h
--- chromium-88.0.4324.11/chrome/browser/flag_descriptions.h.accel-mjpeg        
2020-11-30 16:14:32.394366389 -0500
+++ chromium-88.0.4324.11/chrome/browser/flag_descriptions.h    2020-11-30 
16:22:13.831601058 -0500
@@ -2138,9 +2138,21 @@
 extern const char kAccountManagementFlowsV2Name[];
 extern const char kAccountManagementFlowsV2Description[];

+#endif
+
+// Chrome OS and Linux --------------------------------------------------------
+
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
 extern const char kAcceleratedMjpegDecodeName[];
 extern const char kAcceleratedMjpegDecodeDescription[];

+#endif
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+
+// Chrome OS ------------------------------------------------------------------
+
 extern const char kAllowDisableMouseAccelerationName[];
 extern const char kAllowDisableMouseAccelerationDescription[];

++++++ chromium.default ++++++
# Default settings for chromium. This file is sourced by /usr/bin/chromium

# Options to pass to chromium
# Ie. debugging: --enable-logging=stderr --v=2 --debug --single-process
CHROMIUM_FLAGS=""
++++++ exclude_ymp.patch ++++++
--- a/third_party/blink/common/mime_util/mime_util.cc   2013-08-25 
10:12:05.428599992 +0200
+++ b/third_party/blink/common/mime_util/mime_util.cc   2013-08-25 
10:12:05.428599992 +0200
@@ -79,6 +79,7 @@
     "text/x-csv",
     "text/x-vcf",
     "text/rtf",
+    "text/x-suse-ymp",
     "text/comma-separated-values",
     "text/csv",
     "text/tab-separated-values",
++++++ fix_building_widevinecdm_with_chromium.patch ++++++
Index: chromium-79.0.3941.4/third_party/widevine/cdm/widevine_cdm_version.h
===================================================================
--- chromium-79.0.3941.4.orig/third_party/widevine/cdm/widevine_cdm_version.h
+++ chromium-79.0.3941.4/third_party/widevine/cdm/widevine_cdm_version.h
@@ -11,5 +11,6 @@
 // If the Widevine CDM is available define the following:
 //  - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
 //    as a string, e.g., "1.0.123.456").
+#define WIDEVINE_CDM_VERSION_STRING "unknown"
 
 #endif  // WIDEVINE_CDM_VERSION_H_
++++++ gcc-enable-lto.patch ++++++
Index: chromium-85.0.4183.69/build/config/BUILDCONFIG.gn
===================================================================
--- chromium-85.0.4183.69.orig/build/config/BUILDCONFIG.gn
+++ chromium-85.0.4183.69/build/config/BUILDCONFIG.gn
@@ -130,6 +130,8 @@ declare_args() {
   # separate flags.
   is_official_build = false
 
+  gcc_lto = false
+
   # Set to true when compiling with the Clang compiler.
   is_clang = current_os != "linux" ||
              (current_cpu != "s390x" && current_cpu != "s390" &&
@@ -441,6 +443,12 @@ default_compiler_configs = [
   "//build/config/sanitizers:default_sanitizer_flags",
 ]
 
+if (gcc_lto) {
+  default_compiler_configs += [
+    "//build/config/compiler:gcc_lto",
+  ]
+}
+
 if (is_win) {
   default_compiler_configs += [
     "//build/config/win:default_cfg_compiler",
Index: chromium-85.0.4183.69/build/config/compiler/BUILD.gn
===================================================================
--- chromium-85.0.4183.69.orig/build/config/compiler/BUILD.gn
+++ chromium-85.0.4183.69/build/config/compiler/BUILD.gn
@@ -1947,6 +1947,10 @@ if (is_win) {
   }
 }
 
+config("gcc_lto") {
+  cflags = [ "-flto" ]
+}
+
 config("default_stack_frames") {
   if (is_posix || is_fuchsia) {
     if (enable_frame_pointers) {
Index: chromium-85.0.4183.69/sandbox/linux/BUILD.gn
===================================================================
--- chromium-85.0.4183.69.orig/sandbox/linux/BUILD.gn
+++ chromium-85.0.4183.69/sandbox/linux/BUILD.gn
@@ -250,6 +250,9 @@ component("seccomp_bpf") {
     "//build:chromeos_buildflags",
     "//sandbox:sandbox_buildflags",
   ]
+  if (gcc_lto) {
+    configs -= [ "//build/config/compiler:gcc_lto" ]
+  }
 
   if (is_android) {
     sources += [
++++++ master_preferences ++++++
{
  "distribution": {
     "skip_first_run_ui": true,
     "alternate_shortcut_text": false,
     "oem_bubble": true,
     "chrome_shortcut_icon_index": 0,
     "create_all_shortcuts": true,
     "show_welcome_page": true,
     "make_chrome_default": false,
     "make_chrome_default_for_user": false,
     "system_level": false,
     "verbose_logging": false
  },
  "download": {
     "extensions_to_open": "ymp"
  },
  "browser": {
     "show_home_button": true,
     "check_default_browser": false,
     "custom_chrome_frame": true
  },
  "bookmark_bar": {
     "show_on_all_tabs": true
  },
  "first_run_tabs": [
     "https://search.opensuse.org/";,
     "https://www.google.com/chrome/";
  ],
  "homepage": "https://search.opensuse.org/";,
  "homepage_is_newtabpage": false
}
++++++ no-location-leap151.patch ++++++
Index: chromium-86.0.4240.75/base/location.h
===================================================================
--- chromium-86.0.4240.75.orig/base/location.h
+++ chromium-86.0.4240.75/base/location.h
@@ -23,7 +23,7 @@ namespace base {
 #define SUPPORTS_LOCATION_BUILTINS                                       \
   (__has_builtin(__builtin_FUNCTION) && __has_builtin(__builtin_FILE) && \
    __has_builtin(__builtin_LINE))
-#elif defined(COMPILER_GCC) && __GNUC__ >= 7
+#elif defined(COMPILER_GCC) && __GNUC__ >= 10
 // GCC has supported these for a long time, but they point at the function
 // declaration in the case of default arguments, rather than at the call site.
 #define SUPPORTS_LOCATION_BUILTINS 1
Index: chromium-86.0.4240.75/base/location.cc
===================================================================
--- chromium-86.0.4240.75.orig/base/location.cc
+++ chromium-86.0.4240.75/base/location.cc
@@ -92,7 +92,7 @@ NOINLINE Location Location::Current(cons
 #else
 // static
 NOINLINE Location Location::Current() {
-  return Location(nullptr, RETURN_ADDRESS());
+  return Location("[unknown file]", RETURN_ADDRESS());
 }
 #endif
 
++++++ system-libdrm.patch ++++++
Index: 
chromium-90.0.4430.72/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
===================================================================
--- 
chromium-90.0.4430.72.orig/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
+++ 
chromium-90.0.4430.72/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
@@ -5,6 +5,7 @@
 #include "ui/ozone/platform/drm/gpu/hardware_display_controller.h"
 
 #include <drm.h>
+#include <drm_fourcc.h>
 #include <string.h>
 #include <xf86drm.h>
 #include <memory>
@@ -14,7 +15,6 @@
 #include "base/logging.h"
 #include "base/stl_util.h"
 #include "base/trace_event/trace_event.h"
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
 #include "third_party/skia/include/core/SkCanvas.h"
 #include "third_party/skia/include/core/SkImage.h"
 #include "ui/gfx/geometry/point.h"

Reply via email to