Hello community,

here is the log from the commit of package chromium.14175 for 
openSUSE:Leap:15.2:Update checked in at 2020-09-25 10:42:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2:Update/chromium.14175 (Old)
 and      /work/SRC/openSUSE:Leap:15.2:Update/.chromium.14175.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chromium.14175"

Fri Sep 25 10:42:42 2020 rev:1 rq:836467 version:85.0.4183.121

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

--- /dev/null   2020-09-10 00:27:47.435250138 +0200
+++ 
/work/SRC/openSUSE:Leap:15.2:Update/.chromium.14175.new.4249/chromium.changes   
    2020-09-25 10:43:03.457554453 +0200
@@ -0,0 +1,5937 @@
+-------------------------------------------------------------------
+Tue Sep 22 12:28:43 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Update to 85.0.4183.121 bsc#1176791:
+  * CVE-2020-15960: Out of bounds read in storage
+  * CVE-2020-15961: Insufficient policy enforcement in extensions
+  * CVE-2020-15962: Insufficient policy enforcement in serial
+  * CVE-2020-15963: Insufficient policy enforcement in extensions
+  * CVE-2020-15965: Out of bounds write in V8
+  * CVE-2020-15966: Insufficient policy enforcement in extensions
+  * CVE-2020-15964: Insufficient data validation in media
+
+-------------------------------------------------------------------
+Tue Sep 15 08:38:18 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- The egl stuff is from angle not swiftshader, thanks Fedora
+  bsc#1176450
+
+-------------------------------------------------------------------
+Sat Sep 12 17:01:53 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Add back the swiftshader folder wrt bsc#1176450
+
+-------------------------------------------------------------------
+Wed Sep  9 06:36:04 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Update 85.0.4183.102 bsc#1176306:
+  * CVE-2020-6573: Use after free in video.
+  * CVE-2020-6574: Insufficient policy enforcement in installer. 
+  * CVE-2020-6575: Race in Mojo.
+  * CVE-2020-6576: Use after free in offscreen canvas. 
+  * CVE-2020-15959: Insufficient policy enforcement in networking.
+
+-------------------------------------------------------------------
+Tue Sep  8 06:53:23 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Move swiftshader stuff to chromium folder directly bsc#1176207
+
+-------------------------------------------------------------------
+Tue Sep  1 10:15:44 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Really update to .83 we accidentally included .69 beta release
+
+-------------------------------------------------------------------
+Fri Aug 28 07:21:04 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Add patch trying to compile with old libdrm on Leap 15.1:
+  * chromium-lp151-old-drm.patch
+
+-------------------------------------------------------------------
+Thu Aug 27 08:27:42 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Version update to 85.0.4183.83 bsc#1175757
+  * CVE-2020-6558: Insufficient policy enforcement in iOS
+  * CVE-2020-6559: Use after free in presentation API
+  * CVE-2020-6560: Insufficient policy enforcement in autofill
+  * CVE-2020-6561: Inappropriate implementation in Content Security Policy
+  * CVE-2020-6562: Insufficient policy enforcement in Blink
+  * CVE-2020-6563: Insufficient policy enforcement in intent handling.
+  * CVE-2020-6564: Incorrect security UI in permissions
+  * CVE-2020-6565: Incorrect security UI in Omnibox.
+  * CVE-2020-6566: Insufficient policy enforcement in media. 
+  * CVE-2020-6567: Insufficient validation of untrusted input in command line 
handling.
+  * CVE-2020-6568: Insufficient policy enforcement in intent handling.
+  * CVE-2020-6569: Integer overflow in WebUSB.
+  * CVE-2020-6570: Side-channel information leakage in WebRTC. 
+  * CVE-2020-6571: Incorrect security UI in Omnibox.
+- Use bundled vpx everywhere again as it fails to compile against
+  system version
+- Added patches:
+ *  chromium-85-DelayNode-cast.patch
+ *  chromium-85-FrameWidget-namespace.patch
+ *  chromium-85-NearbyConnection-abstract.patch
+ *  chromium-85-NearbyShareEncryptedMetadataKey-include.patch
+ *  chromium-85-oscillator_node-cast.patch
+ *  chromium-85-ostream-operator.patch
+ *  chromium-85-ozone-include.patch
+ *  chromium-85-sim_hash-include.patch
+- Removed patches:
+ *  chromium-82-gcc-template.patch
+ *  chromium-84-AXObject-stl-iterator.patch
+ *  chromium-84-FilePath-add-noexcept.patch
+ *  chromium-84-base-has_bultin.patch
+ *  chromium-84-fix-decltype.patch
+ *  chromium-84-gcc-DOMRect-constexpr.patch
+ *  chromium-84-gcc-noexcept.patch
+ *  chromium-84-gcc-template.patch
+ *  chromium-84-gcc-unique_ptr.patch
+ *  chromium-84-gcc-use-brace-initializer.patch
+ *  chromium-84-nss-include.patch
+ *  chromium-84-ozone-include.patch
+ *  chromium-84-revert-manage-ManifestManagerHost-per-document.patch
+ *  chromium-84-std-vector-const.patch
+ *  chromium-clang_lto_visibility_public.patch
+- Updated patches:
+ *  chromium-83-gcc-10.patch
+ *  chromium-84-gcc-include.patch
+ *  chromium-prop-codecs.patch
+ *  gcc-enable-lto.patch
+
+-------------------------------------------------------------------
+Thu Aug 27 06:36:50 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Do not use libexec as we use /usr/lib as a target folder
+
+-------------------------------------------------------------------
+Fri Aug 21 08:12:26 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Fix the build by removing expectation of llvm-7.0
+
+-------------------------------------------------------------------
+Thu Aug 20 07:29:42 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Update to 84.0.4147.135 (bsc#1175505):
+  * CVE-2020-6556: Heap buffer overflow in SwiftShader
+
+-------------------------------------------------------------------
+Wed Aug 12 12:00:41 UTC 2020 - Martin Liška <[email protected]>
+
+- Add chromium-disable-parallel-gold.patch in order to disable
+  broken parallel ld.gold with LTO.
+- Enable again LTO for x86_64 and increase memory constraints.
+- Use parallel WPA streaming, we will easily fit into memory constraints.
+- Remove memory_constrain hack for LTO.
+
+-------------------------------------------------------------------
+Mon Aug 10 22:06:22 UTC 2020 - Andreas Stieger <[email protected]>
+ 
+ - Chromium 84.0.4147.125 (boo#1175085)
+   * CVE-2020-6542: Use after free in ANGLE
+   * CVE-2020-6543: Use after free in task scheduling
+   * CVE-2020-6544: Use after free in media
+   * CVE-2020-6545: Use after free in audio
+   * CVE-2020-6546: Inappropriate implementation in installer
+   * CVE-2020-6547: Incorrect security UI in media
+   * CVE-2020-6548: Heap buffer overflow in Skia
+   * CVE-2020-6549: Use after free in media
+   * CVE-2020-6550: Use after free in IndexedDB
+   * CVE-2020-6551: Use after free in WebXR
+   * CVE-2020-6552: Use after free in Blink
+   * CVE-2020-6553: Use after free in offline mode
+   * CVE-2020-6554: Use after free in extensions
+   * CVE-2020-6555: Out of bounds read in WebGL
+   * Various fixes from internal audits, fuzzing and other
+     initiatives
+
+-------------------------------------------------------------------
+Mon Aug 10 10:50:11 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Disable wayland everywhere as it breaks headless and
+  middle mouse copy everywhere:
+  bsc#1174497 bsc#1175044
+
+-------------------------------------------------------------------
+Mon Aug  3 17:48:18 UTC 2020 - Andreas Stieger <[email protected]>
+
+- Update to 84.0.4147.105 (boo#1174582):
+  * CVE-2020-6537: Type Confusion in V8
+  * CVE-2020-6538: Inappropriate implementation in WebView
+  * CVE-2020-6532: Use after free in SCTP
+  * CVE-2020-6539: Use after free in CSS
+  * CVE-2020-6540: Heap buffer overflow in Skia
+  * CVE-2020-6541: Use after free in WebUSB
+
+-------------------------------------------------------------------
+Fri Jul 17 07:00:20 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Try to fix non-wayland build for Leap builds
+
+-------------------------------------------------------------------
+Thu Jul 16 11:33:24 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Update to 84.0.4147.89 bsc#1174189:
+  * Critical CVE-2020-6510: Heap buffer overflow in background fetch. 
+  * High CVE-2020-6511: Side-channel information leakage in content security 
policy. 
+  * High CVE-2020-6512: Type Confusion in V8. 
+  * High CVE-2020-6513: Heap buffer overflow in PDFium. 
+  * High CVE-2020-6514: Inappropriate implementation in WebRTC. 
+  * High CVE-2020-6515: Use after free in tab strip. 
+  * High CVE-2020-6516: Policy bypass in CORS. 
+  * High CVE-2020-6517: Heap buffer overflow in history. 
+  * Medium CVE-2020-6518: Use after free in developer tools. 
+  * Medium CVE-2020-6519: Policy bypass in CSP. 
+  * Medium CVE-2020-6520: Heap buffer overflow in Skia. 
+  * Medium CVE-2020-6521: Side-channel information leakage in autofill.
+  * Medium CVE-2020-6522: Inappropriate implementation in external protocol 
handlers. 
+  * Medium CVE-2020-6523: Out of bounds write in Skia. 
+  * Medium CVE-2020-6524: Heap buffer overflow in WebAudio. 
+  * Medium CVE-2020-6525: Heap buffer overflow in Skia. 
+  * Low CVE-2020-6526: Inappropriate implementation in iframe sandbox. 
+  * Low CVE-2020-6527: Insufficient policy enforcement in CSP. 
+  * Low CVE-2020-6528: Incorrect security UI in basic auth. 
+  * Low CVE-2020-6529: Inappropriate implementation in WebRTC. 
+  * Low CVE-2020-6530: Out of bounds memory access in developer tools. 
+  * Low CVE-2020-6531: Side-channel information leakage in scroll to text. 
+  * Low CVE-2020-6533: Type Confusion in V8. 
+  * Low CVE-2020-6534: Heap buffer overflow in WebRTC. 
++++ 5740 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:Leap:15.2:Update/.chromium.14175.new.4249/chromium.changes

New:
----
  _constraints
  build-with-pipewire-0.3.patch
  chromium-79-gcc-alignas.patch
  chromium-80-gcc-quiche.patch
  chromium-82-gcc-constexpr.patch
  chromium-83-gcc-10.patch
  chromium-84-blink-disable-clang-format.patch
  chromium-84-gcc-include.patch
  chromium-84-mediaalloc.patch
  chromium-85-DelayNode-cast.patch
  chromium-85-FrameWidget-namespace.patch
  chromium-85-NearbyConnection-abstract.patch
  chromium-85-NearbyShareEncryptedMetadataKey-include.patch
  chromium-85-oscillator_node-cast.patch
  chromium-85-ostream-operator.patch
  chromium-85-ozone-include.patch
  chromium-85-sim_hash-include.patch
  chromium-85.0.4183.121.tar.xz
  chromium-blink-gcc-diagnostic-pragma.patch
  chromium-browser.desktop
  chromium-browser.sh
  chromium-browser.xml
  chromium-buildname.patch
  chromium-disable-parallel-gold.patch
  chromium-dma-buf.patch
  chromium-drm.patch
  chromium-fix-char_traits.patch
  chromium-libusb_interrupt_event_handler.patch
  chromium-lp151-old-drm.patch
  chromium-master-prefs-path.patch
  chromium-norar.patch
  chromium-prop-codecs.patch
  chromium-quiche-invalid-offsetof.patch
  chromium-symbolic.svg
  chromium-system-libusb.patch
  chromium-vaapi-fix.patch
  chromium-vaapi.patch
  chromium.changes
  chromium.default
  chromium.spec
  exclude_ymp.patch
  fix_building_widevinecdm_with_chromium.patch
  gcc-enable-lto.patch
  gpu-timeout.patch
  master_preferences
  no-location-leap151.patch
  old-libva.patch
  system-libdrm.patch

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

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

++++++ _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>
</constraints>
++++++ build-with-pipewire-0.3.patch ++++++
++++ 793 lines (skipped)

++++++ chromium-79-gcc-alignas.patch ++++++
Re-use chromium alignas workaround in protobuf.
---

diff --git a/third_party/protobuf/src/google/protobuf/arena.h 
b/third_party/protobuf/src/google/protobuf/arena.h
index dedc221..a8515ce 100644
--- a/third_party/protobuf/src/google/protobuf/arena.h
+++ b/third_party/protobuf/src/google/protobuf/arena.h
@@ -245,7 +245,7 @@ struct ArenaOptions {
 // well as protobuf container types like RepeatedPtrField and Map. The protocol
 // is internal to protobuf and is not guaranteed to be stable. Non-proto types
 // should not rely on this protocol.
-class PROTOBUF_EXPORT alignas(8) Arena final {
+class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
  public:
   // Arena constructor taking custom options. See ArenaOptions below for
   // descriptions of the options available.
diff --git a/third_party/protobuf/src/google/protobuf/port_def.inc 
b/third_party/protobuf/src/google/protobuf/port_def.inc
index f1bd85d..6d02b53 100644
--- a/third_party/protobuf/src/google/protobuf/port_def.inc
+++ b/third_party/protobuf/src/google/protobuf/port_def.inc
@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, 
__declspec(dllimport));
 #undef IN
 #endif  // _MSC_VER
 
+// Specify memory alignment for structs, classes, etc.
+// Use like:
+//   class PROTOBUF_ALIGNAS(16) MyClass { ... }
+//   PROTOBUF_ALIGNAS(16) int array[4];
+//
+// In most places you can use the C++11 keyword "alignas", which is preferred.
+//
+// But compilers have trouble mixing __attribute__((...)) syntax with
+// alignas(...) syntax.
+//
+// Doesn't work in clang or gcc:
+//   struct alignas(16) __attribute__((packed)) S { char c; };
+// Works in clang but not gcc:
+//   struct __attribute__((packed)) alignas(16) S2 { char c; };
+// Works in clang and gcc:
+//   struct alignas(16) S3 { char c; } __attribute__((packed));
+//
+// There are also some attributes that must be specified *before* a class
+// definition: visibility (used for exporting functions/classes) is one of
+// these attributes. This means that it is not possible to use alignas() with a
+// class that is marked as exported.
+#if defined(_MSC_VER)
+#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
+#elif defined(__GNUC__)
+#define PROTOBUF_ALIGNAS(byte_alignment) 
__attribute__((aligned(byte_alignment)))
+#else
+#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment)
+#endif
+
 #if defined(__clang__)
 #pragma clang diagnostic push
 // TODO(gerbens) ideally we cleanup the code. But a cursory try shows many
diff --git a/third_party/protobuf/src/google/protobuf/port_undef.inc 
b/third_party/protobuf/src/google/protobuf/port_undef.inc
index b7e67fe..ba1fffc 100644
--- a/third_party/protobuf/src/google/protobuf/port_undef.inc
+++ b/third_party/protobuf/src/google/protobuf/port_undef.inc
@@ -80,6 +80,7 @@
 #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec
 #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport
 #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport
+#undef PROTOBUF_ALIGNAS
 
 
 
++++++ chromium-80-gcc-quiche.patch ++++++
>From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001
From: vasilvv <[email protected]>
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 <[email protected]> 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-82-gcc-constexpr.patch ++++++
>From 5812cd9bc2c15a034db24e0d2a43cc923d8a66cc Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <[email protected]>
Date: Thu, 20 Feb 2020 13:00:16 +0100
Subject: [PATCH] GCC: DOMRect constexpr equal operator depends on non constexpr 
operators

Make accessors of DOMRectReadOnly constexpr so the equal operator can be
also constexpr.

../../third_party/blink/renderer/core/geometry/dom_rect.h: In function 
‘constexpr bool blink::operator==(const blink::DOMRect&, const 
blink::DOMRect&)’:
../../third_party/blink/renderer/core/geometry/dom_rect.h:38:15: error: call to 
non-‘constexpr’ function ‘double blink::DOMRectReadOnly::x() const’

Bug: 819294
Change-Id: Ic1fed89c5480ce4eedaaf7add2779d000b77cc48
---

Index: 
chromium-83.0.4103.14/third_party/blink/renderer/core/geometry/dom_rect_read_only.h
===================================================================
--- 
chromium-83.0.4103.14.orig/third_party/blink/renderer/core/geometry/dom_rect_read_only.h
+++ 
chromium-83.0.4103.14/third_party/blink/renderer/core/geometry/dom_rect_read_only.h
@@ -31,10 +31,10 @@ class CORE_EXPORT DOMRectReadOnly : publ
 
   DOMRectReadOnly(double x, double y, double width, double height);
 
-  double x() const { return x_; }
-  double y() const { return y_; }
-  double width() const { return width_; }
-  double height() const { return height_; }
+  constexpr double x() const { return x_; }
+  constexpr double y() const { return y_; }
+  constexpr double width() const { return width_; }
+  constexpr double height() const { return height_; }
 
   double top() const { return geometry_util::NanSafeMin(y_, y_ + height_); }
   double right() const { return geometry_util::NanSafeMax(x_, x_ + width_); }
++++++ chromium-83-gcc-10.patch ++++++
>From e473f41284ccc8fa4bc4622d087194b18a1ec23a Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <[email protected]>
Date: Tue, 7 Apr 2020 16:37:10 +0000
Subject: [PATCH] GCC: fix includes for gcc-10

---
 chrome/browser/search/background/ntp_backgrounds.h              | 1 +
 third_party/webrtc/call/rtx_receive_stream.h                    | 1 +
 .../webrtc/modules/audio_processing/aec3/clockdrift_detector.h  | 1 +
 ui/gfx/linux/drm_util_linux.h                                   | 2 ++
 5 files changed, 6 insertions(+)

Index: chromium-85.0.4183.69/chrome/browser/search/background/ntp_backgrounds.h
===================================================================
--- 
chromium-85.0.4183.69.orig/chrome/browser/search/background/ntp_backgrounds.h
+++ chromium-85.0.4183.69/chrome/browser/search/background/ntp_backgrounds.h
@@ -8,6 +8,7 @@
 #include <stddef.h>
 
 #include <array>
+#include <cstddef>
 
 class GURL;
 
Index: chromium-85.0.4183.69/third_party/webrtc/call/rtx_receive_stream.h
===================================================================
--- chromium-85.0.4183.69.orig/third_party/webrtc/call/rtx_receive_stream.h
+++ chromium-85.0.4183.69/third_party/webrtc/call/rtx_receive_stream.h
@@ -13,6 +13,7 @@
 
 #include <cstdint>
 #include <map>
+#include <cstdint>
 
 #include "call/rtp_packet_sink_interface.h"
 
Index: 
chromium-85.0.4183.69/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
===================================================================
--- 
chromium-85.0.4183.69.orig/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+++ 
chromium-85.0.4183.69/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
@@ -14,6 +14,7 @@
 #include <stddef.h>
 
 #include <array>
+#include <cstddef>
 
 namespace webrtc {
 
Index: chromium-85.0.4183.69/ui/gfx/linux/drm_util_linux.h
===================================================================
--- chromium-85.0.4183.69.orig/ui/gfx/linux/drm_util_linux.h
+++ chromium-85.0.4183.69/ui/gfx/linux/drm_util_linux.h
@@ -9,6 +9,8 @@
 
 #include "ui/gfx/buffer_types.h"
 
+#include <cstdint>
+
 namespace ui {
 
 int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
++++++ chromium-84-blink-disable-clang-format.patch ++++++
>From 08ac7188f414218ac9d764e29e7aa64a6bfc2f96 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <[email protected]>
Date: Sun, 31 May 2020 10:02:03 +0000
Subject: [PATCH] disable clang-format for generated code in blink

For GCC builds clang-format might be not available. Additionally,
current scripts look for clang-format within chromium sources and
don't consider system clang-format.
---
 .../bindings/scripts/bind_gen/codegen_utils.py         | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git 
a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py 
b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
index 7021f1a..33bf5bf 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
@@ -150,12 +150,4 @@ def write_code_node_to_file(code_node, filepath):
 
     rendered_text = render_code_node(code_node)
 
-    format_result = style_format.auto_format(rendered_text, filename=filepath)
-    if not format_result.did_succeed:
-        raise RuntimeError("Style-formatting failed: filename = {filename}\n"
-                           "---- stderr ----\n"
-                           "{stderr}:".format(
-                               filename=format_result.filename,
-                               stderr=format_result.error_message))
-
-    web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents)
+    web_idl.file_io.write_to_file_if_changed(filepath, rendered_text)
-- 
2.26.2

++++++ chromium-84-gcc-include.patch ++++++
>From 60e856c553f4532c2035b087dbdbdde42dbb5f09 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <[email protected]>
Date: Sat, 9 May 2020 11:33:04 +0000
Subject: [PATCH] IWYU: memcpy is defined in cstring

---
 cc/base/list_container_helper.cc | 1 +
 1 file changed, 1 insertion(+)

Index: chromium-85.0.4183.69/third_party/blink/common/input/web_touch_event.cc
===================================================================
--- chromium-85.0.4183.69.orig/third_party/blink/common/input/web_touch_event.cc
+++ chromium-85.0.4183.69/third_party/blink/common/input/web_touch_event.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 <bitset>
+
 #include "third_party/blink/public/common/input/web_touch_event.h"
 
 #include <bitset>
Index: 
chromium-85.0.4183.69/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
===================================================================
--- 
chromium-85.0.4183.69.orig/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
+++ 
chromium-85.0.4183.69/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
@@ -18,6 +18,7 @@
 #include <stdio.h>
 #include <string.h>
 
+#include <cstring>
 #include <string>
 
 #include "base/logging.h"
Index: 
chromium-85.0.4183.69/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
===================================================================
--- 
chromium-85.0.4183.69.orig/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
+++ 
chromium-85.0.4183.69/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
@@ -17,6 +17,7 @@
 #include <string.h>
 #include <sys/types.h>
 
+#include <cstring>
 #include <utility>
 #include <vector>
 
Index: 
chromium-85.0.4183.69/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
===================================================================
--- 
chromium-85.0.4183.69.orig/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
+++ 
chromium-85.0.4183.69/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
@@ -20,6 +20,8 @@
 #include <string.h>
 #include <sys/socket.h>
 
+#include <cstring>
+
 #include "base/logging.h"
 #include "base/macros.h"
 #include "base/numerics/safe_conversions.h"
Index: 
chromium-85.0.4183.69/third_party/crashpad/crashpad/util/process/process_memory.cc
===================================================================
--- 
chromium-85.0.4183.69.orig/third_party/crashpad/crashpad/util/process/process_memory.cc
+++ 
chromium-85.0.4183.69/third_party/crashpad/crashpad/util/process/process_memory.cc
@@ -17,6 +17,7 @@
 #include <string.h>
 
 #include <algorithm>
+#include <cstring>
 
 #include "base/check_op.h"
 #include "base/logging.h"
Index: 
chromium-85.0.4183.69/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
===================================================================
--- 
chromium-85.0.4183.69.orig/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
+++ 
chromium-85.0.4183.69/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
@@ -17,6 +17,7 @@
 #include <string.h>
 
 #include <algorithm>
+#include <cstring>
 
 #include "base/check.h"
 #include "base/logging.h"
++++++ chromium-84-mediaalloc.patch ++++++
https://bugs.chromium.org/p/chromium/issues/detail?id=1095962

--- /media/base/media.cc
+++ /media/base/media.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 <limits>
+
 #include "media/base/media.h"
 
 #include "base/allocator/buildflags.h"
@@ -41,7 +43,7 @@
 
 #if BUILDFLAG(USE_ALLOCATOR_SHIM)
     // Remove allocation limit from ffmpeg, so calls go down to shim layer.
-    av_max_alloc(0);
+    av_max_alloc(std::numeric_limits<size_t>::max());
 #endif  // BUILDFLAG(USE_ALLOCATOR_SHIM)
 
 #endif  // BUILDFLAG(ENABLE_FFMPEG)
++++++ chromium-85-DelayNode-cast.patch ++++++
>From 051a6f6f3fe71602d4c13aa8f3cda40cd3c7484d Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <[email protected]>
Date: Tue, 07 Jul 2020 16:10:14 +0000
Subject: [PATCH] fixup: SIMD for main loop of a-rate DelayNode

Similar to previous fix to oscillator node. In GCC, an implicit cast to
m128i of the result of mm_cmplt_ps is not valid. In this case, as the
next usage of the return value is already an m128, we just change the
type of the return value to m128 too.

Bug: 819294
Change-Id: I9ae9103a837920a5bfe432d7c81930bb4a5fce78
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2283211
Reviewed-by: Raymond Toy <[email protected]>
Commit-Queue: José Dapena Paz <[email protected]>
Cr-Commit-Position: refs/heads/master@{#785770}
---

diff --git 
a/third_party/blink/renderer/platform/audio/audio_delay_dsp_kernel.cc 
b/third_party/blink/renderer/platform/audio/audio_delay_dsp_kernel.cc
index 6d26a4d..7b244a6 100644
--- a/third_party/blink/renderer/platform/audio/audio_delay_dsp_kernel.cc
+++ b/third_party/blink/renderer/platform/audio/audio_delay_dsp_kernel.cc
@@ -142,7 +142,7 @@
   // Wrap the read position if it exceed the buffer length.
 
   // If buffer length < read_position, set cmp to 0xffffffff.  Otherwise zero.
-  __m128i cmp = _mm_cmplt_ps(v_buffer_length, v_position);
+  __m128 cmp = _mm_cmplt_ps(v_buffer_length, v_position);
 
   // Bitwise and buffer_length with cmp to get buffer_length or 0 depending on
   // whether read_position >= buffer length or not.  Then subtract from the
++++++ chromium-85-FrameWidget-namespace.patch ++++++
>From 9814c5890ecd3f1b044c234543010d8aa6f856b9 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <[email protected]>
Date: Sun, 28 Jun 2020 11:14:10 +0000
Subject: [PATCH] GCC: add explicit namespace for FrameWidget

GCC is confused by multiple definitions in different namespaces
and fails like this:

../../third_party/blink/renderer/platform/widget/widget_base_client.h:153:24:
error: declaration of 'virtual blink::FrameWidget*
blink::WidgetBaseClient::FrameWidget()' changes meaning of 'FrameWidget'
[-fpermissive]
  153 |   virtual FrameWidget* FrameWidget() { return nullptr; }
      |                        ^~~~~~~~~~~
---
 third_party/blink/renderer/platform/widget/widget_base_client.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/third_party/blink/renderer/platform/widget/widget_base_client.h 
b/third_party/blink/renderer/platform/widget/widget_base_client.h
index b4ff5ed..606deab 100644
--- a/third_party/blink/renderer/platform/widget/widget_base_client.h
+++ b/third_party/blink/renderer/platform/widget/widget_base_client.h
@@ -150,7 +150,7 @@ class WidgetBaseClient {
       mojo::PendingRemote<mojom::blink::WidgetInputHandlerHost> host) = 0;
 
   // The FrameWidget interface if this is a FrameWidget.
-  virtual FrameWidget* FrameWidget() { return nullptr; }
+  virtual blink::FrameWidget* FrameWidget() { return nullptr; }
 
   // Send the composition change to the browser.
   virtual void SendCompositionRangeChanged(
-- 
2.26.2

++++++ chromium-85-NearbyConnection-abstract.patch ++++++
diff --git a/chrome/browser/nearby_sharing/nearby_connections_manager.h 
b/chrome/browser/nearby_sharing/nearby_connections_manager.h
index d6ac91e..eb1fda7 100644
--- a/chrome/browser/nearby_sharing/nearby_connections_manager.h
+++ b/chrome/browser/nearby_sharing/nearby_connections_manager.h
@@ -7,6 +7,7 @@
 
 #include <stdint.h>
 #include <memory>
+#include <string>
 #include <vector>
 
 #include "base/callback.h"
@@ -25,11 +26,13 @@
 
   // A callback for handling incoming connections while advertising.
   class IncomingConnectionListener {
+   public:
     virtual ~IncomingConnectionListener() = default;
 
-    virtual void OnIncomingConnection(const std::string& endpoint_id,
-                                      const std::vector<uint8_t>& 
endpoint_info,
-                                      NearbyConnection connection) = 0;
+    virtual void OnIncomingConnection(
+        const std::string& endpoint_id,
+        const std::vector<uint8_t>& endpoint_info,
+        std::unique_ptr<NearbyConnection> connection) = 0;
   };
 
   // A callback for handling discovered devices while discovering.
++++++ chromium-85-NearbyShareEncryptedMetadataKey-include.patch ++++++
>From ad1493ec8f5287c5cd10dcb50b741359f7858349 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <[email protected]>
Date: Tue, 07 Jul 2020 14:43:40 +0000
Subject: [PATCH] IWYU: int8_t used in nearby share encrypted metadata key 
requires cstdint

Bug: 819294
Change-Id: I90f88cf35e85a8a0ab1811e5533347d329365b21
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2283508
Reviewed-by: Alex Chau <[email protected]>
Commit-Queue: José Dapena Paz <[email protected]>
Cr-Commit-Position: refs/heads/master@{#785727}
---

diff --git 
a/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h
 
b/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h
index 2893bde..8e1758f 100644
--- 
a/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h
+++ 
b/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h
@@ -5,6 +5,7 @@
 #ifndef 
CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_ENCRYPTED_METADATA_KEY_H_
 #define 
CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_ENCRYPTED_METADATA_KEY_H_
 
+#include <cstdint>
 #include <vector>
 
 // Holds the encrypted symmetric key--the key used to encrypt user/device
++++++ chromium-85-oscillator_node-cast.patch ++++++
>From abd4ce23840614bb9e47fd0e674d1cbe74ec3fb6 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <[email protected]>
Date: Tue, 16 Jun 2020 21:08:28 +0200
Subject: [PATCH] fixup: do not return to 128 integer word from _mm_cmplt_ps in 
v_wrap_virtual_index.

After the changes to convert to SIMD several operations in
WebAudio oscillator node, GCC refuses to compile a call to _mm_cmplt_ps
as it returns to an m128i (integer quad), though the declaration of
_mm_cmplt_ps expects to return to an m128 (float quad).

To fix that, we reinterpret_cast<__m128i>. When we obtain 0xffffffff,
that is NaN, if we interpret it as an integer, it will convert it to
0x80000000, which is wrong.

Verified with webaudio/Oscillator/* web tests.

Bug: 819294
Change-Id: Ia00a7695476e84996548b6c679ffeedead49213b
---

diff --git a/third_party/blink/renderer/modules/webaudio/oscillator_node.cc 
b/third_party/blink/renderer/modules/webaudio/oscillator_node.cc
index 0e38932..03ff1da 100644
--- a/third_party/blink/renderer/modules/webaudio/oscillator_node.cc
+++ b/third_party/blink/renderer/modules/webaudio/oscillator_node.cc
@@ -377,7 +377,8 @@
 
   // cmplt(a,b) returns 0xffffffff (-1) if a < b and 0 if not.  So cmp is -1 or
   // 0 depending on whether r < f, which is what we need to compute floor(r).
-  const __m128i cmp = _mm_cmplt_ps(r, _mm_cvtepi32_ps(f));
+  const __m128i cmp =
+      reinterpret_cast<__m128i>(_mm_cmplt_ps(r, _mm_cvtepi32_ps(f)));
 
   // This subtracts 1 if needed to get floor(r).
   f = _mm_add_epi32(f, cmp);
++++++ chromium-85-ostream-operator.patch ++++++
>From 63ca21fddaf4f3b12baf320857407b884db2b570 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <[email protected]>
Date: Thu, 02 Jul 2020 19:20:33 +0000
Subject: [PATCH] GCC: fix operator<< for 
performance_manager::PageNode::OpenedType

Move operator<< into namespace performance_manager.

Bug: 819294
Change-Id: I4e0e97f10dca0b2e56308e07a67cb00e2c2e8052
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2273191
Reviewed-by: Chris Hamilton <[email protected]>
Commit-Queue: Chris Hamilton <[email protected]>
Cr-Commit-Position: refs/heads/master@{#784897}
---

diff --git a/components/performance_manager/graph/page_node.cc 
b/components/performance_manager/graph/page_node.cc
index 113fcf4..b1a4007 100644
--- a/components/performance_manager/graph/page_node.cc
+++ b/components/performance_manager/graph/page_node.cc
@@ -32,11 +32,11 @@
 PageNode::ObserverDefaultImpl::ObserverDefaultImpl() = default;
 PageNode::ObserverDefaultImpl::~ObserverDefaultImpl() = default;
 
-}  // namespace performance_manager
-
 std::ostream& operator<<(
     std::ostream& os,
     performance_manager::PageNode::OpenedType opened_type) {
   os << performance_manager::PageNode::ToString(opened_type);
   return os;
-}
\ No newline at end of file
+}
+
+}  // namespace performance_manager
diff --git a/components/performance_manager/public/graph/page_node.h 
b/components/performance_manager/public/graph/page_node.h
index 422c043..79fec03 100644
--- a/components/performance_manager/public/graph/page_node.h
+++ b/components/performance_manager/public/graph/page_node.h
@@ -265,10 +265,10 @@
   DISALLOW_COPY_AND_ASSIGN(ObserverDefaultImpl);
 };
 
-}  // namespace performance_manager
-
 // std::ostream support for PageNode::OpenedType.
 std::ostream& operator<<(std::ostream& os,
                          performance_manager::PageNode::OpenedType 
opened_type);
 
+}  // namespace performance_manager
+
 #endif  // COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_GRAPH_PAGE_NODE_H_
++++++ chromium-85-ozone-include.patch ++++++
>From 9abbd7da1ddd8003106cc3420170561d475231a9 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <[email protected]>
Date: Mon, 29 Jun 2020 13:01:27 +0000
Subject: [PATCH] IWYU: add missing include for std::vector

---
 ui/ozone/public/platform_screen.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ui/ozone/public/platform_screen.h 
b/ui/ozone/public/platform_screen.h
index 9ce293c..ba20597 100644
--- a/ui/ozone/public/platform_screen.h
+++ b/ui/ozone/public/platform_screen.h
@@ -7,6 +7,7 @@
 
 #include <set>
 #include <string>
+#include <vector>
 
 #include "base/component_export.h"
 #include "base/macros.h"
-- 
2.26.2

++++++ chromium-85-sim_hash-include.patch ++++++
>From c0934033a97b61f3177238ff9f842c5a0f5d8faa Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <[email protected]>
Date: Sun, 28 Jun 2020 18:48:11 +0000
Subject: [PATCH] IWYU: add includes for uint64_t and std::string

---
 components/federated_learning/sim_hash.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/components/federated_learning/sim_hash.h 
b/components/federated_learning/sim_hash.h
index 55030d9..a51dd64 100644
--- a/components/federated_learning/sim_hash.h
+++ b/components/federated_learning/sim_hash.h
@@ -5,6 +5,8 @@
 #ifndef COMPONENTS_FEDERATED_LEARNING_SIM_HASH_H_
 #define COMPONENTS_FEDERATED_LEARNING_SIM_HASH_H_
 
+#include <stdint.h>
+#include <string>
 #include <set>
 #include <unordered_set>
 
-- 
2.26.2

++++++ chromium-blink-gcc-diagnostic-pragma.patch ++++++
diff --git a/third_party/blink/renderer/platform/heap/finalizer_traits.h 
b/third_party/blink/renderer/platform/heap/finalizer_traits.h
index b72703232..17a3abc1f 100644
--- a/third_party/blink/renderer/platform/heap/finalizer_traits.h
+++ b/third_party/blink/renderer/platform/heap/finalizer_traits.h
@@ -43,10 +43,7 @@ struct FinalizerTraitImpl<T, true> {
 // an object's base class has a virtual destructor. In case there is no virtual
 // destructor present, the object is always finalized through its leaf type. In
 // other words: there is no finalization through a base pointer.
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdelete-non-abstract-non-virtual-dtor"
       static_cast<T*>(obj)->~T();
-#pragma GCC diagnostic pop
     }
   };
   using FinalizeImpl =
++++++ 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 <[email protected]>
# 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-dma-buf.patch ++++++
Index: chromium-79.0.3941.4/ui/gfx/linux/client_native_pixmap_dmabuf.cc
===================================================================
--- chromium-79.0.3941.4.orig/ui/gfx/linux/client_native_pixmap_dmabuf.cc
+++ chromium-79.0.3941.4/ui/gfx/linux/client_native_pixmap_dmabuf.cc
@@ -25,9 +25,6 @@
 #include "ui/gfx/buffer_format_util.h"
 #include "ui/gfx/switches.h"
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
-#include <linux/dma-buf.h>
-#else
 #include <linux/types.h>
 
 struct dma_buf_sync {
@@ -42,7 +39,6 @@ struct dma_buf_sync {
 
 #define DMA_BUF_BASE 'b'
 #define DMA_BUF_IOCTL_SYNC _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
-#endif
 
 namespace gfx {
 
++++++ chromium-drm.patch ++++++
Index: chromium-76.0.3800.0/ui/gfx/native_pixmap_handle.cc
===================================================================
--- chromium-76.0.3800.0.orig/ui/gfx/native_pixmap_handle.cc
+++ chromium-76.0.3800.0/ui/gfx/native_pixmap_handle.cc
@@ -21,6 +21,9 @@
 namespace gfx {
 
 #if defined(OS_LINUX)
+#ifndef DRM_FORMAT_MOD_INVALID
+#define DRM_FORMAT_MOD_INVALID ((1ULL<<56) - 1)
+#endif
 static_assert(NativePixmapHandle::kNoModifier == DRM_FORMAT_MOD_INVALID,
               "gfx::NativePixmapHandle::kNoModifier should be an alias for"
               "DRM_FORMAT_MOD_INVALID");
++++++ chromium-fix-char_traits.patch ++++++
--- a/base/strings/char_traits.h
+++ b/base/strings/char_traits.h
@@ -67,9 +67,9 @@
   return __builtin_memcmp(s1, s2, n);
 #else
   for (; n; --n, ++s1, ++s2) {
-    if (*s1 < *s2)
+    if ((unsigned char)*s1 < (unsigned char)*s2)
       return -1;
-    if (*s1 > *s2)
+    if ((unsigned char)*s1 > (unsigned char)*s2)
       return 1;
   }
   return 0;
++++++ 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-master-prefs-path.patch ++++++
Index: chromium-68.0.3423.2/chrome/browser/first_run/first_run_internal_linux.cc
===================================================================
--- 
chromium-68.0.3423.2.orig/chrome/browser/first_run/first_run_internal_linux.cc
+++ chromium-68.0.3423.2/chrome/browser/first_run/first_run_internal_linux.cc
@@ -20,8 +20,7 @@ bool IsOrganicFirstRun() {
 base::FilePath MasterPrefsPath() {
   // The standard location of the master prefs is next to the chrome binary.
   base::FilePath master_prefs;
-  if (!base::PathService::Get(base::DIR_EXE, &master_prefs))
-    return base::FilePath();
+  master_prefs = base::FilePath("/etc/chromium");
   return master_prefs.AppendASCII(installer::kDefaultMasterPrefs);
 }
 
++++++ chromium-norar.patch ++++++
Index: chromium-84.0.4136.5/chrome/common/safe_browsing/BUILD.gn
===================================================================
--- chromium-84.0.4136.5.orig/chrome/common/safe_browsing/BUILD.gn
+++ chromium-84.0.4136.5/chrome/common/safe_browsing/BUILD.gn
@@ -54,39 +54,6 @@ if (safe_browsing_mode == 1) {
     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" ]
-  }
-
   source_set("disk_image_type_sniffer_mac") {
     sources = [
       "disk_image_type_sniffer_mac.cc",
@@ -153,7 +120,6 @@ source_set("safe_browsing") {
       ":archive_analyzer_results",
       ":binary_feature_extractor",
       ":download_type_util",
-      ":rar_analyzer",
       "//components/safe_browsing/core:features",
     ]
 
Index: chromium-84.0.4136.5/chrome/common/safe_browsing/DEPS
===================================================================
--- chromium-84.0.4136.5.orig/chrome/common/safe_browsing/DEPS
+++ chromium-84.0.4136.5/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-84.0.4136.5/chrome/services/file_util/safe_archive_analyzer.cc
===================================================================
--- chromium-84.0.4136.5.orig/chrome/services/file_util/safe_archive_analyzer.cc
+++ chromium-84.0.4136.5/chrome/services/file_util/safe_archive_analyzer.cc
@@ -46,10 +46,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
 }
++++++ 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-quiche-invalid-offsetof.patch ++++++
>From 4cea86e76af28b28aa72cb7c69ff7cf242b2bd5d Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <[email protected]>
Date: Sat, 27 Jun 2020 12:18:05 +0000
Subject: [PATCH] GCC: supress invalid-offsetof warning

GCC emits a warning if offsetof is used for non-POD
types. However, GCC supports this and prints only
the warning, because it might be nonportable code.
Disable the warning for GCC with a pragma.
---
 net/third_party/quiche/src/quic/core/frames/quic_frame.h   | 7 +++++++
 .../quiche/src/quic/core/frames/quic_inlined_frame.h       | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/net/third_party/quiche/src/quic/core/frames/quic_frame.h 
b/net/third_party/quiche/src/quic/core/frames/quic_frame.h
index 756b69f..aceba76 100644
--- a/net/third_party/quiche/src/quic/core/frames/quic_frame.h
+++ b/net/third_party/quiche/src/quic/core/frames/quic_frame.h
@@ -110,8 +110,15 @@ struct QUIC_EXPORT_PRIVATE QuicFrame {
 
 static_assert(sizeof(QuicFrame) <= 24,
               "Frames larger than 24 bytes should be referenced by pointer.");
+#if defined(__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Winvalid-offsetof"
+#endif
 static_assert(offsetof(QuicStreamFrame, type) == offsetof(QuicFrame, type),
               "Offset of |type| must match in QuicFrame and QuicStreamFrame");
+#if defined(__GNUC__)
+#pragma GCC diagnostic pop
+#endif
 
 // A inline size of 1 is chosen to optimize the typical use case of
 // 1-stream-frame in QuicTransmissionInfo.retransmittable_frames.
diff --git a/net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h 
b/net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h
index 08c4869..804e4bb 100644
--- a/net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h
+++ b/net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h
@@ -17,8 +17,15 @@ namespace quic {
 template <typename DerivedT>
 struct QUIC_EXPORT_PRIVATE QuicInlinedFrame {
   QuicInlinedFrame(QuicFrameType type) : type(type) {
+#if defined(__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Winvalid-offsetof"
+#endif
     static_assert(offsetof(DerivedT, type) == 0,
                   "type must be the first field.");
+#if defined(__GNUC__)
+#pragma GCC diagnostic pop
+#endif
     static_assert(sizeof(DerivedT) <= 24,
                   "Frames larger than 24 bytes should not be inlined.");
   }
-- 
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-fix.patch ++++++
description: fix vaapi with vdpau
author: Maxim Baz
origin: chromium-vaapi patches from Arch linux

Index: chromium-84.0.4147.68/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
===================================================================
--- chromium-84.0.4147.68.orig/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+++ chromium-84.0.4147.68/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
@@ -677,6 +677,7 @@ void VaapiVideoDecodeAccelerator::Assign
   // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
   // internal decoded frame.
   if (buffer_allocation_mode_ != BufferAllocationMode::kNone &&
+      buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau &&
       !vpp_vaapi_wrapper_) {
     vpp_vaapi_wrapper_ = VaapiWrapper::Create(
         VaapiWrapper::kVideoProcess, VAProfileNone,
@@ -708,7 +709,8 @@ void VaapiVideoDecodeAccelerator::Assign
             : gfx::Size();
 
     std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create(
-        (buffer_allocation_mode_ == BufferAllocationMode::kNone)
+        ((buffer_allocation_mode_ == BufferAllocationMode::kNone) ||
+         (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau))
             ? vaapi_wrapper_
             : vpp_vaapi_wrapper_,
         make_context_current_cb_, bind_image_cb_, buffer, size_to_bind);
@@ -1164,6 +1166,14 @@ VaapiVideoDecodeAccelerator::GetSupporte
 
 VaapiVideoDecodeAccelerator::BufferAllocationMode
 VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+  // NVIDIA blobs use VDPAU
+  if (base::StartsWith(VaapiWrapper::GetVendorString(),
+              "Splitted-Desktop Systems VDPAU",
+              base::CompareCase::SENSITIVE)) {
+    LOG(INFO) << "VA-API driver on VDPAU backend";
+    return BufferAllocationMode::kWrapVdpau;
+  }
+
   // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
   // |output_mode_| as well.
   if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
@@ -1174,7 +1184,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe
   // associated format reconciliation copy, avoiding all internal buffer
   // allocations.
   // TODO(crbug.com/911754): Enable for VP9 Profile 2.
-  if (IsGeminiLakeOrLater() &&
+  if (false && IsGeminiLakeOrLater() &&
       (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY ||
        (profile_ >= H264PROFILE_MIN && profile_ <= H264PROFILE_MAX))) {
     // Add one to the reference frames for the one being currently egressed, 
and
Index: chromium-84.0.4147.68/media/gpu/vaapi/vaapi_video_decode_accelerator.h
===================================================================
--- chromium-84.0.4147.68.orig/media/gpu/vaapi/vaapi_video_decode_accelerator.h
+++ chromium-84.0.4147.68/media/gpu/vaapi/vaapi_video_decode_accelerator.h
@@ -210,6 +210,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeA
     // Using |client_|s provided PictureBuffers and as many internally
     // allocated.
     kNormal,
+    kWrapVdpau,
   };
 
   // Decides the concrete buffer allocation mode, depending on the hardware
Index: chromium-84.0.4147.68/media/gpu/vaapi/vaapi_wrapper.cc
===================================================================
--- chromium-84.0.4147.68.orig/media/gpu/vaapi/vaapi_wrapper.cc
+++ chromium-84.0.4147.68/media/gpu/vaapi/vaapi_wrapper.cc
@@ -1227,6 +1227,11 @@ VAImplementation VaapiWrapper::GetImplem
 }
 
 // static
+const std::string& VaapiWrapper::GetVendorString() {
+  return VADisplayState::Get()->va_vendor_string();
+}
+
+// static
 scoped_refptr<VaapiWrapper> VaapiWrapper::Create(
     CodecMode mode,
     VAProfile va_profile,
Index: chromium-84.0.4147.68/media/gpu/vaapi/vaapi_wrapper.h
===================================================================
--- chromium-84.0.4147.68.orig/media/gpu/vaapi/vaapi_wrapper.h
+++ chromium-84.0.4147.68/media/gpu/vaapi/vaapi_wrapper.h
@@ -121,6 +121,9 @@ class MEDIA_GPU_EXPORT VaapiWrapper
   // Returns the type of the underlying VA-API implementation.
   static VAImplementation GetImplementationType();
 
+  // Returns the VAAPI vendor string (obtained using vaQueryVendorString()).
+  static const std::string& GetVendorString();
+
   // Return an instance of VaapiWrapper initialized for |va_profile| and
   // |mode|. |report_error_to_uma_cb| will be called independently from
   // reporting errors to clients via method return values.
++++++ chromium-vaapi.patch ++++++
Index: chromium-83.0.4100.3/chrome/browser/about_flags.cc
===================================================================
--- chromium-83.0.4100.3.orig/chrome/browser/about_flags.cc
+++ chromium-83.0.4100.3/chrome/browser/about_flags.cc
@@ -2128,7 +2128,7 @@ const FeatureEntry kFeatureEntries[] = {
         "disable-accelerated-video-decode",
         flag_descriptions::kAcceleratedVideoDecodeName,
         flag_descriptions::kAcceleratedVideoDecodeDescription,
-        kOsMac | kOsWin | kOsCrOS | kOsAndroid,
+        kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
         SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
     },
     {
@@ -2560,10 +2560,10 @@ const FeatureEntry kFeatureEntries[] = {
      flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop,
      MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)},
 #endif  // ENABLE_VR
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
     {"disable-accelerated-mjpeg-decode",
      flag_descriptions::kAcceleratedMjpegDecodeName,
-     flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
+     flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
      SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
 #endif  // OS_CHROMEOS
     {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
Index: chromium-83.0.4100.3/chrome/browser/flag_descriptions.cc
===================================================================
--- chromium-83.0.4100.3.orig/chrome/browser/flag_descriptions.cc
+++ chromium-83.0.4100.3/chrome/browser/flag_descriptions.cc
@@ -2967,15 +2967,20 @@ const char kMetalDescription[] =
 
 #endif
 
-// Chrome OS 
-------------------------------------------------------------------
+// Chrome OS & 
Linux------------------------------------------------------------
 
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || (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 defined(OS_CHROMEOS)
 
 const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
 const char kAggregatedMlAppRankingDescription[] =
Index: chromium-83.0.4100.3/chrome/browser/flag_descriptions.h
===================================================================
--- chromium-83.0.4100.3.orig/chrome/browser/flag_descriptions.h
+++ chromium-83.0.4100.3/chrome/browser/flag_descriptions.h
@@ -1705,11 +1705,15 @@ extern const char kMetalDescription[];
 
 // Chrome OS ------------------------------------------------------------------
 
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
 
 extern const char kAcceleratedMjpegDecodeName[];
 extern const char kAcceleratedMjpegDecodeDescription[];
 
+#endif
+
+#if defined(OS_CHROMEOS)
+
 extern const char kAggregatedMlAppRankingName[];
 extern const char kAggregatedMlAppRankingDescription[];
 
Index: chromium-83.0.4100.3/gpu/config/software_rendering_list.json
===================================================================
--- chromium-83.0.4100.3.orig/gpu/config/software_rendering_list.json
+++ chromium-83.0.4100.3/gpu/config/software_rendering_list.json
@@ -337,7 +337,7 @@
     },
     {
       "id": 48,
-      "description": "Accelerated video decode is unavailable on Linux",
+      "description": "Accelerated VA-API video decode is not supported on 
NVIDIA platforms",
       "cr_bugs": [137247, 1032907],
       "os": {
         "type": "linux"
@@ -347,6 +347,7 @@
           "machine_model_name": ["Chromecast"]
         }
       ],
+      "vendor_id": "0x10de",
       "features": [
         "accelerated_video_decode"
       ]
Index: chromium-83.0.4100.3/media/gpu/test/BUILD.gn
===================================================================
--- chromium-83.0.4100.3.orig/media/gpu/test/BUILD.gn
+++ chromium-83.0.4100.3/media/gpu/test/BUILD.gn
@@ -179,7 +179,7 @@ if (use_vaapi || use_v4l2_codec) {
   }
 }
 
-if (is_chromeos) {
+if (is_chromeos || use_vaapi) {
   static_library("local_gpu_memory_buffer_manager") {
     testonly = true
     sources = [
Index: chromium-83.0.4100.3/media/mojo/services/gpu_mojo_media_client.cc
===================================================================
--- chromium-83.0.4100.3.orig/media/mojo/services/gpu_mojo_media_client.cc
+++ chromium-83.0.4100.3/media/mojo/services/gpu_mojo_media_client.cc
@@ -167,7 +167,7 @@ GpuMojoMediaClient::GetSupportedVideoDec
         *d3d11_supported_configs_;
   }
 
-#elif BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+#elif defined(OS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
   if (IsNewAcceleratedVideoDecoderUsed(gpu_preferences_)) {
     if (!cros_supported_configs_) {
       cros_supported_configs_ =
++++++ 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
+
   # Whether we're a traditional desktop unix.
   is_desktop_linux = current_os == "linux"
 
@@ -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_crt",
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") {
     "//base/third_party/dynamic_annotations",
     "//sandbox:sandbox_buildflags",
   ]
+  if (gcc_lto) {
+    configs -= [ "//build/config/compiler:gcc_lto" ]
+  }
 
   if (is_nacl_nonsfi) {
     cflags = [ "-fgnu-inline-asm" ]
++++++ gpu-timeout.patch ++++++
description: 10 seconds may not be enough, so don't kill the gpu process until 
20.
author: Chad MILLER <[email protected]>
bug-debian: http://bugs.debian.org/781940

Index: chromium-81.0.4040.5/gpu/ipc/service/gpu_watchdog_thread.cc
===================================================================
--- chromium-81.0.4040.5.orig/gpu/ipc/service/gpu_watchdog_thread.cc
+++ chromium-81.0.4040.5/gpu/ipc/service/gpu_watchdog_thread.cc
@@ -39,7 +39,7 @@ const int kGpuTimeout = 30000;
 // hangs at context creation during startup. See https://crbug.com/918490.
 const int kGpuTimeout = 15000;
 #else
-const int kGpuTimeout = 10000;
+const int kGpuTimeout = 20000;
 #endif
 
 // The same set of timeouts from Watchdog V2 so we can compare the results
++++++ 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://www.opensuse.org/searchPage/";,
     "https://www.google.com/chrome/browser/welcome.html";
  ],
  "homepage": "https://www.opensuse.org/searchPage/";,
  "homepage_is_newtabpage": false
}
++++++ no-location-leap151.patch ++++++
Index: chromium-83.0.4103.116/base/location.h
===================================================================
--- chromium-83.0.4103.116.orig/base/location.h
+++ chromium-83.0.4103.116/base/location.h
@@ -18,12 +18,7 @@
 
 namespace base {
 
-#if defined(__has_builtin)
-// Clang allows detection of these builtins.
-#define SUPPORTS_LOCATION_BUILTINS                                       \
-  (__has_builtin(__builtin_FUNCTION) && __has_builtin(__builtin_FILE) && \
-   __has_builtin(__builtin_LINE))
-#elif defined(COMPILER_GCC) && __GNUC__ >= 7
+#if 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-83.0.4103.116/base/location.cc
===================================================================
--- chromium-83.0.4103.116.orig/base/location.cc
+++ chromium-83.0.4103.116/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
 
Index: chromium-83.0.4103.116/media/base/media_serializers.h
===================================================================
--- chromium-83.0.4103.116.orig/media/base/media_serializers.h
+++ chromium-83.0.4103.116/media/base/media_serializers.h
@@ -377,8 +377,8 @@ template <>
 struct MediaSerializer<base::Location> {
   static base::Value Serialize(const base::Location& value) {
     base::Value result(base::Value::Type::DICTIONARY);
-    FIELD_SERIALIZE("file", value.file_name());
-    FIELD_SERIALIZE("line", value.line_number());
+    FIELD_SERIALIZE("file", value.file_name() ? value.file_name() : "unknown");
+    FIELD_SERIALIZE("line", value.line_number() ? value.line_number() : 0);
     return result;
   }
 };
++++++ old-libva.patch ++++++
Index: chromium-81.0.4040.5/media/gpu/vaapi/vaapi_wrapper.cc
===================================================================
--- chromium-81.0.4040.5.orig/media/gpu/vaapi/vaapi_wrapper.cc
+++ chromium-81.0.4040.5/media/gpu/vaapi/vaapi_wrapper.cc
@@ -65,6 +65,10 @@
 #include "ui/ozone/public/surface_factory_ozone.h"
 #endif
 
+#ifndef VA_FOURCC_I420
+#define VA_FOURCC_I420 0x30323449
+#endif
+
 using media_gpu_vaapi::kModuleVa;
 using media_gpu_vaapi::kModuleVa_drm;
 #if defined(USE_X11)
@@ -369,10 +373,6 @@ bool VADisplayState::Initialize() {
 }
 
 bool VADisplayState::InitializeOnce() {
-  static_assert(
-      VA_MAJOR_VERSION >= 2 || (VA_MAJOR_VERSION == 1 && VA_MINOR_VERSION >= 
1),
-      "Requires VA-API >= 1.1.0");
-
   switch (gl::GetGLImplementation()) {
     case gl::kGLImplementationEGLGLES2:
       va_display_ = vaGetDisplayDRM(drm_fd_.get());
@@ -1508,7 +1508,7 @@ VaapiWrapper::ExportVASurfaceAsNativePix
     LOG(ERROR) << "Cannot export an invalid surface";
     return nullptr;
   }
-
+#if VA_MAJOR_VERSION >= 2 || (VA_MAJOR_VERSION == 1 && VA_MINOR_VERSION >= 2)
   VADRMPRIMESurfaceDescriptor descriptor;
   {
     base::AutoLock auto_lock(*va_lock_);
@@ -1601,6 +1601,10 @@ VaapiWrapper::ExportVASurfaceAsNativePix
   exported_pixmap->pixmap = base::MakeRefCounted<gfx::NativePixmapDmaBuf>(
       scoped_va_surface.size(), buffer_format, std::move(handle));
   return exported_pixmap;
+#else
+  LOG(ERROR) << "Exporting a surface with FOURCC has been disabled on old 
libva";
+  return nullptr;
+#endif
 }
 
 bool VaapiWrapper::SyncSurface(VASurfaceID va_surface_id) {
Index: chromium-81.0.4040.5/media/gpu/vaapi/vaapi_jpeg_decoder.cc
===================================================================
--- chromium-81.0.4040.5.orig/media/gpu/vaapi/vaapi_jpeg_decoder.cc
+++ chromium-81.0.4040.5/media/gpu/vaapi/vaapi_jpeg_decoder.cc
@@ -20,6 +20,10 @@
 #include "media/parsers/jpeg_parser.h"
 #include "ui/gfx/geometry/size.h"
 
+#ifndef VA_FOURCC_I420
+#define VA_FOURCC_I420 0x30323449
+#endif
+
 namespace media {
 
 namespace {
Index: chromium-81.0.4040.5/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc
===================================================================
--- chromium-81.0.4040.5.orig/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc
+++ chromium-81.0.4040.5/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc
@@ -44,6 +44,10 @@
 #include "ui/gfx/geometry/size.h"
 #include "ui/gfx/gpu_memory_buffer.h"
 
+#ifndef VA_FOURCC_I420
+#define VA_FOURCC_I420 0x30323449
+#endif
+
 namespace media {
 
 namespace {
Index: chromium-81.0.4040.5/media/gpu/chromeos/fourcc.cc
===================================================================
--- chromium-81.0.4040.5.orig/media/gpu/chromeos/fourcc.cc
+++ chromium-81.0.4040.5/media/gpu/chromeos/fourcc.cc
@@ -16,6 +16,13 @@
 #include <va/va.h>
 #endif  // BUILDFLAG(USE_VAAPI)
 
+#ifndef VA_FOURCC_I420
+#define VA_FOURCC_I420 0x30323449
+#endif
+#ifndef VA_FOURCC_NV21
+#define VA_FOURCC_NV21 0x3132564E
+#endif
+
 namespace media {
 
 Fourcc::Fourcc(Fourcc::Value fourcc) : value_(fourcc) {}
++++++ system-libdrm.patch ++++++
Index: 
chromium-84.0.4147.85/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
===================================================================
--- 
chromium-84.0.4147.85.orig/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
+++ 
chromium-84.0.4147.85/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 "ui/gfx/geometry/point.h"
 #include "ui/gfx/geometry/size.h"

Reply via email to