Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
The package rpms/chromium.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=51e320816fc…
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=20eba058de5…
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=3c95810693b…
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=a472406f7f0…
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=5e096a366bc…
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=35521ebaf47….
Change:
-%ifarch x86_64
-%ifarch x86_64
+%ifarch %{ix86}
+%ifarch %{ix86}
-%ifarch x86_64
+%ifarch %{ix86}
Thanks.
Full change:
============
commit 85e58a0c252514666ff33a0c4358ea51aeed04a4
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 29 15:05:04 2019 -0400
always BR: python2-devel
diff --git a/chromium.spec b/chromium.spec
index 6c43be5..e5d2fd6 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -423,6 +423,7 @@ BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(gtk+-2.0)
%endif
BuildRequires: /usr/bin/python2
+BuildRequires: python2-devel
%if 0%{?bundlepylibs}
# Using bundled bits, do nothing.
%else
@@ -440,7 +441,6 @@ BuildRequires: python-markupsafe
BuildRequires: python-ply
%endif
BuildRequires: python2-simplejson
-BuildRequires: python2-devel
%endif
%if 0%{?bundlere2}
# Using bundled bits, do nothing.
commit f4f0595ecf643787832e0e0d7453bd2dc39e49bc
Merge: d0e087e 3cab112
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 29 13:48:00 2019 -0400
Merge branch 'master' into f29
commit d0e087ec98e9c1b1c44cd67a1aa8abb3f823c640
Merge: 0e5b248 ff01f5a
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 09:04:50 2019 -0400
merge fix
commit ff01f5a7525845f12836c9a70bb9d1821a76b5ea
Merge: 286dfc8 77f7b18
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 09:02:13 2019 -0400
merge fix
commit 77f7b18d5f5f7fc1abe87f2704a3e1fc453a9f5d
Merge: e7f437f 5a0ab75
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 09:00:23 2019 -0400
merge fix
commit 0e5b248a5fe1a0ead7219af1ddeee7be477f0f89
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 13:51:46 2019 +0200
Update to 77.0.3865.120
diff --git a/chromium.spec b/chromium.spec
index ff76b24..0b74407 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -157,8 +157,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1635,6 +1635,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit e968b763b501504ecda23508e616abf770a58f16
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 08:23:03 2019 +0200
Move another python script to python3
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
commit 286dfc8bb4be903f78be26124338c895fb3062be
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 13:51:46 2019 +0200
Update to 77.0.3865.120
diff --git a/chromium.spec b/chromium.spec
index f962e02..163731f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -157,8 +157,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1635,6 +1635,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit 3ffc8fd208d5e52f3d83f51404ba7f6905fc32b7
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 08:23:03 2019 +0200
Move another python script to python3
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
commit e7f437fd182ccfa4ac99976f5bb810b93a0cd998
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 13:51:46 2019 +0200
Update to 77.0.3865.120
diff --git a/chromium.spec b/chromium.spec
index ff76b24..0b74407 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -157,8 +157,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1635,6 +1635,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit c4d9ecbb70f00e1510c3b752a8443ea974b41e67
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 08:23:03 2019 +0200
Move another python script to python3
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
commit 64608c7b853bd7fda974d4b6013159e6df15cdf9
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:25:20 2019 +0200
Fix the icon
Remove quite a few of downstream patches
Fix the crashes by backporting an upstream bug
Resolves: rhbz#1754179
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index 930b750..ff76b24 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -158,7 +158,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -218,6 +218,8 @@ Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897ee…
Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8efb…
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -730,6 +732,7 @@ udev.
%patch58 -p1 -b .harfbuzz-subset
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
# Fedora branded user agent
%if 0%{?fedora}
@@ -1632,6 +1635,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
- Update to 77.0.3865.90
commit b5420298f462ec8637355b087d0d9bf5141f692c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:21:06 2019 +0200
Fix the icon
So the monochromatic icon is being shown even in the GNOME's overview
and it's ugly (as it's upscaled from 22x22). Remove it.
diff --git a/chromium.spec b/chromium.spec
index e6a6f88..930b750 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1388,8 +1388,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
-cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit a472406f7f0e3316065738abf4a1f0d7d56a5d56
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:57:18 2019 +0200
Remove the unused patches or patches that are not needed anymore
Also replace some patches with changes in the SPEC file.
diff --git a/chromium-45.0.2454.101-linux-path-max.patch b/chromium-45.0.2454.101-linux-path-max.patch
deleted file mode 100644
index 3146349..0000000
--- a/chromium-45.0.2454.101-linux-path-max.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax 2015-10-07 11:26:11.813477839 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h 2015-10-07 11:26:40.845845054 -0400
-@@ -12,6 +12,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- namespace nacl_io {
-
- class Path {
-diff -up chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c
---- chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax 2015-08-22 15:02:08.000000000 -0400
-+++ chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c 2015-10-07 10:58:56.172018783 -0400
-@@ -11,6 +11,10 @@
-
- #include <errno.h>
- #include <limits.h>
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax 2015-10-09 10:57:38.424348662 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c 2015-10-09 10:57:51.541059938 -0400
-@@ -13,6 +13,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- EXTERN_C_BEGIN
-
- #if defined(__native_client__)
diff --git a/chromium-53.0.2785.92-boringssl-time-fix.patch b/chromium-53.0.2785.92-boringssl-time-fix.patch
deleted file mode 100644
index 8d67957..0000000
--- a/chromium-53.0.2785.92-boringssl-time-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c
---- chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix 2016-09-06 15:20:06.094396255 -0400
-+++ chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c 2016-09-06 15:20:16.893187930 -0400
-@@ -56,6 +56,7 @@
- * [including the GNU Public Licence.] */
-
- #include <string.h>
-+#include <time.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-
diff --git a/chromium-54.0.2840.59-jpeg-include-dir.patch b/chromium-54.0.2840.59-jpeg-include-dir.patch
deleted file mode 100644
index f96a56c..0000000
--- a/chromium-54.0.2840.59-jpeg-include-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix chromium-54.0.2840.59/third_party/BUILD.gn
---- chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix 2016-10-17 11:45:44.995340495 -0400
-+++ chromium-54.0.2840.59/third_party/BUILD.gn 2016-10-17 11:46:35.254289872 -0400
-@@ -20,6 +20,7 @@ declare_args() {
- config("system_libjpeg_config") {
- libs = [ "jpeg" ]
- defines = [ "USE_SYSTEM_LIBJPEG" ]
-+ include_dirs = [ "/usr/include/" ]
- }
-
- config("libjpeg_turbo_config") {
diff --git a/chromium-55.0.2883.75-addrfix.patch b/chromium-55.0.2883.75-addrfix.patch
deleted file mode 100644
index 00c214c..0000000
--- a/chromium-55.0.2883.75-addrfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix chromium-55.0.2883.75/third_party/boringssl/BUILD.gn
---- chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix 2016-12-12 15:30:27.727834891 -0500
-+++ chromium-55.0.2883.75/third_party/boringssl/BUILD.gn 2016-12-12 15:30:53.095709352 -0500
-@@ -24,6 +24,7 @@ config("internal_config") {
- "BORINGSSL_IMPLEMENTATION",
- "BORINGSSL_NO_STATIC_INITIALIZER",
- "OPENSSL_SMALL",
-+ "_POSIX_C_SOURCE=200112L",
- ]
- configs = [
- # TODO(davidben): Fix size_t truncations in BoringSSL.
diff --git a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
deleted file mode 100644
index 9dde4c5..0000000
--- a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
-@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
diff --git a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
deleted file mode 100644
index 7248825..0000000
--- a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
---- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
-+++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
-@@ -39,13 +39,13 @@
- #include "log.h"
-
- #if ARCH_AARCH64
--# include "aarch64/timer.h"
-+# include "libavutil/aarch64/timer.h"
- #elif ARCH_ARM
--# include "arm/timer.h"
-+# include "libavutil/arm/timer.h"
- #elif ARCH_PPC
--# include "ppc/timer.h"
-+# include "libavutil/ppc/timer.h"
- #elif ARCH_X86
--# include "x86/timer.h"
-+# include "libavutil/x86/timer.h"
- #endif
-
- #if !defined(AV_READ_TIME)
diff --git a/chromium-62.0.3202.62-kmaxskip-constexpr.patch b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
deleted file mode 100644
index d4f8250..0000000
--- a/chromium-62.0.3202.62-kmaxskip-constexpr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
---- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
-+++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
-@@ -336,7 +336,7 @@ TYPES(M);
- #undef TYPES
-
- const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
--const size_t PaintOp::kMaxSkip;
-+constexpr size_t PaintOp::kMaxSkip;
-
- std::string PaintOpTypeToString(PaintOpType type) {
- switch (type) {
diff --git a/chromium-63.0.3289.84-nullfix.patch b/chromium-63.0.3289.84-nullfix.patch
deleted file mode 100644
index c66aff1..0000000
--- a/chromium-63.0.3289.84-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn
---- chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix 2017-12-06 15:05:21.000000000 -0500
-+++ chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn 2017-12-07 10:44:34.507207080 -0500
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -186,6 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
deleted file mode 100644
index 64c5f26..0000000
--- a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
---- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
-+++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
-@@ -18,7 +18,13 @@
-
- #include <stddef.h>
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "attributes.h"
- #include "cpu.h"
diff --git a/chromium-65.0.3325.146-gcc-round-fix.patch b/chromium-65.0.3325.146-gcc-round-fix.patch
deleted file mode 100644
index a29779d..0000000
--- a/chromium-65.0.3325.146-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
---- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <utility>
diff --git a/chromium-65.0.3325.146-memcpy-fix.patch b/chromium-65.0.3325.146-memcpy-fix.patch
deleted file mode 100644
index b2b2cd4..0000000
--- a/chromium-65.0.3325.146-memcpy-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
-+++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
-@@ -3,7 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
--
-+#include <memory.h>
- #include <string.h>
-
- namespace cc {
diff --git a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index d5b19cf..0000000
--- a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
-+++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
-@@ -11,13 +11,13 @@
- #include "base/callback_forward.h"
- #include "base/macros.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-66.0.3359.117-system-clang.patch b/chromium-66.0.3359.117-system-clang.patch
deleted file mode 100644
index e90dc58..0000000
--- a/chromium-66.0.3359.117-system-clang.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
---- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
-+++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
-@@ -4,7 +4,7 @@
-
- import("//build/toolchain/toolchain.gni")
-
--default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+default_clang_base_path = "/usr"
-
- declare_args() {
- # Indicates if the build should use the Chrome-specific plugins for enforcing
diff --git a/chromium-67.0.3396.62-gcc5.patch b/chromium-67.0.3396.62-gcc5.patch
deleted file mode 100644
index ceef85d..0000000
--- a/chromium-67.0.3396.62-gcc5.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
-+++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
-@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
diff --git a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch b/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
deleted file mode 100644
index 4a92fba..0000000
--- a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc
---- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
-+++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
-@@ -14,22 +14,22 @@ LogoMetadata::LogoMetadata() = default;
- LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
- LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
- LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
--LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
-+LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
- LogoMetadata::~LogoMetadata() = default;
-
- EncodedLogo::EncodedLogo() = default;
- EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
- EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
- EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
--EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
-+EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
- EncodedLogo::~EncodedLogo() = default;
-
- Logo::Logo() = default;
- Logo::~Logo() = default;
-
- LogoCallbacks::LogoCallbacks() = default;
--LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
--LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
-+LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
-+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
- LogoCallbacks::~LogoCallbacks() = default;
-
- } // namespace search_provider_logos
diff --git a/chromium-69.0.3497.81-build-sanely-please.patch b/chromium-69.0.3497.81-build-sanely-please.patch
deleted file mode 100644
index 6241a97..0000000
--- a/chromium-69.0.3497.81-build-sanely-please.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
---- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
-+++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
-@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
- public_deps += [ "//build/config/sanitizers:deps" ]
- }
-
-- if (use_custom_libcxx) {
-- public_deps += [ "//buildtools/third_party/libc++" ]
-- }
-+ # if (use_custom_libcxx) {
-+ # public_deps += [ "//buildtools/third_party/libc++" ]
-+ # }
-
- if (use_afl) {
- public_deps += [ "//third_party/afl" ]
-diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
---- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
-+++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
-@@ -15,9 +15,10 @@ declare_args() {
- # The absolute path to directory containing linux sysroot images
- target_sysroot_dir = "//build/linux"
-
-- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-- current_cpu == "arm" || current_cpu == "arm64" ||
-- current_cpu == "mipsel" || current_cpu == "mips64el"
-+ use_sysroot = false
-+ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-+ # current_cpu == "arm" || current_cpu == "arm64" ||
-+ # current_cpu == "mipsel" || current_cpu == "mips64el"
- }
-
- if (current_os == target_os && current_cpu == target_cpu &&
diff --git a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch b/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
deleted file mode 100644
index ccecfcb..0000000
--- a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h
---- chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-06 13:27:05.118766581 -0500
-+++ chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-11-06 13:27:34.575204504 -0500
-@@ -5,6 +5,8 @@
- #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
- #define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
-
-+#define __ARCH_WANT_NEW_STAT
-+
- #include <asm-generic/unistd.h>
-
- #if !defined(__NR_io_setup)
diff --git a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch b/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
deleted file mode 100644
index 5da1674..0000000
--- a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-12-14 11:17:43.249121756 -0500
-+++ chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-12-14 11:20:07.770030234 -0500
-@@ -658,7 +658,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -678,7 +678,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-72.0.3626.121-notest.patch b/chromium-72.0.3626.121-notest.patch
deleted file mode 100644
index e8b7bf4..0000000
--- a/chromium-72.0.3626.121-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd
---- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400
-+++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- <include name="IDR_WEB_UI_TEST_MOJO_LITE_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom-lite.js" use_base_dir="false" type="BINDATA"/>
- </includes>
diff --git a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
deleted file mode 100644
index f8abb52..0000000
--- a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn
---- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400
-+++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400
-@@ -31,7 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -50,7 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -101,7 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-+ extra_cppflags = "-g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -155,7 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-75.0.3770.100-git00281713.patch b/chromium-75.0.3770.100-git00281713.patch
deleted file mode 100644
index 4356435..0000000
--- a/chromium-75.0.3770.100-git00281713.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
---- chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 2019-07-02 09:10:38.951369854 -0400
-+++ chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc 2019-07-02 09:11:59.864642942 -0400
-@@ -12,13 +12,19 @@
- #include "chrome/browser/performance_manager/graph/process_node_impl.h"
- #include "chrome/browser/performance_manager/performance_manager.h"
- #include "chrome/browser/performance_manager/render_process_user_data.h"
-+#include "content/public/browser/render_process_host.h"
- #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
-
- namespace {
-
- void BindProcessNode(
-- content::RenderProcessHost* render_process_host,
-+ int render_process_host_id,
- resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
-+ content::RenderProcessHost* render_process_host =
-+ content::RenderProcessHost::FromID(render_process_host_id);
-+ if (!render_process_host)
-+ return;
-+
- performance_manager::RenderProcessUserData* user_data =
- performance_manager::RenderProcessUserData::GetForRenderProcessHost(
- render_process_host);
-@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerforman
- blink::AssociatedInterfaceRegistry* associated_registry,
- content::RenderProcessHost* render_process_host) {
- registry->AddInterface(
-- base::BindRepeating(&BindProcessNode,
-- base::Unretained(render_process_host)),
-+ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
- base::SequencedTaskRunnerHandle::Get());
-
- // Ideally this would strictly be a "CreateForRenderProcess", but when a
diff --git a/chromium-75.0.3770.80-SIOCGSTAMP.patch b/chromium-75.0.3770.80-SIOCGSTAMP.patch
deleted file mode 100644
index 0ef1e7f..0000000
--- a/chromium-75.0.3770.80-SIOCGSTAMP.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
---- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
-+++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
-@@ -16,6 +16,11 @@
- #define WEBRTC_USE_EPOLL 1
- #endif
-
-+// for SIOCGSTAMP in Linux 5.2
-+#if defined(WEBRTC_LINUX)
-+#include <linux/sockios.h>
-+#endif
-+
- #include <memory>
- #include <set>
- #include <vector>
diff --git a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
deleted file mode 100644
index 2a8ac2f..0000000
--- a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
---- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
-+++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
-@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
-
- void CompositorFrameReportingController::WillBeginMainFrame() {
- DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
-- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
-- reporters_[PipelineStage::kBeginImplFrame]);
-+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
-+ reporters_[PipelineStage::kBeginImplFrame]);
- reporters_[PipelineStage::kBeginImplFrame]->StartStage(
- "SendBeginMainFrameToCommit");
- AdvanceReporterStage(PipelineStage::kBeginImplFrame,
diff --git a/chromium-75.0.3770.80-gcc-no-assume.patch b/chromium-75.0.3770.80-gcc-no-assume.patch
deleted file mode 100644
index 0bbb08f..0000000
--- a/chromium-75.0.3770.80-gcc-no-assume.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
---- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
-+++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
-@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define EVENT(message, ...) (void(0))
- #endif
-
--#if defined(COMPILER_GCC) || defined(__clang__)
-+#if defined(__GNUC__)
- # define ANGLE_CRASH() __builtin_trap()
- #else
- # define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
-@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
--#elif defined(COMPILER_GCC)
-+#elif defined(__GNUC__)
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
diff --git a/chromium-75.0.3770.80-revert-daff6b.patch b/chromium-75.0.3770.80-revert-daff6b.patch
deleted file mode 100644
index f996898..0000000
--- a/chromium-75.0.3770.80-revert-daff6b.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
---- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
-+++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
-@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
- additional_info(match.additional_info),
- duplicate_matches(match.duplicate_matches) {}
-
--AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
-- default;
-+AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
-
- AutocompleteMatch::~AutocompleteMatch() {
- }
diff --git a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
deleted file mode 100644
index 690f0f9..0000000
--- a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
---- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
-+++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
-@@ -58,7 +58,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) {
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
deleted file mode 100644
index c836214..0000000
--- a/chromium-77.0.3865.75-boolfix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
-@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 920a53e..0000000
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
-@@ -23,9 +23,8 @@
- // Where available use builtin math overflow support on Clang and GCC.
- #elif !defined(__native_client__) && \
- ((defined(__clang__) && \
-- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ > 3) || \
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
deleted file mode 100644
index 34b858a..0000000
--- a/chromium-77.0.3865.75-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
-+++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
-+++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
-+++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <numeric>
diff --git a/chromium.spec b/chromium.spec
index c41439f..e6a6f88 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,114 +164,61 @@ Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8db…
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-77.0.3865.75-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-77.0.3865.75-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c57…
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb88987c…
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
+
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c60…
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
-Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
-Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
-Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
-# Needs to be submitted..
-Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec571…
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e464058…
-Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e8b…
-Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897ee…
-Patch70: chromium-77.0.3865.75-missing-limits.patch
+Patch60: chromium-77.0.3865.75-missing-limits.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
@@ -757,60 +704,40 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%patch18 -p1 -b .nozmangle
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-#%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch45 -p1 -b .gettid-fix
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
-%patch65 -p1 -b .unbundle-zlib
-%patch66 -p1 -b .gcc-include-memory
-%patch67 -p1 -b .base-gcc-no-alignas
-%patch68 -p1 -b .harfbuzz-subset
-%patch69 -p1 -b .gcc-abstract-class
-%patch70 -p1 -b .missing-limits
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
%endif
@@ -1287,6 +1214,11 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
echo
# Now do the full browser
%if 0%{freeworld}
commit 94ec5c2f5bdd33d4ab71b6fc0d7e2a9b7d1fa55e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:45:43 2019 +0200
Fix how the arguments are passed to GN's bootstrap.py
I don't know why, but previously it was failing only on aarch64.
diff --git a/chromium.spec b/chromium.spec
index 7fe074d..c41439f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1256,7 +1256,7 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
commit 20eba058de554633ffb2d407e25fa2a0190f050b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:37:33 2019 +0200
Remove support for (p)NaCL
We don't build it for quite some time and will by killed by Google in
Spring 2020. Let's drop the support for it from the SPEC file. We can
revert this patch if needed.
diff --git a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch b/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
deleted file mode 100644
index c422957..0000000
--- a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc
---- chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count 2015-12-15 14:48:07.119011866 -0500
-+++ chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc 2015-12-15 14:48:14.151850055 -0500
-@@ -153,6 +153,14 @@ void NaClSandbox::InitializeLayerOneSand
- }
-
- void NaClSandbox::CheckForExpectedNumberOfOpenFds() {
-+ // Whatever logic this code is using is wrong more often than it is right.
-+ // If you set expected_num_fds to 6, it finds 7.
-+ // If you set expected_num_fds to 7, it finds 6.
-+ // Code like this makes a packager drink. And not the good stuff either.
-+ // Instead, we're just going to smile and tell it to never care about the
-+ // number of FDs open. Stupid code. We hates it.
-+
-+#if 0
- // We expect to have the following FDs open:
- // 1-3) stdin, stdout, stderr.
- // 4) The /dev/urandom FD used by base::GetUrandomFD().
-@@ -171,6 +179,8 @@ void NaClSandbox::CheckForExpectedNumber
- }
-
- CHECK_EQ(expected_num_fds, sandbox::ProcUtil::CountOpenFds(proc_fd_.get()));
-+#endif
-+
- }
-
- void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) {
diff --git a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch b/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
deleted file mode 100644
index bfe0422..0000000
--- a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
---- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
-+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
-@@ -1564,6 +1564,7 @@
- '-Wno-char-subscripts',
- '-Wno-unused-function',
- '-std=gnu++11',
-+ '-fgnu-inline-asm',
- ],
- 'native_irt_compile_flags': [
- # IRT compile/link flags to make the binary smaller.
diff --git a/chromium.spec b/chromium.spec
index 38d8c20..7fe074d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,32 +70,11 @@
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -298,16 +277,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-77.0.3865.75-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -415,24 +384,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -865,11 +816,6 @@ udev.
%endif
# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -898,101 +844,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1063,9 +914,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1227,9 +1076,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0
@@ -1460,20 +1306,8 @@ echo
# remote client
# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
-%build_target %{builddir} remoting_webapp
-%endif
-%endif
-
%endif
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf %{builddir}/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
-
%install
rm -rf %{buildroot}
@@ -1511,10 +1345,6 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
%if 0
cp -a protoc pyproto %{buildroot}%{chromium_path}
@@ -1596,12 +1426,6 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-%endif
-
%if %{build_headless}
pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
@@ -1742,12 +1566,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
%if 0
%{chromium_path}/protoc
@@ -1861,11 +1679,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
-%endif
%files -n chromedriver
%doc AUTHORS
commit 430c02ae6ec1d4dd86bfb77883f2448bafa73216
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 13:36:44 2019 +0200
Don't try to revert a previously removed patch
diff --git a/chromium.spec b/chromium.spec
index 6b2691a..38d8c20 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -862,8 +862,6 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
# Feature specific patches
commit 3d796422d5a4839b4a085c5ff26b57e3d2fc531d
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:25:20 2019 +0200
Fix the icon
Remove quite a few of downstream patches
Fix the crashes by backporting an upstream bug
Resolves: rhbz#1754179
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index d9399c5..f962e02 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -158,7 +158,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -218,6 +218,8 @@ Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897ee…
Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8efb…
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -730,6 +732,7 @@ udev.
%patch58 -p1 -b .harfbuzz-subset
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
# Fedora branded user agent
%if 0%{?fedora}
@@ -1632,6 +1635,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
- Update to 77.0.3865.90
commit 6bae3df5bc0ae8a223b79879956160aebf252b8b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:21:06 2019 +0200
Fix the icon
So the monochromatic icon is being shown even in the GNOME's overview
and it's ugly (as it's upscaled from 22x22). Remove it.
diff --git a/chromium.spec b/chromium.spec
index e32ff17..d9399c5 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1388,8 +1388,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
-cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 35521ebaf47120dd5860f1810946ed48cbe28bab
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:57:18 2019 +0200
Remove the unused patches or patches that are not needed anymore
Also replace some patches with changes in the SPEC file.
diff --git a/chromium-45.0.2454.101-linux-path-max.patch b/chromium-45.0.2454.101-linux-path-max.patch
deleted file mode 100644
index 3146349..0000000
--- a/chromium-45.0.2454.101-linux-path-max.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax 2015-10-07 11:26:11.813477839 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h 2015-10-07 11:26:40.845845054 -0400
-@@ -12,6 +12,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- namespace nacl_io {
-
- class Path {
-diff -up chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c
---- chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax 2015-08-22 15:02:08.000000000 -0400
-+++ chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c 2015-10-07 10:58:56.172018783 -0400
-@@ -11,6 +11,10 @@
-
- #include <errno.h>
- #include <limits.h>
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax 2015-10-09 10:57:38.424348662 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c 2015-10-09 10:57:51.541059938 -0400
-@@ -13,6 +13,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- EXTERN_C_BEGIN
-
- #if defined(__native_client__)
diff --git a/chromium-53.0.2785.92-boringssl-time-fix.patch b/chromium-53.0.2785.92-boringssl-time-fix.patch
deleted file mode 100644
index 8d67957..0000000
--- a/chromium-53.0.2785.92-boringssl-time-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c
---- chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix 2016-09-06 15:20:06.094396255 -0400
-+++ chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c 2016-09-06 15:20:16.893187930 -0400
-@@ -56,6 +56,7 @@
- * [including the GNU Public Licence.] */
-
- #include <string.h>
-+#include <time.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-
diff --git a/chromium-54.0.2840.59-jpeg-include-dir.patch b/chromium-54.0.2840.59-jpeg-include-dir.patch
deleted file mode 100644
index f96a56c..0000000
--- a/chromium-54.0.2840.59-jpeg-include-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix chromium-54.0.2840.59/third_party/BUILD.gn
---- chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix 2016-10-17 11:45:44.995340495 -0400
-+++ chromium-54.0.2840.59/third_party/BUILD.gn 2016-10-17 11:46:35.254289872 -0400
-@@ -20,6 +20,7 @@ declare_args() {
- config("system_libjpeg_config") {
- libs = [ "jpeg" ]
- defines = [ "USE_SYSTEM_LIBJPEG" ]
-+ include_dirs = [ "/usr/include/" ]
- }
-
- config("libjpeg_turbo_config") {
diff --git a/chromium-55.0.2883.75-addrfix.patch b/chromium-55.0.2883.75-addrfix.patch
deleted file mode 100644
index 00c214c..0000000
--- a/chromium-55.0.2883.75-addrfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix chromium-55.0.2883.75/third_party/boringssl/BUILD.gn
---- chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix 2016-12-12 15:30:27.727834891 -0500
-+++ chromium-55.0.2883.75/third_party/boringssl/BUILD.gn 2016-12-12 15:30:53.095709352 -0500
-@@ -24,6 +24,7 @@ config("internal_config") {
- "BORINGSSL_IMPLEMENTATION",
- "BORINGSSL_NO_STATIC_INITIALIZER",
- "OPENSSL_SMALL",
-+ "_POSIX_C_SOURCE=200112L",
- ]
- configs = [
- # TODO(davidben): Fix size_t truncations in BoringSSL.
diff --git a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
deleted file mode 100644
index 9dde4c5..0000000
--- a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
-@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
diff --git a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
deleted file mode 100644
index 7248825..0000000
--- a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
---- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
-+++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
-@@ -39,13 +39,13 @@
- #include "log.h"
-
- #if ARCH_AARCH64
--# include "aarch64/timer.h"
-+# include "libavutil/aarch64/timer.h"
- #elif ARCH_ARM
--# include "arm/timer.h"
-+# include "libavutil/arm/timer.h"
- #elif ARCH_PPC
--# include "ppc/timer.h"
-+# include "libavutil/ppc/timer.h"
- #elif ARCH_X86
--# include "x86/timer.h"
-+# include "libavutil/x86/timer.h"
- #endif
-
- #if !defined(AV_READ_TIME)
diff --git a/chromium-62.0.3202.62-kmaxskip-constexpr.patch b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
deleted file mode 100644
index d4f8250..0000000
--- a/chromium-62.0.3202.62-kmaxskip-constexpr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
---- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
-+++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
-@@ -336,7 +336,7 @@ TYPES(M);
- #undef TYPES
-
- const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
--const size_t PaintOp::kMaxSkip;
-+constexpr size_t PaintOp::kMaxSkip;
-
- std::string PaintOpTypeToString(PaintOpType type) {
- switch (type) {
diff --git a/chromium-63.0.3289.84-nullfix.patch b/chromium-63.0.3289.84-nullfix.patch
deleted file mode 100644
index c66aff1..0000000
--- a/chromium-63.0.3289.84-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn
---- chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix 2017-12-06 15:05:21.000000000 -0500
-+++ chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn 2017-12-07 10:44:34.507207080 -0500
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -186,6 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
deleted file mode 100644
index 64c5f26..0000000
--- a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
---- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
-+++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
-@@ -18,7 +18,13 @@
-
- #include <stddef.h>
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "attributes.h"
- #include "cpu.h"
diff --git a/chromium-65.0.3325.146-gcc-round-fix.patch b/chromium-65.0.3325.146-gcc-round-fix.patch
deleted file mode 100644
index a29779d..0000000
--- a/chromium-65.0.3325.146-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
---- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <utility>
diff --git a/chromium-65.0.3325.146-memcpy-fix.patch b/chromium-65.0.3325.146-memcpy-fix.patch
deleted file mode 100644
index b2b2cd4..0000000
--- a/chromium-65.0.3325.146-memcpy-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
-+++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
-@@ -3,7 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
--
-+#include <memory.h>
- #include <string.h>
-
- namespace cc {
diff --git a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index d5b19cf..0000000
--- a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
-+++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
-@@ -11,13 +11,13 @@
- #include "base/callback_forward.h"
- #include "base/macros.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-66.0.3359.117-system-clang.patch b/chromium-66.0.3359.117-system-clang.patch
deleted file mode 100644
index e90dc58..0000000
--- a/chromium-66.0.3359.117-system-clang.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
---- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
-+++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
-@@ -4,7 +4,7 @@
-
- import("//build/toolchain/toolchain.gni")
-
--default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+default_clang_base_path = "/usr"
-
- declare_args() {
- # Indicates if the build should use the Chrome-specific plugins for enforcing
diff --git a/chromium-67.0.3396.62-gcc5.patch b/chromium-67.0.3396.62-gcc5.patch
deleted file mode 100644
index ceef85d..0000000
--- a/chromium-67.0.3396.62-gcc5.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
-+++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
-@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
diff --git a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch b/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
deleted file mode 100644
index 4a92fba..0000000
--- a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc
---- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
-+++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
-@@ -14,22 +14,22 @@ LogoMetadata::LogoMetadata() = default;
- LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
- LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
- LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
--LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
-+LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
- LogoMetadata::~LogoMetadata() = default;
-
- EncodedLogo::EncodedLogo() = default;
- EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
- EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
- EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
--EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
-+EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
- EncodedLogo::~EncodedLogo() = default;
-
- Logo::Logo() = default;
- Logo::~Logo() = default;
-
- LogoCallbacks::LogoCallbacks() = default;
--LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
--LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
-+LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
-+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
- LogoCallbacks::~LogoCallbacks() = default;
-
- } // namespace search_provider_logos
diff --git a/chromium-69.0.3497.81-build-sanely-please.patch b/chromium-69.0.3497.81-build-sanely-please.patch
deleted file mode 100644
index 6241a97..0000000
--- a/chromium-69.0.3497.81-build-sanely-please.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
---- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
-+++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
-@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
- public_deps += [ "//build/config/sanitizers:deps" ]
- }
-
-- if (use_custom_libcxx) {
-- public_deps += [ "//buildtools/third_party/libc++" ]
-- }
-+ # if (use_custom_libcxx) {
-+ # public_deps += [ "//buildtools/third_party/libc++" ]
-+ # }
-
- if (use_afl) {
- public_deps += [ "//third_party/afl" ]
-diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
---- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
-+++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
-@@ -15,9 +15,10 @@ declare_args() {
- # The absolute path to directory containing linux sysroot images
- target_sysroot_dir = "//build/linux"
-
-- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-- current_cpu == "arm" || current_cpu == "arm64" ||
-- current_cpu == "mipsel" || current_cpu == "mips64el"
-+ use_sysroot = false
-+ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-+ # current_cpu == "arm" || current_cpu == "arm64" ||
-+ # current_cpu == "mipsel" || current_cpu == "mips64el"
- }
-
- if (current_os == target_os && current_cpu == target_cpu &&
diff --git a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch b/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
deleted file mode 100644
index ccecfcb..0000000
--- a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h
---- chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-06 13:27:05.118766581 -0500
-+++ chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-11-06 13:27:34.575204504 -0500
-@@ -5,6 +5,8 @@
- #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
- #define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
-
-+#define __ARCH_WANT_NEW_STAT
-+
- #include <asm-generic/unistd.h>
-
- #if !defined(__NR_io_setup)
diff --git a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch b/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
deleted file mode 100644
index 5da1674..0000000
--- a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-12-14 11:17:43.249121756 -0500
-+++ chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-12-14 11:20:07.770030234 -0500
-@@ -658,7 +658,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -678,7 +678,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-72.0.3626.121-notest.patch b/chromium-72.0.3626.121-notest.patch
deleted file mode 100644
index e8b7bf4..0000000
--- a/chromium-72.0.3626.121-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd
---- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400
-+++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- <include name="IDR_WEB_UI_TEST_MOJO_LITE_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom-lite.js" use_base_dir="false" type="BINDATA"/>
- </includes>
diff --git a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
deleted file mode 100644
index f8abb52..0000000
--- a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn
---- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400
-+++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400
-@@ -31,7 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -50,7 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -101,7 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-+ extra_cppflags = "-g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -155,7 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-75.0.3770.100-git00281713.patch b/chromium-75.0.3770.100-git00281713.patch
deleted file mode 100644
index 4356435..0000000
--- a/chromium-75.0.3770.100-git00281713.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
---- chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 2019-07-02 09:10:38.951369854 -0400
-+++ chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc 2019-07-02 09:11:59.864642942 -0400
-@@ -12,13 +12,19 @@
- #include "chrome/browser/performance_manager/graph/process_node_impl.h"
- #include "chrome/browser/performance_manager/performance_manager.h"
- #include "chrome/browser/performance_manager/render_process_user_data.h"
-+#include "content/public/browser/render_process_host.h"
- #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
-
- namespace {
-
- void BindProcessNode(
-- content::RenderProcessHost* render_process_host,
-+ int render_process_host_id,
- resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
-+ content::RenderProcessHost* render_process_host =
-+ content::RenderProcessHost::FromID(render_process_host_id);
-+ if (!render_process_host)
-+ return;
-+
- performance_manager::RenderProcessUserData* user_data =
- performance_manager::RenderProcessUserData::GetForRenderProcessHost(
- render_process_host);
-@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerforman
- blink::AssociatedInterfaceRegistry* associated_registry,
- content::RenderProcessHost* render_process_host) {
- registry->AddInterface(
-- base::BindRepeating(&BindProcessNode,
-- base::Unretained(render_process_host)),
-+ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
- base::SequencedTaskRunnerHandle::Get());
-
- // Ideally this would strictly be a "CreateForRenderProcess", but when a
diff --git a/chromium-75.0.3770.80-SIOCGSTAMP.patch b/chromium-75.0.3770.80-SIOCGSTAMP.patch
deleted file mode 100644
index 0ef1e7f..0000000
--- a/chromium-75.0.3770.80-SIOCGSTAMP.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
---- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
-+++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
-@@ -16,6 +16,11 @@
- #define WEBRTC_USE_EPOLL 1
- #endif
-
-+// for SIOCGSTAMP in Linux 5.2
-+#if defined(WEBRTC_LINUX)
-+#include <linux/sockios.h>
-+#endif
-+
- #include <memory>
- #include <set>
- #include <vector>
diff --git a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
deleted file mode 100644
index 2a8ac2f..0000000
--- a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
---- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
-+++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
-@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
-
- void CompositorFrameReportingController::WillBeginMainFrame() {
- DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
-- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
-- reporters_[PipelineStage::kBeginImplFrame]);
-+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
-+ reporters_[PipelineStage::kBeginImplFrame]);
- reporters_[PipelineStage::kBeginImplFrame]->StartStage(
- "SendBeginMainFrameToCommit");
- AdvanceReporterStage(PipelineStage::kBeginImplFrame,
diff --git a/chromium-75.0.3770.80-gcc-no-assume.patch b/chromium-75.0.3770.80-gcc-no-assume.patch
deleted file mode 100644
index 0bbb08f..0000000
--- a/chromium-75.0.3770.80-gcc-no-assume.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
---- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
-+++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
-@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define EVENT(message, ...) (void(0))
- #endif
-
--#if defined(COMPILER_GCC) || defined(__clang__)
-+#if defined(__GNUC__)
- # define ANGLE_CRASH() __builtin_trap()
- #else
- # define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
-@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
--#elif defined(COMPILER_GCC)
-+#elif defined(__GNUC__)
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
diff --git a/chromium-75.0.3770.80-revert-daff6b.patch b/chromium-75.0.3770.80-revert-daff6b.patch
deleted file mode 100644
index f996898..0000000
--- a/chromium-75.0.3770.80-revert-daff6b.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
---- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
-+++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
-@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
- additional_info(match.additional_info),
- duplicate_matches(match.duplicate_matches) {}
-
--AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
-- default;
-+AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
-
- AutocompleteMatch::~AutocompleteMatch() {
- }
diff --git a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
deleted file mode 100644
index 690f0f9..0000000
--- a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
---- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
-+++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
-@@ -58,7 +58,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) {
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
deleted file mode 100644
index c836214..0000000
--- a/chromium-77.0.3865.75-boolfix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
-@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 920a53e..0000000
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
-@@ -23,9 +23,8 @@
- // Where available use builtin math overflow support on Clang and GCC.
- #elif !defined(__native_client__) && \
- ((defined(__clang__) && \
-- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ > 3) || \
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
deleted file mode 100644
index 34b858a..0000000
--- a/chromium-77.0.3865.75-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
-+++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
-+++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
-+++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <numeric>
diff --git a/chromium.spec b/chromium.spec
index f0af194..e32ff17 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,114 +164,61 @@ Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8db…
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-77.0.3865.75-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-77.0.3865.75-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c57…
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb88987c…
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
+
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c60…
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
-Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
-Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
-Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
-# Needs to be submitted..
-Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec571…
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e464058…
-Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e8b…
-Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897ee…
-Patch70: chromium-77.0.3865.75-missing-limits.patch
+Patch60: chromium-77.0.3865.75-missing-limits.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
@@ -757,60 +704,40 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%patch18 -p1 -b .nozmangle
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-#%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch45 -p1 -b .gettid-fix
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
-%patch65 -p1 -b .unbundle-zlib
-%patch66 -p1 -b .gcc-include-memory
-%patch67 -p1 -b .base-gcc-no-alignas
-%patch68 -p1 -b .harfbuzz-subset
-%patch69 -p1 -b .gcc-abstract-class
-%patch70 -p1 -b .missing-limits
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
%endif
@@ -1287,6 +1214,11 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
echo
# Now do the full browser
%if 0%{freeworld}
commit 1fb9b47fde081c17a41b77000d2b13167a6ef630
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:45:43 2019 +0200
Fix how the arguments are passed to GN's bootstrap.py
I don't know why, but previously it was failing only on aarch64.
diff --git a/chromium.spec b/chromium.spec
index 41a43d1..f0af194 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1256,7 +1256,7 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
commit 5e096a366bc3f459996bda46f118e8fa681496a0
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:37:33 2019 +0200
Remove support for (p)NaCL
We don't build it for quite some time and will by killed by Google in
Spring 2020. Let's drop the support for it from the SPEC file. We can
revert this patch if needed.
diff --git a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch b/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
deleted file mode 100644
index c422957..0000000
--- a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc
---- chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count 2015-12-15 14:48:07.119011866 -0500
-+++ chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc 2015-12-15 14:48:14.151850055 -0500
-@@ -153,6 +153,14 @@ void NaClSandbox::InitializeLayerOneSand
- }
-
- void NaClSandbox::CheckForExpectedNumberOfOpenFds() {
-+ // Whatever logic this code is using is wrong more often than it is right.
-+ // If you set expected_num_fds to 6, it finds 7.
-+ // If you set expected_num_fds to 7, it finds 6.
-+ // Code like this makes a packager drink. And not the good stuff either.
-+ // Instead, we're just going to smile and tell it to never care about the
-+ // number of FDs open. Stupid code. We hates it.
-+
-+#if 0
- // We expect to have the following FDs open:
- // 1-3) stdin, stdout, stderr.
- // 4) The /dev/urandom FD used by base::GetUrandomFD().
-@@ -171,6 +179,8 @@ void NaClSandbox::CheckForExpectedNumber
- }
-
- CHECK_EQ(expected_num_fds, sandbox::ProcUtil::CountOpenFds(proc_fd_.get()));
-+#endif
-+
- }
-
- void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) {
diff --git a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch b/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
deleted file mode 100644
index bfe0422..0000000
--- a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
---- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
-+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
-@@ -1564,6 +1564,7 @@
- '-Wno-char-subscripts',
- '-Wno-unused-function',
- '-std=gnu++11',
-+ '-fgnu-inline-asm',
- ],
- 'native_irt_compile_flags': [
- # IRT compile/link flags to make the binary smaller.
diff --git a/chromium.spec b/chromium.spec
index 838e4b8..41a43d1 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,32 +70,11 @@
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -298,16 +277,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-77.0.3865.75-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -415,24 +384,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -865,11 +816,6 @@ udev.
%endif
# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -898,101 +844,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1063,9 +914,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1227,9 +1076,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0
@@ -1460,20 +1306,8 @@ echo
# remote client
# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
-%build_target %{builddir} remoting_webapp
-%endif
-%endif
-
%endif
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf %{builddir}/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
-
%install
rm -rf %{buildroot}
@@ -1511,10 +1345,6 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
%if 0
cp -a protoc pyproto %{buildroot}%{chromium_path}
@@ -1596,12 +1426,6 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-%endif
-
%if %{build_headless}
pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
@@ -1742,12 +1566,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
%if 0
%{chromium_path}/protoc
@@ -1861,11 +1679,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
-%endif
%files -n chromedriver
%doc AUTHORS
commit 18d61f508bd415e9adebb31e5c76f67049d6e5dc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 13:36:44 2019 +0200
Don't try to revert a previously removed patch
diff --git a/chromium.spec b/chromium.spec
index 883277c..838e4b8 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -862,8 +862,6 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
# Feature specific patches
commit 58128e168f2cad680db52f8be0d98a2bbd85b556
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:25:20 2019 +0200
Fix the icon
Remove quite a few of downstream patches
Fix the crashes by backporting an upstream bug
Resolves: rhbz#1754179
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index 930b750..ff76b24 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -158,7 +158,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -218,6 +218,8 @@ Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897ee…
Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8efb…
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -730,6 +732,7 @@ udev.
%patch58 -p1 -b .harfbuzz-subset
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
# Fedora branded user agent
%if 0%{?fedora}
@@ -1632,6 +1635,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
- Update to 77.0.3865.90
commit 67e04f35f09abe468100109658f02b424c59286c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:21:06 2019 +0200
Fix the icon
So the monochromatic icon is being shown even in the GNOME's overview
and it's ugly (as it's upscaled from 22x22). Remove it.
diff --git a/chromium.spec b/chromium.spec
index e6a6f88..930b750 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1388,8 +1388,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
-cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 3c95810693ba39059f8b50d3d59b713c0df0fd87
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:57:18 2019 +0200
Remove the unused patches or patches that are not needed anymore
Also replace some patches with changes in the SPEC file.
diff --git a/chromium-45.0.2454.101-linux-path-max.patch b/chromium-45.0.2454.101-linux-path-max.patch
deleted file mode 100644
index 3146349..0000000
--- a/chromium-45.0.2454.101-linux-path-max.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax 2015-10-07 11:26:11.813477839 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h 2015-10-07 11:26:40.845845054 -0400
-@@ -12,6 +12,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- namespace nacl_io {
-
- class Path {
-diff -up chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c
---- chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax 2015-08-22 15:02:08.000000000 -0400
-+++ chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c 2015-10-07 10:58:56.172018783 -0400
-@@ -11,6 +11,10 @@
-
- #include <errno.h>
- #include <limits.h>
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax 2015-10-09 10:57:38.424348662 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c 2015-10-09 10:57:51.541059938 -0400
-@@ -13,6 +13,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- EXTERN_C_BEGIN
-
- #if defined(__native_client__)
diff --git a/chromium-53.0.2785.92-boringssl-time-fix.patch b/chromium-53.0.2785.92-boringssl-time-fix.patch
deleted file mode 100644
index 8d67957..0000000
--- a/chromium-53.0.2785.92-boringssl-time-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c
---- chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix 2016-09-06 15:20:06.094396255 -0400
-+++ chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c 2016-09-06 15:20:16.893187930 -0400
-@@ -56,6 +56,7 @@
- * [including the GNU Public Licence.] */
-
- #include <string.h>
-+#include <time.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-
diff --git a/chromium-54.0.2840.59-jpeg-include-dir.patch b/chromium-54.0.2840.59-jpeg-include-dir.patch
deleted file mode 100644
index f96a56c..0000000
--- a/chromium-54.0.2840.59-jpeg-include-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix chromium-54.0.2840.59/third_party/BUILD.gn
---- chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix 2016-10-17 11:45:44.995340495 -0400
-+++ chromium-54.0.2840.59/third_party/BUILD.gn 2016-10-17 11:46:35.254289872 -0400
-@@ -20,6 +20,7 @@ declare_args() {
- config("system_libjpeg_config") {
- libs = [ "jpeg" ]
- defines = [ "USE_SYSTEM_LIBJPEG" ]
-+ include_dirs = [ "/usr/include/" ]
- }
-
- config("libjpeg_turbo_config") {
diff --git a/chromium-55.0.2883.75-addrfix.patch b/chromium-55.0.2883.75-addrfix.patch
deleted file mode 100644
index 00c214c..0000000
--- a/chromium-55.0.2883.75-addrfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix chromium-55.0.2883.75/third_party/boringssl/BUILD.gn
---- chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix 2016-12-12 15:30:27.727834891 -0500
-+++ chromium-55.0.2883.75/third_party/boringssl/BUILD.gn 2016-12-12 15:30:53.095709352 -0500
-@@ -24,6 +24,7 @@ config("internal_config") {
- "BORINGSSL_IMPLEMENTATION",
- "BORINGSSL_NO_STATIC_INITIALIZER",
- "OPENSSL_SMALL",
-+ "_POSIX_C_SOURCE=200112L",
- ]
- configs = [
- # TODO(davidben): Fix size_t truncations in BoringSSL.
diff --git a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
deleted file mode 100644
index 9dde4c5..0000000
--- a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
-@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
diff --git a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
deleted file mode 100644
index 7248825..0000000
--- a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
---- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
-+++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
-@@ -39,13 +39,13 @@
- #include "log.h"
-
- #if ARCH_AARCH64
--# include "aarch64/timer.h"
-+# include "libavutil/aarch64/timer.h"
- #elif ARCH_ARM
--# include "arm/timer.h"
-+# include "libavutil/arm/timer.h"
- #elif ARCH_PPC
--# include "ppc/timer.h"
-+# include "libavutil/ppc/timer.h"
- #elif ARCH_X86
--# include "x86/timer.h"
-+# include "libavutil/x86/timer.h"
- #endif
-
- #if !defined(AV_READ_TIME)
diff --git a/chromium-62.0.3202.62-kmaxskip-constexpr.patch b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
deleted file mode 100644
index d4f8250..0000000
--- a/chromium-62.0.3202.62-kmaxskip-constexpr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
---- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
-+++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
-@@ -336,7 +336,7 @@ TYPES(M);
- #undef TYPES
-
- const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
--const size_t PaintOp::kMaxSkip;
-+constexpr size_t PaintOp::kMaxSkip;
-
- std::string PaintOpTypeToString(PaintOpType type) {
- switch (type) {
diff --git a/chromium-63.0.3289.84-nullfix.patch b/chromium-63.0.3289.84-nullfix.patch
deleted file mode 100644
index c66aff1..0000000
--- a/chromium-63.0.3289.84-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn
---- chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix 2017-12-06 15:05:21.000000000 -0500
-+++ chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn 2017-12-07 10:44:34.507207080 -0500
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -186,6 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
deleted file mode 100644
index 64c5f26..0000000
--- a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
---- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
-+++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
-@@ -18,7 +18,13 @@
-
- #include <stddef.h>
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "attributes.h"
- #include "cpu.h"
diff --git a/chromium-65.0.3325.146-gcc-round-fix.patch b/chromium-65.0.3325.146-gcc-round-fix.patch
deleted file mode 100644
index a29779d..0000000
--- a/chromium-65.0.3325.146-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
---- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <utility>
diff --git a/chromium-65.0.3325.146-memcpy-fix.patch b/chromium-65.0.3325.146-memcpy-fix.patch
deleted file mode 100644
index b2b2cd4..0000000
--- a/chromium-65.0.3325.146-memcpy-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
-+++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
-@@ -3,7 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
--
-+#include <memory.h>
- #include <string.h>
-
- namespace cc {
diff --git a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index d5b19cf..0000000
--- a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
-+++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
-@@ -11,13 +11,13 @@
- #include "base/callback_forward.h"
- #include "base/macros.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-66.0.3359.117-system-clang.patch b/chromium-66.0.3359.117-system-clang.patch
deleted file mode 100644
index e90dc58..0000000
--- a/chromium-66.0.3359.117-system-clang.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
---- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
-+++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
-@@ -4,7 +4,7 @@
-
- import("//build/toolchain/toolchain.gni")
-
--default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+default_clang_base_path = "/usr"
-
- declare_args() {
- # Indicates if the build should use the Chrome-specific plugins for enforcing
diff --git a/chromium-67.0.3396.62-gcc5.patch b/chromium-67.0.3396.62-gcc5.patch
deleted file mode 100644
index ceef85d..0000000
--- a/chromium-67.0.3396.62-gcc5.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
-+++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
-@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
diff --git a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch b/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
deleted file mode 100644
index 4a92fba..0000000
--- a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc
---- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
-+++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
-@@ -14,22 +14,22 @@ LogoMetadata::LogoMetadata() = default;
- LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
- LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
- LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
--LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
-+LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
- LogoMetadata::~LogoMetadata() = default;
-
- EncodedLogo::EncodedLogo() = default;
- EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
- EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
- EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
--EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
-+EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
- EncodedLogo::~EncodedLogo() = default;
-
- Logo::Logo() = default;
- Logo::~Logo() = default;
-
- LogoCallbacks::LogoCallbacks() = default;
--LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
--LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
-+LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
-+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
- LogoCallbacks::~LogoCallbacks() = default;
-
- } // namespace search_provider_logos
diff --git a/chromium-69.0.3497.81-build-sanely-please.patch b/chromium-69.0.3497.81-build-sanely-please.patch
deleted file mode 100644
index 6241a97..0000000
--- a/chromium-69.0.3497.81-build-sanely-please.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
---- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
-+++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
-@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
- public_deps += [ "//build/config/sanitizers:deps" ]
- }
-
-- if (use_custom_libcxx) {
-- public_deps += [ "//buildtools/third_party/libc++" ]
-- }
-+ # if (use_custom_libcxx) {
-+ # public_deps += [ "//buildtools/third_party/libc++" ]
-+ # }
-
- if (use_afl) {
- public_deps += [ "//third_party/afl" ]
-diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
---- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
-+++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
-@@ -15,9 +15,10 @@ declare_args() {
- # The absolute path to directory containing linux sysroot images
- target_sysroot_dir = "//build/linux"
-
-- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-- current_cpu == "arm" || current_cpu == "arm64" ||
-- current_cpu == "mipsel" || current_cpu == "mips64el"
-+ use_sysroot = false
-+ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-+ # current_cpu == "arm" || current_cpu == "arm64" ||
-+ # current_cpu == "mipsel" || current_cpu == "mips64el"
- }
-
- if (current_os == target_os && current_cpu == target_cpu &&
diff --git a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch b/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
deleted file mode 100644
index ccecfcb..0000000
--- a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h
---- chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-06 13:27:05.118766581 -0500
-+++ chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-11-06 13:27:34.575204504 -0500
-@@ -5,6 +5,8 @@
- #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
- #define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
-
-+#define __ARCH_WANT_NEW_STAT
-+
- #include <asm-generic/unistd.h>
-
- #if !defined(__NR_io_setup)
diff --git a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch b/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
deleted file mode 100644
index 5da1674..0000000
--- a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-12-14 11:17:43.249121756 -0500
-+++ chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-12-14 11:20:07.770030234 -0500
-@@ -658,7 +658,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -678,7 +678,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-72.0.3626.121-notest.patch b/chromium-72.0.3626.121-notest.patch
deleted file mode 100644
index e8b7bf4..0000000
--- a/chromium-72.0.3626.121-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd
---- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400
-+++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- <include name="IDR_WEB_UI_TEST_MOJO_LITE_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom-lite.js" use_base_dir="false" type="BINDATA"/>
- </includes>
diff --git a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
deleted file mode 100644
index f8abb52..0000000
--- a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn
---- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400
-+++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400
-@@ -31,7 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -50,7 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -101,7 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-+ extra_cppflags = "-g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -155,7 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-75.0.3770.100-git00281713.patch b/chromium-75.0.3770.100-git00281713.patch
deleted file mode 100644
index 4356435..0000000
--- a/chromium-75.0.3770.100-git00281713.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
---- chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 2019-07-02 09:10:38.951369854 -0400
-+++ chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc 2019-07-02 09:11:59.864642942 -0400
-@@ -12,13 +12,19 @@
- #include "chrome/browser/performance_manager/graph/process_node_impl.h"
- #include "chrome/browser/performance_manager/performance_manager.h"
- #include "chrome/browser/performance_manager/render_process_user_data.h"
-+#include "content/public/browser/render_process_host.h"
- #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
-
- namespace {
-
- void BindProcessNode(
-- content::RenderProcessHost* render_process_host,
-+ int render_process_host_id,
- resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
-+ content::RenderProcessHost* render_process_host =
-+ content::RenderProcessHost::FromID(render_process_host_id);
-+ if (!render_process_host)
-+ return;
-+
- performance_manager::RenderProcessUserData* user_data =
- performance_manager::RenderProcessUserData::GetForRenderProcessHost(
- render_process_host);
-@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerforman
- blink::AssociatedInterfaceRegistry* associated_registry,
- content::RenderProcessHost* render_process_host) {
- registry->AddInterface(
-- base::BindRepeating(&BindProcessNode,
-- base::Unretained(render_process_host)),
-+ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
- base::SequencedTaskRunnerHandle::Get());
-
- // Ideally this would strictly be a "CreateForRenderProcess", but when a
diff --git a/chromium-75.0.3770.80-SIOCGSTAMP.patch b/chromium-75.0.3770.80-SIOCGSTAMP.patch
deleted file mode 100644
index 0ef1e7f..0000000
--- a/chromium-75.0.3770.80-SIOCGSTAMP.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
---- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
-+++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
-@@ -16,6 +16,11 @@
- #define WEBRTC_USE_EPOLL 1
- #endif
-
-+// for SIOCGSTAMP in Linux 5.2
-+#if defined(WEBRTC_LINUX)
-+#include <linux/sockios.h>
-+#endif
-+
- #include <memory>
- #include <set>
- #include <vector>
diff --git a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
deleted file mode 100644
index 2a8ac2f..0000000
--- a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
---- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
-+++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
-@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
-
- void CompositorFrameReportingController::WillBeginMainFrame() {
- DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
-- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
-- reporters_[PipelineStage::kBeginImplFrame]);
-+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
-+ reporters_[PipelineStage::kBeginImplFrame]);
- reporters_[PipelineStage::kBeginImplFrame]->StartStage(
- "SendBeginMainFrameToCommit");
- AdvanceReporterStage(PipelineStage::kBeginImplFrame,
diff --git a/chromium-75.0.3770.80-gcc-no-assume.patch b/chromium-75.0.3770.80-gcc-no-assume.patch
deleted file mode 100644
index 0bbb08f..0000000
--- a/chromium-75.0.3770.80-gcc-no-assume.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
---- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
-+++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
-@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define EVENT(message, ...) (void(0))
- #endif
-
--#if defined(COMPILER_GCC) || defined(__clang__)
-+#if defined(__GNUC__)
- # define ANGLE_CRASH() __builtin_trap()
- #else
- # define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
-@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
--#elif defined(COMPILER_GCC)
-+#elif defined(__GNUC__)
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
diff --git a/chromium-75.0.3770.80-revert-daff6b.patch b/chromium-75.0.3770.80-revert-daff6b.patch
deleted file mode 100644
index f996898..0000000
--- a/chromium-75.0.3770.80-revert-daff6b.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
---- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
-+++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
-@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
- additional_info(match.additional_info),
- duplicate_matches(match.duplicate_matches) {}
-
--AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
-- default;
-+AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
-
- AutocompleteMatch::~AutocompleteMatch() {
- }
diff --git a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
deleted file mode 100644
index 690f0f9..0000000
--- a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
---- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
-+++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
-@@ -58,7 +58,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) {
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
deleted file mode 100644
index c836214..0000000
--- a/chromium-77.0.3865.75-boolfix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
-@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 920a53e..0000000
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
-@@ -23,9 +23,8 @@
- // Where available use builtin math overflow support on Clang and GCC.
- #elif !defined(__native_client__) && \
- ((defined(__clang__) && \
-- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ > 3) || \
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
deleted file mode 100644
index 34b858a..0000000
--- a/chromium-77.0.3865.75-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
-+++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
-+++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
-+++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <numeric>
diff --git a/chromium.spec b/chromium.spec
index c41439f..e6a6f88 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,114 +164,61 @@ Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8db…
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-77.0.3865.75-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-77.0.3865.75-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c57…
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb88987c…
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
+
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c60…
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
-Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
-Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
-Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
-# Needs to be submitted..
-Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec571…
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e464058…
-Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e8b…
-Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897ee…
-Patch70: chromium-77.0.3865.75-missing-limits.patch
+Patch60: chromium-77.0.3865.75-missing-limits.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
@@ -757,60 +704,40 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%patch18 -p1 -b .nozmangle
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-#%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch45 -p1 -b .gettid-fix
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
-%patch65 -p1 -b .unbundle-zlib
-%patch66 -p1 -b .gcc-include-memory
-%patch67 -p1 -b .base-gcc-no-alignas
-%patch68 -p1 -b .harfbuzz-subset
-%patch69 -p1 -b .gcc-abstract-class
-%patch70 -p1 -b .missing-limits
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
%endif
@@ -1287,6 +1214,11 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
echo
# Now do the full browser
%if 0%{freeworld}
commit 3eaa3be79d851bec300e909dcb9093bd045f3964
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:45:43 2019 +0200
Fix how the arguments are passed to GN's bootstrap.py
I don't know why, but previously it was failing only on aarch64.
diff --git a/chromium.spec b/chromium.spec
index 7fe074d..c41439f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1256,7 +1256,7 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
commit 51e320816fc4959c841fc78bb7ef205c79024064
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:37:33 2019 +0200
Remove support for (p)NaCL
We don't build it for quite some time and will by killed by Google in
Spring 2020. Let's drop the support for it from the SPEC file. We can
revert this patch if needed.
diff --git a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch b/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
deleted file mode 100644
index c422957..0000000
--- a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc
---- chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count 2015-12-15 14:48:07.119011866 -0500
-+++ chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc 2015-12-15 14:48:14.151850055 -0500
-@@ -153,6 +153,14 @@ void NaClSandbox::InitializeLayerOneSand
- }
-
- void NaClSandbox::CheckForExpectedNumberOfOpenFds() {
-+ // Whatever logic this code is using is wrong more often than it is right.
-+ // If you set expected_num_fds to 6, it finds 7.
-+ // If you set expected_num_fds to 7, it finds 6.
-+ // Code like this makes a packager drink. And not the good stuff either.
-+ // Instead, we're just going to smile and tell it to never care about the
-+ // number of FDs open. Stupid code. We hates it.
-+
-+#if 0
- // We expect to have the following FDs open:
- // 1-3) stdin, stdout, stderr.
- // 4) The /dev/urandom FD used by base::GetUrandomFD().
-@@ -171,6 +179,8 @@ void NaClSandbox::CheckForExpectedNumber
- }
-
- CHECK_EQ(expected_num_fds, sandbox::ProcUtil::CountOpenFds(proc_fd_.get()));
-+#endif
-+
- }
-
- void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) {
diff --git a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch b/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
deleted file mode 100644
index bfe0422..0000000
--- a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
---- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
-+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
-@@ -1564,6 +1564,7 @@
- '-Wno-char-subscripts',
- '-Wno-unused-function',
- '-std=gnu++11',
-+ '-fgnu-inline-asm',
- ],
- 'native_irt_compile_flags': [
- # IRT compile/link flags to make the binary smaller.
diff --git a/chromium.spec b/chromium.spec
index 38d8c20..7fe074d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,32 +70,11 @@
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -298,16 +277,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-77.0.3865.75-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -415,24 +384,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -865,11 +816,6 @@ udev.
%endif
# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -898,101 +844,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1063,9 +914,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1227,9 +1076,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0
@@ -1460,20 +1306,8 @@ echo
# remote client
# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
-%build_target %{builddir} remoting_webapp
-%endif
-%endif
-
%endif
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf %{builddir}/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
-
%install
rm -rf %{buildroot}
@@ -1511,10 +1345,6 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
%if 0
cp -a protoc pyproto %{buildroot}%{chromium_path}
@@ -1596,12 +1426,6 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-%endif
-
%if %{build_headless}
pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
@@ -1742,12 +1566,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
%if 0
%{chromium_path}/protoc
@@ -1861,11 +1679,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
-%endif
%files -n chromedriver
%doc AUTHORS
commit 47afdc42ed500067d2e4cc5b3df8295c0e08eac6
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 13:36:44 2019 +0200
Don't try to revert a previously removed patch
diff --git a/chromium.spec b/chromium.spec
index 6b2691a..38d8c20 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -862,8 +862,6 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
# Feature specific patches
commit 67cc152547bab79180a8595720d72dd9ef7ccfbe
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 19 07:58:49 2019 +0200
Update to 77.0.3865.90
diff --git a/chromium.spec b/chromium.spec
index 2b39cea..6b2691a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -178,8 +178,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.90
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
- Update the list of private libraries
diff --git a/sources b/sources
index b9b0498..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit 2aa7959287a7aaf9cd5dd371c01fe46e93b35d4e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 08:05:03 2019 +0200
Forget to generate diff for one affected el7-noexcept file
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
index 59b6fa9..366c139 100644
--- a/chromium-77.0.3865.75-el7-noexcept.patch
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -58,6 +58,18 @@ diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.e
~QueryURLResult();
// Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
+++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
commit 7b637c4471031d1d30a2204758e1e820f8dfebce
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 06:35:01 2019 +0200
Update the el7 noexcept patch and fix the el7 build
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
deleted file mode 100644
index 407f8de..0000000
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
---- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
-@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
- Swap(&other);
- }
-
--QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
-+QueryResults& QueryResults::operator=(QueryResults&& other) {
- Swap(&other);
- return *this;
- }
-@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
-
- QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
-
--QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
-+QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
-
- // MostVisitedURL --------------------------------------------------------------
-
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
---- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
-@@ -143,7 +143,7 @@ class QueryResults {
- ~QueryResults();
-
- QueryResults(QueryResults&& other) noexcept;
-- QueryResults& operator=(QueryResults&& other) noexcept;
-+ QueryResults& operator=(QueryResults&& other);
-
- void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
- bool reached_beginning() { return reached_beginning_; }
-@@ -278,7 +278,7 @@ struct QueryURLResult {
- QueryURLResult(const QueryURLResult&);
- QueryURLResult(QueryURLResult&&) noexcept;
- QueryURLResult& operator=(const QueryURLResult&);
-- QueryURLResult& operator=(QueryURLResult&&) noexcept;
-+ QueryURLResult& operator=(QueryURLResult&&);
- ~QueryURLResult();
-
- // Indicates whether the call to HistoryBackend::QueryURL was successfull
-diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
-@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
-@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
-@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
-
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
-@@ -19,7 +19,7 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+ CoreAccountId& operator=(CoreAccountId&&);
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
-diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
-@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..59b6fa9
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,153 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium.spec b/chromium.spec
index 38911e2..2b39cea 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -296,7 +296,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
commit d30cc0e5c57bc0e11e6af60e0d278ab72f83f6eb
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 19 07:58:49 2019 +0200
Update to 77.0.3865.90
diff --git a/chromium.spec b/chromium.spec
index 1c05a5b..883277c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -178,8 +178,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.90
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
- Update the list of private libraries
diff --git a/sources b/sources
index b9b0498..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit 8564a8c0249dfd591b07c9414454f817c61af1ab
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 08:05:03 2019 +0200
Forget to generate diff for one affected el7-noexcept file
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
index 59b6fa9..366c139 100644
--- a/chromium-77.0.3865.75-el7-noexcept.patch
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -58,6 +58,18 @@ diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.e
~QueryURLResult();
// Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
+++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
commit 65bf37589cce82019ca9f09951e2dcc54da36b6a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 06:35:01 2019 +0200
Update the el7 noexcept patch and fix the el7 build
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
deleted file mode 100644
index 407f8de..0000000
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
---- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
-@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
- Swap(&other);
- }
-
--QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
-+QueryResults& QueryResults::operator=(QueryResults&& other) {
- Swap(&other);
- return *this;
- }
-@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
-
- QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
-
--QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
-+QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
-
- // MostVisitedURL --------------------------------------------------------------
-
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
---- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
-@@ -143,7 +143,7 @@ class QueryResults {
- ~QueryResults();
-
- QueryResults(QueryResults&& other) noexcept;
-- QueryResults& operator=(QueryResults&& other) noexcept;
-+ QueryResults& operator=(QueryResults&& other);
-
- void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
- bool reached_beginning() { return reached_beginning_; }
-@@ -278,7 +278,7 @@ struct QueryURLResult {
- QueryURLResult(const QueryURLResult&);
- QueryURLResult(QueryURLResult&&) noexcept;
- QueryURLResult& operator=(const QueryURLResult&);
-- QueryURLResult& operator=(QueryURLResult&&) noexcept;
-+ QueryURLResult& operator=(QueryURLResult&&);
- ~QueryURLResult();
-
- // Indicates whether the call to HistoryBackend::QueryURL was successfull
-diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
-@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
-@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
-@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
-
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
-@@ -19,7 +19,7 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+ CoreAccountId& operator=(CoreAccountId&&);
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
-diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
-@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..59b6fa9
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,153 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium.spec b/chromium.spec
index 8df9fa0..1c05a5b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -296,7 +296,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
commit 2a431ec174c08be608abec360a4fb191aa9464e4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 19 07:58:49 2019 +0200
Update to 77.0.3865.90
diff --git a/chromium.spec b/chromium.spec
index 2b39cea..6b2691a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -178,8 +178,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.90
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
- Update the list of private libraries
diff --git a/sources b/sources
index b9b0498..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit c8786bde9b73d933dab3ea7f6c581461882d9c45
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 08:05:03 2019 +0200
Forget to generate diff for one affected el7-noexcept file
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
index 59b6fa9..366c139 100644
--- a/chromium-77.0.3865.75-el7-noexcept.patch
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -58,6 +58,18 @@ diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.e
~QueryURLResult();
// Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
+++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
commit 10a2ce3a34eeaa2c0a4286cd682bd448e0f0c727
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 06:35:01 2019 +0200
Update the el7 noexcept patch and fix the el7 build
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
deleted file mode 100644
index 407f8de..0000000
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
---- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
-@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
- Swap(&other);
- }
-
--QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
-+QueryResults& QueryResults::operator=(QueryResults&& other) {
- Swap(&other);
- return *this;
- }
-@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
-
- QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
-
--QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
-+QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
-
- // MostVisitedURL --------------------------------------------------------------
-
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
---- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
-@@ -143,7 +143,7 @@ class QueryResults {
- ~QueryResults();
-
- QueryResults(QueryResults&& other) noexcept;
-- QueryResults& operator=(QueryResults&& other) noexcept;
-+ QueryResults& operator=(QueryResults&& other);
-
- void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
- bool reached_beginning() { return reached_beginning_; }
-@@ -278,7 +278,7 @@ struct QueryURLResult {
- QueryURLResult(const QueryURLResult&);
- QueryURLResult(QueryURLResult&&) noexcept;
- QueryURLResult& operator=(const QueryURLResult&);
-- QueryURLResult& operator=(QueryURLResult&&) noexcept;
-+ QueryURLResult& operator=(QueryURLResult&&);
- ~QueryURLResult();
-
- // Indicates whether the call to HistoryBackend::QueryURL was successfull
-diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
-@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
-@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
-@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
-
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
-@@ -19,7 +19,7 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+ CoreAccountId& operator=(CoreAccountId&&);
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
-diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
-@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..59b6fa9
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,153 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium.spec b/chromium.spec
index 38911e2..2b39cea 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -296,7 +296,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
commit 33d340b63aeeede9ceb7a646d3d4d06faae0178a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:23:29 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 496b922..38911e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -179,7 +179,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
- Update to 77.0.3865.75
commit 8f89cb9012b72ef618828a06e3fd2cff52812c75
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:21:14 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index d2436e2..496b922 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -52,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -61,9 +61,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
commit d8c8b864697a920d705fe5ff2336dd234582b1fc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:23:29 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 29a98c0..8df9fa0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -179,7 +179,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
- Update to 77.0.3865.75
commit 7b0eb5189f249fbbbbdb3898b9b2d6f82193597a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:21:14 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 07dc939..29a98c0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -52,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -61,9 +61,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
commit de3e9b33bbe4855083c5bb26f7e779b7fda87d8b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:23:29 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 496b922..38911e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -179,7 +179,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
- Update to 77.0.3865.75
commit dd3c28c89ec41f3999f065bab972221f5316b87a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:21:14 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index d2436e2..496b922 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -52,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -61,9 +61,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
commit 91e065368c471af52d51eabc4bb1cecf43d1aa7c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:11:22 2019 +0200
22x22 icon was removed and use the symbolic one as well
diff --git a/chromium.spec b/chromium.spec
index 799b55b..d2436e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1634,8 +1634,8 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
+cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 78050fc457fd3214d2d039f403eaa7860b19e698
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:08:54 2019 +0200
Fix the aarch64 build
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium.spec b/chromium.spec
index 760805e..799b55b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -288,6 +288,8 @@ Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e8b…
Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897ee…
+Patch70: chromium-77.0.3865.75-missing-limits.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -853,6 +855,7 @@ udev.
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
%patch69 -p1 -b .gcc-abstract-class
+%patch70 -p1 -b .missing-limits
# EPEL specific patches
%if 0%{?rhel} == 7
commit 13a5dba5beca40ad695d05c2534d2791fc19f185
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 19:15:24 2019 +0200
Customize the ninja status to show the currently build target
So one is able to realize faster, where the build is failing.
diff --git a/chromium.spec b/chromium.spec
index 625d74d..760805e 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompila…
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -1403,17 +1410,17 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
fi
tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1433,34 +1440,36 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
-echo
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%if 0%{?build_remoting_app}
%if 0%{?nacl}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
+%build_target %{builddir} remoting_webapp
%endif
%endif
-popd
%endif
# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
+rm -rf %{builddir}/gen/sdk
rm -rf native_client/toolchain
rm -rf third_party/llvm-build/*
@@ -1470,7 +1479,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1499,7 +1508,7 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
%if 0%{?nacl}
cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
@@ -1550,7 +1559,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1593,7 +1602,7 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
commit 247c850861933c33f91ad4f78ee2c794073c51ec
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 17:06:52 2019 +0200
Backport another GCC build fix
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium.spec b/chromium.spec
index 4a74346..625d74d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -279,6 +279,8 @@ Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e464058…
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e8b…
+Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -843,6 +845,7 @@ udev.
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
+%patch69 -p1 -b .gcc-abstract-class
# EPEL specific patches
%if 0%{?rhel} == 7
commit c8be01a2e685fd25e57c8264adec337b61b66fb4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:10:29 2019 +0200
Don't remove an additional bundled library
diff --git a/chromium.spec b/chromium.spec
index 277fcfe..4a74346 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1234,6 +1234,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
'third_party/one_euro_filter' \
'third_party/ots' \
commit 359c9903b5538c413854254c8b26dae0b073807c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:09:46 2019 +0200
More of the harfbuzz related fixes
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium.spec b/chromium.spec
index b959409..277fcfe 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -277,6 +277,8 @@ Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Needs to be submitted..
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e464058…
+Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -362,7 +364,7 @@ BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -624,7 +626,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -840,6 +842,7 @@ udev.
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
+%patch68 -p1 -b .harfbuzz-subset
# EPEL specific patches
%if 0%{?rhel} == 7
commit 28b564b6156d6e38ff68ad310283343080df1fa4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:13:56 2019 +0200
Fix the release number and add a changelog entry
diff --git a/chromium.spec b/chromium.spec
index dca072c..b959409 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1872,6 +1872,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit 5008833513c462f884857764071fb645359808b6
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:06:07 2019 +0200
Preserve the spirv heads for swiftshader compilation
diff --git a/chromium.spec b/chromium.spec
index 328b149..dca072c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1277,6 +1277,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
commit fee98db480314bb5e353f827c303625b0075df77
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:05:31 2019 +0200
Another export and alignas gcc compilation fix
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium.spec b/chromium.spec
index a6daffc..328b149 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -275,6 +275,8 @@ Patch64: chromium-77.0.3865.75-certificate-transparency.patch
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
+# Needs to be submitted..
+Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -837,6 +839,7 @@ udev.
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
+%patch67 -p1 -b .base-gcc-no-alignas
# EPEL specific patches
%if 0%{?rhel} == 7
commit 0d2fa426aafe8f3f7f15c8e101b18fd285a4b31e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 21:48:17 2019 +0200
Remove an unneeded patch that's breaking the build
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
deleted file mode 100644
index 385778c..0000000
--- a/chromium-77.0.3865.75-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
---- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
-+++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
-@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
- return new_element_dictionary;
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium.spec b/chromium.spec
index 129f8b9..a6daffc 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -262,9 +262,6 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd55053…
-Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c60…
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -834,7 +831,6 @@ udev.
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
commit e37acb8e8cd7fda722a059bc3aba28632ff869ac
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:00:03 2019 +0200
Use the bundled harfbuzz-ng for < F31
Needed because of the hb_subset_input_set_retain_gids(), that's only
available in harbuzz 2.4 that's only in F31+
diff --git a/chromium.spec b/chromium.spec
index 980a57d..129f8b9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -133,9 +133,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
commit 8b6db4ec93c82a6728a448af05ba5428864c58ab
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:24:09 2019 +0200
Include <memory> to fix the headless build
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium.spec b/chromium.spec
index 92e6b78..980a57d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -276,6 +276,8 @@ Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -838,6 +840,7 @@ udev.
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
+%patch66 -p1 -b .gcc-include-memory
# EPEL specific patches
%if 0%{?rhel} == 7
commit 80ef5cb4da29d6d1e0bedffe53af531e28040457
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:54 2019 +0200
Update the clean-ffmpeg.sh script
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..fd226e8 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -138,6 +138,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/vlc.h \
libavcodec/vorbisdsp.h \
libavcodec/vp3data.h \
+ libavcodec/vp4data.h \
libavcodec/vp3dsp.h \
libavcodec/vp56.h \
libavcodec/vp56dsp.h \
diff --git a/sources b/sources
index a1d28bf..b9b0498 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
commit 31afa2bf6dfc8537a79fd58010029ec6622de34a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:21:43 2019 +0200
Fix the previously rebased patched
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
index d342e2d..920a53e 100644
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -1,13 +1,15 @@
diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
-@@ -24,8 +24,7 @@
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
+@@ -23,9 +23,8 @@
+ // Where available use builtin math overflow support on Clang and GCC.
#elif !defined(__native_client__) && \
((defined(__clang__) && \
- ((__clang_major__ > 3) || \
+- ((__clang_major__ > 3) || \
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
++ (__clang_major__ > 3) || \
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
#include "base/numerics/safe_math_clang_gcc_impl.h"
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
#else
commit 99274dda89d3248891ab242510770ba8ce139f9c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:23:46 2019 +0200
Missing bundled dependency for headless
diff --git a/chromium.spec b/chromium.spec
index 440ec40..92e6b78 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1230,6 +1230,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/openscreen' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
commit e8aad2e8bc7f279896289cf59692f79386fde464
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:03 2019 +0200
Unbundle the zlib
Use the gentoo patch.
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium.spec b/chromium.spec
index a943ad5..440ec40 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -274,6 +274,8 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
+Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -835,6 +837,7 @@ udev.
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
+%patch65 -p1 -b .unbundle-zlib
# EPEL specific patches
%if 0%{?rhel} == 7
commit 2698a79a5d0209e9ab0c131c7c3e076428a29330
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 12 17:28:51 2019 +0200
Update to 77.0.3865.75
Rebase and clean the patches.
diff --git a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 183b5ab..0000000
--- a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
---- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
-+++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
-@@ -21,8 +21,7 @@
- #if !defined(__native_client__) && \
- ((defined(__clang__) && \
- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-68.0.3440.106-boolfix.patch b/chromium-68.0.3440.106-boolfix.patch
deleted file mode 100644
index ed22aa9..0000000
--- a/chromium-68.0.3440.106-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-08-09 03:21:23.066802340 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-08-09 03:25:10.638595925 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-08-09 03:21:23.067802318 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h 2018-08-09 03:24:44.935229067 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-08-08 15:11:05.000000000 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h 2018-08-09 03:21:23.067802318 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-72.0.3626.121-fedora-user-agent.patch b/chromium-72.0.3626.121-fedora-user-agent.patch
deleted file mode 100644
index 5cef6f0..0000000
--- a/chromium-72.0.3626.121-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc
---- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400
-+++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400
-@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-72.0.3626.121-gcc5-r3.patch b/chromium-72.0.3626.121-gcc5-r3.patch
deleted file mode 100644
index f4cf40b..0000000
--- a/chromium-72.0.3626.121-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500
-+++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500
-+++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400
-@@ -340,7 +340,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400
-+++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <algorithm>
- #include <numeric>
- #include <vector>
diff --git a/chromium-75.0.3770.100-fix-v8-gcc.patch b/chromium-75.0.3770.100-fix-v8-gcc.patch
deleted file mode 100644
index 4a1a4b0..0000000
--- a/chromium-75.0.3770.100-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
---- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
-+++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
-@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
- }
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-75.0.3770.80-no-zlib-mangle.patch b/chromium-75.0.3770.80-no-zlib-mangle.patch
deleted file mode 100644
index 998be67..0000000
--- a/chromium-75.0.3770.80-no-zlib-mangle.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
---- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
-+++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
-@@ -8,10 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names. Also
-- * sets up export macros in component builds. */
--#include "chromeconf.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
deleted file mode 100644
index 06c909f..0000000
--- a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
-@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
- base::Unretained(process_node_.get()), info.exit_code));
- }
-
-+void RenderProcessUserData::RenderProcessHostDestroyed(
-+ content::RenderProcessHost* host) {
-+ host->RemoveUserData(kRenderProcessUserDataKey);
-+}
-+
- } // namespace performance_manager
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
-@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
- void RenderProcessExited(
- content::RenderProcessHost* host,
- const content::ChildProcessTerminationInfo& info) override;
-+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
-
- // All instances are linked together in a doubly linked list to allow orderly
- // destruction at browser shutdown time.
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 5f45a8f..0000000
--- a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 18:38:12 +0200
-Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
-
-AccountInfo declares them as noexcept and uses default implementation,
-so all its members (including AccountId) should be noexcept. But AccountId
-is not noexcept. To fix it we just need to make CoreAccountId move
-operator/assign operator noexcept.
-
-Bug: 819294
-Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
----
-
-diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
-index d808082..12eefe3 100644
---- a/google_apis/gaia/core_account_id.cc
-+++ b/google_apis/gaia/core_account_id.cc
-@@ -6,8 +6,16 @@
-
- CoreAccountId::CoreAccountId() = default;
-
-+CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
-+
-+CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::~CoreAccountId() = default;
-
-+CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-+
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
-index 5ea602a..c2d1911 100644
---- a/google_apis/gaia/core_account_id.h
-+++ b/google_apis/gaia/core_account_id.h
-@@ -14,8 +14,13 @@
- // for design and tracking).
- struct CoreAccountId {
- CoreAccountId();
-+ CoreAccountId(const CoreAccountId&);
-+ CoreAccountId(CoreAccountId&&) noexcept;
- ~CoreAccountId();
-
-+ CoreAccountId& operator=(const CoreAccountId&);
-+ CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
- // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
deleted file mode 100644
index e4d754a..0000000
--- a/chromium-76.0.3809.100-gcc-cc-no-except.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 07 Jun 2019 09:50:11 +0000
-Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
-
-As LayerTreeHostImpl::UIResourceData move constructor is declared
-noexcept with default implementation, the move constructor of its
-members should also be noexcept. GCC will fail to build otherwise
-for mismatching noexcept declaration.
-
-We also set the move assignment operator.
-
-Bug: 819294
-Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#667064}
----
-
-diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
-index 2be2570..8426fa8 100644
---- a/base/memory/shared_memory_mapping.cc
-+++ b/base/memory/shared_memory_mapping.cc
-@@ -33,7 +33,7 @@
-
- SharedMemoryMapping::SharedMemoryMapping() = default;
-
--SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
-+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
- : memory_(mapping.memory_),
- size_(mapping.size_),
- mapped_size_(mapping.mapped_size_),
-@@ -42,7 +42,7 @@
- }
-
- SharedMemoryMapping& SharedMemoryMapping::operator=(
-- SharedMemoryMapping&& mapping) {
-+ SharedMemoryMapping&& mapping) noexcept {
- Unmap();
- memory_ = mapping.memory_;
- size_ = mapping.size_;
-@@ -90,9 +90,9 @@
-
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
- void* address,
- size_t size,
-@@ -102,9 +102,9 @@
-
- WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
- void* address,
- size_t size,
-diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
-index d9569af..2b8858e 100644
---- a/base/memory/shared_memory_mapping.h
-+++ b/base/memory/shared_memory_mapping.h
-@@ -32,8 +32,8 @@
- SharedMemoryMapping();
-
- // Move operations are allowed.
-- SharedMemoryMapping(SharedMemoryMapping&& mapping);
-- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
-+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
-+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
-
- // Unmaps the region if the mapping is valid.
- virtual ~SharedMemoryMapping();
-@@ -93,8 +93,9 @@
- ReadOnlySharedMemoryMapping();
-
- // Move operations are allowed.
-- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
-- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
-+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
-+ ReadOnlySharedMemoryMapping& operator=(
-+ ReadOnlySharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is read-only memory. This is
- // page-aligned. This is nullptr for invalid instances.
-@@ -171,8 +172,9 @@
- WritableSharedMemoryMapping();
-
- // Move operations are allowed.
-- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
-- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
-+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
-+ WritableSharedMemoryMapping& operator=(
-+ WritableSharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is writable memory. This is
- // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
deleted file mode 100644
index 0dbffd5..0000000
--- a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 19:44:58 +0200
-Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
-
-Compilation fails because we are declaring ParseValueForFuzzer as friend method,
-but we are declaring it is in anonymous namespace. Moving to global namespace
-still fails (in this case in Clang).
-
-So final solution is making it a public static method of FeaturePolicyParser.
-
-Bug: 819294
-Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
----
-
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-index 3b7f4a9..eaee409 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-@@ -317,6 +317,13 @@
- return value;
- }
-
-+void FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType feature_type,
-+ const WTF::String& value_string) {
-+ bool ok;
-+ ParseValueForType(feature_type, value_string, &ok);
-+}
-+
- bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
- const ParsedFeaturePolicy& policy) {
- return std::any_of(policy.begin(), policy.end(),
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-index fd25d90..36af405 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-@@ -16,9 +16,6 @@
- #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
-
--// Forward declare for friendship.
--void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
--
- namespace blink {
-
- class Document;
-@@ -79,8 +76,9 @@
- const FeatureNameMap& feature_names,
- ExecutionContext* execution_context = nullptr);
-
-+ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
-+
- private:
-- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
- static PolicyValue GetFallbackValueForFeature(
- mojom::FeaturePolicyFeature feature);
- static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-index 7f8e6aa..53350e43 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-@@ -23,9 +23,9 @@
- extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static blink::BlinkFuzzerTestSupport test_support =
- blink::BlinkFuzzerTestSupport();
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
-- WTF::String(data, size));
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
-- WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
- return 0;
- }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
deleted file mode 100644
index 26bba05..0000000
--- a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 17:18:40 +0000
-Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
-
-Other HasFraction methods as in PhysicalUnit are declared already
-constexpr and using it. It breaks GCC build.
-
-Bug: 819294.
-Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
-Reviewed-by: vmpstr <vmpstr(a)chromium.org>
-Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666336}
----
-
-diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
-index f073986..b6dbc76 100644
---- a/third_party/blink/renderer/platform/geometry/layout_unit.h
-+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
-@@ -202,7 +202,9 @@
- return value_ > 0 ? LayoutUnit() : *this;
- }
-
-- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
-+ constexpr bool HasFraction() const {
-+ return RawValue() % kFixedPointDenominator;
-+ }
-
- LayoutUnit Fraction() const {
- // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
deleted file mode 100644
index 2876de4..0000000
--- a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 10:27:19 +0200
-Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
-
-In GCC, build is failing because history::QueryURLResult declares its move
-assignment operator as noexcept using default implementation. That requires
-its members to provide a move assignment operator that is noexcept too.
-
-But URLRow was missing noexcept declaration in move assignment operator (even
-though it was providing noexcept to its move constructor).
-
-Bug: 819294
-Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
----
-
-diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
-index 44c22fd..aec0101 100644
---- a/components/history/core/browser/url_row.cc
-+++ b/components/history/core/browser/url_row.cc
-@@ -26,7 +26,7 @@
- }
-
- URLRow& URLRow::operator=(const URLRow& other) = default;
--URLRow& URLRow::operator=(URLRow&& other) = default;
-+URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
-
- void URLRow::Swap(URLRow* other) {
- std::swap(id_, other->id_);
-diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
-index 8f6f9cf..31a1ef8 100644
---- a/components/history/core/browser/url_row.h
-+++ b/components/history/core/browser/url_row.h
-@@ -35,7 +35,7 @@
-
- virtual ~URLRow();
- URLRow& operator=(const URLRow& other);
-- URLRow& operator=(URLRow&& other);
-+ URLRow& operator=(URLRow&& other) noexcept;
-
- URLID id() const { return id_; }
-
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
deleted file mode 100644
index 3bf394f..0000000
--- a/chromium-76.0.3809.100-gcc-initialization-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 21:09:01 +0000
-Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
-
-XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
-same order of the declaration. GCC fails because of that.
-
-Bug: 819294
-Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
-Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666436}
----
-
-diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
-index f649dd4..0aa6892 100644
---- a/ui/gl/gl_surface_glx.cc
-+++ b/ui/gl/gl_surface_glx.cc
-@@ -583,10 +583,10 @@
-
- XSetWindowAttributes swa = {
- .background_pixmap = 0,
-- .bit_gravity = NorthWestGravity,
-- .colormap = g_colormap,
- .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
- .border_pixel = 0,
-+ .bit_gravity = NorthWestGravity,
-+ .colormap = g_colormap,
- };
- auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
- if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
deleted file mode 100644
index 1d4b90f..0000000
--- a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 08:00:13 +0000
-Subject: [PATCH] GCC: move explicit specialization out of RunInfo
-
-Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
-build because of that. Move the template specializations out of RunInfo declaration
-in shape_result_inline_headeres.h to fix the GCC build issue.
-
-Bug: 819294
-Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#667901}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-index 76ee6091..c14d3a0 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-@@ -251,37 +251,6 @@
- template <bool has_non_zero_glyph_offsets>
- struct iterator final {};
-
-- // For non-zero glyph offset array
-- template <>
-- struct iterator<true> final {
-- // The constructor for ShapeResult
-- explicit iterator(const GlyphOffsetArray& array)
-- : pointer(array.storage_.get()) {
-- DCHECK(pointer);
-- }
--
-- // The constructor for ShapeResultView
-- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-- DCHECK(pointer);
-- }
--
-- GlyphOffset operator*() const { return *pointer; }
-- void operator++() { ++pointer; }
--
-- const GlyphOffset* pointer;
-- };
--
-- // For zero glyph offset array
-- template <>
-- struct iterator<false> final {
-- explicit iterator(const GlyphOffsetArray& array) {
-- DCHECK(!array.HasStorage());
-- }
-- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-- GlyphOffset operator*() const { return GlyphOffset(); }
-- void operator++() {}
-- };
--
- template <bool has_non_zero_glyph_offsets>
- iterator<has_non_zero_glyph_offsets> GetIterator() const {
- return iterator<has_non_zero_glyph_offsets>(*this);
-@@ -495,6 +464,37 @@
- float width_;
- };
-
-+// For non-zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
-+ // The constructor for ShapeResult
-+ explicit iterator(const GlyphOffsetArray& array)
-+ : pointer(array.storage_.get()) {
-+ DCHECK(pointer);
-+ }
-+
-+ // The constructor for ShapeResultView
-+ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-+ DCHECK(pointer);
-+ }
-+
-+ GlyphOffset operator*() const { return *pointer; }
-+ void operator++() { ++pointer; }
-+
-+ const GlyphOffset* pointer;
-+};
-+
-+// For zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
-+ explicit iterator(const GlyphOffsetArray& array) {
-+ DCHECK(!array.HasStorage());
-+ }
-+ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-+ GlyphOffset operator*() const { return GlyphOffset(); }
-+ void operator++() {}
-+};
-+
- // Find the range of HarfBuzzRunGlyphData for the specified character index
- // range. This function uses binary search twice, hence O(2 log n).
- inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
deleted file mode 100644
index bc0ed98..0000000
--- a/chromium-76.0.3809.100-gcc-net-fetcher.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 16:56:27 +0000
-Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
-
-GCC does not allow friendship declaration to anonymous namespace as done with Job
-object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
-makes RemoveJob method public, that was the only reason to make Job a friend.
-
-Error was:
-./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
-../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
-../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-
-Bug: 819294
-Change-Id: I3609f4558e570741395366de6a4cd40577d91450
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
-Commit-Queue: Eric Roman <eroman(a)chromium.org>
-Reviewed-by: Eric Roman <eroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668015}
----
-
-diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
-index 11a1166..349c656 100644
---- a/net/cert_net/cert_net_fetcher_impl.cc
-+++ b/net/cert_net/cert_net_fetcher_impl.cc
-@@ -135,21 +135,19 @@
- void Fetch(std::unique_ptr<RequestParams> request_params,
- scoped_refptr<RequestCore> request);
-
-+ // Removes |job| from the in progress jobs and transfers ownership to the
-+ // caller.
-+ std::unique_ptr<Job> RemoveJob(Job* job);
-+
- // Cancels outstanding jobs, which stops network requests and signals the
- // corresponding RequestCores that the requests have completed.
- void Shutdown();
-
- private:
-- friend class Job;
--
- // Finds a job with a matching RequestPararms or returns nullptr if there was
- // no match.
- Job* FindJob(const RequestParams& params);
-
-- // Removes |job| from the in progress jobs and transfers ownership to the
-- // caller.
-- std::unique_ptr<Job> RemoveJob(Job* job);
--
- // The in-progress jobs. This set does not contain the job which is actively
- // invoking callbacks (OnJobCompleted).
- JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
deleted file mode 100644
index ad40bb9..0000000
--- a/chromium-76.0.3809.100-gcc-themeservice-includes.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 22:01:03 +0200
-Subject: [PATCH] IWYU: ThemeService requires NativeTheme
-
-As ThemeService referes to NativeTheme through a ScopedObserver,
-the full declaration is required.
-
-Bug: 819294
-Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
----
-
-diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
-index d65388e2..23dc86d 100644
---- a/chrome/browser/themes/theme_service.cc
-+++ b/chrome/browser/themes/theme_service.cc
-@@ -54,7 +54,6 @@
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/image/image_skia.h"
- #include "ui/native_theme/common_theme.h"
--#include "ui/native_theme/native_theme.h"
-
- #if BUILDFLAG(ENABLE_EXTENSIONS)
- #include "base/scoped_observer.h"
-diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
-index 6c79c72..f93dc0d 100644
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -25,6 +25,7 @@
- #include "extensions/buildflags/buildflags.h"
- #include "extensions/common/extension_id.h"
- #include "ui/base/theme_provider.h"
-+#include "ui/native_theme/native_theme.h"
- #include "ui/native_theme/native_theme_observer.h"
-
- class BrowserThemePack;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
deleted file mode 100644
index cf93bce..0000000
--- a/chromium-76.0.3809.100-gcc-vulkan.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 17:39:38 +0000
-Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
-
-The notation for initialization of structs referring to its properties
-is invalid in C++. This is not accepted in GCC. It was making build
-fail in VulkanCommandBuffer.
-
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
- .subresourceRange.baseMipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
- .subresourceRange.levelCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
- .subresourceRange.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
- .subresourceRange.layerCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
- .imageSubresource.mipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
- .imageSubresource.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
- .imageSubresource.layerCount = 1,
- ^
-Bug: 819294
-
-Change-Id: I999abece0c727e77964789183642ba62009c2c22
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Antoine Labour <piman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668033}
----
-
-diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
-index ba776e4..4f14c85 100644
---- a/gpu/vulkan/vulkan_command_buffer.cc
-+++ b/gpu/vulkan/vulkan_command_buffer.cc
-@@ -207,21 +207,20 @@
- void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
- VkImageLayout old_layout,
- VkImageLayout new_layout) {
-- VkImageMemoryBarrier barrier = {
-- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-- .srcAccessMask = GetAccessMask(old_layout),
-- .dstAccessMask = GetAccessMask(new_layout),
-- .oldLayout = old_layout,
-- .newLayout = new_layout,
-- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .image = image,
-- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .subresourceRange.baseMipLevel = 0,
-- .subresourceRange.levelCount = 1,
-- .subresourceRange.baseArrayLayer = 0,
-- .subresourceRange.layerCount = 1,
-- };
-+ VkImageMemoryBarrier barrier = {};
-+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-+ barrier.srcAccessMask = GetAccessMask(old_layout);
-+ barrier.dstAccessMask = GetAccessMask(new_layout);
-+ barrier.oldLayout = old_layout;
-+ barrier.newLayout = new_layout;
-+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.image = image;
-+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ barrier.subresourceRange.baseMipLevel = 0;
-+ barrier.subresourceRange.levelCount = 1;
-+ barrier.subresourceRange.baseArrayLayer = 0;
-+ barrier.subresourceRange.layerCount = 1;
- vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
- GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
- nullptr, 1, &barrier);
-@@ -233,17 +232,16 @@
- uint32_t buffer_height,
- uint32_t width,
- uint32_t height) {
-- VkBufferImageCopy region = {
-- .bufferOffset = 0,
-- .bufferRowLength = buffer_width,
-- .bufferImageHeight = buffer_height,
-- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .imageSubresource.mipLevel = 0,
-- .imageSubresource.baseArrayLayer = 0,
-- .imageSubresource.layerCount = 1,
-- .imageOffset = {0, 0, 0},
-- .imageExtent = {width, height, 1},
-- };
-+ VkBufferImageCopy region = {};
-+ region.bufferOffset = 0;
-+ region.bufferRowLength = buffer_width;
-+ region.bufferImageHeight = buffer_height;
-+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ region.imageSubresource.mipLevel = 0;
-+ region.imageSubresource.baseArrayLayer = 0;
-+ region.imageSubresource.layerCount = 1;
-+ region.imageOffset = {0, 0, 0};
-+ region.imageExtent = {width, height, 1};
- vkCmdCopyBufferToImage(command_buffer_, buffer, image,
- VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
- }
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
deleted file mode 100644
index 98789d9..0000000
--- a/chromium-76.0.3809.100-quiche-compile-fix.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
-@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
- std::string TransportParameterIdToString(
- TransportParameters::TransportParameterId param_id) {
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- return "original_connection_id";
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- return "idle_timeout";
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- return "stateless_reset_token";
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- return "max_packet_size";
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- return "initial_max_data";
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- return "initial_max_stream_data_bidi_local";
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- return "initial_max_stream_data_bidi_remote";
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- return "initial_max_stream_data_uni";
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- return "initial_max_streams_bidi";
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- return "initial_max_streams_uni";
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- return "ack_delay_exponent";
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- return "max_ack_delay";
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- return "disable_migration";
-- case kPreferredAddress:
-+ case TransportParameters::kPreferredAddress:
- return "preferred_address";
-- case kGoogleQuicParam:
-+ case TransportParameters::kGoogleQuicParam:
- return "google";
-- case kGoogleQuicVersion:
-+ case TransportParameters::kGoogleQuicVersion:
- return "google-version";
- }
- return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
-@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
- CBB original_connection_id_param;
- if (!in.original_connection_id.IsEmpty()) {
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
- !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
- !CBB_add_bytes(
- &original_connection_id_param,
-@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
- if (!in.stateless_reset_token.empty()) {
- DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
- !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
- !CBB_add_bytes(&stateless_reset_token_param,
- in.stateless_reset_token.data(),
-@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
-
- // disable_migration
- if (in.disable_migration) {
-- if (!CBB_add_u16(¶ms, kDisableMigration) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
- !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
- QUIC_BUG << "Failed to write disable_migration for " << in;
- return false;
-@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
- QUIC_BUG << "Bad lengths " << *in.preferred_address;
- return false;
- }
-- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
- !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
- !CBB_add_bytes(
- &preferred_address_params,
-@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
- if (in.google_quic_params) {
- const QuicData& serialized_google_quic_params =
- in.google_quic_params->GetSerialized();
-- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
- !CBB_add_bytes(&google_quic_params,
- reinterpret_cast<const uint8_t*>(
-@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
-
- // Google-specific version extension.
- CBB google_version_params;
-- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
- !CBB_add_u32(&google_version_params, in.version)) {
- QUIC_BUG << "Failed to write Google version extension for " << in;
-@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
- }
- bool parse_success = true;
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- if (!out->original_connection_id.IsEmpty()) {
- QUIC_DLOG(ERROR) << "Received a second original connection ID";
- return false;
-@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
- CBS_len(&value));
- }
- break;
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
- break;
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- if (!out->stateless_reset_token.empty()) {
- QUIC_DLOG(ERROR) << "Received a second stateless reset token";
- return false;
-@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
- out->stateless_reset_token.assign(CBS_data(&value),
- CBS_data(&value) + CBS_len(&value));
- break;
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- parse_success = out->max_packet_size.ReadFromCbs(&value);
- break;
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- parse_success = out->initial_max_data.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- parse_success =
- out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- parse_success =
- out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
- break;
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
- break;
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- parse_success = out->max_ack_delay.ReadFromCbs(&value);
- break;
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- if (out->disable_migration) {
- QUIC_DLOG(ERROR) << "Received a second disable migration";
- return false;
-@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
- }
- out->disable_migration = true;
- break;
-- case kPreferredAddress: {
-+ case TransportParameters::kPreferredAddress: {
- uint16_t ipv4_port, ipv6_port;
- in_addr ipv4_address;
- in6_addr ipv6_address;
-@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
- QuicMakeUnique<TransportParameters::PreferredAddress>(
- preferred_address);
- } break;
-- case kGoogleQuicParam: {
-+ case TransportParameters::kGoogleQuicParam: {
- if (out->google_quic_params) {
- QUIC_DLOG(ERROR) << "Received a second Google parameter";
- return false;
-@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
- reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
- out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
- } break;
-- case kGoogleQuicVersion: {
-+ case TransportParameters::kGoogleQuicVersion: {
- if (!CBS_get_u32(&value, &out->version)) {
- QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
- return false;
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
-@@ -2,10 +2,12 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
--#include <string>
--
- #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
-
-+#include <cstring>
-+#include <string>
-+#include <vector>
-+
- namespace quic {
-
- namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
deleted file mode 100644
index 5e392e6..0000000
--- a/chromium-76.0.3809.100-throttling-dead-beef.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 06 Jun 2019 07:54:05 +0000
-Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
-
-We are setting kAlive and kDead values assigning values that
-are bigger than the maximum signed int32. It is better to use
-uint32_t in this case.
-
-Bug: 819294
-Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666619}
----
-
-diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
-index 43751c4..3c6f87b 100644
---- a/services/network/throttling/throttling_controller.h
-+++ b/services/network/throttling/throttling_controller.h
-@@ -38,7 +38,7 @@
-
- // TODO(https://crbug.com/960874): Debugging code to try and shed some light
- // on why the owned maps are invalid.
-- enum class Liveness : int32_t {
-+ enum class Liveness : uint32_t {
- kAlive = 0xCA11AB13,
- kDead = 0xDEADBEEF,
- };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
deleted file mode 100644
index a392971..0000000
--- a/chromium-76.0.3809.100-weak-ptr-no-except.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 18 Jul 2019 14:26:11 +0200
-Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
-
-A GCC build regression has happened on DisjointRangeLockManager, as its move
-operator and constructor were declared noexcept. This was failing because the
-default implementation depended on base::WeakPtr, that did not provide
-noexcept declaration for them.
-
-So make base::WeakPtr noexcept.
-
-Bug: 819294
-Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
----
-
-diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
-index 64fd499..0efcc44 100644
---- a/base/memory/weak_ptr.cc
-+++ b/base/memory/weak_ptr.cc
-@@ -46,7 +46,7 @@
-
- WeakReference::~WeakReference() = default;
-
--WeakReference::WeakReference(WeakReference&& other) = default;
-+WeakReference::WeakReference(WeakReference&& other) noexcept = default;
-
- WeakReference::WeakReference(const WeakReference& other) = default;
-
-diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
-index 72b5f1f..ccd22fd13 100644
---- a/base/memory/weak_ptr.h
-+++ b/base/memory/weak_ptr.h
-@@ -116,9 +116,9 @@
- explicit WeakReference(const scoped_refptr<Flag>& flag);
- ~WeakReference();
-
-- WeakReference(WeakReference&& other);
-+ WeakReference(WeakReference&& other) noexcept;
- WeakReference(const WeakReference& other);
-- WeakReference& operator=(WeakReference&& other) = default;
-+ WeakReference& operator=(WeakReference&& other) noexcept = default;
- WeakReference& operator=(const WeakReference& other) = default;
-
- bool IsValid() const;
-@@ -153,9 +153,9 @@
- ~WeakPtrBase();
-
- WeakPtrBase(const WeakPtrBase& other) = default;
-- WeakPtrBase(WeakPtrBase&& other) = default;
-+ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
- WeakPtrBase& operator=(const WeakPtrBase& other) = default;
-- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
-+ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
-
- void reset() {
- ref_ = internal::WeakReference();
-@@ -236,7 +236,7 @@
- ptr_ = reinterpret_cast<uintptr_t>(t);
- }
- template <typename U>
-- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
-+ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
- // Need to cast from U* to T* to do pointer adjustment in case of multiple
- // inheritance. This also enforces the "U is a T" rule.
- T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
deleted file mode 100644
index 8bfbced..0000000
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
-@@ -17,6 +17,7 @@
- #include "chrome/common/pref_names.h"
- #include "chrome/test/base/in_process_browser_test.h"
- #include "components/prefs/pref_service.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerStubResolverBrowsertest,
- ::testing::Values(false, true));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -51,6 +53,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -81,6 +84,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
-@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
-@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
-+++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
---- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
-@@ -35,6 +35,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
---- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
-@@ -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 <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/interface_request.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -113,6 +116,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if BUILDFLAG(ENABLE_REPORTING)
- #include "net/network_error_logging/network_error_logging_service.h"
- #include "net/reporting/reporting_cache.h"
-@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
- EXPECT_EQ("None", response_body);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -238,15 +238,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -299,6 +290,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -310,6 +310,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 73db4d4..0000000
--- a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
---- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
-@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
- "application/x-protobuf",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
new file mode 100644
index 0000000..c836214
--- /dev/null
+++ b/chromium-77.0.3865.75-boolfix.patch
@@ -0,0 +1,24 @@
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
+@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
+
+ bool is_valid() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() {
+ return std::move(handle_);
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
+@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
+ // handle.
+ bool is_pending() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
+
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -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 <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
new file mode 100644
index 0000000..385778c
--- /dev/null
+++ b/chromium-77.0.3865.75-fix-v8-gcc.patch
@@ -0,0 +1,14 @@
+diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
+--- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
++++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
+@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
+ return new_element_dictionary;
+ }
+
++template void JSObject::ApplyAttributesToDictionary(
++ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
++ const PropertyAttributes attributes);
++
+ template <PropertyAttributes attrs>
+ Maybe<bool> JSObject::PreventExtensionsWithTransition(
+ Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
new file mode 100644
index 0000000..d342e2d
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -0,0 +1,13 @@
+diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
+@@ -24,8 +24,7 @@
+ #elif !defined(__native_client__) && \
+ ((defined(__clang__) && \
+ ((__clang_major__ > 3) || \
+- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+- (defined(__GNUC__) && __GNUC__ >= 5))
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
new file mode 100644
index 0000000..34b858a
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc5-r3.patch
@@ -0,0 +1,36 @@
+diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
+--- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
++++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+ static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+- return mailbox.name;
++ return base::make_span(mailbox.name);
+ }
+ static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
+--- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
++++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
+ static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+ const viz::TextureDrawQuad* quad =
+ viz::TextureDrawQuad::MaterialCast(&input);
+- return quad->vertex_opacity;
++ return base::make_span(quad->vertex_opacity);
+ }
+
+ static bool y_flipped(const viz::DrawQuad& input) {
+diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+--- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
++++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <algorithm>
+ #include <numeric>
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium.spec b/chromium.spec
index 877f8f7..a943ad5 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,14 +164,14 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.75
Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -211,20 +211,20 @@ Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
+Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
+Patch21: chromium-77.0.3865.75-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-77.0.3865.75-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Do not use unrar code, it is non-free
@@ -232,7 +232,7 @@ Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
# Try to fix version.py for Rawhide
Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
@@ -260,43 +260,11 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb88987c…
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa954487585d…
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd55053…
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb8025…
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c8236c…
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b79447902532…
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa545…
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0ef9…
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c42…
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11ab…
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24a2…
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d260…
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf114…
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef4247…
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d819e…
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df64…
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c60…
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -305,7 +273,7 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -846,7 +814,7 @@ udev.
%patch22 -p1 -b .gcc-round-fix
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
+#%patch25 -p1 -b .aarch64fix
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -861,23 +829,8 @@ udev.
%patch38 -p1 -b .disable-ndnpc
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
@@ -1466,6 +1419,7 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+echo
# Now do the full browser
%if 0%{freeworld}
../depot_tools/ninja -C %{target} -vvv media
diff --git a/sources b/sources
index 2d38a7c..a1d28bf 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
commit 4dcf0591dcdec5b3da92ea722776011dced3b408
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:11:22 2019 +0200
22x22 icon was removed and use the symbolic one as well
diff --git a/chromium.spec b/chromium.spec
index 0155f8b..07dc939 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1634,8 +1634,8 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
+cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 91378b7314afaa749fac68da0f10742ce6339b3b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:08:54 2019 +0200
Fix the aarch64 build
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium.spec b/chromium.spec
index 247c3e6..0155f8b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -288,6 +288,8 @@ Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e8b…
Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897ee…
+Patch70: chromium-77.0.3865.75-missing-limits.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -853,6 +855,7 @@ udev.
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
%patch69 -p1 -b .gcc-abstract-class
+%patch70 -p1 -b .missing-limits
# EPEL specific patches
%if 0%{?rhel} == 7
commit e0d06a0fbf5063d875762e3c2cec32e15082c8b3
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 19:15:24 2019 +0200
Customize the ninja status to show the currently build target
So one is able to realize faster, where the build is failing.
diff --git a/chromium.spec b/chromium.spec
index 854c788..247c3e6 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompila…
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -1403,17 +1410,17 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
fi
tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1433,34 +1440,36 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
-echo
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%if 0%{?build_remoting_app}
%if 0%{?nacl}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
+%build_target %{builddir} remoting_webapp
%endif
%endif
-popd
%endif
# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
+rm -rf %{builddir}/gen/sdk
rm -rf native_client/toolchain
rm -rf third_party/llvm-build/*
@@ -1470,7 +1479,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1499,7 +1508,7 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
%if 0%{?nacl}
cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
@@ -1550,7 +1559,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1593,7 +1602,7 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
commit b30c77e75cc415b2a854f26288ad4e2f071dd1c1
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 17:06:52 2019 +0200
Backport another GCC build fix
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium.spec b/chromium.spec
index 44e7cf4..854c788 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -279,6 +279,8 @@ Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e464058…
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e8b…
+Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -843,6 +845,7 @@ udev.
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
+%patch69 -p1 -b .gcc-abstract-class
# EPEL specific patches
%if 0%{?rhel} == 7
commit 13aab678f5a9b833d2d451491793d823121540b6
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:10:29 2019 +0200
Don't remove an additional bundled library
diff --git a/chromium.spec b/chromium.spec
index acd3c83..44e7cf4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1234,6 +1234,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
'third_party/one_euro_filter' \
'third_party/ots' \
commit 176f9b5d933c05a0599ab75ec609cc7f58bf8e9d
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:09:46 2019 +0200
More of the harfbuzz related fixes
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium.spec b/chromium.spec
index 0698efa..acd3c83 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -277,6 +277,8 @@ Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Needs to be submitted..
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e464058…
+Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -362,7 +364,7 @@ BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -624,7 +626,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -840,6 +842,7 @@ udev.
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
+%patch68 -p1 -b .harfbuzz-subset
# EPEL specific patches
%if 0%{?rhel} == 7
commit f468793c28b6e08c98d91d167a0682371fd0132a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:13:56 2019 +0200
Fix the release number and add a changelog entry
diff --git a/chromium.spec b/chromium.spec
index 1102cc7..0698efa 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1872,6 +1872,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit 2af2caea12b584c709b99b1807387bfab22f11f3
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:06:07 2019 +0200
Preserve the spirv heads for swiftshader compilation
diff --git a/chromium.spec b/chromium.spec
index f6f1614..1102cc7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1277,6 +1277,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
commit e05d0e1ae8e54ea44dd0eee63a9ca3424ef71f23
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:05:31 2019 +0200
Another export and alignas gcc compilation fix
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium.spec b/chromium.spec
index 2bd1b2f..f6f1614 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -275,6 +275,8 @@ Patch64: chromium-77.0.3865.75-certificate-transparency.patch
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
+# Needs to be submitted..
+Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -837,6 +839,7 @@ udev.
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
+%patch67 -p1 -b .base-gcc-no-alignas
# EPEL specific patches
%if 0%{?rhel} == 7
commit 09209e74278ef53332bc05582bd24314fdbfb4d2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 21:48:17 2019 +0200
Remove an unneeded patch that's breaking the build
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
deleted file mode 100644
index 385778c..0000000
--- a/chromium-77.0.3865.75-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
---- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
-+++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
-@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
- return new_element_dictionary;
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium.spec b/chromium.spec
index 0a6434d..2bd1b2f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -262,9 +262,6 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd55053…
-Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c60…
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -834,7 +831,6 @@ udev.
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
commit 0c379302f50ae654e3872cb517a8929d62dfbe22
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:00:03 2019 +0200
Use the bundled harfbuzz-ng for < F31
Needed because of the hb_subset_input_set_retain_gids(), that's only
available in harbuzz 2.4 that's only in F31+
diff --git a/chromium.spec b/chromium.spec
index 5b769cb..0a6434d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -133,9 +133,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
commit f36acf4bdbf61a81f2b142c4d0db230ce56e58e2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:24:09 2019 +0200
Include <memory> to fix the headless build
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium.spec b/chromium.spec
index fb7886c..5b769cb 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -276,6 +276,8 @@ Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -838,6 +840,7 @@ udev.
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
+%patch66 -p1 -b .gcc-include-memory
# EPEL specific patches
%if 0%{?rhel} == 7
commit 1302df6eb572e7aac300962907eac7cc6ad9efe5
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:54 2019 +0200
Update the clean-ffmpeg.sh script
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..fd226e8 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -138,6 +138,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/vlc.h \
libavcodec/vorbisdsp.h \
libavcodec/vp3data.h \
+ libavcodec/vp4data.h \
libavcodec/vp3dsp.h \
libavcodec/vp56.h \
libavcodec/vp56dsp.h \
diff --git a/sources b/sources
index a1d28bf..b9b0498 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
commit e77d556bade31e19ca7415d6289203b1e604787c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:21:43 2019 +0200
Fix the previously rebased patched
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
index d342e2d..920a53e 100644
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -1,13 +1,15 @@
diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
-@@ -24,8 +24,7 @@
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
+@@ -23,9 +23,8 @@
+ // Where available use builtin math overflow support on Clang and GCC.
#elif !defined(__native_client__) && \
((defined(__clang__) && \
- ((__clang_major__ > 3) || \
+- ((__clang_major__ > 3) || \
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
++ (__clang_major__ > 3) || \
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
#include "base/numerics/safe_math_clang_gcc_impl.h"
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
#else
commit 382929d255c8becf3ff2123e95657adaa8345c84
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:23:46 2019 +0200
Missing bundled dependency for headless
diff --git a/chromium.spec b/chromium.spec
index 71a6cfa..fb7886c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1230,6 +1230,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/openscreen' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
commit 16423a6aaf33016cb0eeb0c20725d6434ca411c3
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:03 2019 +0200
Unbundle the zlib
Use the gentoo patch.
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium.spec b/chromium.spec
index 100b665..71a6cfa 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -274,6 +274,8 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
+Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -835,6 +837,7 @@ udev.
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
+%patch65 -p1 -b .unbundle-zlib
# EPEL specific patches
%if 0%{?rhel} == 7
commit 2873f12bb33c082c677cf6764c958a16c21b4d1e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 12 17:28:51 2019 +0200
Update to 77.0.3865.75
Rebase and clean the patches.
diff --git a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 183b5ab..0000000
--- a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
---- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
-+++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
-@@ -21,8 +21,7 @@
- #if !defined(__native_client__) && \
- ((defined(__clang__) && \
- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-68.0.3440.106-boolfix.patch b/chromium-68.0.3440.106-boolfix.patch
deleted file mode 100644
index ed22aa9..0000000
--- a/chromium-68.0.3440.106-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-08-09 03:21:23.066802340 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-08-09 03:25:10.638595925 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-08-09 03:21:23.067802318 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h 2018-08-09 03:24:44.935229067 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-08-08 15:11:05.000000000 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h 2018-08-09 03:21:23.067802318 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-72.0.3626.121-fedora-user-agent.patch b/chromium-72.0.3626.121-fedora-user-agent.patch
deleted file mode 100644
index 5cef6f0..0000000
--- a/chromium-72.0.3626.121-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc
---- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400
-+++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400
-@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-72.0.3626.121-gcc5-r3.patch b/chromium-72.0.3626.121-gcc5-r3.patch
deleted file mode 100644
index f4cf40b..0000000
--- a/chromium-72.0.3626.121-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500
-+++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500
-+++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400
-@@ -340,7 +340,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400
-+++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <algorithm>
- #include <numeric>
- #include <vector>
diff --git a/chromium-75.0.3770.100-fix-v8-gcc.patch b/chromium-75.0.3770.100-fix-v8-gcc.patch
deleted file mode 100644
index 4a1a4b0..0000000
--- a/chromium-75.0.3770.100-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
---- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
-+++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
-@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
- }
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-75.0.3770.80-no-zlib-mangle.patch b/chromium-75.0.3770.80-no-zlib-mangle.patch
deleted file mode 100644
index 998be67..0000000
--- a/chromium-75.0.3770.80-no-zlib-mangle.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
---- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
-+++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
-@@ -8,10 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names. Also
-- * sets up export macros in component builds. */
--#include "chromeconf.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
deleted file mode 100644
index 06c909f..0000000
--- a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
-@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
- base::Unretained(process_node_.get()), info.exit_code));
- }
-
-+void RenderProcessUserData::RenderProcessHostDestroyed(
-+ content::RenderProcessHost* host) {
-+ host->RemoveUserData(kRenderProcessUserDataKey);
-+}
-+
- } // namespace performance_manager
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
-@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
- void RenderProcessExited(
- content::RenderProcessHost* host,
- const content::ChildProcessTerminationInfo& info) override;
-+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
-
- // All instances are linked together in a doubly linked list to allow orderly
- // destruction at browser shutdown time.
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 5f45a8f..0000000
--- a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 18:38:12 +0200
-Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
-
-AccountInfo declares them as noexcept and uses default implementation,
-so all its members (including AccountId) should be noexcept. But AccountId
-is not noexcept. To fix it we just need to make CoreAccountId move
-operator/assign operator noexcept.
-
-Bug: 819294
-Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
----
-
-diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
-index d808082..12eefe3 100644
---- a/google_apis/gaia/core_account_id.cc
-+++ b/google_apis/gaia/core_account_id.cc
-@@ -6,8 +6,16 @@
-
- CoreAccountId::CoreAccountId() = default;
-
-+CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
-+
-+CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::~CoreAccountId() = default;
-
-+CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-+
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
-index 5ea602a..c2d1911 100644
---- a/google_apis/gaia/core_account_id.h
-+++ b/google_apis/gaia/core_account_id.h
-@@ -14,8 +14,13 @@
- // for design and tracking).
- struct CoreAccountId {
- CoreAccountId();
-+ CoreAccountId(const CoreAccountId&);
-+ CoreAccountId(CoreAccountId&&) noexcept;
- ~CoreAccountId();
-
-+ CoreAccountId& operator=(const CoreAccountId&);
-+ CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
- // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
deleted file mode 100644
index e4d754a..0000000
--- a/chromium-76.0.3809.100-gcc-cc-no-except.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 07 Jun 2019 09:50:11 +0000
-Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
-
-As LayerTreeHostImpl::UIResourceData move constructor is declared
-noexcept with default implementation, the move constructor of its
-members should also be noexcept. GCC will fail to build otherwise
-for mismatching noexcept declaration.
-
-We also set the move assignment operator.
-
-Bug: 819294
-Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#667064}
----
-
-diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
-index 2be2570..8426fa8 100644
---- a/base/memory/shared_memory_mapping.cc
-+++ b/base/memory/shared_memory_mapping.cc
-@@ -33,7 +33,7 @@
-
- SharedMemoryMapping::SharedMemoryMapping() = default;
-
--SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
-+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
- : memory_(mapping.memory_),
- size_(mapping.size_),
- mapped_size_(mapping.mapped_size_),
-@@ -42,7 +42,7 @@
- }
-
- SharedMemoryMapping& SharedMemoryMapping::operator=(
-- SharedMemoryMapping&& mapping) {
-+ SharedMemoryMapping&& mapping) noexcept {
- Unmap();
- memory_ = mapping.memory_;
- size_ = mapping.size_;
-@@ -90,9 +90,9 @@
-
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
- void* address,
- size_t size,
-@@ -102,9 +102,9 @@
-
- WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
- void* address,
- size_t size,
-diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
-index d9569af..2b8858e 100644
---- a/base/memory/shared_memory_mapping.h
-+++ b/base/memory/shared_memory_mapping.h
-@@ -32,8 +32,8 @@
- SharedMemoryMapping();
-
- // Move operations are allowed.
-- SharedMemoryMapping(SharedMemoryMapping&& mapping);
-- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
-+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
-+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
-
- // Unmaps the region if the mapping is valid.
- virtual ~SharedMemoryMapping();
-@@ -93,8 +93,9 @@
- ReadOnlySharedMemoryMapping();
-
- // Move operations are allowed.
-- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
-- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
-+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
-+ ReadOnlySharedMemoryMapping& operator=(
-+ ReadOnlySharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is read-only memory. This is
- // page-aligned. This is nullptr for invalid instances.
-@@ -171,8 +172,9 @@
- WritableSharedMemoryMapping();
-
- // Move operations are allowed.
-- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
-- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
-+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
-+ WritableSharedMemoryMapping& operator=(
-+ WritableSharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is writable memory. This is
- // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
deleted file mode 100644
index 0dbffd5..0000000
--- a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 19:44:58 +0200
-Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
-
-Compilation fails because we are declaring ParseValueForFuzzer as friend method,
-but we are declaring it is in anonymous namespace. Moving to global namespace
-still fails (in this case in Clang).
-
-So final solution is making it a public static method of FeaturePolicyParser.
-
-Bug: 819294
-Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
----
-
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-index 3b7f4a9..eaee409 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-@@ -317,6 +317,13 @@
- return value;
- }
-
-+void FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType feature_type,
-+ const WTF::String& value_string) {
-+ bool ok;
-+ ParseValueForType(feature_type, value_string, &ok);
-+}
-+
- bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
- const ParsedFeaturePolicy& policy) {
- return std::any_of(policy.begin(), policy.end(),
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-index fd25d90..36af405 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-@@ -16,9 +16,6 @@
- #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
-
--// Forward declare for friendship.
--void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
--
- namespace blink {
-
- class Document;
-@@ -79,8 +76,9 @@
- const FeatureNameMap& feature_names,
- ExecutionContext* execution_context = nullptr);
-
-+ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
-+
- private:
-- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
- static PolicyValue GetFallbackValueForFeature(
- mojom::FeaturePolicyFeature feature);
- static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-index 7f8e6aa..53350e43 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-@@ -23,9 +23,9 @@
- extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static blink::BlinkFuzzerTestSupport test_support =
- blink::BlinkFuzzerTestSupport();
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
-- WTF::String(data, size));
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
-- WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
- return 0;
- }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
deleted file mode 100644
index 26bba05..0000000
--- a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 17:18:40 +0000
-Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
-
-Other HasFraction methods as in PhysicalUnit are declared already
-constexpr and using it. It breaks GCC build.
-
-Bug: 819294.
-Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
-Reviewed-by: vmpstr <vmpstr(a)chromium.org>
-Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666336}
----
-
-diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
-index f073986..b6dbc76 100644
---- a/third_party/blink/renderer/platform/geometry/layout_unit.h
-+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
-@@ -202,7 +202,9 @@
- return value_ > 0 ? LayoutUnit() : *this;
- }
-
-- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
-+ constexpr bool HasFraction() const {
-+ return RawValue() % kFixedPointDenominator;
-+ }
-
- LayoutUnit Fraction() const {
- // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
deleted file mode 100644
index 2876de4..0000000
--- a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 10:27:19 +0200
-Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
-
-In GCC, build is failing because history::QueryURLResult declares its move
-assignment operator as noexcept using default implementation. That requires
-its members to provide a move assignment operator that is noexcept too.
-
-But URLRow was missing noexcept declaration in move assignment operator (even
-though it was providing noexcept to its move constructor).
-
-Bug: 819294
-Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
----
-
-diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
-index 44c22fd..aec0101 100644
---- a/components/history/core/browser/url_row.cc
-+++ b/components/history/core/browser/url_row.cc
-@@ -26,7 +26,7 @@
- }
-
- URLRow& URLRow::operator=(const URLRow& other) = default;
--URLRow& URLRow::operator=(URLRow&& other) = default;
-+URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
-
- void URLRow::Swap(URLRow* other) {
- std::swap(id_, other->id_);
-diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
-index 8f6f9cf..31a1ef8 100644
---- a/components/history/core/browser/url_row.h
-+++ b/components/history/core/browser/url_row.h
-@@ -35,7 +35,7 @@
-
- virtual ~URLRow();
- URLRow& operator=(const URLRow& other);
-- URLRow& operator=(URLRow&& other);
-+ URLRow& operator=(URLRow&& other) noexcept;
-
- URLID id() const { return id_; }
-
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
deleted file mode 100644
index 3bf394f..0000000
--- a/chromium-76.0.3809.100-gcc-initialization-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 21:09:01 +0000
-Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
-
-XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
-same order of the declaration. GCC fails because of that.
-
-Bug: 819294
-Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
-Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666436}
----
-
-diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
-index f649dd4..0aa6892 100644
---- a/ui/gl/gl_surface_glx.cc
-+++ b/ui/gl/gl_surface_glx.cc
-@@ -583,10 +583,10 @@
-
- XSetWindowAttributes swa = {
- .background_pixmap = 0,
-- .bit_gravity = NorthWestGravity,
-- .colormap = g_colormap,
- .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
- .border_pixel = 0,
-+ .bit_gravity = NorthWestGravity,
-+ .colormap = g_colormap,
- };
- auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
- if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
deleted file mode 100644
index 1d4b90f..0000000
--- a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 08:00:13 +0000
-Subject: [PATCH] GCC: move explicit specialization out of RunInfo
-
-Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
-build because of that. Move the template specializations out of RunInfo declaration
-in shape_result_inline_headeres.h to fix the GCC build issue.
-
-Bug: 819294
-Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#667901}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-index 76ee6091..c14d3a0 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-@@ -251,37 +251,6 @@
- template <bool has_non_zero_glyph_offsets>
- struct iterator final {};
-
-- // For non-zero glyph offset array
-- template <>
-- struct iterator<true> final {
-- // The constructor for ShapeResult
-- explicit iterator(const GlyphOffsetArray& array)
-- : pointer(array.storage_.get()) {
-- DCHECK(pointer);
-- }
--
-- // The constructor for ShapeResultView
-- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-- DCHECK(pointer);
-- }
--
-- GlyphOffset operator*() const { return *pointer; }
-- void operator++() { ++pointer; }
--
-- const GlyphOffset* pointer;
-- };
--
-- // For zero glyph offset array
-- template <>
-- struct iterator<false> final {
-- explicit iterator(const GlyphOffsetArray& array) {
-- DCHECK(!array.HasStorage());
-- }
-- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-- GlyphOffset operator*() const { return GlyphOffset(); }
-- void operator++() {}
-- };
--
- template <bool has_non_zero_glyph_offsets>
- iterator<has_non_zero_glyph_offsets> GetIterator() const {
- return iterator<has_non_zero_glyph_offsets>(*this);
-@@ -495,6 +464,37 @@
- float width_;
- };
-
-+// For non-zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
-+ // The constructor for ShapeResult
-+ explicit iterator(const GlyphOffsetArray& array)
-+ : pointer(array.storage_.get()) {
-+ DCHECK(pointer);
-+ }
-+
-+ // The constructor for ShapeResultView
-+ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-+ DCHECK(pointer);
-+ }
-+
-+ GlyphOffset operator*() const { return *pointer; }
-+ void operator++() { ++pointer; }
-+
-+ const GlyphOffset* pointer;
-+};
-+
-+// For zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
-+ explicit iterator(const GlyphOffsetArray& array) {
-+ DCHECK(!array.HasStorage());
-+ }
-+ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-+ GlyphOffset operator*() const { return GlyphOffset(); }
-+ void operator++() {}
-+};
-+
- // Find the range of HarfBuzzRunGlyphData for the specified character index
- // range. This function uses binary search twice, hence O(2 log n).
- inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
deleted file mode 100644
index bc0ed98..0000000
--- a/chromium-76.0.3809.100-gcc-net-fetcher.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 16:56:27 +0000
-Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
-
-GCC does not allow friendship declaration to anonymous namespace as done with Job
-object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
-makes RemoveJob method public, that was the only reason to make Job a friend.
-
-Error was:
-./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
-../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
-../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-
-Bug: 819294
-Change-Id: I3609f4558e570741395366de6a4cd40577d91450
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
-Commit-Queue: Eric Roman <eroman(a)chromium.org>
-Reviewed-by: Eric Roman <eroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668015}
----
-
-diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
-index 11a1166..349c656 100644
---- a/net/cert_net/cert_net_fetcher_impl.cc
-+++ b/net/cert_net/cert_net_fetcher_impl.cc
-@@ -135,21 +135,19 @@
- void Fetch(std::unique_ptr<RequestParams> request_params,
- scoped_refptr<RequestCore> request);
-
-+ // Removes |job| from the in progress jobs and transfers ownership to the
-+ // caller.
-+ std::unique_ptr<Job> RemoveJob(Job* job);
-+
- // Cancels outstanding jobs, which stops network requests and signals the
- // corresponding RequestCores that the requests have completed.
- void Shutdown();
-
- private:
-- friend class Job;
--
- // Finds a job with a matching RequestPararms or returns nullptr if there was
- // no match.
- Job* FindJob(const RequestParams& params);
-
-- // Removes |job| from the in progress jobs and transfers ownership to the
-- // caller.
-- std::unique_ptr<Job> RemoveJob(Job* job);
--
- // The in-progress jobs. This set does not contain the job which is actively
- // invoking callbacks (OnJobCompleted).
- JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
deleted file mode 100644
index ad40bb9..0000000
--- a/chromium-76.0.3809.100-gcc-themeservice-includes.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 22:01:03 +0200
-Subject: [PATCH] IWYU: ThemeService requires NativeTheme
-
-As ThemeService referes to NativeTheme through a ScopedObserver,
-the full declaration is required.
-
-Bug: 819294
-Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
----
-
-diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
-index d65388e2..23dc86d 100644
---- a/chrome/browser/themes/theme_service.cc
-+++ b/chrome/browser/themes/theme_service.cc
-@@ -54,7 +54,6 @@
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/image/image_skia.h"
- #include "ui/native_theme/common_theme.h"
--#include "ui/native_theme/native_theme.h"
-
- #if BUILDFLAG(ENABLE_EXTENSIONS)
- #include "base/scoped_observer.h"
-diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
-index 6c79c72..f93dc0d 100644
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -25,6 +25,7 @@
- #include "extensions/buildflags/buildflags.h"
- #include "extensions/common/extension_id.h"
- #include "ui/base/theme_provider.h"
-+#include "ui/native_theme/native_theme.h"
- #include "ui/native_theme/native_theme_observer.h"
-
- class BrowserThemePack;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
deleted file mode 100644
index cf93bce..0000000
--- a/chromium-76.0.3809.100-gcc-vulkan.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 17:39:38 +0000
-Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
-
-The notation for initialization of structs referring to its properties
-is invalid in C++. This is not accepted in GCC. It was making build
-fail in VulkanCommandBuffer.
-
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
- .subresourceRange.baseMipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
- .subresourceRange.levelCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
- .subresourceRange.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
- .subresourceRange.layerCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
- .imageSubresource.mipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
- .imageSubresource.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
- .imageSubresource.layerCount = 1,
- ^
-Bug: 819294
-
-Change-Id: I999abece0c727e77964789183642ba62009c2c22
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Antoine Labour <piman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668033}
----
-
-diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
-index ba776e4..4f14c85 100644
---- a/gpu/vulkan/vulkan_command_buffer.cc
-+++ b/gpu/vulkan/vulkan_command_buffer.cc
-@@ -207,21 +207,20 @@
- void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
- VkImageLayout old_layout,
- VkImageLayout new_layout) {
-- VkImageMemoryBarrier barrier = {
-- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-- .srcAccessMask = GetAccessMask(old_layout),
-- .dstAccessMask = GetAccessMask(new_layout),
-- .oldLayout = old_layout,
-- .newLayout = new_layout,
-- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .image = image,
-- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .subresourceRange.baseMipLevel = 0,
-- .subresourceRange.levelCount = 1,
-- .subresourceRange.baseArrayLayer = 0,
-- .subresourceRange.layerCount = 1,
-- };
-+ VkImageMemoryBarrier barrier = {};
-+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-+ barrier.srcAccessMask = GetAccessMask(old_layout);
-+ barrier.dstAccessMask = GetAccessMask(new_layout);
-+ barrier.oldLayout = old_layout;
-+ barrier.newLayout = new_layout;
-+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.image = image;
-+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ barrier.subresourceRange.baseMipLevel = 0;
-+ barrier.subresourceRange.levelCount = 1;
-+ barrier.subresourceRange.baseArrayLayer = 0;
-+ barrier.subresourceRange.layerCount = 1;
- vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
- GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
- nullptr, 1, &barrier);
-@@ -233,17 +232,16 @@
- uint32_t buffer_height,
- uint32_t width,
- uint32_t height) {
-- VkBufferImageCopy region = {
-- .bufferOffset = 0,
-- .bufferRowLength = buffer_width,
-- .bufferImageHeight = buffer_height,
-- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .imageSubresource.mipLevel = 0,
-- .imageSubresource.baseArrayLayer = 0,
-- .imageSubresource.layerCount = 1,
-- .imageOffset = {0, 0, 0},
-- .imageExtent = {width, height, 1},
-- };
-+ VkBufferImageCopy region = {};
-+ region.bufferOffset = 0;
-+ region.bufferRowLength = buffer_width;
-+ region.bufferImageHeight = buffer_height;
-+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ region.imageSubresource.mipLevel = 0;
-+ region.imageSubresource.baseArrayLayer = 0;
-+ region.imageSubresource.layerCount = 1;
-+ region.imageOffset = {0, 0, 0};
-+ region.imageExtent = {width, height, 1};
- vkCmdCopyBufferToImage(command_buffer_, buffer, image,
- VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
- }
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
deleted file mode 100644
index 98789d9..0000000
--- a/chromium-76.0.3809.100-quiche-compile-fix.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
-@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
- std::string TransportParameterIdToString(
- TransportParameters::TransportParameterId param_id) {
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- return "original_connection_id";
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- return "idle_timeout";
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- return "stateless_reset_token";
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- return "max_packet_size";
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- return "initial_max_data";
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- return "initial_max_stream_data_bidi_local";
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- return "initial_max_stream_data_bidi_remote";
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- return "initial_max_stream_data_uni";
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- return "initial_max_streams_bidi";
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- return "initial_max_streams_uni";
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- return "ack_delay_exponent";
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- return "max_ack_delay";
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- return "disable_migration";
-- case kPreferredAddress:
-+ case TransportParameters::kPreferredAddress:
- return "preferred_address";
-- case kGoogleQuicParam:
-+ case TransportParameters::kGoogleQuicParam:
- return "google";
-- case kGoogleQuicVersion:
-+ case TransportParameters::kGoogleQuicVersion:
- return "google-version";
- }
- return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
-@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
- CBB original_connection_id_param;
- if (!in.original_connection_id.IsEmpty()) {
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
- !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
- !CBB_add_bytes(
- &original_connection_id_param,
-@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
- if (!in.stateless_reset_token.empty()) {
- DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
- !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
- !CBB_add_bytes(&stateless_reset_token_param,
- in.stateless_reset_token.data(),
-@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
-
- // disable_migration
- if (in.disable_migration) {
-- if (!CBB_add_u16(¶ms, kDisableMigration) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
- !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
- QUIC_BUG << "Failed to write disable_migration for " << in;
- return false;
-@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
- QUIC_BUG << "Bad lengths " << *in.preferred_address;
- return false;
- }
-- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
- !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
- !CBB_add_bytes(
- &preferred_address_params,
-@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
- if (in.google_quic_params) {
- const QuicData& serialized_google_quic_params =
- in.google_quic_params->GetSerialized();
-- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
- !CBB_add_bytes(&google_quic_params,
- reinterpret_cast<const uint8_t*>(
-@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
-
- // Google-specific version extension.
- CBB google_version_params;
-- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
- !CBB_add_u32(&google_version_params, in.version)) {
- QUIC_BUG << "Failed to write Google version extension for " << in;
-@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
- }
- bool parse_success = true;
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- if (!out->original_connection_id.IsEmpty()) {
- QUIC_DLOG(ERROR) << "Received a second original connection ID";
- return false;
-@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
- CBS_len(&value));
- }
- break;
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
- break;
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- if (!out->stateless_reset_token.empty()) {
- QUIC_DLOG(ERROR) << "Received a second stateless reset token";
- return false;
-@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
- out->stateless_reset_token.assign(CBS_data(&value),
- CBS_data(&value) + CBS_len(&value));
- break;
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- parse_success = out->max_packet_size.ReadFromCbs(&value);
- break;
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- parse_success = out->initial_max_data.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- parse_success =
- out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- parse_success =
- out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
- break;
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
- break;
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- parse_success = out->max_ack_delay.ReadFromCbs(&value);
- break;
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- if (out->disable_migration) {
- QUIC_DLOG(ERROR) << "Received a second disable migration";
- return false;
-@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
- }
- out->disable_migration = true;
- break;
-- case kPreferredAddress: {
-+ case TransportParameters::kPreferredAddress: {
- uint16_t ipv4_port, ipv6_port;
- in_addr ipv4_address;
- in6_addr ipv6_address;
-@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
- QuicMakeUnique<TransportParameters::PreferredAddress>(
- preferred_address);
- } break;
-- case kGoogleQuicParam: {
-+ case TransportParameters::kGoogleQuicParam: {
- if (out->google_quic_params) {
- QUIC_DLOG(ERROR) << "Received a second Google parameter";
- return false;
-@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
- reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
- out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
- } break;
-- case kGoogleQuicVersion: {
-+ case TransportParameters::kGoogleQuicVersion: {
- if (!CBS_get_u32(&value, &out->version)) {
- QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
- return false;
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
-@@ -2,10 +2,12 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
--#include <string>
--
- #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
-
-+#include <cstring>
-+#include <string>
-+#include <vector>
-+
- namespace quic {
-
- namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
deleted file mode 100644
index 5e392e6..0000000
--- a/chromium-76.0.3809.100-throttling-dead-beef.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 06 Jun 2019 07:54:05 +0000
-Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
-
-We are setting kAlive and kDead values assigning values that
-are bigger than the maximum signed int32. It is better to use
-uint32_t in this case.
-
-Bug: 819294
-Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666619}
----
-
-diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
-index 43751c4..3c6f87b 100644
---- a/services/network/throttling/throttling_controller.h
-+++ b/services/network/throttling/throttling_controller.h
-@@ -38,7 +38,7 @@
-
- // TODO(https://crbug.com/960874): Debugging code to try and shed some light
- // on why the owned maps are invalid.
-- enum class Liveness : int32_t {
-+ enum class Liveness : uint32_t {
- kAlive = 0xCA11AB13,
- kDead = 0xDEADBEEF,
- };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
deleted file mode 100644
index a392971..0000000
--- a/chromium-76.0.3809.100-weak-ptr-no-except.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 18 Jul 2019 14:26:11 +0200
-Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
-
-A GCC build regression has happened on DisjointRangeLockManager, as its move
-operator and constructor were declared noexcept. This was failing because the
-default implementation depended on base::WeakPtr, that did not provide
-noexcept declaration for them.
-
-So make base::WeakPtr noexcept.
-
-Bug: 819294
-Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
----
-
-diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
-index 64fd499..0efcc44 100644
---- a/base/memory/weak_ptr.cc
-+++ b/base/memory/weak_ptr.cc
-@@ -46,7 +46,7 @@
-
- WeakReference::~WeakReference() = default;
-
--WeakReference::WeakReference(WeakReference&& other) = default;
-+WeakReference::WeakReference(WeakReference&& other) noexcept = default;
-
- WeakReference::WeakReference(const WeakReference& other) = default;
-
-diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
-index 72b5f1f..ccd22fd13 100644
---- a/base/memory/weak_ptr.h
-+++ b/base/memory/weak_ptr.h
-@@ -116,9 +116,9 @@
- explicit WeakReference(const scoped_refptr<Flag>& flag);
- ~WeakReference();
-
-- WeakReference(WeakReference&& other);
-+ WeakReference(WeakReference&& other) noexcept;
- WeakReference(const WeakReference& other);
-- WeakReference& operator=(WeakReference&& other) = default;
-+ WeakReference& operator=(WeakReference&& other) noexcept = default;
- WeakReference& operator=(const WeakReference& other) = default;
-
- bool IsValid() const;
-@@ -153,9 +153,9 @@
- ~WeakPtrBase();
-
- WeakPtrBase(const WeakPtrBase& other) = default;
-- WeakPtrBase(WeakPtrBase&& other) = default;
-+ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
- WeakPtrBase& operator=(const WeakPtrBase& other) = default;
-- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
-+ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
-
- void reset() {
- ref_ = internal::WeakReference();
-@@ -236,7 +236,7 @@
- ptr_ = reinterpret_cast<uintptr_t>(t);
- }
- template <typename U>
-- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
-+ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
- // Need to cast from U* to T* to do pointer adjustment in case of multiple
- // inheritance. This also enforces the "U is a T" rule.
- T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
deleted file mode 100644
index 8bfbced..0000000
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
-@@ -17,6 +17,7 @@
- #include "chrome/common/pref_names.h"
- #include "chrome/test/base/in_process_browser_test.h"
- #include "components/prefs/pref_service.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerStubResolverBrowsertest,
- ::testing::Values(false, true));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -51,6 +53,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -81,6 +84,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
-@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
-@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
-+++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
---- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
-@@ -35,6 +35,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
---- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
-@@ -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 <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/interface_request.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -113,6 +116,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if BUILDFLAG(ENABLE_REPORTING)
- #include "net/network_error_logging/network_error_logging_service.h"
- #include "net/reporting/reporting_cache.h"
-@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
- EXPECT_EQ("None", response_body);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -238,15 +238,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -299,6 +290,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -310,6 +310,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 73db4d4..0000000
--- a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
---- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
-@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
- "application/x-protobuf",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
new file mode 100644
index 0000000..c836214
--- /dev/null
+++ b/chromium-77.0.3865.75-boolfix.patch
@@ -0,0 +1,24 @@
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
+@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
+
+ bool is_valid() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() {
+ return std::move(handle_);
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
+@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
+ // handle.
+ bool is_pending() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
+
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -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 <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
new file mode 100644
index 0000000..385778c
--- /dev/null
+++ b/chromium-77.0.3865.75-fix-v8-gcc.patch
@@ -0,0 +1,14 @@
+diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
+--- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
++++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
+@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
+ return new_element_dictionary;
+ }
+
++template void JSObject::ApplyAttributesToDictionary(
++ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
++ const PropertyAttributes attributes);
++
+ template <PropertyAttributes attrs>
+ Maybe<bool> JSObject::PreventExtensionsWithTransition(
+ Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
new file mode 100644
index 0000000..d342e2d
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -0,0 +1,13 @@
+diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
+@@ -24,8 +24,7 @@
+ #elif !defined(__native_client__) && \
+ ((defined(__clang__) && \
+ ((__clang_major__ > 3) || \
+- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+- (defined(__GNUC__) && __GNUC__ >= 5))
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
new file mode 100644
index 0000000..34b858a
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc5-r3.patch
@@ -0,0 +1,36 @@
+diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
+--- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
++++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+ static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+- return mailbox.name;
++ return base::make_span(mailbox.name);
+ }
+ static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
+--- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
++++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
+ static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+ const viz::TextureDrawQuad* quad =
+ viz::TextureDrawQuad::MaterialCast(&input);
+- return quad->vertex_opacity;
++ return base::make_span(quad->vertex_opacity);
+ }
+
+ static bool y_flipped(const viz::DrawQuad& input) {
+diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+--- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
++++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <algorithm>
+ #include <numeric>
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium.spec b/chromium.spec
index 4239a65..100b665 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,14 +164,14 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.75
Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -211,20 +211,20 @@ Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
+Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
+Patch21: chromium-77.0.3865.75-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-77.0.3865.75-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Do not use unrar code, it is non-free
@@ -232,7 +232,7 @@ Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
# Try to fix version.py for Rawhide
Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
@@ -260,43 +260,11 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb88987c…
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa954487585d…
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd55053…
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb8025…
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c8236c…
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b79447902532…
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa545…
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0ef9…
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c42…
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11ab…
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24a2…
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d260…
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf114…
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef4247…
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d819e…
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df64…
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c60…
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -305,7 +273,7 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -846,7 +814,7 @@ udev.
%patch22 -p1 -b .gcc-round-fix
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
+#%patch25 -p1 -b .aarch64fix
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -861,23 +829,8 @@ udev.
%patch38 -p1 -b .disable-ndnpc
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
@@ -1466,6 +1419,7 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+echo
# Now do the full browser
%if 0%{freeworld}
../depot_tools/ninja -C %{target} -vvv media
diff --git a/sources b/sources
index 2d38a7c..a1d28bf 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
commit be307c8f4d884cb12958bb7bc62eb591fcaea35b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:11:22 2019 +0200
22x22 icon was removed and use the symbolic one as well
diff --git a/chromium.spec b/chromium.spec
index 799b55b..d2436e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1634,8 +1634,8 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
+cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit f68b7de9c099cd6540f657e6df3d7bccf7ff914b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:08:54 2019 +0200
Fix the aarch64 build
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium.spec b/chromium.spec
index 760805e..799b55b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -288,6 +288,8 @@ Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e8b…
Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897ee…
+Patch70: chromium-77.0.3865.75-missing-limits.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -853,6 +855,7 @@ udev.
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
%patch69 -p1 -b .gcc-abstract-class
+%patch70 -p1 -b .missing-limits
# EPEL specific patches
%if 0%{?rhel} == 7
commit d544c78407eac8efb67088cde61ccd4eba574658
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 19:15:24 2019 +0200
Customize the ninja status to show the currently build target
So one is able to realize faster, where the build is failing.
diff --git a/chromium.spec b/chromium.spec
index 625d74d..760805e 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompila…
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -1403,17 +1410,17 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
fi
tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1433,34 +1440,36 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
-echo
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%if 0%{?build_remoting_app}
%if 0%{?nacl}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
+%build_target %{builddir} remoting_webapp
%endif
%endif
-popd
%endif
# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
+rm -rf %{builddir}/gen/sdk
rm -rf native_client/toolchain
rm -rf third_party/llvm-build/*
@@ -1470,7 +1479,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1499,7 +1508,7 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
%if 0%{?nacl}
cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
@@ -1550,7 +1559,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1593,7 +1602,7 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
commit d0e5893874a5394bcf62cbb090dd7245a080c245
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 17:06:52 2019 +0200
Backport another GCC build fix
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium.spec b/chromium.spec
index 4a74346..625d74d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -279,6 +279,8 @@ Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e464058…
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e8b…
+Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -843,6 +845,7 @@ udev.
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
+%patch69 -p1 -b .gcc-abstract-class
# EPEL specific patches
%if 0%{?rhel} == 7
commit a159083f2bffc5638c2bc82df2b5187c6b2b6408
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:10:29 2019 +0200
Don't remove an additional bundled library
diff --git a/chromium.spec b/chromium.spec
index 277fcfe..4a74346 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1234,6 +1234,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
'third_party/one_euro_filter' \
'third_party/ots' \
commit 5316414f65248b78db5678e60a797f2cea4dc493
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:09:46 2019 +0200
More of the harfbuzz related fixes
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium.spec b/chromium.spec
index b959409..277fcfe 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -277,6 +277,8 @@ Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Needs to be submitted..
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e464058…
+Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -362,7 +364,7 @@ BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -624,7 +626,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -840,6 +842,7 @@ udev.
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
+%patch68 -p1 -b .harfbuzz-subset
# EPEL specific patches
%if 0%{?rhel} == 7
commit 4287667b770213af574b8adb5d22f919a5c63fca
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:13:56 2019 +0200
Fix the release number and add a changelog entry
diff --git a/chromium.spec b/chromium.spec
index dca072c..b959409 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1872,6 +1872,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit a9b565084b2825a476563c1d40597038e8d18971
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:06:07 2019 +0200
Preserve the spirv heads for swiftshader compilation
diff --git a/chromium.spec b/chromium.spec
index 328b149..dca072c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1277,6 +1277,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
commit b10ed01ae7f394478f8abea46a1227b93933c576
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:05:31 2019 +0200
Another export and alignas gcc compilation fix
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium.spec b/chromium.spec
index a6daffc..328b149 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -275,6 +275,8 @@ Patch64: chromium-77.0.3865.75-certificate-transparency.patch
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
+# Needs to be submitted..
+Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -837,6 +839,7 @@ udev.
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
+%patch67 -p1 -b .base-gcc-no-alignas
# EPEL specific patches
%if 0%{?rhel} == 7
commit ce1cdf147b4faa3545fb1f783fed82712f601144
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 21:48:17 2019 +0200
Remove an unneeded patch that's breaking the build
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
deleted file mode 100644
index 385778c..0000000
--- a/chromium-77.0.3865.75-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
---- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
-+++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
-@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
- return new_element_dictionary;
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium.spec b/chromium.spec
index 129f8b9..a6daffc 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -262,9 +262,6 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd55053…
-Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c60…
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -834,7 +831,6 @@ udev.
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
commit 670a5ef5afc89028d89ec7486261805cefbd1626
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:00:03 2019 +0200
Use the bundled harfbuzz-ng for < F31
Needed because of the hb_subset_input_set_retain_gids(), that's only
available in harbuzz 2.4 that's only in F31+
diff --git a/chromium.spec b/chromium.spec
index 980a57d..129f8b9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -133,9 +133,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
commit 1dabe8d36679bcd36e5488c42a5f148a6100f872
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:24:09 2019 +0200
Include <memory> to fix the headless build
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium.spec b/chromium.spec
index 92e6b78..980a57d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -276,6 +276,8 @@ Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -838,6 +840,7 @@ udev.
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
+%patch66 -p1 -b .gcc-include-memory
# EPEL specific patches
%if 0%{?rhel} == 7
commit aa41a1de67e23ce345062d1753d1f6b3c3d7fad8
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:54 2019 +0200
Update the clean-ffmpeg.sh script
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..fd226e8 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -138,6 +138,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/vlc.h \
libavcodec/vorbisdsp.h \
libavcodec/vp3data.h \
+ libavcodec/vp4data.h \
libavcodec/vp3dsp.h \
libavcodec/vp56.h \
libavcodec/vp56dsp.h \
diff --git a/sources b/sources
index a1d28bf..b9b0498 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
commit 3534908954173e8207dd19ecc36b19eb5666ecb7
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:21:43 2019 +0200
Fix the previously rebased patched
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
index d342e2d..920a53e 100644
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -1,13 +1,15 @@
diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
-@@ -24,8 +24,7 @@
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
+@@ -23,9 +23,8 @@
+ // Where available use builtin math overflow support on Clang and GCC.
#elif !defined(__native_client__) && \
((defined(__clang__) && \
- ((__clang_major__ > 3) || \
+- ((__clang_major__ > 3) || \
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
++ (__clang_major__ > 3) || \
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
#include "base/numerics/safe_math_clang_gcc_impl.h"
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
#else
commit 62d330423a8d7a7ba17fdbee6966abbc76707a4a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:23:46 2019 +0200
Missing bundled dependency for headless
diff --git a/chromium.spec b/chromium.spec
index 440ec40..92e6b78 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1230,6 +1230,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/openscreen' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
commit 6e6dfd56f09be0eb1bd8c1e180b5db4b517958af
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:03 2019 +0200
Unbundle the zlib
Use the gentoo patch.
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium.spec b/chromium.spec
index a943ad5..440ec40 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -274,6 +274,8 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/ch…
+Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -835,6 +837,7 @@ udev.
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
+%patch65 -p1 -b .unbundle-zlib
# EPEL specific patches
%if 0%{?rhel} == 7
commit 782a626758b49d8cedf4c7d485190c817455e136
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 12 17:28:51 2019 +0200
Update to 77.0.3865.75
Rebase and clean the patches.
diff --git a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 183b5ab..0000000
--- a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
---- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
-+++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
-@@ -21,8 +21,7 @@
- #if !defined(__native_client__) && \
- ((defined(__clang__) && \
- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-68.0.3440.106-boolfix.patch b/chromium-68.0.3440.106-boolfix.patch
deleted file mode 100644
index ed22aa9..0000000
--- a/chromium-68.0.3440.106-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-08-09 03:21:23.066802340 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-08-09 03:25:10.638595925 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-08-09 03:21:23.067802318 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h 2018-08-09 03:24:44.935229067 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-08-08 15:11:05.000000000 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h 2018-08-09 03:21:23.067802318 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-72.0.3626.121-fedora-user-agent.patch b/chromium-72.0.3626.121-fedora-user-agent.patch
deleted file mode 100644
index 5cef6f0..0000000
--- a/chromium-72.0.3626.121-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc
---- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400
-+++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400
-@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-72.0.3626.121-gcc5-r3.patch b/chromium-72.0.3626.121-gcc5-r3.patch
deleted file mode 100644
index f4cf40b..0000000
--- a/chromium-72.0.3626.121-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500
-+++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500
-+++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400
-@@ -340,7 +340,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400
-+++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <algorithm>
- #include <numeric>
- #include <vector>
diff --git a/chromium-75.0.3770.100-fix-v8-gcc.patch b/chromium-75.0.3770.100-fix-v8-gcc.patch
deleted file mode 100644
index 4a1a4b0..0000000
--- a/chromium-75.0.3770.100-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
---- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
-+++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
-@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
- }
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-75.0.3770.80-no-zlib-mangle.patch b/chromium-75.0.3770.80-no-zlib-mangle.patch
deleted file mode 100644
index 998be67..0000000
--- a/chromium-75.0.3770.80-no-zlib-mangle.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
---- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
-+++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
-@@ -8,10 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names. Also
-- * sets up export macros in component builds. */
--#include "chromeconf.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
deleted file mode 100644
index 06c909f..0000000
--- a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
-@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
- base::Unretained(process_node_.get()), info.exit_code));
- }
-
-+void RenderProcessUserData::RenderProcessHostDestroyed(
-+ content::RenderProcessHost* host) {
-+ host->RemoveUserData(kRenderProcessUserDataKey);
-+}
-+
- } // namespace performance_manager
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
-@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
- void RenderProcessExited(
- content::RenderProcessHost* host,
- const content::ChildProcessTerminationInfo& info) override;
-+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
-
- // All instances are linked together in a doubly linked list to allow orderly
- // destruction at browser shutdown time.
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 5f45a8f..0000000
--- a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 18:38:12 +0200
-Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
-
-AccountInfo declares them as noexcept and uses default implementation,
-so all its members (including AccountId) should be noexcept. But AccountId
-is not noexcept. To fix it we just need to make CoreAccountId move
-operator/assign operator noexcept.
-
-Bug: 819294
-Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
----
-
-diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
-index d808082..12eefe3 100644
---- a/google_apis/gaia/core_account_id.cc
-+++ b/google_apis/gaia/core_account_id.cc
-@@ -6,8 +6,16 @@
-
- CoreAccountId::CoreAccountId() = default;
-
-+CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
-+
-+CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::~CoreAccountId() = default;
-
-+CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-+
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
-index 5ea602a..c2d1911 100644
---- a/google_apis/gaia/core_account_id.h
-+++ b/google_apis/gaia/core_account_id.h
-@@ -14,8 +14,13 @@
- // for design and tracking).
- struct CoreAccountId {
- CoreAccountId();
-+ CoreAccountId(const CoreAccountId&);
-+ CoreAccountId(CoreAccountId&&) noexcept;
- ~CoreAccountId();
-
-+ CoreAccountId& operator=(const CoreAccountId&);
-+ CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
- // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
deleted file mode 100644
index e4d754a..0000000
--- a/chromium-76.0.3809.100-gcc-cc-no-except.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 07 Jun 2019 09:50:11 +0000
-Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
-
-As LayerTreeHostImpl::UIResourceData move constructor is declared
-noexcept with default implementation, the move constructor of its
-members should also be noexcept. GCC will fail to build otherwise
-for mismatching noexcept declaration.
-
-We also set the move assignment operator.
-
-Bug: 819294
-Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#667064}
----
-
-diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
-index 2be2570..8426fa8 100644
---- a/base/memory/shared_memory_mapping.cc
-+++ b/base/memory/shared_memory_mapping.cc
-@@ -33,7 +33,7 @@
-
- SharedMemoryMapping::SharedMemoryMapping() = default;
-
--SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
-+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
- : memory_(mapping.memory_),
- size_(mapping.size_),
- mapped_size_(mapping.mapped_size_),
-@@ -42,7 +42,7 @@
- }
-
- SharedMemoryMapping& SharedMemoryMapping::operator=(
-- SharedMemoryMapping&& mapping) {
-+ SharedMemoryMapping&& mapping) noexcept {
- Unmap();
- memory_ = mapping.memory_;
- size_ = mapping.size_;
-@@ -90,9 +90,9 @@
-
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
- void* address,
- size_t size,
-@@ -102,9 +102,9 @@
-
- WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
- void* address,
- size_t size,
-diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
-index d9569af..2b8858e 100644
---- a/base/memory/shared_memory_mapping.h
-+++ b/base/memory/shared_memory_mapping.h
-@@ -32,8 +32,8 @@
- SharedMemoryMapping();
-
- // Move operations are allowed.
-- SharedMemoryMapping(SharedMemoryMapping&& mapping);
-- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
-+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
-+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
-
- // Unmaps the region if the mapping is valid.
- virtual ~SharedMemoryMapping();
-@@ -93,8 +93,9 @@
- ReadOnlySharedMemoryMapping();
-
- // Move operations are allowed.
-- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
-- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
-+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
-+ ReadOnlySharedMemoryMapping& operator=(
-+ ReadOnlySharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is read-only memory. This is
- // page-aligned. This is nullptr for invalid instances.
-@@ -171,8 +172,9 @@
- WritableSharedMemoryMapping();
-
- // Move operations are allowed.
-- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
-- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
-+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
-+ WritableSharedMemoryMapping& operator=(
-+ WritableSharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is writable memory. This is
- // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
deleted file mode 100644
index 0dbffd5..0000000
--- a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 19:44:58 +0200
-Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
-
-Compilation fails because we are declaring ParseValueForFuzzer as friend method,
-but we are declaring it is in anonymous namespace. Moving to global namespace
-still fails (in this case in Clang).
-
-So final solution is making it a public static method of FeaturePolicyParser.
-
-Bug: 819294
-Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
----
-
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-index 3b7f4a9..eaee409 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-@@ -317,6 +317,13 @@
- return value;
- }
-
-+void FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType feature_type,
-+ const WTF::String& value_string) {
-+ bool ok;
-+ ParseValueForType(feature_type, value_string, &ok);
-+}
-+
- bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
- const ParsedFeaturePolicy& policy) {
- return std::any_of(policy.begin(), policy.end(),
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-index fd25d90..36af405 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-@@ -16,9 +16,6 @@
- #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
-
--// Forward declare for friendship.
--void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
--
- namespace blink {
-
- class Document;
-@@ -79,8 +76,9 @@
- const FeatureNameMap& feature_names,
- ExecutionContext* execution_context = nullptr);
-
-+ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
-+
- private:
-- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
- static PolicyValue GetFallbackValueForFeature(
- mojom::FeaturePolicyFeature feature);
- static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-index 7f8e6aa..53350e43 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-@@ -23,9 +23,9 @@
- extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static blink::BlinkFuzzerTestSupport test_support =
- blink::BlinkFuzzerTestSupport();
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
-- WTF::String(data, size));
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
-- WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
- return 0;
- }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
deleted file mode 100644
index 26bba05..0000000
--- a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 17:18:40 +0000
-Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
-
-Other HasFraction methods as in PhysicalUnit are declared already
-constexpr and using it. It breaks GCC build.
-
-Bug: 819294.
-Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
-Reviewed-by: vmpstr <vmpstr(a)chromium.org>
-Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666336}
----
-
-diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
-index f073986..b6dbc76 100644
---- a/third_party/blink/renderer/platform/geometry/layout_unit.h
-+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
-@@ -202,7 +202,9 @@
- return value_ > 0 ? LayoutUnit() : *this;
- }
-
-- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
-+ constexpr bool HasFraction() const {
-+ return RawValue() % kFixedPointDenominator;
-+ }
-
- LayoutUnit Fraction() const {
- // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
deleted file mode 100644
index 2876de4..0000000
--- a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 10:27:19 +0200
-Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
-
-In GCC, build is failing because history::QueryURLResult declares its move
-assignment operator as noexcept using default implementation. That requires
-its members to provide a move assignment operator that is noexcept too.
-
-But URLRow was missing noexcept declaration in move assignment operator (even
-though it was providing noexcept to its move constructor).
-
-Bug: 819294
-Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
----
-
-diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
-index 44c22fd..aec0101 100644
---- a/components/history/core/browser/url_row.cc
-+++ b/components/history/core/browser/url_row.cc
-@@ -26,7 +26,7 @@
- }
-
- URLRow& URLRow::operator=(const URLRow& other) = default;
--URLRow& URLRow::operator=(URLRow&& other) = default;
-+URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
-
- void URLRow::Swap(URLRow* other) {
- std::swap(id_, other->id_);
-diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
-index 8f6f9cf..31a1ef8 100644
---- a/components/history/core/browser/url_row.h
-+++ b/components/history/core/browser/url_row.h
-@@ -35,7 +35,7 @@
-
- virtual ~URLRow();
- URLRow& operator=(const URLRow& other);
-- URLRow& operator=(URLRow&& other);
-+ URLRow& operator=(URLRow&& other) noexcept;
-
- URLID id() const { return id_; }
-
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
deleted file mode 100644
index 3bf394f..0000000
--- a/chromium-76.0.3809.100-gcc-initialization-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 21:09:01 +0000
-Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
-
-XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
-same order of the declaration. GCC fails because of that.
-
-Bug: 819294
-Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
-Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666436}
----
-
-diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
-index f649dd4..0aa6892 100644
---- a/ui/gl/gl_surface_glx.cc
-+++ b/ui/gl/gl_surface_glx.cc
-@@ -583,10 +583,10 @@
-
- XSetWindowAttributes swa = {
- .background_pixmap = 0,
-- .bit_gravity = NorthWestGravity,
-- .colormap = g_colormap,
- .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
- .border_pixel = 0,
-+ .bit_gravity = NorthWestGravity,
-+ .colormap = g_colormap,
- };
- auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
- if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
deleted file mode 100644
index 1d4b90f..0000000
--- a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 08:00:13 +0000
-Subject: [PATCH] GCC: move explicit specialization out of RunInfo
-
-Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
-build because of that. Move the template specializations out of RunInfo declaration
-in shape_result_inline_headeres.h to fix the GCC build issue.
-
-Bug: 819294
-Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#667901}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-index 76ee6091..c14d3a0 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-@@ -251,37 +251,6 @@
- template <bool has_non_zero_glyph_offsets>
- struct iterator final {};
-
-- // For non-zero glyph offset array
-- template <>
-- struct iterator<true> final {
-- // The constructor for ShapeResult
-- explicit iterator(const GlyphOffsetArray& array)
-- : pointer(array.storage_.get()) {
-- DCHECK(pointer);
-- }
--
-- // The constructor for ShapeResultView
-- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-- DCHECK(pointer);
-- }
--
-- GlyphOffset operator*() const { return *pointer; }
-- void operator++() { ++pointer; }
--
-- const GlyphOffset* pointer;
-- };
--
-- // For zero glyph offset array
-- template <>
-- struct iterator<false> final {
-- explicit iterator(const GlyphOffsetArray& array) {
-- DCHECK(!array.HasStorage());
-- }
-- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-- GlyphOffset operator*() const { return GlyphOffset(); }
-- void operator++() {}
-- };
--
- template <bool has_non_zero_glyph_offsets>
- iterator<has_non_zero_glyph_offsets> GetIterator() const {
- return iterator<has_non_zero_glyph_offsets>(*this);
-@@ -495,6 +464,37 @@
- float width_;
- };
-
-+// For non-zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
-+ // The constructor for ShapeResult
-+ explicit iterator(const GlyphOffsetArray& array)
-+ : pointer(array.storage_.get()) {
-+ DCHECK(pointer);
-+ }
-+
-+ // The constructor for ShapeResultView
-+ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-+ DCHECK(pointer);
-+ }
-+
-+ GlyphOffset operator*() const { return *pointer; }
-+ void operator++() { ++pointer; }
-+
-+ const GlyphOffset* pointer;
-+};
-+
-+// For zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
-+ explicit iterator(const GlyphOffsetArray& array) {
-+ DCHECK(!array.HasStorage());
-+ }
-+ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-+ GlyphOffset operator*() const { return GlyphOffset(); }
-+ void operator++() {}
-+};
-+
- // Find the range of HarfBuzzRunGlyphData for the specified character index
- // range. This function uses binary search twice, hence O(2 log n).
- inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
deleted file mode 100644
index bc0ed98..0000000
--- a/chromium-76.0.3809.100-gcc-net-fetcher.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 16:56:27 +0000
-Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
-
-GCC does not allow friendship declaration to anonymous namespace as done with Job
-object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
-makes RemoveJob method public, that was the only reason to make Job a friend.
-
-Error was:
-./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
-../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
-../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-
-Bug: 819294
-Change-Id: I3609f4558e570741395366de6a4cd40577d91450
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
-Commit-Queue: Eric Roman <eroman(a)chromium.org>
-Reviewed-by: Eric Roman <eroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668015}
----
-
-diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
-index 11a1166..349c656 100644
---- a/net/cert_net/cert_net_fetcher_impl.cc
-+++ b/net/cert_net/cert_net_fetcher_impl.cc
-@@ -135,21 +135,19 @@
- void Fetch(std::unique_ptr<RequestParams> request_params,
- scoped_refptr<RequestCore> request);
-
-+ // Removes |job| from the in progress jobs and transfers ownership to the
-+ // caller.
-+ std::unique_ptr<Job> RemoveJob(Job* job);
-+
- // Cancels outstanding jobs, which stops network requests and signals the
- // corresponding RequestCores that the requests have completed.
- void Shutdown();
-
- private:
-- friend class Job;
--
- // Finds a job with a matching RequestPararms or returns nullptr if there was
- // no match.
- Job* FindJob(const RequestParams& params);
-
-- // Removes |job| from the in progress jobs and transfers ownership to the
-- // caller.
-- std::unique_ptr<Job> RemoveJob(Job* job);
--
- // The in-progress jobs. This set does not contain the job which is actively
- // invoking callbacks (OnJobCompleted).
- JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
deleted file mode 100644
index ad40bb9..0000000
--- a/chromium-76.0.3809.100-gcc-themeservice-includes.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 22:01:03 +0200
-Subject: [PATCH] IWYU: ThemeService requires NativeTheme
-
-As ThemeService referes to NativeTheme through a ScopedObserver,
-the full declaration is required.
-
-Bug: 819294
-Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
----
-
-diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
-index d65388e2..23dc86d 100644
---- a/chrome/browser/themes/theme_service.cc
-+++ b/chrome/browser/themes/theme_service.cc
-@@ -54,7 +54,6 @@
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/image/image_skia.h"
- #include "ui/native_theme/common_theme.h"
--#include "ui/native_theme/native_theme.h"
-
- #if BUILDFLAG(ENABLE_EXTENSIONS)
- #include "base/scoped_observer.h"
-diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
-index 6c79c72..f93dc0d 100644
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -25,6 +25,7 @@
- #include "extensions/buildflags/buildflags.h"
- #include "extensions/common/extension_id.h"
- #include "ui/base/theme_provider.h"
-+#include "ui/native_theme/native_theme.h"
- #include "ui/native_theme/native_theme_observer.h"
-
- class BrowserThemePack;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
deleted file mode 100644
index cf93bce..0000000
--- a/chromium-76.0.3809.100-gcc-vulkan.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 17:39:38 +0000
-Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
-
-The notation for initialization of structs referring to its properties
-is invalid in C++. This is not accepted in GCC. It was making build
-fail in VulkanCommandBuffer.
-
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
- .subresourceRange.baseMipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
- .subresourceRange.levelCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
- .subresourceRange.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
- .subresourceRange.layerCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
- .imageSubresource.mipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
- .imageSubresource.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
- .imageSubresource.layerCount = 1,
- ^
-Bug: 819294
-
-Change-Id: I999abece0c727e77964789183642ba62009c2c22
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Antoine Labour <piman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668033}
----
-
-diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
-index ba776e4..4f14c85 100644
---- a/gpu/vulkan/vulkan_command_buffer.cc
-+++ b/gpu/vulkan/vulkan_command_buffer.cc
-@@ -207,21 +207,20 @@
- void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
- VkImageLayout old_layout,
- VkImageLayout new_layout) {
-- VkImageMemoryBarrier barrier = {
-- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-- .srcAccessMask = GetAccessMask(old_layout),
-- .dstAccessMask = GetAccessMask(new_layout),
-- .oldLayout = old_layout,
-- .newLayout = new_layout,
-- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .image = image,
-- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .subresourceRange.baseMipLevel = 0,
-- .subresourceRange.levelCount = 1,
-- .subresourceRange.baseArrayLayer = 0,
-- .subresourceRange.layerCount = 1,
-- };
-+ VkImageMemoryBarrier barrier = {};
-+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-+ barrier.srcAccessMask = GetAccessMask(old_layout);
-+ barrier.dstAccessMask = GetAccessMask(new_layout);
-+ barrier.oldLayout = old_layout;
-+ barrier.newLayout = new_layout;
-+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.image = image;
-+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ barrier.subresourceRange.baseMipLevel = 0;
-+ barrier.subresourceRange.levelCount = 1;
-+ barrier.subresourceRange.baseArrayLayer = 0;
-+ barrier.subresourceRange.layerCount = 1;
- vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
- GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
- nullptr, 1, &barrier);
-@@ -233,17 +232,16 @@
- uint32_t buffer_height,
- uint32_t width,
- uint32_t height) {
-- VkBufferImageCopy region = {
-- .bufferOffset = 0,
-- .bufferRowLength = buffer_width,
-- .bufferImageHeight = buffer_height,
-- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .imageSubresource.mipLevel = 0,
-- .imageSubresource.baseArrayLayer = 0,
-- .imageSubresource.layerCount = 1,
-- .imageOffset = {0, 0, 0},
-- .imageExtent = {width, height, 1},
-- };
-+ VkBufferImageCopy region = {};
-+ region.bufferOffset = 0;
-+ region.bufferRowLength = buffer_width;
-+ region.bufferImageHeight = buffer_height;
-+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ region.imageSubresource.mipLevel = 0;
-+ region.imageSubresource.baseArrayLayer = 0;
-+ region.imageSubresource.layerCount = 1;
-+ region.imageOffset = {0, 0, 0};
-+ region.imageExtent = {width, height, 1};
- vkCmdCopyBufferToImage(command_buffer_, buffer, image,
- VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
- }
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
deleted file mode 100644
index 98789d9..0000000
--- a/chromium-76.0.3809.100-quiche-compile-fix.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
-@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
- std::string TransportParameterIdToString(
- TransportParameters::TransportParameterId param_id) {
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- return "original_connection_id";
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- return "idle_timeout";
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- return "stateless_reset_token";
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- return "max_packet_size";
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- return "initial_max_data";
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- return "initial_max_stream_data_bidi_local";
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- return "initial_max_stream_data_bidi_remote";
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- return "initial_max_stream_data_uni";
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- return "initial_max_streams_bidi";
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- return "initial_max_streams_uni";
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- return "ack_delay_exponent";
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- return "max_ack_delay";
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- return "disable_migration";
-- case kPreferredAddress:
-+ case TransportParameters::kPreferredAddress:
- return "preferred_address";
-- case kGoogleQuicParam:
-+ case TransportParameters::kGoogleQuicParam:
- return "google";
-- case kGoogleQuicVersion:
-+ case TransportParameters::kGoogleQuicVersion:
- return "google-version";
- }
- return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
-@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
- CBB original_connection_id_param;
- if (!in.original_connection_id.IsEmpty()) {
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
- !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
- !CBB_add_bytes(
- &original_connection_id_param,
-@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
- if (!in.stateless_reset_token.empty()) {
- DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
- !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
- !CBB_add_bytes(&stateless_reset_token_param,
- in.stateless_reset_token.data(),
-@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
-
- // disable_migration
- if (in.disable_migration) {
-- if (!CBB_add_u16(¶ms, kDisableMigration) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
- !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
- QUIC_BUG << "Failed to write disable_migration for " << in;
- return false;
-@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
- QUIC_BUG << "Bad lengths " << *in.preferred_address;
- return false;
- }
-- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
- !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
- !CBB_add_bytes(
- &preferred_address_params,
-@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
- if (in.google_quic_params) {
- const QuicData& serialized_google_quic_params =
- in.google_quic_params->GetSerialized();
-- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
- !CBB_add_bytes(&google_quic_params,
- reinterpret_cast<const uint8_t*>(
-@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
-
- // Google-specific version extension.
- CBB google_version_params;
-- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
- !CBB_add_u32(&google_version_params, in.version)) {
- QUIC_BUG << "Failed to write Google version extension for " << in;
-@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
- }
- bool parse_success = true;
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- if (!out->original_connection_id.IsEmpty()) {
- QUIC_DLOG(ERROR) << "Received a second original connection ID";
- return false;
-@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
- CBS_len(&value));
- }
- break;
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
- break;
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- if (!out->stateless_reset_token.empty()) {
- QUIC_DLOG(ERROR) << "Received a second stateless reset token";
- return false;
-@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
- out->stateless_reset_token.assign(CBS_data(&value),
- CBS_data(&value) + CBS_len(&value));
- break;
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- parse_success = out->max_packet_size.ReadFromCbs(&value);
- break;
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- parse_success = out->initial_max_data.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- parse_success =
- out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- parse_success =
- out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
- break;
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
- break;
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- parse_success = out->max_ack_delay.ReadFromCbs(&value);
- break;
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- if (out->disable_migration) {
- QUIC_DLOG(ERROR) << "Received a second disable migration";
- return false;
-@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
- }
- out->disable_migration = true;
- break;
-- case kPreferredAddress: {
-+ case TransportParameters::kPreferredAddress: {
- uint16_t ipv4_port, ipv6_port;
- in_addr ipv4_address;
- in6_addr ipv6_address;
-@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
- QuicMakeUnique<TransportParameters::PreferredAddress>(
- preferred_address);
- } break;
-- case kGoogleQuicParam: {
-+ case TransportParameters::kGoogleQuicParam: {
- if (out->google_quic_params) {
- QUIC_DLOG(ERROR) << "Received a second Google parameter";
- return false;
-@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
- reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
- out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
- } break;
-- case kGoogleQuicVersion: {
-+ case TransportParameters::kGoogleQuicVersion: {
- if (!CBS_get_u32(&value, &out->version)) {
- QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
- return false;
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
-@@ -2,10 +2,12 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
--#include <string>
--
- #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
-
-+#include <cstring>
-+#include <string>
-+#include <vector>
-+
- namespace quic {
-
- namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
deleted file mode 100644
index 5e392e6..0000000
--- a/chromium-76.0.3809.100-throttling-dead-beef.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 06 Jun 2019 07:54:05 +0000
-Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
-
-We are setting kAlive and kDead values assigning values that
-are bigger than the maximum signed int32. It is better to use
-uint32_t in this case.
-
-Bug: 819294
-Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666619}
----
-
-diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
-index 43751c4..3c6f87b 100644
---- a/services/network/throttling/throttling_controller.h
-+++ b/services/network/throttling/throttling_controller.h
-@@ -38,7 +38,7 @@
-
- // TODO(https://crbug.com/960874): Debugging code to try and shed some light
- // on why the owned maps are invalid.
-- enum class Liveness : int32_t {
-+ enum class Liveness : uint32_t {
- kAlive = 0xCA11AB13,
- kDead = 0xDEADBEEF,
- };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
deleted file mode 100644
index a392971..0000000
--- a/chromium-76.0.3809.100-weak-ptr-no-except.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 18 Jul 2019 14:26:11 +0200
-Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
-
-A GCC build regression has happened on DisjointRangeLockManager, as its move
-operator and constructor were declared noexcept. This was failing because the
-default implementation depended on base::WeakPtr, that did not provide
-noexcept declaration for them.
-
-So make base::WeakPtr noexcept.
-
-Bug: 819294
-Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
----
-
-diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
-index 64fd499..0efcc44 100644
---- a/base/memory/weak_ptr.cc
-+++ b/base/memory/weak_ptr.cc
-@@ -46,7 +46,7 @@
-
- WeakReference::~WeakReference() = default;
-
--WeakReference::WeakReference(WeakReference&& other) = default;
-+WeakReference::WeakReference(WeakReference&& other) noexcept = default;
-
- WeakReference::WeakReference(const WeakReference& other) = default;
-
-diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
-index 72b5f1f..ccd22fd13 100644
---- a/base/memory/weak_ptr.h
-+++ b/base/memory/weak_ptr.h
-@@ -116,9 +116,9 @@
- explicit WeakReference(const scoped_refptr<Flag>& flag);
- ~WeakReference();
-
-- WeakReference(WeakReference&& other);
-+ WeakReference(WeakReference&& other) noexcept;
- WeakReference(const WeakReference& other);
-- WeakReference& operator=(WeakReference&& other) = default;
-+ WeakReference& operator=(WeakReference&& other) noexcept = default;
- WeakReference& operator=(const WeakReference& other) = default;
-
- bool IsValid() const;
-@@ -153,9 +153,9 @@
- ~WeakPtrBase();
-
- WeakPtrBase(const WeakPtrBase& other) = default;
-- WeakPtrBase(WeakPtrBase&& other) = default;
-+ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
- WeakPtrBase& operator=(const WeakPtrBase& other) = default;
-- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
-+ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
-
- void reset() {
- ref_ = internal::WeakReference();
-@@ -236,7 +236,7 @@
- ptr_ = reinterpret_cast<uintptr_t>(t);
- }
- template <typename U>
-- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
-+ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
- // Need to cast from U* to T* to do pointer adjustment in case of multiple
- // inheritance. This also enforces the "U is a T" rule.
- T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
deleted file mode 100644
index 8bfbced..0000000
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
-@@ -17,6 +17,7 @@
- #include "chrome/common/pref_names.h"
- #include "chrome/test/base/in_process_browser_test.h"
- #include "components/prefs/pref_service.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerStubResolverBrowsertest,
- ::testing::Values(false, true));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -51,6 +53,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -81,6 +84,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
-@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
-@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
-+++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
---- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
-@@ -35,6 +35,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
---- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
-@@ -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 <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/interface_request.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -113,6 +116,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if BUILDFLAG(ENABLE_REPORTING)
- #include "net/network_error_logging/network_error_logging_service.h"
- #include "net/reporting/reporting_cache.h"
-@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
- EXPECT_EQ("None", response_body);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -238,15 +238,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -299,6 +290,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -310,6 +310,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 73db4d4..0000000
--- a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
---- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
-@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
- "application/x-protobuf",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
new file mode 100644
index 0000000..c836214
--- /dev/null
+++ b/chromium-77.0.3865.75-boolfix.patch
@@ -0,0 +1,24 @@
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
+@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
+
+ bool is_valid() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() {
+ return std::move(handle_);
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
+@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
+ // handle.
+ bool is_pending() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
+
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -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 <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
new file mode 100644
index 0000000..385778c
--- /dev/null
+++ b/chromium-77.0.3865.75-fix-v8-gcc.patch
@@ -0,0 +1,14 @@
+diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
+--- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
++++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
+@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
+ return new_element_dictionary;
+ }
+
++template void JSObject::ApplyAttributesToDictionary(
++ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
++ const PropertyAttributes attributes);
++
+ template <PropertyAttributes attrs>
+ Maybe<bool> JSObject::PreventExtensionsWithTransition(
+ Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
new file mode 100644
index 0000000..d342e2d
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -0,0 +1,13 @@
+diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
+@@ -24,8 +24,7 @@
+ #elif !defined(__native_client__) && \
+ ((defined(__clang__) && \
+ ((__clang_major__ > 3) || \
+- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+- (defined(__GNUC__) && __GNUC__ >= 5))
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
new file mode 100644
index 0000000..34b858a
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc5-r3.patch
@@ -0,0 +1,36 @@
+diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
+--- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
++++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+ static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+- return mailbox.name;
++ return base::make_span(mailbox.name);
+ }
+ static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
+--- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
++++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
+ static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+ const viz::TextureDrawQuad* quad =
+ viz::TextureDrawQuad::MaterialCast(&input);
+- return quad->vertex_opacity;
++ return base::make_span(quad->vertex_opacity);
+ }
+
+ static bool y_flipped(const viz::DrawQuad& input) {
+diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+--- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
++++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <algorithm>
+ #include <numeric>
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium.spec b/chromium.spec
index 877f8f7..a943ad5 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,14 +164,14 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.75
Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -211,20 +211,20 @@ Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
+Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
+Patch21: chromium-77.0.3865.75-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-77.0.3865.75-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Do not use unrar code, it is non-free
@@ -232,7 +232,7 @@ Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
# Try to fix version.py for Rawhide
Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
@@ -260,43 +260,11 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb88987c…
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa954487585d…
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd55053…
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb8025…
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c8236c…
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b79447902532…
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa545…
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0ef9…
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c42…
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11ab…
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24a2…
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d260…
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf114…
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef4247…
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d819e…
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df64…
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c60…
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -305,7 +273,7 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -846,7 +814,7 @@ udev.
%patch22 -p1 -b .gcc-round-fix
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
+#%patch25 -p1 -b .aarch64fix
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -861,23 +829,8 @@ udev.
%patch38 -p1 -b .disable-ndnpc
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
@@ -1466,6 +1419,7 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+echo
# Now do the full browser
%if 0%{freeworld}
../depot_tools/ninja -C %{target} -vvv media
diff --git a/sources b/sources
index 2d38a7c..a1d28bf 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
commit c5383dd2883385aa29924a70ec9e644fb4f86b1a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 4 10:48:30 2019 +0200
More fixes to a backported patch for certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 51937e0..8bfbced 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -1,6 +1,73 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
+@@ -17,6 +17,7 @@
+ #include "chrome/common/pref_names.h"
+ #include "chrome/test/base/in_process_browser_test.h"
+ #include "components/prefs/pref_service.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerStubResolverBrowsertest,
+ ::testing::Values(false, true));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
@@ -4,11 +4,13 @@
#include "chrome/browser/net/system_network_context_manager.h"
@@ -23,52 +90,205 @@ diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manage
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "net/dns/public/util.h"
#include "net/net_buildflags.h"
-@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+@@ -81,6 +84,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
bool http_09_on_non_default_ports_enabled = false;
#if !defined(OS_ANDROID)
- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
+
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_IOS)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID, !OS_IOS)
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
- network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
- log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
- network_context_params->ct_logs.push_back(std::move(log_info));
}
-+#endif
const base::Value* value =
- g_browser_process->policy_service()
+@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
+@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
+@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
++++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
@@ -35,6 +35,7 @@
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
@@ -115,12 +335,16 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
scoped_refptr<const net::CTLogVerifier> log_verifier =
net::CTLogVerifier::Create(log->public_key, log->name);
if (!log_verifier) {
-@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
ct_verifier->AddLogs(ct_logs);
builder->set_ct_verifier(std::move(ct_verifier));
}
+
+ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
+ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
@@ -129,9 +353,118 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
#endif // BUILDFLAG(IS_CT_SUPPORTED)
const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
+--- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
+@@ -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 <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/interface_request.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -113,6 +116,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if BUILDFLAG(ENABLE_REPORTING)
+ #include "net/network_error_logging/network_error_logging_service.h"
+ #include "net/reporting/reporting_cache.h"
+@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
+ EXPECT_EQ("None", response_body);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -4,6 +4,8 @@
module network.mojom;
@@ -148,7 +481,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
+
+ // Whether or not the log should should be considered a Google Log for the
+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google;
++ bool operated_by_google = false;
+
+ // If set, the time since the Unix Epoch when the log was disqualified. This
+ // is used to determine the "once or currently qualified" status of the log.
@@ -157,7 +490,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
};
diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -238,15 +238,6 @@ struct NetworkContextParams {
[EnableIf=is_android]
bool check_clear_text_permitted = false;
commit 6140e1104effb04aa4f3c65110ec71eca3efb66d
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 4 10:48:30 2019 +0200
More fixes to a backported patch for certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 51937e0..8bfbced 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -1,6 +1,73 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
+@@ -17,6 +17,7 @@
+ #include "chrome/common/pref_names.h"
+ #include "chrome/test/base/in_process_browser_test.h"
+ #include "components/prefs/pref_service.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerStubResolverBrowsertest,
+ ::testing::Values(false, true));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
@@ -4,11 +4,13 @@
#include "chrome/browser/net/system_network_context_manager.h"
@@ -23,52 +90,205 @@ diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manage
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "net/dns/public/util.h"
#include "net/net_buildflags.h"
-@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+@@ -81,6 +84,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
bool http_09_on_non_default_ports_enabled = false;
#if !defined(OS_ANDROID)
- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
+
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_IOS)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID, !OS_IOS)
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
- network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
- log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
- network_context_params->ct_logs.push_back(std::move(log_info));
}
-+#endif
const base::Value* value =
- g_browser_process->policy_service()
+@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
+@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
+@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
++++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
@@ -35,6 +35,7 @@
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
@@ -115,12 +335,16 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
scoped_refptr<const net::CTLogVerifier> log_verifier =
net::CTLogVerifier::Create(log->public_key, log->name);
if (!log_verifier) {
-@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
ct_verifier->AddLogs(ct_logs);
builder->set_ct_verifier(std::move(ct_verifier));
}
+
+ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
+ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
@@ -129,9 +353,118 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
#endif // BUILDFLAG(IS_CT_SUPPORTED)
const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
+--- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
+@@ -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 <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/interface_request.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -113,6 +116,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if BUILDFLAG(ENABLE_REPORTING)
+ #include "net/network_error_logging/network_error_logging_service.h"
+ #include "net/reporting/reporting_cache.h"
+@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
+ EXPECT_EQ("None", response_body);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -4,6 +4,8 @@
module network.mojom;
@@ -148,7 +481,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
+
+ // Whether or not the log should should be considered a Google Log for the
+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google;
++ bool operated_by_google = false;
+
+ // If set, the time since the Unix Epoch when the log was disqualified. This
+ // is used to determine the "once or currently qualified" status of the log.
@@ -157,7 +490,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
};
diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -238,15 +238,6 @@ struct NetworkContextParams {
[EnableIf=is_android]
bool check_clear_text_permitted = false;
commit 82c3fb0c11b8125b95e298f467ccc77d9f3bafa4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 4 10:48:30 2019 +0200
More fixes to a backported patch for certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 51937e0..8bfbced 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -1,6 +1,73 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
+@@ -17,6 +17,7 @@
+ #include "chrome/common/pref_names.h"
+ #include "chrome/test/base/in_process_browser_test.h"
+ #include "components/prefs/pref_service.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerStubResolverBrowsertest,
+ ::testing::Values(false, true));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
@@ -4,11 +4,13 @@
#include "chrome/browser/net/system_network_context_manager.h"
@@ -23,52 +90,205 @@ diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manage
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "net/dns/public/util.h"
#include "net/net_buildflags.h"
-@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+@@ -81,6 +84,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
bool http_09_on_non_default_ports_enabled = false;
#if !defined(OS_ANDROID)
- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
+
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_IOS)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID, !OS_IOS)
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
- network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
- log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
- network_context_params->ct_logs.push_back(std::move(log_info));
}
-+#endif
const base::Value* value =
- g_browser_process->policy_service()
+@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
+@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
+@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
++++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
@@ -35,6 +35,7 @@
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
@@ -115,12 +335,16 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
scoped_refptr<const net::CTLogVerifier> log_verifier =
net::CTLogVerifier::Create(log->public_key, log->name);
if (!log_verifier) {
-@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
ct_verifier->AddLogs(ct_logs);
builder->set_ct_verifier(std::move(ct_verifier));
}
+
+ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
+ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
@@ -129,9 +353,118 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
#endif // BUILDFLAG(IS_CT_SUPPORTED)
const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
+--- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
+@@ -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 <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/interface_request.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -113,6 +116,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if BUILDFLAG(ENABLE_REPORTING)
+ #include "net/network_error_logging/network_error_logging_service.h"
+ #include "net/reporting/reporting_cache.h"
+@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
+ EXPECT_EQ("None", response_body);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -4,6 +4,8 @@
module network.mojom;
@@ -148,7 +481,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
+
+ // Whether or not the log should should be considered a Google Log for the
+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google;
++ bool operated_by_google = false;
+
+ // If set, the time since the Unix Epoch when the log was disqualified. This
+ // is used to determine the "once or currently qualified" status of the log.
@@ -157,7 +490,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
};
diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -238,15 +238,6 @@ struct NetworkContextParams {
[EnableIf=is_android]
bool check_clear_text_permitted = false;
commit da8d872e924923bdd1d8c7eae0ace87bba8c0309
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 15:26:53 2019 +0200
Fix certificate-transparency patch
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 25a08af..51937e0 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -121,7 +121,7 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
}
+
+ if (params_->enforce_chrome_ct_policy) {
-+ builder.set_ct_policy_enforcer(
++ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
+ operated_by_google_logs));
commit 2f5fd975735eb1a7fd06d9804d0e036372e6ead7
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 15:26:53 2019 +0200
Fix certificate-transparency patch
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 25a08af..51937e0 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -121,7 +121,7 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
}
+
+ if (params_->enforce_chrome_ct_policy) {
-+ builder.set_ct_policy_enforcer(
++ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
+ operated_by_google_logs));
commit b974e5ab1a621f965dba65d413d46ee4a964fbdf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 15:26:53 2019 +0200
Fix certificate-transparency patch
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 25a08af..51937e0 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -121,7 +121,7 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
}
+
+ if (params_->enforce_chrome_ct_policy) {
-+ builder.set_ct_policy_enforcer(
++ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
+ operated_by_google_logs));
commit df09cb5bec0fb8b996887505bbdd979981c43adc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 12:20:51 2019 +0200
Backport patch to fix certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
new file mode 100644
index 0000000..25a08af
--- /dev/null
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -0,0 +1,206 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -51,6 +53,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
++
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_IOS)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID, !OS_IOS)
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
+ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
+ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
++#endif
+
+ const base::Value* value =
+ g_browser_process->policy_service()
+diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
+--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
+@@ -35,6 +35,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ builder.set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
+@@ -238,15 +238,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -299,6 +290,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -310,6 +310,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium.spec b/chromium.spec
index cbc4fa4..877f8f7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3809.132
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -304,6 +304,8 @@ Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
+Patch64: chromium-76.0.3809.132-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -879,6 +881,7 @@ udev.
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
+%patch64 -p1 -b .certificate-transparency
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1908,6 +1911,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
+- Backport patch to fix certificate transparency
+
* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
- Update to 76.0.3809.132
commit fb0db49d82bdd82577da78dea191d39bf02f0051
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 12:20:51 2019 +0200
Backport patch to fix certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
new file mode 100644
index 0000000..25a08af
--- /dev/null
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -0,0 +1,206 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -51,6 +53,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
++
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_IOS)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID, !OS_IOS)
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
+ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
+ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
++#endif
+
+ const base::Value* value =
+ g_browser_process->policy_service()
+diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
+--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
+@@ -35,6 +35,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ builder.set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
+@@ -238,15 +238,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -299,6 +290,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -310,6 +310,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium.spec b/chromium.spec
index aec9f9f..4239a65 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3809.132
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -304,6 +304,8 @@ Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222f8…
+Patch64: chromium-76.0.3809.132-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -879,6 +881,7 @@ udev.
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
+%patch64 -p1 -b .certificate-transparency
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1908,6 +1911,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
+- Backport patch to fix certificate transparency
+
* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
- Update to 76.0.3809.132
commit bc006359dd8cff1a6890d7791885e572914f8642
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 12:20:51 2019 +0200
Backport patch to fix certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
new file mode 100644
index 0000000..25a08af
--- /dev/null
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -0,0 +1,206 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -51,6 +53,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
++
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_IOS)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID, !OS_IOS)
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
+ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
+ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
++#endif
+
+ const base::Value* value =
+ g_browser_process->policy_service()
+diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
+--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
+@@ -35,6 +35,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
+