[chromium-browser-privacy: 8/51] Move: Support Redhat Build flags only on fedora 31 and due to ld bug
by qvint
commit acc402fb3b52ef70e15d12154547ca7878e72514
Author: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
Date: Sat Nov 2 10:34:14 2019 +0530
Move: Support Redhat Build flags only on fedora 31 and due to ld bug
chromium-freeworld.spec | 3 +++
1 file changed, 3 insertions(+)
---
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index d186546..f4daffb 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -532,7 +532,9 @@ export CC=gcc CXX=g++
# GN needs gold to bootstrap
export LDFLAGS="$LDFLAGS -fuse-ld=gold"
+
# Set proper cflags, cxxflags
+%if 0%{?fedora} >= 31
export CFLAGS="$(echo '%{__global_cflags}' |sed -e 's/-fexceptions//' \
-e 's/-Werror=format-security//' \
-e 's/-pipe//' \
@@ -543,6 +545,7 @@ export CXXFLAGS="$(echo '%{?__global_cxxflags}%{!?__global_cxxflags:%{__global_c
-e 's/-pipe//' \
-e 's/-g/-g1/g' \
-e 's/-g1record-g1cc-switches//' )"
+%endif
export CXXFLAGS="$CXXFLAGS -fpermissive"
%if !%{debug_logs}
4 years, 7 months
[chromium-browser-privacy: 7/51] Disable debuginfo to match fedora chromium
by qvint
commit 1f3e0fdd4f5bdd1503342c2c7c7427b1903c3938
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Fri Nov 1 23:15:00 2019 +0000
Disable debuginfo to match fedora chromium
chromium-freeworld.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index d186546..188e50a 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -65,7 +65,7 @@
%global jumbo 1
#------------------------------------------------------
#Build debug packages for debugging
-%global debug_pkg 1
+%global debug_pkg 0
# Enable building with ozone support
%global ozone 0
##############################Package Definitions######################################
4 years, 7 months
[chromium-browser-privacy: 6/51] Reduce: jumbo level to 6
by qvint
commit 67b63094659afca3960cc6faba415850dd1fd00e
Author: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
Date: Fri Nov 1 21:23:04 2019 +0530
Reduce: jumbo level to 6
chromium-freeworld.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index 0376aca..d186546 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -608,7 +608,7 @@ gn_args+=(
gn_args+=(
%if %{jumbo}
use_jumbo_build=true
- jumbo_file_merge_limit=8
+ jumbo_file_merge_limit=6
concurrent_links=1
%endif
)
4 years, 7 months
[chromium-browser-privacy: 5/51] Disable: Useless for non verbose builds
by qvint
commit 10048a94e8849c46e932b537979a38ef78c4fda4
Author: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
Date: Fri Nov 1 21:22:23 2019 +0530
Disable: Useless for non verbose builds
chromium-freeworld.spec | 5 +++++
1 file changed, 5 insertions(+)
---
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index ca3458c..0376aca 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -545,6 +545,11 @@ export CXXFLAGS="$(echo '%{?__global_cxxflags}%{!?__global_cxxflags:%{__global_c
-e 's/-g1record-g1cc-switches//' )"
export CXXFLAGS="$CXXFLAGS -fpermissive"
+%if !%{debug_logs}
+# Disable useless warning on non debug log builds
+export CFLAGS="$CFLAGS -w"
+export CXXFLAGS="$CXXFLAGS -w"
+%endif
%if 0%{?fedora} <= 29
export CXXFLAGS="$CXXFLAGS -fno-ipa-cp-clone"
%endif
4 years, 7 months
[chromium-browser-privacy: 4/51] Revert "Remove: Fedora build flags; useless warnings on logs"
by qvint
commit 35772b7e724c5861c517abe4f9bbd827d1ca483a
Author: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
Date: Fri Nov 1 21:00:27 2019 +0530
Revert "Remove: Fedora build flags; useless warnings on logs"
This reverts commit 8c5b230b2495214dc309fb6233770afe86c810ba.
chromium-freeworld.spec | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index 2f13b49..ca3458c 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -533,9 +533,18 @@ export CC=gcc CXX=g++
# GN needs gold to bootstrap
export LDFLAGS="$LDFLAGS -fuse-ld=gold"
# Set proper cflags, cxxflags
-export CFLAGS="$CFLAGS -w"
+export CFLAGS="$(echo '%{__global_cflags}' |sed -e 's/-fexceptions//' \
+ -e 's/-Werror=format-security//' \
+ -e 's/-pipe//' \
+ -e 's/-g/-g1/g' \
+ -e 's/-g1record-g1cc-switches//' )"
+export CXXFLAGS="$(echo '%{?__global_cxxflags}%{!?__global_cxxflags:%{__global_cflags}}' | sed -e 's/-fexceptions//' \
+ -e 's/-Werror=format-security//' \
+ -e 's/-pipe//' \
+ -e 's/-g/-g1/g' \
+ -e 's/-g1record-g1cc-switches//' )"
-export CXXFLAGS="$CXXFLAGS -fpermissive -w"
+export CXXFLAGS="$CXXFLAGS -fpermissive"
%if 0%{?fedora} <= 29
export CXXFLAGS="$CXXFLAGS -fno-ipa-cp-clone"
%endif
4 years, 7 months
[chromium-browser-privacy: 3/51] Remove: Fedora build flags; useless warnings on logs
by qvint
commit 8c5b230b2495214dc309fb6233770afe86c810ba
Author: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
Date: Fri Nov 1 10:02:41 2019 +0530
Remove: Fedora build flags; useless warnings on logs
chromium-freeworld.spec | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)
---
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index ca3458c..2f13b49 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -533,18 +533,9 @@ export CC=gcc CXX=g++
# GN needs gold to bootstrap
export LDFLAGS="$LDFLAGS -fuse-ld=gold"
# Set proper cflags, cxxflags
-export CFLAGS="$(echo '%{__global_cflags}' |sed -e 's/-fexceptions//' \
- -e 's/-Werror=format-security//' \
- -e 's/-pipe//' \
- -e 's/-g/-g1/g' \
- -e 's/-g1record-g1cc-switches//' )"
-export CXXFLAGS="$(echo '%{?__global_cxxflags}%{!?__global_cxxflags:%{__global_cflags}}' | sed -e 's/-fexceptions//' \
- -e 's/-Werror=format-security//' \
- -e 's/-pipe//' \
- -e 's/-g/-g1/g' \
- -e 's/-g1record-g1cc-switches//' )"
+export CFLAGS="$CFLAGS -w"
-export CXXFLAGS="$CXXFLAGS -fpermissive"
+export CXXFLAGS="$CXXFLAGS -fpermissive -w"
%if 0%{?fedora} <= 29
export CXXFLAGS="$CXXFLAGS -fno-ipa-cp-clone"
%endif
4 years, 7 months
[chromium-browser-privacy: 2/51] IMPORT: rename package; add back Fedora build flags
by qvint
commit 13ea22cdb3bf37484836e362fca4d796a8287be6
Author: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
Date: Thu Oct 31 13:25:17 2019 +0530
IMPORT: rename package; add back Fedora build flags
.gitignore | 1 +
Add-missing-header-to-fix-webrtc-build.patch | 16 +
LICENSE | 29 +
brand.patch | 25 +
cert-trans-google.patch | 13 +
chromium-73.0.3683.75-pipewire-cstring-fix.patch | 11 +
chromium-base-location.patch | 13 +
chromium-freeworld.appdata.xml | 38 +
chromium-freeworld.sh | 63 +
chromium-freeworld.spec | 738 +++++++++++
chromium-gcc9-dns_util-ambiguous-ctor.patch | 20 +
chromium-gcc9-r688676.patch | 1471 ++++++++++++++++++++++
chromium-gcc9-r694853.patch | 51 +
chromium-gcc9-r696834.patch | 89 ++
chromium-gcc9-r706467.patch | 48 +
chromium-system-icu.patch | 14 +
chromium-unbundle-zlib.patch | 13 +
chromium-v8-gcc9.patch | 32 +
enable-vaapi.patch | 115 ++
fixvaapionintel.patch | 49 +
py2-bootstrap.patch | 33 +
sources | 1 +
widevine.patch | 22 +
23 files changed, 2905 insertions(+)
---
diff --git a/.gitignore b/.gitignore
index e69de29..e912076 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+chromium-*.tar.xz
diff --git a/Add-missing-header-to-fix-webrtc-build.patch b/Add-missing-header-to-fix-webrtc-build.patch
new file mode 100644
index 0000000..b500700
--- /dev/null
+++ b/Add-missing-header-to-fix-webrtc-build.patch
@@ -0,0 +1,16 @@
+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/LICENSE b/LICENSE
new file mode 100644
index 0000000..1c5664f
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2018, Akarshan Biswas
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/brand.patch b/brand.patch
new file mode 100644
index 0000000..0a3e2f9
--- /dev/null
+++ b/brand.patch
@@ -0,0 +1,25 @@
+From bfff7b95bb4d9ff20a3a67191dfffe25334f9dca Mon Sep 17 00:00:00 2001
+From: Akarshan Biswas <akarshan.biswas(a)gmail.com>
+Date: Wed, 7 Nov 2018 16:29:01 +0530
+Subject: [PATCH] Let's brand chromium-vaapi
+
+---
+ components/version_ui_strings.grdp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/components/version_ui_strings.grdp b/components/version_ui_strings.grdp
+index 6278a8a38..1611b4c80 100644
+--- a/components/version_ui_strings.grdp
++++ b/components/version_ui_strings.grdp
+@@ -7,7 +7,7 @@
+ Official Build
+ </message>
+ <message name="IDS_VERSION_UI_UNOFFICIAL" desc="unofficial build on the about:version page">
+- Developer Build
++ RPM Fusion Build
+ </message>
+ <message name="IDS_VERSION_UI_32BIT" desc="32-bit on the chrome://version page">
+ (32-bit)
+--
+2.19.1
+
diff --git a/cert-trans-google.patch b/cert-trans-google.patch
new file mode 100644
index 0000000..60a7b8c
--- /dev/null
+++ b/cert-trans-google.patch
@@ -0,0 +1,13 @@
+--- chromium-76.0.3809.87/components/certificate_transparency/chrome_ct_policy_enforcer.cc.orig 2019-07-30 04:35:59.000000000 +0800
++++ chromium-76.0.3809.87/components/certificate_transparency/chrome_ct_policy_enforcer.cc 2019-08-09 11:55:35.123756411 +0800
+@@ -159,8 +159,8 @@
+
+ bool ChromeCTPolicyEnforcer::IsLogOperatedByGoogle(
+ base::StringPiece log_id) const {
+- return std::binary_search(std::begin(operated_by_google_logs_),
+- std::end(operated_by_google_logs_), log_id);
++ return std::find(operated_by_google_logs_.begin(),
++ operated_by_google_logs_.end(), log_id) != operated_by_google_logs_.end();
+ }
+
+ bool ChromeCTPolicyEnforcer::IsLogDataTimely() const {
diff --git a/chromium-73.0.3683.75-pipewire-cstring-fix.patch b/chromium-73.0.3683.75-pipewire-cstring-fix.patch
new file mode 100644
index 0000000..ce8b70b
--- /dev/null
+++ b/chromium-73.0.3683.75-pipewire-cstring-fix.patch
@@ -0,0 +1,11 @@
+diff -up chromium-73.0.3683.75/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.cstringfix chromium-73.0.3683.75/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
+--- chromium-73.0.3683.75/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.cstringfix 2019-03-13 13:04:25.290842447 -0400
++++ chromium-73.0.3683.75/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc 2019-03-13 13:05:13.234897441 -0400
+@@ -18,6 +18,7 @@
+ #include <spa/param/video/raw-utils.h>
+ #include <spa/support/type-map.h>
+
++#include <cstring>
+ #include <memory>
+ #include <utility>
+
diff --git a/chromium-base-location.patch b/chromium-base-location.patch
new file mode 100644
index 0000000..a57b5a4
--- /dev/null
+++ b/chromium-base-location.patch
@@ -0,0 +1,13 @@
+diff --git a/base/location.h b/base/location.h
+index c07e747..924db1c 100644
+--- a/base/location.h
++++ b/base/location.h
+@@ -18,7 +18,7 @@
+
+ namespace base {
+
+-#if defined(__has_builtin)
++#if defined(__clang__)
+ // Clang allows detection of these builtins.
+ #define SUPPORTS_LOCATION_BUILTINS \
+ (__has_builtin(__builtin_FUNCTION) && __has_builtin(__builtin_FILE) && \
diff --git a/chromium-freeworld.appdata.xml b/chromium-freeworld.appdata.xml
new file mode 100644
index 0000000..b2543b6
--- /dev/null
+++ b/chromium-freeworld.appdata.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Referenced from https://www.freedesktop.org/software/appstream/docs/chap-Quickstart.html#... -->
+<component type="desktop">
+ <id>chromium-freeworld.desktop</id>
+ <update_contact>chromium-freeworld-owner(a)rpmfusion.org</update_contact>
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>BSD-3-Clause and LGPL-2.1+ and Apache-2.0 and IJG and MIT and GPL-2.0+ and ISC and OpenSSL and (MPL-1.1 or GPL-2.0 or LGPL-2.0)</project_license>
+ <name>Chromium Freeworld</name>
+ <summary>Web Browser</summary>
+ <description>
+ <p>
+ Chromium is an open-source browser project that aims to build a safer, faster,
+ and more stable way to experience the web.
+ </p>
+ <p>
+ We invite you to join our effort to build a powerful platform for developing a
+ new generation of web applications.
+ </p>
+ <p>
+ Chromium supports Vorbis, Theora, WebM and HTML5 audio and video standards, but
+ does not include the non-free AAC, H.264, MP3 or Adobe Flash code that is found
+ in Chrome.
+ </p>
+ <p>
+ This package comes with all freeworld codecs and vaapi acceleration enabled!
+ </p>
+ </description>
+ <url type="homepage">https://www.chromium.org/Home</url>
+ <screenshots>
+ <screenshot type="default">
+ <image>https://www.gstatic.com/chrome/appstream/chrome-2.png</image>
+ <caption/>
+ </screenshot>
+ </screenshots>
+ <developer_name>Google</developer_name>
+ <url type="bugtracker">https://bugzilla.rpmfusion.org</url>
+ <url type="help">https://chromium.googlesource.com/chromium/src/+/master/docs/linux_debugg...</url>
+</component>
diff --git a/chromium-freeworld.sh b/chromium-freeworld.sh
new file mode 100644
index 0000000..68efad3
--- /dev/null
+++ b/chromium-freeworld.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+#
+# Copyright (c) 2011 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This file is obtained from https://src.fedoraproject.org/rpms/chromium/
+# and modified by Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>. All modifications are also
+# licensed under 3-clause BSD license.
+CHROMIUM_DISTRO_FLAGS=()
+
+# Let the wrapped binary know that it has been run through the wrapper.
+export CHROME_WRAPPER="$(readlink -f "$0")"
+
+HERE="`dirname "$CHROME_WRAPPER"`"
+export CHROME_DESKTOP="chromium-freeworld.desktop"
+# We include some xdg utilities next to the binary, and we want to prefer them
+# over the system versions when we know the system versions are very old. We
+# detect whether the system xdg utilities are sufficiently new to be likely to
+# work for us by looking for xdg-settings. If we find it, we leave $PATH alone,
+# so that the system xdg utilities (including any distro patches) will be used.
+if ! which xdg-settings &> /dev/null; then
+ # Old xdg utilities. Prepend $HERE to $PATH to use ours instead.
+ export PATH="$HERE:$PATH"
+else
+ # Use system xdg utilities. But first create mimeapps.list if it doesn't
+ # exist; some systems have bugs in xdg-mime that make it fail without it.
+ xdg_app_dir="${XDG_DATA_HOME:-$HOME/.local/share/applications}"
+ mkdir -p "$xdg_app_dir"
+ [ -f "$xdg_app_dir/mimeapps.list" ] || touch "$xdg_app_dir/mimeapps.list"
+fi
+
+# Always use our versions of ffmpeg libs.
+# This also makes RPMs find the compatibly-named library symlinks.
+if [[ -n "$LD_LIBRARY_PATH" ]]; then
+ LD_LIBRARY_PATH="$HERE:$HERE/lib:$LD_LIBRARY_PATH"
+else
+ LD_LIBRARY_PATH="$HERE:$HERE/lib"
+fi
+export LD_LIBRARY_PATH
+
+#On wayland pass the correct GDK_BACKEND
+# In future this will be used for running chromium natively on Wayland
+if [ $XDG_SESSION_TYPE == "wayland" ]; then
+export GDK_BACKEND=x11
+fi
+
+
+# Sanitize std{in,out,err} because they'll be shared with untrusted child
+# processes (http://crbug.com/376567).
+exec < /dev/null
+exec > >(exec cat)
+exec 2> >(exec cat >&2)
+
+
+CHROMIUM_DISTRO_FLAGS+=" --enable-plugins \
+ --enable-extensions \
+ --enable-user-scripts \
+ --enable-features=WebRTCPipeWireCapturer \
+ --enable-printing \
+ --enable-sync"
+
+exec -a "$0" "@@CHROMIUMDIR@@/$(basename "$0" | sed 's/\.sh$//')" $CHROMIUM_DISTRO_FLAGS "$@"
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
new file mode 100644
index 0000000..ca3458c
--- /dev/null
+++ b/chromium-freeworld.spec
@@ -0,0 +1,738 @@
+#Global Libraries
+#Do not turn it on in Fedora copr!
+%global freeworld 1
+#This can be any folder on out
+%global target out/Release
+### Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
+### Note: These are for Fedora use ONLY.
+### For your own distribution, please get your own set of keys.
+### http://lists.debian.org/debian-legal/2013/11/msg00006.html
+%global api_key AIzaSyDUIXvzVrt5OkVsgXhQ6NFfvWlA44by-aw
+%global default_client_id 449907151817.apps.googleusercontent.com
+%global default_client_secret miEreAep8nuvTdvLums6qyLK
+###############################Exclude Private chromium libs###########################
+%global __requires_exclude %{chromiumdir}/.*\\.so
+%global __provides_exclude_from %{chromiumdir}/.*\\.so
+#######################################CONFIGS###########################################
+# Fedora's Python 2 stack is being removed, we use the bundled Python libraries
+# This can be revisited once we upgrade to Python 3
+%global bundlepylibs 1
+%if 0%{bundlepylibs}
+%bcond_with system_ply
+%else
+%bcond_without system_ply
+%endif
+# This package depends on automagic byte compilation
+# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
+%global _python_bytecompile_extra 1
+#Require harfbuzz >= 2.4.0 for hb_subset_input_set_retain_gids
+%if 0%{?fedora} >= 31
+%bcond_without system_harfbuzz
+%else
+%bcond_with system_harfbuzz
+%endif
+# Require libxml2 > 2.9.4 for XML_PARSE_NOXXE
+%bcond_without system_libxml2
+
+
+# Allow testing whether icu can be unbundled
+# A patch fix building so enabled by default for Fedora 30
+# Need icu version >= 64
+%bcond_with system_libicu
+%if 0%{?fedora} >= 30
+# Allow testing whether libvpx can be unbundled
+%bcond_with system_libvpx
+# Allow testing whether ffmpeg can be unbundled
+%bcond_with system_ffmpeg
+#Allow minizip to be unbundled
+#mini-compat is going to be removed from fedora 30!
+%bcond_without system_minizip
+%else
+%bcond_with system_libvpx
+%bcond_with system_ffmpeg
+#Allow minizip to be unbundled
+#mini-compat is going to be removed from fedora 30!
+%bcond_with system_minizip
+%endif
+
+# Need re2 ver. 2016.07.21 for re2::LazyRE2
+%bcond_with system_re2
+
+#Turn on verbose mode
+%global debug_logs 0
+#Allow jumbo builds
+# Enabled by default
+%global jumbo 1
+#------------------------------------------------------
+#Build debug packages for debugging
+%global debug_pkg 1
+# Enable building with ozone support
+%global ozone 0
+##############################Package Definitions######################################
+Name: chromium-freeworld
+Version: 78.0.3904.70
+Release: 1%{?dist}
+Summary: Chromium-freeworld is an open-source web browser, powered by WebKit (Blink). It comes with all freeworld codecs and video acceleration enabled.
+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)
+URL: https://www.chromium.org/Home
+%if %{freeworld}
+Source0: https://commondatastorage.googleapis.com/chromium-browser-official/chromi...
+%else
+# Unfortunately, Fedora & Copr forbids uploading sources with patent-encumbered
+# ffmpeg code even if they are never compiled and linked to target binaries,
+# so we must repackage upstream tarballs to satisfy this requirement. However,
+# we cannot simply delete all code of ffmpeg because this will disable support
+# for some commonly-used free codecs such as Ogg Theora. Instead, helper
+# scripts included in official Fedora packages are copied, modified, and used
+# to automate the repackaging work.
+# Get those helper scripts from https://src.fedoraproject.org/rpms/chromium
+# If you don't use Fedora services, Just set the value of freeworld in this spec file
+# to 1 to use the upstreanm packaged source.
+# The repackaged source tarball used here is produced by:
+# ./chromium-latest.py --stable --ffmpegclean --ffmpegarm --deleteunrar
+Source0: chromium-%{version}-clean.tar.xz
+%endif
+# The following two source files are copied and modified from the chromium source
+Source10: %{name}.sh
+#Add our own appdata file.
+Source11: %{name}.appdata.xml
+#Personal stuff
+Source15: LICENSE
+######################## Installation Folder #################################################
+#Our installation folder
+%global chromiumdir %{_libdir}/%{name}
+########################################################################################
+#Compiler settings
+# Make sure we don't encounter any bug
+BuildRequires: gcc-c++
+# Basic tools and libraries needed for building
+BuildRequires: ninja-build, nodejs, bison, gperf, hwdata
+BuildRequires: libgcc, glibc, libatomic
+BuildRequires: libcap-devel, cups-devel, alsa-lib-devel
+BuildRequires: mesa-libGL-devel, mesa-libEGL-devel
+%if %{with system_minizip}
+BuildRequires: minizip-compat-devel
+%endif
+# Pipewire need this.
+%if 0%{?fedora} >= 29
+BuildRequires: pkgconfig(libpipewire-0.2)
+%endif
+BuildRequires: pkgconfig(gtk+-2.0), pkgconfig(gtk+-3.0)
+BuildRequires: pkgconfig(libexif), pkgconfig(nss)
+BuildRequires: pkgconfig(xtst), pkgconfig(xscrnsaver)
+BuildRequires: pkgconfig(dbus-1), pkgconfig(libudev)
+BuildRequires: pkgconfig(gnome-keyring-1)
+BuildRequires: pkgconfig(libffi)
+#for vaapi
+BuildRequires: pkgconfig(libva)
+%if %{ozone}
+BuildRequires: pkgconfig(gbm)
+BuildRequires: pkgconfig(wayland-client)
+BuildRequires: pkgconfig(wayland-cursor)
+BuildRequires: pkgconfig(wayland-scanner)
+BuildRequires: pkgconfig(wayland-server)
+%endif
+
+#Python stuffs
+%if 0%{?bundlepylibs}
+
+# Using bundled bits, do nothing.
+#This is needed for remove_bundled_libraries.py
+BuildRequires: /usr/bin/python2
+
+%else
+BuildRequires: python2-rpm-macros
+BuildRequires: python2-beautifulsoup4
+BuildRequires: python2-lxml
+BuildRequires: python2-html5lib
+BuildRequires: python2-markupsafe
+Buildrequires: python2-six
+%if %{with system_ply}
+BuildRequires: python2-ply
+%endif
+%endif
+%if %{with system_re2}
+BuildRequires: re2-devel
+%endif
+# replace_gn_files.py --system-libraries
+BuildRequires: flac-devel
+BuildRequires: freetype-devel
+%if %{with system_harfbuzz}
+BuildRequires: harfbuzz-devel
+%endif
+%if %{with system_libicu}
+BuildRequires: libicu-devel
+%endif
+BuildRequires: libdrm-devel
+BuildRequires: libjpeg-turbo-devel
+BuildRequires: libpng-devel
+# Chromium requires libvpx 1.5.0 and some non-default options
+%if %{with system_libvpx}
+BuildRequires: libvpx-devel
+%endif
+%if %{with system_ffmpeg}
+BuildRequires: ffmpeg-devel
+%endif
+BuildRequires: libwebp-devel
+%if %{with system_libxml2}
+BuildRequires: pkgconfig(libxml-2.0)
+%endif
+BuildRequires: pkgconfig(libxslt)
+BuildRequires: opus-devel
+BuildRequires: snappy-devel
+BuildRequires: yasm
+BuildRequires: pciutils-devel
+BuildRequires: speech-dispatcher-devel
+BuildRequires: pulseaudio-libs-devel
+# install desktop files
+BuildRequires: desktop-file-utils
+# install AppData files
+BuildRequires: libappstream-glib
+# Mojojojo need this >:(
+BuildRequires: java-1.8.0-openjdk
+# Libstdc++ static needed for linker
+BuildRequires: libstdc++-static
+#Runtime Requirements
+Requires: hicolor-icon-theme
+# Make sure chromium-freeworld replaces chromium-vaapi
+Provides: chromium-vaapi = %{version}-%{release}
+Obsoletes: chromium-vaapi < %{version}-%{release}
+#Some recommendations
+Recommends: libva-utils
+%if !%{debug_pkg}
+%global debug_package %{nil}
+%endif
+# This build should be only available to amd64
+ExclusiveArch: x86_64
+# Define Patches here ##
+# Enable video acceleration on chromium for Linux
+Patch1: enable-vaapi.patch
+# Enable support for widevine
+Patch2: widevine.patch
+# Fix vaapi on Intel
+Patch3: fixvaapionintel.patch
+#Fix certificare transperancy error introduced by the current stable version of chromium
+Patch5: cert-trans-google.patch
+# Bootstrap still uses python command
+Patch51: py2-bootstrap.patch
+# Fix building with system icu
+Patch52: chromium-system-icu.patch
+# Let's brand chromium!
+Patch54: brand.patch
+#Stolen from Fedora to fix building with pipewire
+# https://src.fedoraproject.org/rpms/chromium/blob/master/f/chromium-73.0.3...
+Patch65: chromium-73.0.3683.75-pipewire-cstring-fix.patch
+# Fix header
+Patch68: Add-missing-header-to-fix-webrtc-build.patch
+Patch69: chromium-unbundle-zlib.patch
+Patch70: chromium-base-location.patch
+# GCC patches
+Patch73: chromium-gcc9-r688676.patch
+Patch74: chromium-gcc9-r694853.patch
+Patch75: chromium-gcc9-r696834.patch
+Patch76: chromium-gcc9-r706467.patch
+Patch77: chromium-v8-gcc9.patch
+Patch78: chromium-gcc9-dns_util-ambiguous-ctor.patch
+
+%description
+%{name} is an open-source web browser, powered by WebKit (Blink)
+############################################PREP###########################################################
+%prep
+%autosetup -n chromium-%{version} -p1
+%if !%{with system_libicu}
+%patch52 -p1 -R
+%endif
+%if !%{freeworld}
+%patch54 -p1 -R
+%endif
+
+
+#Let's change the default shebang of python files.
+find -depth -type f -writable -name "*.py" -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
+./build/linux/unbundle/remove_bundled_libraries.py --do-remove \
+ base/third_party/cityhash \
+ base/third_party/double_conversion \
+ base/third_party/dynamic_annotations \
+ base/third_party/icu \
+ base/third_party/libevent \
+ base/third_party/nspr \
+ base/third_party/superfasthash \
+ base/third_party/symbolize \
+ base/third_party/valgrind \
+ base/third_party/xdg_mime \
+ base/third_party/xdg_user_dirs \
+ buildtools/third_party/libc++ \
+ buildtools/third_party/libc++abi \
+ chrome/third_party/mozilla_security_manager \
+ courgette/third_party \
+ native_client/src/third_party/dlmalloc \
+ native_client/src/third_party/valgrind \
+ net/third_party/mozilla_security_manager \
+ net/third_party/nss \
+ net/third_party/quic \
+ net/third_party/uri_template \
+ third_party/abseil-cpp \
+ third_party/adobe \
+ third_party/angle \
+ third_party/angle/src/common/third_party/base \
+ third_party/angle/src/common/third_party/smhasher \
+ third_party/angle/src/common/third_party/xxhash \
+ third_party/angle/src/third_party/compiler \
+ third_party/angle/src/third_party/libXNVCtrl \
+ third_party/angle/src/third_party/trace_event \
+ third_party/glslang \
+ third_party/angle/third_party/spirv-headers \
+ third_party/angle/third_party/spirv-tools \
+ third_party/angle/third_party/vulkan-headers \
+ third_party/angle/third_party/vulkan-loader \
+ third_party/angle/third_party/vulkan-tools \
+ third_party/angle/third_party/vulkan-validation-layers \
+ third_party/apple_apsl \
+ third_party/axe-core \
+ third_party/boringssl \
+ third_party/boringssl/src/third_party/fiat \
+ third_party/boringssl/src/third_party/sike \
+ third_party/boringssl/linux-aarch64/crypto/third_party/sike \
+ third_party/boringssl/linux-x86_64/crypto/third_party/sike \
+ third_party/blink \
+ third_party/breakpad \
+ third_party/breakpad/breakpad/src/third_party/curl \
+ third_party/brotli \
+ third_party/cacheinvalidation \
+ third_party/catapult \
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin \
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin \
+ %if 0%{?bundlepylibs}
+ third_party/catapult/third_party/beautifulsoup4 \
+ third_party/catapult/third_party/html5lib-python \
+ %endif
+ third_party/catapult/third_party/polymer \
+ third_party/catapult/third_party/six \
+ third_party/catapult/tracing/third_party/d3 \
+ third_party/catapult/tracing/third_party/gl-matrix \
+ third_party/catapult/tracing/third_party/jpeg-js \
+ third_party/catapult/tracing/third_party/jszip \
+ third_party/catapult/tracing/third_party/mannwhitneyu \
+ third_party/catapult/tracing/third_party/oboe \
+ third_party/catapult/tracing/third_party/pako \
+ third_party/ced \
+ third_party/cld_3 \
+ third_party/closure_compiler \
+ third_party/crashpad \
+ third_party/crashpad/crashpad/third_party/lss \
+ third_party/crashpad/crashpad/third_party/zlib \
+ third_party/crc32c \
+ third_party/cros_system_api \
+ third_party/dawn \
+ third_party/depot_tools \
+ third_party/dav1d \
+ third_party/devscripts \
+ third_party/dom_distiller_js \
+ third_party/emoji-segmenter \
+%if !%{with system_ffmpeg}
+ third_party/ffmpeg \
+%endif
+ third_party/flatbuffers \
+ third_party/flot \
+ third_party/freetype \
+ third_party/google_input_tools \
+ third_party/google_input_tools/third_party/closure_library \
+ third_party/google_input_tools/third_party/closure_library/third_party/closure \
+ third_party/googletest \
+%if !%{with system_harfbuzz}
+ third_party/harfbuzz-ng \
+%endif
+ third_party/hunspell \
+ third_party/iccjpeg \
+%if !%{with system_libicu}
+ third_party/icu \
+%endif
+ third_party/inspector_protocol \
+ third_party/jinja2 \
+ third_party/jsoncpp \
+ third_party/jstemplate \
+ third_party/khronos \
+ third_party/leveldatabase \
+ third_party/libaddressinput \
+ third_party/libaom \
+ third_party/libaom/source/libaom/third_party/vector \
+ third_party/libaom/source/libaom/third_party/x86inc \
+ third_party/libjingle \
+ third_party/libphonenumber \
+ third_party/libsecret \
+ third_party/libsrtp \
+ third_party/libsync \
+ third_party/libudev \
+%if !%{with system_libvpx}
+ third_party/libvpx \
+ third_party/libvpx/source/libvpx/third_party/x86inc \
+%endif
+ third_party/libwebm \
+%if %{with system_libxml2}
+ third_party/libxml/chromium \
+%else
+ third_party/libxml \
+%endif
+ third_party/libXNVCtrl \
+ third_party/libyuv \
+ third_party/lss \
+ third_party/lzma_sdk \
+%if 0%{?bundlepylibs}
+ third_party/markupsafe \
+%endif
+ third_party/mesa \
+ third_party/metrics_proto \
+%if %{ozone}
+ third_party/minigbm \
+%endif
+%if !%{with system_minizip}
+ third_party/minizip/ \
+%endif
+ third_party/modp_b64 \
+ third_party/nasm \
+ third_party/node \
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2 \
+ third_party/one_euro_filter \
+ third_party/openh264 \
+ third_party/openscreen \
+ third_party/openscreen/src/third_party/tinycbor/src/src \
+ third_party/ots \
+ third_party/pdfium \
+ third_party/pdfium/third_party/agg23 \
+ third_party/pdfium/third_party/base \
+ third_party/pdfium/third_party/bigint \
+ third_party/pdfium/third_party/freetype \
+ third_party/pdfium/third_party/lcms \
+ third_party/pdfium/third_party/libopenjpeg20 \
+ third_party/pdfium/third_party/libpng16 \
+ third_party/pdfium/third_party/libtiff \
+ third_party/pdfium/third_party/skia_shared \
+ third_party/perfetto \
+ third_party/pffft \
+%if !%{with system_ply}
+ third_party/ply \
+%endif
+ third_party/polymer \
+ third_party/private-join-and-compute \
+ third_party/protobuf \
+ third_party/protobuf/third_party/six \
+ third_party/pyjson5 \
+ third_party/qcms \
+%if !%{with system_re2}
+ third_party/re2 \
+%endif
+ third_party/rnnoise \
+ third_party/s2cellid \
+ third_party/sfntly \
+ third_party/skia \
+ third_party/skia/include/third_party/skcms \
+ third_party/skia/include/third_party/vulkan \
+ third_party/skia/third_party/gif \
+ third_party/skia/third_party/vulkan \
+ third_party/skia/third_party/skcms \
+ third_party/smhasher \
+ third_party/speech-dispatcher \
+ third_party/spirv-headers \
+ third_party/SPIRV-Tools \
+ third_party/sqlite \
+ third_party/swiftshader \
+ third_party/swiftshader/third_party/llvm-7.0 \
+ third_party/swiftshader/third_party/llvm-subzero \
+ third_party/swiftshader/third_party/subzero \
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1 \
+ third_party/tcmalloc \
+ third_party/unrar \
+ third_party/usb_ids \
+ third_party/usrsctp \
+ third_party/vulkan \
+%if %{ozone}
+ third_party/wayland \
+%endif
+ third_party/web-animations-js \
+ third_party/webdriver \
+ third_party/webrtc \
+ third_party/webrtc/common_audio/third_party/fft4g \
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor \
+ third_party/webrtc/modules/third_party/fft \
+ third_party/webrtc/modules/third_party/g711 \
+ third_party/webrtc/modules/third_party/g722 \
+ third_party/webrtc/rtc_base/third_party/base64 \
+ third_party/webrtc/rtc_base/third_party/sigslot \
+ third_party/widevine \
+ third_party/woff2 \
+ third_party/xdg-utils \
+ third_party/yasm/run_yasm.py \
+ third_party/zlib/google \
+ tools/grit/third_party/six \
+%if !%{with system_minizip}
+ third_party/zlib \
+%endif
+ tools/gn/base/third_party/icu \
+ url/third_party/mozilla \
+ v8/src/third_party/siphash \
+ v8/src/third_party/valgrind \
+ v8/src/third_party/utf8-decoder \
+ v8/third_party/inspector_protocol \
+ v8/third_party/v8
+
+./build/linux/unbundle/replace_gn_files.py --system-libraries \
+%if %{with system_ffmpeg}
+ ffmpeg \
+%endif
+ flac \
+ freetype \
+ fontconfig \
+%if %{with system_libicu}
+ icu \
+%endif
+ libdrm \
+ libjpeg \
+ libpng \
+%if %{with system_libvpx}
+ libvpx \
+%endif
+ libwebp \
+%if %{with system_libxml2}
+ libxml \
+%endif
+ libxslt \
+ opus \
+%if %{with system_re2}
+ re2 \
+%endif
+ snappy \
+ yasm \
+%if %{with system_minizip}
+ zlib
+%endif
+
+sed -i 's|//third_party/usb_ids|/usr/share/hwdata|g' \
+ services/device/public/cpp/usb/BUILD.gn
+
+%if !0%{?bundlepylibs}
+rmdir third_party/markupsafe
+ln -s %{python2_sitearch}/markupsafe third_party/markupsafe
+%if %{with system_ply}
+rmdir third_party/ply
+ln -s %{python2_sitelib}/ply third_party/ply
+%endif
+%endif
+
+# Fix the path to nodejs binary
+mkdir -p third_party/node/linux/node-linux-x64/bin
+ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node
+# Hard code extra version
+FILE=chrome/common/channel_info_posix.cc
+sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"%{name}"/' $FILE
+#####################################BUILD#############################################
+%build
+#export compilar variables
+export AR=ar NM=nm AS=as
+export CC=gcc CXX=g++
+
+# GN needs gold to bootstrap
+export LDFLAGS="$LDFLAGS -fuse-ld=gold"
+# Set proper cflags, cxxflags
+export CFLAGS="$(echo '%{__global_cflags}' |sed -e 's/-fexceptions//' \
+ -e 's/-Werror=format-security//' \
+ -e 's/-pipe//' \
+ -e 's/-g/-g1/g' \
+ -e 's/-g1record-g1cc-switches//' )"
+export CXXFLAGS="$(echo '%{?__global_cxxflags}%{!?__global_cxxflags:%{__global_cflags}}' | sed -e 's/-fexceptions//' \
+ -e 's/-Werror=format-security//' \
+ -e 's/-pipe//' \
+ -e 's/-g/-g1/g' \
+ -e 's/-g1record-g1cc-switches//' )"
+
+export CXXFLAGS="$CXXFLAGS -fpermissive"
+%if 0%{?fedora} <= 29
+export CXXFLAGS="$CXXFLAGS -fno-ipa-cp-clone"
+%endif
+
+gn_args=(
+ is_debug=false
+ use_vaapi=true
+ is_component_build=false
+ use_sysroot=false
+ use_custom_libcxx=false
+ use_aura=true
+ 'system_libdir="%{_lib}"'
+ use_cups=true
+ use_gnome_keyring=true
+ use_gio=true
+ use_kerberos=true
+ use_libpci=true
+ use_pulseaudio=true
+ link_pulseaudio=true
+ use_system_freetype=true
+ enable_widevine=true
+%if %{with system_harfbuzz}
+ use_system_harfbuzz=true
+%endif
+%if %{freeworld}
+ 'ffmpeg_branding="Chrome"'
+ proprietary_codecs=true
+%else
+ 'ffmpeg_branding="Chromium"'
+ proprietary_codecs=false
+%endif
+ enable_nacl=false
+ enable_hangout_services_extension=false
+ fatal_linker_warnings=false
+ treat_warnings_as_errors=false
+ linux_use_bundled_binutils=false
+ fieldtrial_testing_like_official_build=true
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'google_api_key="%{api_key}"'
+ 'google_default_client_id="%{default_client_id}"'
+ 'google_default_client_secret="%{default_client_secret}"'
+)
+
+# Optimizations
+gn_args+=(
+ enable_vr=false
+)
+
+
+gn_args+=(
+ is_clang=false
+)
+
+#Jumbo stuff
+gn_args+=(
+%if %{jumbo}
+ use_jumbo_build=true
+ jumbo_file_merge_limit=8
+ concurrent_links=1
+%endif
+)
+
+#Pipewire
+gn_args+=(
+%if 0%{?fedora} >= 29
+ rtc_use_pipewire=true
+ rtc_link_pipewire=true
+%endif
+)
+
+# Ozone stuff : Whole work is done completely upstream.
+gn_args+=(
+%if %{ozone}
+ use_ozone=true
+ use_system_minigbm=true
+ use_xkbcommon=true
+%endif
+)
+
+
+#symbol
+gn_args+=(
+%if %{debug_pkg}
+ symbol_level=1
+%endif
+)
+tools/gn/bootstrap/bootstrap.py --gn-gen-args "${gn_args[*]}"
+%{target}/gn --script-executable=%{__python2} gen --args="${gn_args[*]}" %{target}
+%if %{debug_logs}
+ninja %{_smp_mflags} -C %{target} -v chrome chrome_sandbox chromedriver
+%else
+ninja %{_smp_mflags} -C %{target} chrome chrome_sandbox chromedriver
+%endif
+######################################Install####################################
+%install
+mkdir -p %{buildroot}%{_bindir}
+mkdir -p %{buildroot}%{chromiumdir}/locales
+mkdir -p %{buildroot}%{chromiumdir}/MEIPreload
+mkdir -p %{buildroot}%{chromiumdir}/swiftshader
+mkdir -p %{buildroot}%{_mandir}/man1
+mkdir -p %{buildroot}%{_metainfodir}
+mkdir -p %{buildroot}%{_datadir}/applications
+mkdir -p %{buildroot}%{_datadir}/gnome-control-center/default-apps
+sed -e "s|@@CHROMIUMDIR@@|%{chromiumdir}|" %{SOURCE10} > %{name}.sh
+install -m 755 %{name}.sh %{buildroot}%{_bindir}/%{name}
+install -m 644 %{SOURCE11} %{buildroot}%{_metainfodir}
+sed -e "s|@@MENUNAME@@|%{name}|g" -e "s|@@PACKAGE@@|%{name}|g" \
+ chrome/app/resources/manpage.1.in > chrome.1
+install -m 644 chrome.1 %{buildroot}%{_mandir}/man1/%{name}.1
+sed -e "s|@@MENUNAME@@|%{name}|g" -e "s|@@PACKAGE@@|%{name}|g" -e "s|@@USR_BIN_SYMLINK_NAME@@|%{name}|g" \
+ chrome/installer/linux/common/desktop.template > %{name}.desktop
+desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{name}.desktop
+sed -e "s|@@MENUNAME@@|%{name}|g" -e "s|@@PACKAGE@@|%{name}|g" -e "s|@@INSTALLDIR@@|%{_bindir}|g" \
+chrome/installer/linux/common/default-app.template > %{name}.xml
+install -m 644 %{name}.xml %{buildroot}%{_datadir}/gnome-control-center/default-apps/
+install -m 755 %{target}/chrome %{buildroot}%{chromiumdir}/%{name}
+install -m 4755 %{target}/chrome_sandbox %{buildroot}%{chromiumdir}/chrome-sandbox
+install -m 755 %{target}/chromedriver %{buildroot}%{chromiumdir}/
+%if !%{with system_libicu}
+install -m 644 %{target}/icudtl.dat %{buildroot}%{chromiumdir}/
+%endif
+install -m 644 %{target}/natives_blob.bin %{buildroot}%{chromiumdir}/
+install -m 644 %{target}/v8_context_snapshot.bin %{buildroot}%{chromiumdir}/
+install -m 644 %{target}/*.pak %{buildroot}%{chromiumdir}/
+install -m 644 %{target}/locales/*.pak %{buildroot}%{chromiumdir}/locales/
+install -m 644 %{target}/xdg* %{buildroot}%{chromiumdir}/
+install -m 644 %{target}/MEIPreload/* %{buildroot}%{chromiumdir}/MEIPreload/
+install -m 755 %{target}/swiftshader/*.so %{buildroot}%{chromiumdir}/swiftshader/
+
+# Icons
+for i in 16 32; do
+ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps
+ install -m 644 chrome/app/theme/default_100_percent/chromium/product_logo_$i.png \
+ %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps/%{name}.png
+done
+for i in 24 32 48 64 128 256; do
+ if [ ${i} = 32 ]; then ext=xpm; else ext=png; fi
+ if [ ${i} = 32 ]; then dir=linux/; else dir=; fi
+ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps
+ install -m 644 chrome/app/theme/chromium/${dir}product_logo_$i.${ext} \
+ %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps/%{name}.${ext}
+done
+####################################check##################################################
+%check
+appstream-util validate-relax --nonet "%{buildroot}%{_metainfodir}/%{name}.appdata.xml"
+######################################files################################################
+%files
+%license LICENSE
+%doc AUTHORS
+%{_bindir}/%{name}
+%{_metainfodir}/%{name}.appdata.xml
+%{_datadir}/applications/%{name}.desktop
+%{_datadir}/gnome-control-center/default-apps/%{name}.xml
+%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
+%{_datadir}/icons/hicolor/24x24/apps/%{name}.png
+%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
+%{_datadir}/icons/hicolor/32x32/apps/%{name}.xpm
+%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
+%{_datadir}/icons/hicolor/64x64/apps/%{name}.png
+%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
+%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
+%{_mandir}/man1/%{name}.1.gz
+%dir %{chromiumdir}
+%{chromiumdir}/%{name}
+%{chromiumdir}/chrome-sandbox
+%{chromiumdir}/chromedriver
+%if !%{with system_libicu}
+%{chromiumdir}/icudtl.dat
+%endif
+%{chromiumdir}/natives_blob.bin
+%{chromiumdir}/v8_context_snapshot.bin
+%{chromiumdir}/*.pak
+%{chromiumdir}/xdg-mime
+%{chromiumdir}/xdg-settings
+%dir %{chromiumdir}/MEIPreload
+%{chromiumdir}/MEIPreload/manifest.json
+%{chromiumdir}/MEIPreload/preloaded_data.pb
+%dir %{chromiumdir}/locales
+%{chromiumdir}/locales/*.pak
+%dir %{chromiumdir}/swiftshader
+%{chromiumdir}/swiftshader/libEGL.so
+%{chromiumdir}/swiftshader/libGLESv2.so
+%{chromiumdir}/swiftshader/libvk_swiftshader.so
+#########################################changelogs#################################################
+%changelog
+* Thu Oct 31 2019 Akarshan Biswas <akarshanbiswas(a)fedoraproject.org> - 78.0.3904.70-1
+- IMPORT: rename package; add back Fedora build flags
+
+
+
diff --git a/chromium-gcc9-dns_util-ambiguous-ctor.patch b/chromium-gcc9-dns_util-ambiguous-ctor.patch
new file mode 100644
index 0000000..16bb7b7
--- /dev/null
+++ b/chromium-gcc9-dns_util-ambiguous-ctor.patch
@@ -0,0 +1,20 @@
+--- chromium-78.0.3904.70/net/dns/dns_util.cc.orig
++++ chromium-78.0.3904.70/net/dns/dns_util.cc
+@@ -144,7 +144,7 @@
+ // DohProviderId histogram suffix list in
+ // tools/metrics/histograms/histograms.xml.
+ static const base::NoDestructor<std::vector<DohUpgradeEntry>>
+- upgradable_servers({
++ upgradable_servers(std::vector<DohUpgradeEntry>({
+ DohUpgradeEntry(
+ "CleanBrowsingAdult",
+ {"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1",
+@@ -215,7 +215,7 @@
+ {"9.9.9.9", "149.112.112.112", "2620:fe::fe", "2620:fe::9"},
+ {"dns.quad9.net", "dns9.quad9.net"} /* DoT hostname */,
+ {"https://dns.quad9.net/dns-query", true /* use_post */}),
+- });
++ }));
+ return *upgradable_servers;
+ }
+
diff --git a/chromium-gcc9-r688676.patch b/chromium-gcc9-r688676.patch
new file mode 100644
index 0000000..408d618
--- /dev/null
+++ b/chromium-gcc9-r688676.patch
@@ -0,0 +1,1471 @@
+From 37a95dd93e553888c00cf9443a5ec738ce658e65 Mon Sep 17 00:00:00 2001
+From: Zinovy Nis <zynis(a)yandex-team.ru>
+Date: Mon, 16 Sep 2019 13:08:17 +0000
+Subject: [PATCH] Revert "[clang-tidy] add noexcept for move ctors and operator= in blink"
+
+This reverts commit 8f3eea10fe63a64ac67dc21542ebee6b896156a3.
+
+Reason for revert: code bloating
+
+Original change's description:
+> [clang-tidy] add noexcept for move ctors and operator= in blink
+>
+> Bug: 994915
+> Change-Id: I2e1bcf286a2d2fa6613e18b5268098a0d258fb2e
+> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1759163
+> Commit-Queue: Zinovy Nis <zynis(a)yandex-team.ru>
+> Reviewed-by: Jeremy Roman <jbroman(a)chromium.org>
+> Reviewed-by: Mike West <mkwst(a)chromium.org>
+> Cr-Commit-Position: refs/heads/master@{#688676}
+
+TBR=jbroman@chromium.org,foolip@chromium.org,mkwst@chromium.org,zynis(a)yandex-team.ru
+
+# Not skipping CQ checks because original CL landed > 1 day ago.
+
+Bug: 994915
+Change-Id: I12b3ecc1186e27809082dc399c6d6864109ce307
+---
+
+diff --git a/third_party/blink/common/indexeddb/indexeddb_key_path.cc b/third_party/blink/common/indexeddb/indexeddb_key_path.cc
+index ec2b618..552d541 100644
+--- a/third_party/blink/common/indexeddb/indexeddb_key_path.cc
++++ b/third_party/blink/common/indexeddb/indexeddb_key_path.cc
+@@ -18,12 +18,12 @@
+ : type_(mojom::IDBKeyPathType::Array), array_(array) {}
+
+ IndexedDBKeyPath::IndexedDBKeyPath(const IndexedDBKeyPath& other) = default;
+-IndexedDBKeyPath::IndexedDBKeyPath(IndexedDBKeyPath&& other) noexcept = default;
++IndexedDBKeyPath::IndexedDBKeyPath(IndexedDBKeyPath&& other) = default;
+ IndexedDBKeyPath::~IndexedDBKeyPath() = default;
+ IndexedDBKeyPath& IndexedDBKeyPath::operator=(const IndexedDBKeyPath& other) =
+ default;
+-IndexedDBKeyPath& IndexedDBKeyPath::operator=(
+- IndexedDBKeyPath&& other) noexcept = default;
++IndexedDBKeyPath& IndexedDBKeyPath::operator=(IndexedDBKeyPath&& other) =
++ default;
+
+ const std::vector<base::string16>& IndexedDBKeyPath::array() const {
+ DCHECK(type_ == blink::mojom::IDBKeyPathType::Array);
+diff --git a/third_party/blink/common/indexeddb/indexeddb_metadata.cc b/third_party/blink/common/indexeddb/indexeddb_metadata.cc
+index 50d5845..9349732 100644
+--- a/third_party/blink/common/indexeddb/indexeddb_metadata.cc
++++ b/third_party/blink/common/indexeddb/indexeddb_metadata.cc
+@@ -23,15 +23,15 @@
+
+ IndexedDBIndexMetadata::IndexedDBIndexMetadata(
+ const IndexedDBIndexMetadata& other) = default;
+-IndexedDBIndexMetadata::IndexedDBIndexMetadata(
+- IndexedDBIndexMetadata&& other) noexcept = default;
++IndexedDBIndexMetadata::IndexedDBIndexMetadata(IndexedDBIndexMetadata&& other) =
++ default;
+
+ IndexedDBIndexMetadata::~IndexedDBIndexMetadata() = default;
+
+ IndexedDBIndexMetadata& IndexedDBIndexMetadata::operator=(
+ const IndexedDBIndexMetadata& other) = default;
+ IndexedDBIndexMetadata& IndexedDBIndexMetadata::operator=(
+- IndexedDBIndexMetadata&& other) noexcept = default;
++ IndexedDBIndexMetadata&& other) = default;
+
+ bool IndexedDBIndexMetadata::operator==(
+ const IndexedDBIndexMetadata& other) const {
+@@ -56,14 +56,14 @@
+ IndexedDBObjectStoreMetadata::IndexedDBObjectStoreMetadata(
+ const IndexedDBObjectStoreMetadata& other) = default;
+ IndexedDBObjectStoreMetadata::IndexedDBObjectStoreMetadata(
+- IndexedDBObjectStoreMetadata&& other) noexcept = default;
++ IndexedDBObjectStoreMetadata&& other) = default;
+
+ IndexedDBObjectStoreMetadata::~IndexedDBObjectStoreMetadata() = default;
+
+ IndexedDBObjectStoreMetadata& IndexedDBObjectStoreMetadata::operator=(
+ const IndexedDBObjectStoreMetadata& other) = default;
+ IndexedDBObjectStoreMetadata& IndexedDBObjectStoreMetadata::operator=(
+- IndexedDBObjectStoreMetadata&& other) noexcept = default;
++ IndexedDBObjectStoreMetadata&& other) = default;
+
+ bool IndexedDBObjectStoreMetadata::operator==(
+ const IndexedDBObjectStoreMetadata& other) const {
+@@ -87,14 +87,14 @@
+ IndexedDBDatabaseMetadata::IndexedDBDatabaseMetadata(
+ const IndexedDBDatabaseMetadata& other) = default;
+ IndexedDBDatabaseMetadata::IndexedDBDatabaseMetadata(
+- IndexedDBDatabaseMetadata&& other) noexcept = default;
++ IndexedDBDatabaseMetadata&& other) = default;
+
+ IndexedDBDatabaseMetadata::~IndexedDBDatabaseMetadata() = default;
+
+ IndexedDBDatabaseMetadata& IndexedDBDatabaseMetadata::operator=(
+ const IndexedDBDatabaseMetadata& other) = default;
+ IndexedDBDatabaseMetadata& IndexedDBDatabaseMetadata::operator=(
+- IndexedDBDatabaseMetadata&& other) noexcept = default;
++ IndexedDBDatabaseMetadata&& other) = default;
+
+ bool IndexedDBDatabaseMetadata::operator==(
+ const IndexedDBDatabaseMetadata& other) const {
+diff --git a/third_party/blink/common/mediastream/media_devices.cc b/third_party/blink/common/mediastream/media_devices.cc
+index 93df201..3661b4b 100644
+--- a/third_party/blink/common/mediastream/media_devices.cc
++++ b/third_party/blink/common/mediastream/media_devices.cc
+@@ -13,8 +13,7 @@
+ WebMediaDeviceInfo::WebMediaDeviceInfo(const WebMediaDeviceInfo& other) =
+ default;
+
+-WebMediaDeviceInfo::WebMediaDeviceInfo(WebMediaDeviceInfo&& other) noexcept =
+- default;
++WebMediaDeviceInfo::WebMediaDeviceInfo(WebMediaDeviceInfo&& other) = default;
+
+ WebMediaDeviceInfo::WebMediaDeviceInfo(const std::string& device_id,
+ const std::string& label,
+@@ -36,8 +35,8 @@
+ WebMediaDeviceInfo& WebMediaDeviceInfo::operator=(
+ const WebMediaDeviceInfo& other) = default;
+
+-WebMediaDeviceInfo& WebMediaDeviceInfo::operator=(
+- WebMediaDeviceInfo&& other) noexcept = default;
++WebMediaDeviceInfo& WebMediaDeviceInfo::operator=(WebMediaDeviceInfo&& other) =
++ default;
+
+ bool operator==(const WebMediaDeviceInfo& first,
+ const WebMediaDeviceInfo& second) {
+diff --git a/third_party/blink/common/messaging/cloneable_message.cc b/third_party/blink/common/messaging/cloneable_message.cc
+index 2984fd1..5c3ee7e 100644
+--- a/third_party/blink/common/messaging/cloneable_message.cc
++++ b/third_party/blink/common/messaging/cloneable_message.cc
+@@ -12,9 +12,8 @@
+ namespace blink {
+
+ CloneableMessage::CloneableMessage() = default;
+-CloneableMessage::CloneableMessage(CloneableMessage&&) noexcept = default;
+-CloneableMessage& CloneableMessage::operator=(CloneableMessage&&) noexcept =
+- default;
++CloneableMessage::CloneableMessage(CloneableMessage&&) = default;
++CloneableMessage& CloneableMessage::operator=(CloneableMessage&&) = default;
+ CloneableMessage::~CloneableMessage() = default;
+
+ CloneableMessage CloneableMessage::ShallowClone() const {
+diff --git a/third_party/blink/common/messaging/transferable_message.cc b/third_party/blink/common/messaging/transferable_message.cc
+index 07ac9bb..4a69d0a 100644
+--- a/third_party/blink/common/messaging/transferable_message.cc
++++ b/third_party/blink/common/messaging/transferable_message.cc
+@@ -9,10 +9,9 @@
+ namespace blink {
+
+ TransferableMessage::TransferableMessage() = default;
+-TransferableMessage::TransferableMessage(TransferableMessage&&) noexcept =
++TransferableMessage::TransferableMessage(TransferableMessage&&) = default;
++TransferableMessage& TransferableMessage::operator=(TransferableMessage&&) =
+ default;
+-TransferableMessage& TransferableMessage::operator=(
+- TransferableMessage&&) noexcept = default;
+ TransferableMessage::~TransferableMessage() = default;
+
+ } // namespace blink
+diff --git a/third_party/blink/public/common/indexeddb/indexeddb_key_path.h b/third_party/blink/public/common/indexeddb/indexeddb_key_path.h
+index 8ebe10c..9f5422c 100644
+--- a/third_party/blink/public/common/indexeddb/indexeddb_key_path.h
++++ b/third_party/blink/public/common/indexeddb/indexeddb_key_path.h
+@@ -22,10 +22,10 @@
+ explicit IndexedDBKeyPath(const base::string16&);
+ explicit IndexedDBKeyPath(const std::vector<base::string16>&);
+ IndexedDBKeyPath(const IndexedDBKeyPath& other);
+- IndexedDBKeyPath(IndexedDBKeyPath&& other) noexcept;
++ IndexedDBKeyPath(IndexedDBKeyPath&& other);
+ ~IndexedDBKeyPath();
+ IndexedDBKeyPath& operator=(const IndexedDBKeyPath& other);
+- IndexedDBKeyPath& operator=(IndexedDBKeyPath&& other) noexcept;
++ IndexedDBKeyPath& operator=(IndexedDBKeyPath&& other);
+
+ bool IsNull() const { return type_ == blink::mojom::IDBKeyPathType::Null; }
+ bool operator==(const IndexedDBKeyPath& other) const;
+diff --git a/third_party/blink/public/common/indexeddb/indexeddb_metadata.h b/third_party/blink/public/common/indexeddb/indexeddb_metadata.h
+index 15663f6..7bb37c9 100644
+--- a/third_party/blink/public/common/indexeddb/indexeddb_metadata.h
++++ b/third_party/blink/public/common/indexeddb/indexeddb_metadata.h
+@@ -26,10 +26,10 @@
+ bool unique,
+ bool multi_entry);
+ IndexedDBIndexMetadata(const IndexedDBIndexMetadata& other);
+- IndexedDBIndexMetadata(IndexedDBIndexMetadata&& other) noexcept;
++ IndexedDBIndexMetadata(IndexedDBIndexMetadata&& other);
+ ~IndexedDBIndexMetadata();
+ IndexedDBIndexMetadata& operator=(const IndexedDBIndexMetadata& other);
+- IndexedDBIndexMetadata& operator=(IndexedDBIndexMetadata&& other) noexcept;
++ IndexedDBIndexMetadata& operator=(IndexedDBIndexMetadata&& other);
+ bool operator==(const IndexedDBIndexMetadata& other) const;
+
+ base::string16 name;
+@@ -50,12 +50,11 @@
+ bool auto_increment,
+ int64_t max_index_id);
+ IndexedDBObjectStoreMetadata(const IndexedDBObjectStoreMetadata& other);
+- IndexedDBObjectStoreMetadata(IndexedDBObjectStoreMetadata&& other) noexcept;
++ IndexedDBObjectStoreMetadata(IndexedDBObjectStoreMetadata&& other);
+ ~IndexedDBObjectStoreMetadata();
+ IndexedDBObjectStoreMetadata& operator=(
+ const IndexedDBObjectStoreMetadata& other);
+- IndexedDBObjectStoreMetadata& operator=(
+- IndexedDBObjectStoreMetadata&& other) noexcept;
++ IndexedDBObjectStoreMetadata& operator=(IndexedDBObjectStoreMetadata&& other);
+ bool operator==(const IndexedDBObjectStoreMetadata& other) const;
+
+ base::string16 name;
+@@ -77,11 +76,10 @@
+ int64_t version,
+ int64_t max_object_store_id);
+ IndexedDBDatabaseMetadata(const IndexedDBDatabaseMetadata& other);
+- IndexedDBDatabaseMetadata(IndexedDBDatabaseMetadata&& other) noexcept;
++ IndexedDBDatabaseMetadata(IndexedDBDatabaseMetadata&& other);
+ ~IndexedDBDatabaseMetadata();
+ IndexedDBDatabaseMetadata& operator=(const IndexedDBDatabaseMetadata& other);
+- IndexedDBDatabaseMetadata& operator=(
+- IndexedDBDatabaseMetadata&& other) noexcept;
++ IndexedDBDatabaseMetadata& operator=(IndexedDBDatabaseMetadata&& other);
+ bool operator==(const IndexedDBDatabaseMetadata& other) const;
+
+ base::string16 name;
+diff --git a/third_party/blink/public/common/mediastream/media_devices.h b/third_party/blink/public/common/mediastream/media_devices.h
+index 0d63e575..d87affe 100644
+--- a/third_party/blink/public/common/mediastream/media_devices.h
++++ b/third_party/blink/public/common/mediastream/media_devices.h
+@@ -27,7 +27,7 @@
+ struct BLINK_COMMON_EXPORT WebMediaDeviceInfo {
+ WebMediaDeviceInfo();
+ WebMediaDeviceInfo(const WebMediaDeviceInfo& other);
+- WebMediaDeviceInfo(WebMediaDeviceInfo&& other) noexcept;
++ WebMediaDeviceInfo(WebMediaDeviceInfo&& other);
+ WebMediaDeviceInfo(
+ const std::string& device_id,
+ const std::string& label,
+@@ -37,7 +37,7 @@
+ const media::VideoCaptureDeviceDescriptor& descriptor);
+ ~WebMediaDeviceInfo();
+ WebMediaDeviceInfo& operator=(const WebMediaDeviceInfo& other);
+- WebMediaDeviceInfo& operator=(WebMediaDeviceInfo&& other) noexcept;
++ WebMediaDeviceInfo& operator=(WebMediaDeviceInfo&& other);
+
+ std::string device_id;
+ std::string label;
+diff --git a/third_party/blink/public/common/messaging/cloneable_message.h b/third_party/blink/public/common/messaging/cloneable_message.h
+index de9952d..8dbd910 100644
+--- a/third_party/blink/public/common/messaging/cloneable_message.h
++++ b/third_party/blink/public/common/messaging/cloneable_message.h
+@@ -21,8 +21,8 @@
+ // This type can be serialized as a blink::mojom::CloneableMessage struct.
+ struct BLINK_COMMON_EXPORT CloneableMessage {
+ CloneableMessage();
+- CloneableMessage(CloneableMessage&&) noexcept;
+- CloneableMessage& operator=(CloneableMessage&&) noexcept;
++ CloneableMessage(CloneableMessage&&);
++ CloneableMessage& operator=(CloneableMessage&&);
+ ~CloneableMessage();
+
+ // Returns a shallow clone of this message. |encoded_message| in the clone
+diff --git a/third_party/blink/public/common/messaging/transferable_message.h b/third_party/blink/public/common/messaging/transferable_message.h
+index 5eef63c..2d87363 100644
+--- a/third_party/blink/public/common/messaging/transferable_message.h
++++ b/third_party/blink/public/common/messaging/transferable_message.h
+@@ -22,8 +22,8 @@
+ // type can be serialized as a blink::mojom::TransferableMessage struct.
+ struct BLINK_COMMON_EXPORT TransferableMessage : public CloneableMessage {
+ TransferableMessage();
+- TransferableMessage(TransferableMessage&&) noexcept;
+- TransferableMessage& operator=(TransferableMessage&&) noexcept;
++ TransferableMessage(TransferableMessage&&);
++ TransferableMessage& operator=(TransferableMessage&&);
+ ~TransferableMessage();
+
+ // Any ports being transferred as part of this message.
+diff --git a/third_party/blink/public/platform/scheduler/web_scoped_virtual_time_pauser.h b/third_party/blink/public/platform/scheduler/web_scoped_virtual_time_pauser.h
+index 75f3ae16..81edd69 100644
+--- a/third_party/blink/public/platform/scheduler/web_scoped_virtual_time_pauser.h
++++ b/third_party/blink/public/platform/scheduler/web_scoped_virtual_time_pauser.h
+@@ -42,9 +42,8 @@
+ WebScopedVirtualTimePauser();
+ ~WebScopedVirtualTimePauser();
+
+- WebScopedVirtualTimePauser(WebScopedVirtualTimePauser&& other) noexcept;
+- WebScopedVirtualTimePauser& operator=(
+- WebScopedVirtualTimePauser&& other) noexcept;
++ WebScopedVirtualTimePauser(WebScopedVirtualTimePauser&& other);
++ WebScopedVirtualTimePauser& operator=(WebScopedVirtualTimePauser&& other);
+
+ WebScopedVirtualTimePauser(const WebScopedVirtualTimePauser&) = delete;
+ WebScopedVirtualTimePauser& operator=(const WebScopedVirtualTimePauser&) =
+diff --git a/third_party/blink/public/platform/web_string.h b/third_party/blink/public/platform/web_string.h
+index e4fda4f..ffd1da0 100644
+--- a/third_party/blink/public/platform/web_string.h
++++ b/third_party/blink/public/platform/web_string.h
+@@ -102,10 +102,10 @@
+ BLINK_PLATFORM_EXPORT WebString(const WebUChar* data, size_t len);
+
+ BLINK_PLATFORM_EXPORT WebString(const WebString&);
+- BLINK_PLATFORM_EXPORT WebString(WebString&&) noexcept;
++ BLINK_PLATFORM_EXPORT WebString(WebString&&);
+
+ BLINK_PLATFORM_EXPORT WebString& operator=(const WebString&);
+- BLINK_PLATFORM_EXPORT WebString& operator=(WebString&&) noexcept;
++ BLINK_PLATFORM_EXPORT WebString& operator=(WebString&&);
+
+ BLINK_PLATFORM_EXPORT void Reset();
+
+diff --git a/third_party/blink/public/web/modules/mediastream/media_stream_constraints_util.h b/third_party/blink/public/web/modules/mediastream/media_stream_constraints_util.h
+index 99f47f5..8451b86 100644
+--- a/third_party/blink/public/web/modules/mediastream/media_stream_constraints_util.h
++++ b/third_party/blink/public/web/modules/mediastream/media_stream_constraints_util.h
+@@ -73,8 +73,8 @@
+
+ VideoCaptureSettings(const VideoCaptureSettings& other);
+ VideoCaptureSettings& operator=(const VideoCaptureSettings& other);
+- VideoCaptureSettings(VideoCaptureSettings&& other) noexcept;
+- VideoCaptureSettings& operator=(VideoCaptureSettings&& other) noexcept;
++ VideoCaptureSettings(VideoCaptureSettings&& other);
++ VideoCaptureSettings& operator=(VideoCaptureSettings&& other);
+ ~VideoCaptureSettings();
+
+ bool HasValue() const { return !failed_constraint_name_; }
+@@ -193,8 +193,8 @@
+ const AudioProcessingProperties& audio_processing_properties);
+ AudioCaptureSettings(const AudioCaptureSettings& other);
+ AudioCaptureSettings& operator=(const AudioCaptureSettings& other);
+- AudioCaptureSettings(AudioCaptureSettings&& other) noexcept;
+- AudioCaptureSettings& operator=(AudioCaptureSettings&& other) noexcept;
++ AudioCaptureSettings(AudioCaptureSettings&& other);
++ AudioCaptureSettings& operator=(AudioCaptureSettings&& other);
+
+ bool HasValue() const { return !failed_constraint_name_; }
+
+diff --git a/third_party/blink/public/web/modules/mediastream/media_stream_constraints_util_sets.h b/third_party/blink/public/web/modules/mediastream/media_stream_constraints_util_sets.h
+index 199bdeb..c89e6e9 100644
+--- a/third_party/blink/public/web/modules/mediastream/media_stream_constraints_util_sets.h
++++ b/third_party/blink/public/web/modules/mediastream/media_stream_constraints_util_sets.h
+@@ -159,8 +159,8 @@
+
+ DiscreteSet(const DiscreteSet& other) = default;
+ DiscreteSet& operator=(const DiscreteSet& other) = default;
+- DiscreteSet(DiscreteSet&& other) noexcept = default;
+- DiscreteSet& operator=(DiscreteSet&& other) noexcept = default;
++ DiscreteSet(DiscreteSet&& other) = default;
++ DiscreteSet& operator=(DiscreteSet&& other) = default;
+ ~DiscreteSet() = default;
+
+ bool Contains(const T& value) const {
+diff --git a/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h b/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
+index 5e50d1b..ed5967f 100644
+--- a/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
++++ b/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
+@@ -285,8 +285,8 @@
+ const VideoTrackFormatCallback& format_callback,
+ std::unique_ptr<VideoTrackAdapterSettings> adapter_settings,
+ const ConstraintsCallback& callback);
+- PendingTrackInfo(PendingTrackInfo&& other) noexcept;
+- PendingTrackInfo& operator=(PendingTrackInfo&& other) noexcept;
++ PendingTrackInfo(PendingTrackInfo&& other);
++ PendingTrackInfo& operator=(PendingTrackInfo&& other);
+ ~PendingTrackInfo();
+
+ MediaStreamVideoTrack* track;
+diff --git a/third_party/blink/renderer/core/animation/interpolation_value.h b/third_party/blink/renderer/core/animation/interpolation_value.h
+index 75c5d35..17ccf02 100644
+--- a/third_party/blink/renderer/core/animation/interpolation_value.h
++++ b/third_party/blink/renderer/core/animation/interpolation_value.h
+@@ -27,11 +27,11 @@
+
+ InterpolationValue(std::nullptr_t) {}
+
+- InterpolationValue(InterpolationValue&& other) noexcept
++ InterpolationValue(InterpolationValue&& other)
+ : interpolable_value(std::move(other.interpolable_value)),
+ non_interpolable_value(std::move(other.non_interpolable_value)) {}
+
+- void operator=(InterpolationValue&& other) noexcept {
++ void operator=(InterpolationValue&& other) {
+ interpolable_value = std::move(other.interpolable_value);
+ non_interpolable_value = std::move(other.non_interpolable_value);
+ }
+diff --git a/third_party/blink/renderer/core/animation/pairwise_interpolation_value.h b/third_party/blink/renderer/core/animation/pairwise_interpolation_value.h
+index 39e6c57..87bb431 100644
+--- a/third_party/blink/renderer/core/animation/pairwise_interpolation_value.h
++++ b/third_party/blink/renderer/core/animation/pairwise_interpolation_value.h
+@@ -28,7 +28,7 @@
+
+ PairwiseInterpolationValue(std::nullptr_t) {}
+
+- PairwiseInterpolationValue(PairwiseInterpolationValue&& other) noexcept
++ PairwiseInterpolationValue(PairwiseInterpolationValue&& other)
+ : start_interpolable_value(std::move(other.start_interpolable_value)),
+ end_interpolable_value(std::move(other.end_interpolable_value)),
+ non_interpolable_value(std::move(other.non_interpolable_value)) {}
+diff --git a/third_party/blink/renderer/core/css/css_selector_list.h b/third_party/blink/renderer/core/css/css_selector_list.h
+index 4d38b09..51f354b 100644
+--- a/third_party/blink/renderer/core/css/css_selector_list.h
++++ b/third_party/blink/renderer/core/css/css_selector_list.h
+@@ -67,8 +67,7 @@
+ public:
+ CSSSelectorList() : selector_array_(nullptr) {}
+
+- CSSSelectorList(CSSSelectorList&& o) noexcept
+- : selector_array_(o.selector_array_) {
++ CSSSelectorList(CSSSelectorList&& o) : selector_array_(o.selector_array_) {
+ o.selector_array_ = nullptr;
+ }
+
+@@ -82,7 +81,7 @@
+ bool HasPseudoWhere() const;
+ bool RequiresExpansion() const;
+
+- CSSSelectorList& operator=(CSSSelectorList&& o) noexcept {
++ CSSSelectorList& operator=(CSSSelectorList&& o) {
+ DCHECK(this != &o);
+ DeleteSelectorsIfNeeded();
+ selector_array_ = o.selector_array_;
+diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.cc b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
+index 0e6b6cb..79f281a 100644
+--- a/third_party/blink/renderer/core/display_lock/display_lock_context.cc
++++ b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
+@@ -1033,7 +1033,7 @@
+ : context_(context) {}
+
+ DisplayLockContext::ScopedForcedUpdate::ScopedForcedUpdate(
+- ScopedForcedUpdate&& other) noexcept
++ ScopedForcedUpdate&& other)
+ : context_(other.context_) {
+ other.context_ = nullptr;
+ }
+diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.h b/third_party/blink/renderer/core/display_lock/display_lock_context.h
+index 1a38b2af..f890b432 100644
+--- a/third_party/blink/renderer/core/display_lock/display_lock_context.h
++++ b/third_party/blink/renderer/core/display_lock/display_lock_context.h
+@@ -76,7 +76,7 @@
+ DISALLOW_NEW();
+
+ public:
+- ScopedForcedUpdate(ScopedForcedUpdate&&) noexcept;
++ ScopedForcedUpdate(ScopedForcedUpdate&&);
+ ~ScopedForcedUpdate();
+
+ private:
+diff --git a/third_party/blink/renderer/core/editing/layout_selection.cc b/third_party/blink/renderer/core/editing/layout_selection.cc
+index 00040d2..73cfe0f 100644
+--- a/third_party/blink/renderer/core/editing/layout_selection.cc
++++ b/third_party/blink/renderer/core/editing/layout_selection.cc
+@@ -178,7 +178,7 @@
+ public:
+ OldSelectedNodes()
+ : paint_range(MakeGarbageCollected<SelectionPaintRange>()) {}
+- OldSelectedNodes(OldSelectedNodes&& other) noexcept {
++ OldSelectedNodes(OldSelectedNodes&& other) {
+ paint_range = other.paint_range;
+ selected_map = std::move(other.selected_map);
+ }
+@@ -205,8 +205,7 @@
+ HeapHashSet<Member<const Node>>&& passed_selected_objects)
+ : paint_range(passed_paint_range),
+ selected_objects(std::move(passed_selected_objects)) {}
+- NewPaintRangeAndSelectedNodes(
+- NewPaintRangeAndSelectedNodes&& other) noexcept {
++ NewPaintRangeAndSelectedNodes(NewPaintRangeAndSelectedNodes&& other) {
+ paint_range = other.paint_range;
+ selected_objects = std::move(other.selected_objects);
+ }
+diff --git a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc
+index f0ac3c4..81f47ab 100644
+--- a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc
++++ b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.cc
+@@ -24,7 +24,7 @@
+ start_time_(clock_->NowTicks()) {}
+
+ LocalFrameUkmAggregator::ScopedUkmHierarchicalTimer::ScopedUkmHierarchicalTimer(
+- ScopedUkmHierarchicalTimer&& other) noexcept
++ ScopedUkmHierarchicalTimer&& other)
+ : aggregator_(other.aggregator_),
+ metric_index_(other.metric_index_),
+ clock_(other.clock_),
+diff --git a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h
+index 44c3f87..dc06091 100644
+--- a/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h
++++ b/third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h
+@@ -195,7 +195,7 @@
+ STACK_ALLOCATED();
+
+ public:
+- ScopedUkmHierarchicalTimer(ScopedUkmHierarchicalTimer&&) noexcept;
++ ScopedUkmHierarchicalTimer(ScopedUkmHierarchicalTimer&&);
+ ~ScopedUkmHierarchicalTimer();
+
+ private:
+diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h b/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h
+index 2af19ca..498e42e 100644
+--- a/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h
++++ b/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h
+@@ -181,7 +181,7 @@
+
+ public:
+ ChildList() = default;
+- void operator=(ChildList&& other) noexcept {
++ void operator=(ChildList&& other) {
+ children_ = std::move(other.children_);
+ }
+
+diff --git a/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h b/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h
+index 8f77b90..833b0d2 100644
+--- a/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h
++++ b/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h
+@@ -86,7 +86,7 @@
+ else
+ bfc_offset_ = other.bfc_offset_;
+ }
+- NGConstraintSpace(NGConstraintSpace&& other) noexcept
++ NGConstraintSpace(NGConstraintSpace&& other)
+ : available_size_(other.available_size_),
+ exclusion_space_(std::move(other.exclusion_space_)),
+ bitfields_(other.bitfields_) {
+@@ -110,7 +110,7 @@
+ bitfields_ = other.bitfields_;
+ return *this;
+ }
+- NGConstraintSpace& operator=(NGConstraintSpace&& other) noexcept {
++ NGConstraintSpace& operator=(NGConstraintSpace&& other) {
+ available_size_ = other.available_size_;
+ if (HasRareData())
+ delete rare_data_;
+diff --git a/third_party/blink/renderer/core/messaging/blink_cloneable_message.cc b/third_party/blink/renderer/core/messaging/blink_cloneable_message.cc
+index b6c8768..7423930 100644
+--- a/third_party/blink/renderer/core/messaging/blink_cloneable_message.cc
++++ b/third_party/blink/renderer/core/messaging/blink_cloneable_message.cc
+@@ -9,9 +9,8 @@
+ BlinkCloneableMessage::BlinkCloneableMessage() = default;
+ BlinkCloneableMessage::~BlinkCloneableMessage() = default;
+
+-BlinkCloneableMessage::BlinkCloneableMessage(BlinkCloneableMessage&&) noexcept =
+- default;
++BlinkCloneableMessage::BlinkCloneableMessage(BlinkCloneableMessage&&) = default;
+ BlinkCloneableMessage& BlinkCloneableMessage::operator=(
+- BlinkCloneableMessage&&) noexcept = default;
++ BlinkCloneableMessage&&) = default;
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/core/messaging/blink_cloneable_message.h b/third_party/blink/renderer/core/messaging/blink_cloneable_message.h
+index 337b0f8..a51e888 100644
+--- a/third_party/blink/renderer/core/messaging/blink_cloneable_message.h
++++ b/third_party/blink/renderer/core/messaging/blink_cloneable_message.h
+@@ -21,8 +21,8 @@
+ BlinkCloneableMessage();
+ ~BlinkCloneableMessage();
+
+- BlinkCloneableMessage(BlinkCloneableMessage&&) noexcept;
+- BlinkCloneableMessage& operator=(BlinkCloneableMessage&&) noexcept;
++ BlinkCloneableMessage(BlinkCloneableMessage&&);
++ BlinkCloneableMessage& operator=(BlinkCloneableMessage&&);
+
+ scoped_refptr<blink::SerializedScriptValue> message;
+ v8_inspector::V8StackTraceId sender_stack_trace_id;
+diff --git a/third_party/blink/renderer/core/messaging/blink_transferable_message.cc b/third_party/blink/renderer/core/messaging/blink_transferable_message.cc
+index 909ddb0..b5cdfda 100644
+--- a/third_party/blink/renderer/core/messaging/blink_transferable_message.cc
++++ b/third_party/blink/renderer/core/messaging/blink_transferable_message.cc
+@@ -16,10 +16,10 @@
+ BlinkTransferableMessage::BlinkTransferableMessage() = default;
+ BlinkTransferableMessage::~BlinkTransferableMessage() = default;
+
+-BlinkTransferableMessage::BlinkTransferableMessage(
+- BlinkTransferableMessage&&) noexcept = default;
++BlinkTransferableMessage::BlinkTransferableMessage(BlinkTransferableMessage&&) =
++ default;
+ BlinkTransferableMessage& BlinkTransferableMessage::operator=(
+- BlinkTransferableMessage&&) noexcept = default;
++ BlinkTransferableMessage&&) = default;
+
+ scoped_refptr<blink::StaticBitmapImage> ToStaticBitmapImage(
+ const SkBitmap& sk_bitmap) {
+diff --git a/third_party/blink/renderer/core/messaging/blink_transferable_message.h b/third_party/blink/renderer/core/messaging/blink_transferable_message.h
+index edf4fab..3957bed 100644
+--- a/third_party/blink/renderer/core/messaging/blink_transferable_message.h
++++ b/third_party/blink/renderer/core/messaging/blink_transferable_message.h
+@@ -24,8 +24,8 @@
+ BlinkTransferableMessage();
+ ~BlinkTransferableMessage();
+
+- BlinkTransferableMessage(BlinkTransferableMessage&&) noexcept;
+- BlinkTransferableMessage& operator=(BlinkTransferableMessage&&) noexcept;
++ BlinkTransferableMessage(BlinkTransferableMessage&&);
++ BlinkTransferableMessage& operator=(BlinkTransferableMessage&&);
+
+ Vector<MessagePortChannel> ports;
+
+diff --git a/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.h b/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.h
+index 85b46e1..f050a85 100644
+--- a/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.h
++++ b/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.h
+@@ -92,10 +92,10 @@
+ std::move(destruction_callback_).Run(std::move(callbacks_));
+ }
+
+- ScopedWebCallbacks(ScopedWebCallbacks&& other) noexcept = default;
++ ScopedWebCallbacks(ScopedWebCallbacks&& other) = default;
+ ScopedWebCallbacks(const ScopedWebCallbacks& other) = delete;
+
+- ScopedWebCallbacks& operator=(ScopedWebCallbacks&& other) noexcept = default;
++ ScopedWebCallbacks& operator=(ScopedWebCallbacks&& other) = default;
+ ScopedWebCallbacks& operator=(const ScopedWebCallbacks& other) = delete;
+
+ std::unique_ptr<CallbacksType> PassCallbacks() {
+diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request.h b/third_party/blink/renderer/modules/indexeddb/idb_request.h
+index f85b864..d3f1132 100644
+--- a/third_party/blink/renderer/modules/indexeddb/idb_request.h
++++ b/third_party/blink/renderer/modules/indexeddb/idb_request.h
+@@ -110,13 +110,13 @@
+ ~AsyncTraceState();
+
+ // Used to transfer the trace end event state to an IDBRequest.
+- AsyncTraceState(AsyncTraceState&& other) noexcept {
++ AsyncTraceState(AsyncTraceState&& other) {
+ DCHECK(IsEmpty());
+ this->trace_event_name_ = other.trace_event_name_;
+ this->id_ = other.id_;
+ other.trace_event_name_ = nullptr;
+ }
+- AsyncTraceState& operator=(AsyncTraceState&& rhs) noexcept {
++ AsyncTraceState& operator=(AsyncTraceState&& rhs) {
+ DCHECK(IsEmpty());
+ this->trace_event_name_ = rhs.trace_event_name_;
+ this->id_ = rhs.id_;
+diff --git a/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc b/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc
+index 84de726..2d3d4de5 100644
+--- a/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc
++++ b/third_party/blink/renderer/modules/indexeddb/idb_request_test.cc
+@@ -434,10 +434,9 @@
+ class AsyncTraceStateForTesting : public IDBRequest::AsyncTraceState {
+ public:
+ AsyncTraceStateForTesting() : IDBRequest::AsyncTraceState() {}
+- AsyncTraceStateForTesting(AsyncTraceStateForTesting&& other) noexcept
++ AsyncTraceStateForTesting(AsyncTraceStateForTesting&& other)
+ : IDBRequest::AsyncTraceState(std::move(other)) {}
+- AsyncTraceStateForTesting& operator=(
+- AsyncTraceStateForTesting&& rhs) noexcept {
++ AsyncTraceStateForTesting& operator=(AsyncTraceStateForTesting&& rhs) {
+ AsyncTraceState::operator=(std::move(rhs));
+ return *this;
+ }
+diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util.cc b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util.cc
+index 24499bd..3bf00e9 100644
+--- a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util.cc
++++ b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util.cc
+@@ -134,13 +134,13 @@
+
+ VideoCaptureSettings::VideoCaptureSettings(const VideoCaptureSettings& other) =
+ default;
+-VideoCaptureSettings::VideoCaptureSettings(
+- VideoCaptureSettings&& other) noexcept = default;
++VideoCaptureSettings::VideoCaptureSettings(VideoCaptureSettings&& other) =
++ default;
+ VideoCaptureSettings::~VideoCaptureSettings() = default;
+ VideoCaptureSettings& VideoCaptureSettings::operator=(
+ const VideoCaptureSettings& other) = default;
+ VideoCaptureSettings& VideoCaptureSettings::operator=(
+- VideoCaptureSettings&& other) noexcept = default;
++ VideoCaptureSettings&& other) = default;
+
+ AudioCaptureSettings::AudioCaptureSettings() : AudioCaptureSettings("") {}
+
+@@ -166,10 +166,10 @@
+ default;
+ AudioCaptureSettings& AudioCaptureSettings::operator=(
+ const AudioCaptureSettings& other) = default;
+-AudioCaptureSettings::AudioCaptureSettings(
+- AudioCaptureSettings&& other) noexcept = default;
++AudioCaptureSettings::AudioCaptureSettings(AudioCaptureSettings&& other) =
++ default;
+ AudioCaptureSettings& AudioCaptureSettings::operator=(
+- AudioCaptureSettings&& other) noexcept = default;
++ AudioCaptureSettings&& other) = default;
+
+ bool GetConstraintValueAsBoolean(
+ const WebMediaConstraints& constraints,
+diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_device.cc b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_device.cc
+index 96992217..67c8bab 100644
+--- a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_device.cc
++++ b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_device.cc
+@@ -529,9 +529,9 @@
+ facing_mode(facing_mode) {}
+
+ VideoInputDeviceCapabilities::VideoInputDeviceCapabilities(
+- VideoInputDeviceCapabilities&& other) noexcept = default;
++ VideoInputDeviceCapabilities&& other) = default;
+ VideoInputDeviceCapabilities& VideoInputDeviceCapabilities::operator=(
+- VideoInputDeviceCapabilities&& other) noexcept = default;
++ VideoInputDeviceCapabilities&& other) = default;
+
+ VideoInputDeviceCapabilities::~VideoInputDeviceCapabilities() = default;
+
+@@ -557,10 +557,10 @@
+
+ VideoDeviceCaptureCapabilities::VideoDeviceCaptureCapabilities() = default;
+ VideoDeviceCaptureCapabilities::VideoDeviceCaptureCapabilities(
+- VideoDeviceCaptureCapabilities&& other) noexcept = default;
++ VideoDeviceCaptureCapabilities&& other) = default;
+ VideoDeviceCaptureCapabilities::~VideoDeviceCaptureCapabilities() = default;
+ VideoDeviceCaptureCapabilities& VideoDeviceCaptureCapabilities::operator=(
+- VideoDeviceCaptureCapabilities&& other) noexcept = default;
++ VideoDeviceCaptureCapabilities&& other) = default;
+
+ VideoCaptureSettings SelectSettingsVideoDeviceCapture(
+ const VideoDeviceCaptureCapabilities& capabilities,
+diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_device.h b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_device.h
+index 66ae103..94d8ed9 100644
+--- a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_device.h
++++ b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_device.h
+@@ -34,9 +34,8 @@
+ Vector<media::VideoCaptureFormat> formats,
+ media::VideoFacingMode facing_mode);
+ VideoInputDeviceCapabilities();
+- VideoInputDeviceCapabilities(VideoInputDeviceCapabilities&& other) noexcept;
+- VideoInputDeviceCapabilities& operator=(
+- VideoInputDeviceCapabilities&& other) noexcept;
++ VideoInputDeviceCapabilities(VideoInputDeviceCapabilities&& other);
++ VideoInputDeviceCapabilities& operator=(VideoInputDeviceCapabilities&& other);
+ ~VideoInputDeviceCapabilities();
+
+ String device_id;
+@@ -47,11 +46,10 @@
+
+ struct MODULES_EXPORT VideoDeviceCaptureCapabilities {
+ VideoDeviceCaptureCapabilities();
+- VideoDeviceCaptureCapabilities(
+- VideoDeviceCaptureCapabilities&& other) noexcept;
++ VideoDeviceCaptureCapabilities(VideoDeviceCaptureCapabilities&& other);
+ ~VideoDeviceCaptureCapabilities();
+ VideoDeviceCaptureCapabilities& operator=(
+- VideoDeviceCaptureCapabilities&& other) noexcept;
++ VideoDeviceCaptureCapabilities&& other);
+
+ // Each capabilities field is independent of each other.
+ // TODO(crbug.com/704136): Replace VideoInputDeviceCapabilities in the
+diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc
+index 7651e47..99759c1 100644
+--- a/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc
++++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc
+@@ -461,10 +461,10 @@
+ callback(callback) {}
+
+ MediaStreamVideoSource::PendingTrackInfo::PendingTrackInfo(
+- PendingTrackInfo&& other) noexcept = default;
++ PendingTrackInfo&& other) = default;
+ MediaStreamVideoSource::PendingTrackInfo&
+ MediaStreamVideoSource::PendingTrackInfo::operator=(
+- MediaStreamVideoSource::PendingTrackInfo&& other) noexcept = default;
++ MediaStreamVideoSource::PendingTrackInfo&& other) = default;
+
+ MediaStreamVideoSource::PendingTrackInfo::~PendingTrackInfo() {}
+
+diff --git a/third_party/blink/renderer/platform/bindings/dom_data_store.h b/third_party/blink/renderer/platform/bindings/dom_data_store.h
+index d660b67..0660dd18 100644
+--- a/third_party/blink/renderer/platform/bindings/dom_data_store.h
++++ b/third_party/blink/renderer/platform/bindings/dom_data_store.h
+@@ -230,12 +230,11 @@
+ : TraceWrapperV8Reference(isolate, handle) {}
+
+ // Move support without write barrier.
+- DOMWorldWrapperReference(DOMWorldWrapperReference&& other) noexcept
++ DOMWorldWrapperReference(DOMWorldWrapperReference&& other)
+ : TraceWrapperV8Reference() {
+ handle_ = std::move(other.handle_);
+ }
+- DOMWorldWrapperReference& operator=(
+- DOMWorldWrapperReference&& rhs) noexcept {
++ DOMWorldWrapperReference& operator=(DOMWorldWrapperReference&& rhs) {
+ handle_ = std::move(rhs.handle_);
+ return *this;
+ }
+diff --git a/third_party/blink/renderer/platform/exported/web_string.cc b/third_party/blink/renderer/platform/exported/web_string.cc
+index 71d4c07..fbe4828 100644
+--- a/third_party/blink/renderer/platform/exported/web_string.cc
++++ b/third_party/blink/renderer/platform/exported/web_string.cc
+@@ -51,9 +51,9 @@
+ WebString::~WebString() = default;
+ WebString::WebString() = default;
+ WebString::WebString(const WebString&) = default;
+-WebString::WebString(WebString&&) noexcept = default;
++WebString::WebString(WebString&&) = default;
+ WebString& WebString::operator=(const WebString&) = default;
+-WebString& WebString::operator=(WebString&&) noexcept = default;
++WebString& WebString::operator=(WebString&&) = default;
+
+ WebString::WebString(const WebUChar* data, size_t len)
+ : impl_(StringImpl::Create8BitIfPossible(data, len)) {}
+diff --git a/third_party/blink/renderer/platform/graphics/contiguous_container.cc b/third_party/blink/renderer/platform/graphics/contiguous_container.cc
+index fd01c00..19cb6f2 100644
+--- a/third_party/blink/renderer/platform/graphics/contiguous_container.cc
++++ b/third_party/blink/renderer/platform/graphics/contiguous_container.cc
+@@ -69,7 +69,7 @@
+ : end_index_(0), max_object_size_(max_object_size) {}
+
+ ContiguousContainerBase::ContiguousContainerBase(
+- ContiguousContainerBase&& source) noexcept
++ ContiguousContainerBase&& source)
+ : ContiguousContainerBase(source.max_object_size_) {
+ Swap(source);
+ }
+@@ -77,7 +77,7 @@
+ ContiguousContainerBase::~ContiguousContainerBase() = default;
+
+ ContiguousContainerBase& ContiguousContainerBase::operator=(
+- ContiguousContainerBase&& source) noexcept {
++ ContiguousContainerBase&& source) {
+ Swap(source);
+ return *this;
+ }
+diff --git a/third_party/blink/renderer/platform/graphics/contiguous_container.h b/third_party/blink/renderer/platform/graphics/contiguous_container.h
+index 867e59c..3eee558 100644
+--- a/third_party/blink/renderer/platform/graphics/contiguous_container.h
++++ b/third_party/blink/renderer/platform/graphics/contiguous_container.h
+@@ -42,10 +42,10 @@
+
+ protected:
+ explicit ContiguousContainerBase(size_t max_object_size);
+- ContiguousContainerBase(ContiguousContainerBase&&) noexcept;
++ ContiguousContainerBase(ContiguousContainerBase&&);
+ ~ContiguousContainerBase();
+
+- ContiguousContainerBase& operator=(ContiguousContainerBase&&) noexcept;
++ ContiguousContainerBase& operator=(ContiguousContainerBase&&);
+
+ size_t size() const { return elements_.size(); }
+ bool IsEmpty() const { return !size(); }
+@@ -147,7 +147,7 @@
+ WTF_HEAP_PROFILER_TYPE_NAME(BaseElementType));
+ }
+
+- ContiguousContainer(ContiguousContainer&& source) noexcept
++ ContiguousContainer(ContiguousContainer&& source)
+ : ContiguousContainerBase(std::move(source)) {}
+
+ ~ContiguousContainer() {
+@@ -157,7 +157,7 @@
+ }
+ }
+
+- ContiguousContainer& operator=(ContiguousContainer&& source) noexcept {
++ ContiguousContainer& operator=(ContiguousContainer&& source) {
+ // Must clear in the derived class to ensure that element destructors
+ // care called.
+ Clear();
+diff --git a/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.cc b/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.cc
+index ad10c54..4edbf7f 100644
+--- a/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.cc
++++ b/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.cc
+@@ -247,9 +247,9 @@
+ }
+
+ ImageLayerBridge::RegisteredBitmap::RegisteredBitmap() = default;
+-ImageLayerBridge::RegisteredBitmap::RegisteredBitmap(
+- RegisteredBitmap&& other) noexcept = default;
++ImageLayerBridge::RegisteredBitmap::RegisteredBitmap(RegisteredBitmap&& other) =
++ default;
+ ImageLayerBridge::RegisteredBitmap& ImageLayerBridge::RegisteredBitmap::
+-operator=(RegisteredBitmap&& other) noexcept = default;
++operator=(RegisteredBitmap&& other) = default;
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.h b/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.h
+index bea81dfb..b6879f9 100644
+--- a/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.h
++++ b/third_party/blink/renderer/platform/graphics/gpu/image_layer_bridge.h
+@@ -65,8 +65,8 @@
+ // only with software compositing.
+ struct RegisteredBitmap {
+ RegisteredBitmap();
+- RegisteredBitmap(RegisteredBitmap&& other) noexcept;
+- RegisteredBitmap& operator=(RegisteredBitmap&& other) noexcept;
++ RegisteredBitmap(RegisteredBitmap&& other);
++ RegisteredBitmap& operator=(RegisteredBitmap&& other);
+
+ scoped_refptr<cc::CrossThreadSharedBitmap> bitmap;
+ cc::SharedBitmapIdRegistration registration;
+diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item_list.h b/third_party/blink/renderer/platform/graphics/paint/display_item_list.h
+index cd3ed2f..9ee2571 100644
+--- a/third_party/blink/renderer/platform/graphics/paint/display_item_list.h
++++ b/third_party/blink/renderer/platform/graphics/paint/display_item_list.h
+@@ -28,10 +28,10 @@
+ public:
+ DisplayItemList(size_t initial_size_bytes)
+ : ContiguousContainer(kMaximumDisplayItemSize, initial_size_bytes) {}
+- DisplayItemList(DisplayItemList&& source) noexcept
++ DisplayItemList(DisplayItemList&& source)
+ : ContiguousContainer(std::move(source)) {}
+
+- DisplayItemList& operator=(DisplayItemList&& source) noexcept {
++ DisplayItemList& operator=(DisplayItemList&& source) {
+ ContiguousContainer::operator=(std::move(source));
+ return *this;
+ }
+diff --git a/third_party/blink/renderer/platform/heap/heap_test.cc b/third_party/blink/renderer/platform/heap/heap_test.cc
+index dad0ca0..e94cbc95 100644
+--- a/third_party/blink/renderer/platform/heap/heap_test.cc
++++ b/third_party/blink/renderer/platform/heap/heap_test.cc
+@@ -145,7 +145,7 @@
+ }
+ KeyWithCopyingMoveConstructor(const KeyWithCopyingMoveConstructor&) = default;
+ // The move constructor delegates to the copy constructor intentionally.
+- KeyWithCopyingMoveConstructor(KeyWithCopyingMoveConstructor&& x) noexcept
++ KeyWithCopyingMoveConstructor(KeyWithCopyingMoveConstructor&& x)
+ : KeyWithCopyingMoveConstructor(x) {}
+ KeyWithCopyingMoveConstructor& operator=(
+ const KeyWithCopyingMoveConstructor&) = default;
+diff --git a/third_party/blink/renderer/platform/image-decoders/segment_stream.cc b/third_party/blink/renderer/platform/image-decoders/segment_stream.cc
+index 4024f9c..5a98701 100644
+--- a/third_party/blink/renderer/platform/image-decoders/segment_stream.cc
++++ b/third_party/blink/renderer/platform/image-decoders/segment_stream.cc
+@@ -10,10 +10,10 @@
+
+ SegmentStream::SegmentStream() = default;
+
+-SegmentStream::SegmentStream(SegmentStream&& rhs) noexcept
++SegmentStream::SegmentStream(SegmentStream&& rhs)
+ : reader_(std::move(rhs.reader_)), position_(rhs.position_) {}
+
+-SegmentStream& SegmentStream::operator=(SegmentStream&& rhs) noexcept {
++SegmentStream& SegmentStream::operator=(SegmentStream&& rhs) {
+ reader_ = std::move(rhs.reader_);
+ position_ = rhs.position_;
+
+diff --git a/third_party/blink/renderer/platform/image-decoders/segment_stream.h b/third_party/blink/renderer/platform/image-decoders/segment_stream.h
+index f49f551..fa1ccf2 100644
+--- a/third_party/blink/renderer/platform/image-decoders/segment_stream.h
++++ b/third_party/blink/renderer/platform/image-decoders/segment_stream.h
+@@ -19,8 +19,8 @@
+ SegmentStream();
+ SegmentStream(const SegmentStream&) = delete;
+ SegmentStream& operator=(const SegmentStream&) = delete;
+- SegmentStream(SegmentStream&&) noexcept;
+- SegmentStream& operator=(SegmentStream&&) noexcept;
++ SegmentStream(SegmentStream&&);
++ SegmentStream& operator=(SegmentStream&&);
+
+ ~SegmentStream() override;
+
+diff --git a/third_party/blink/renderer/platform/mojo/revocable_interface_ptr.h b/third_party/blink/renderer/platform/mojo/revocable_interface_ptr.h
+index 555be28..34bad3f 100644
+--- a/third_party/blink/renderer/platform/mojo/revocable_interface_ptr.h
++++ b/third_party/blink/renderer/platform/mojo/revocable_interface_ptr.h
+@@ -41,7 +41,7 @@
+ RevocableInterfacePtr(std::nullptr_t) {}
+
+ // Takes over the binding of another RevocableInterfacePtr.
+- RevocableInterfacePtr(RevocableInterfacePtr&& other) noexcept {
++ RevocableInterfacePtr(RevocableInterfacePtr&& other) {
+ interface_ptr_ = std::move(other.interface_ptr_);
+ SetInvalidator(other.invalidator_.get());
+ // Reset the other interface ptr to remove it as an observer of the
+@@ -58,7 +58,7 @@
+
+ // Takes over the binding of another RevocableInterfacePtr, and closes any
+ // message pipe already bound to this pointer.
+- RevocableInterfacePtr& operator=(RevocableInterfacePtr&& other) noexcept {
++ RevocableInterfacePtr& operator=(RevocableInterfacePtr&& other) {
+ reset();
+ interface_ptr_ = std::move(other.interface_ptr_);
+ SetInvalidator(other.invalidator_.get());
+diff --git a/third_party/blink/renderer/platform/network/encoded_form_data.cc b/third_party/blink/renderer/platform/network/encoded_form_data.cc
+index bc4ec14..1b660e6 100644
+--- a/third_party/blink/renderer/platform/network/encoded_form_data.cc
++++ b/third_party/blink/renderer/platform/network/encoded_form_data.cc
+@@ -61,11 +61,10 @@
+ : type_(kDataPipe), data_pipe_getter_(std::move(data_pipe_getter)) {}
+
+ FormDataElement::FormDataElement(const FormDataElement&) = default;
+-FormDataElement::FormDataElement(FormDataElement&&) noexcept = default;
++FormDataElement::FormDataElement(FormDataElement&&) = default;
+ FormDataElement::~FormDataElement() = default;
+ FormDataElement& FormDataElement::operator=(const FormDataElement&) = default;
+-FormDataElement& FormDataElement::operator=(FormDataElement&&) noexcept =
+- default;
++FormDataElement& FormDataElement::operator=(FormDataElement&&) = default;
+
+ bool operator==(const FormDataElement& a, const FormDataElement& b) {
+ if (&a == &b)
+diff --git a/third_party/blink/renderer/platform/network/encoded_form_data.h b/third_party/blink/renderer/platform/network/encoded_form_data.h
+index 48f84c8..865f664 100644
+--- a/third_party/blink/renderer/platform/network/encoded_form_data.h
++++ b/third_party/blink/renderer/platform/network/encoded_form_data.h
+@@ -61,12 +61,12 @@
+ explicit FormDataElement(scoped_refptr<WrappedDataPipeGetter>);
+
+ FormDataElement(const FormDataElement&);
+- FormDataElement(FormDataElement&&) noexcept;
++ FormDataElement(FormDataElement&&);
+
+ ~FormDataElement();
+
+ FormDataElement& operator=(const FormDataElement&);
+- FormDataElement& operator=(FormDataElement&&) noexcept;
++ FormDataElement& operator=(FormDataElement&&);
+
+ bool IsSafeToSendToAnotherThread() const;
+
+diff --git a/third_party/blink/renderer/platform/scheduler/common/frame_or_worker_scheduler.cc b/third_party/blink/renderer/platform/scheduler/common/frame_or_worker_scheduler.cc
+index ebe99ff..e971856 100644
+--- a/third_party/blink/renderer/platform/scheduler/common/frame_or_worker_scheduler.cc
++++ b/third_party/blink/renderer/platform/scheduler/common/frame_or_worker_scheduler.cc
+@@ -28,15 +28,14 @@
+ }
+
+ FrameOrWorkerScheduler::SchedulingAffectingFeatureHandle::
+- SchedulingAffectingFeatureHandle(
+- SchedulingAffectingFeatureHandle&& other) noexcept
++ SchedulingAffectingFeatureHandle(SchedulingAffectingFeatureHandle&& other)
+ : feature_(other.feature_), scheduler_(std::move(other.scheduler_)) {
+ other.scheduler_ = nullptr;
+ }
+
+ FrameOrWorkerScheduler::SchedulingAffectingFeatureHandle&
+ FrameOrWorkerScheduler::SchedulingAffectingFeatureHandle::operator=(
+- SchedulingAffectingFeatureHandle&& other) noexcept {
++ SchedulingAffectingFeatureHandle&& other) {
+ feature_ = other.feature_;
+ policy_ = std::move(other.policy_);
+ scheduler_ = std::move(other.scheduler_);
+diff --git a/third_party/blink/renderer/platform/scheduler/common/post_cancellable_task.cc b/third_party/blink/renderer/platform/scheduler/common/post_cancellable_task.cc
+index 2c84d70..fad56ee1 100644
+--- a/third_party/blink/renderer/platform/scheduler/common/post_cancellable_task.cc
++++ b/third_party/blink/renderer/platform/scheduler/common/post_cancellable_task.cc
+@@ -103,9 +103,9 @@
+ Cancel();
+ }
+
+-TaskHandle::TaskHandle(TaskHandle&&) noexcept = default;
++TaskHandle::TaskHandle(TaskHandle&&) = default;
+
+-TaskHandle& TaskHandle::operator=(TaskHandle&& other) noexcept {
++TaskHandle& TaskHandle::operator=(TaskHandle&& other) {
+ TaskHandle tmp(std::move(other));
+ runner_.swap(tmp.runner_);
+ return *this;
+diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/web_scoped_virtual_time_pauser.cc b/third_party/blink/renderer/platform/scheduler/main_thread/web_scoped_virtual_time_pauser.cc
+index f55730a..b64ec9d 100644
+--- a/third_party/blink/renderer/platform/scheduler/main_thread/web_scoped_virtual_time_pauser.cc
++++ b/third_party/blink/renderer/platform/scheduler/main_thread/web_scoped_virtual_time_pauser.cc
+@@ -28,7 +28,7 @@
+ }
+
+ WebScopedVirtualTimePauser::WebScopedVirtualTimePauser(
+- WebScopedVirtualTimePauser&& other) noexcept {
++ WebScopedVirtualTimePauser&& other) {
+ virtual_time_when_paused_ = other.virtual_time_when_paused_;
+ paused_ = other.paused_;
+ duration_ = other.duration_;
+@@ -39,7 +39,7 @@
+ }
+
+ WebScopedVirtualTimePauser& WebScopedVirtualTimePauser::operator=(
+- WebScopedVirtualTimePauser&& other) noexcept {
++ WebScopedVirtualTimePauser&& other) {
+ if (scheduler_ && paused_)
+ DecrementVirtualTimePauseCount();
+ virtual_time_when_paused_ = other.virtual_time_when_paused_;
+diff --git a/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h b/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h
+index 56915ee..3fdb8cf 100644
+--- a/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h
++++ b/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h
+@@ -57,12 +57,11 @@
+
+ public:
+ SchedulingAffectingFeatureHandle() = default;
+- SchedulingAffectingFeatureHandle(
+- SchedulingAffectingFeatureHandle&&) noexcept;
++ SchedulingAffectingFeatureHandle(SchedulingAffectingFeatureHandle&&);
+ inline ~SchedulingAffectingFeatureHandle() { reset(); }
+
+ SchedulingAffectingFeatureHandle& operator=(
+- SchedulingAffectingFeatureHandle&&) noexcept;
++ SchedulingAffectingFeatureHandle&&);
+
+ inline void reset() {
+ if (scheduler_)
+diff --git a/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h b/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h
+index 38cbf63..ae66c73 100644
+--- a/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h
++++ b/third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h
+@@ -28,8 +28,8 @@
+ TaskHandle();
+ ~TaskHandle();
+
+- TaskHandle(TaskHandle&&) noexcept;
+- TaskHandle& operator=(TaskHandle&&) noexcept;
++ TaskHandle(TaskHandle&&);
++ TaskHandle& operator=(TaskHandle&&);
+
+ // Returns true if the task will run later. Returns false if the task is
+ // cancelled or the task is run already.
+diff --git a/third_party/blink/renderer/platform/weborigin/origin_access_entry.cc b/third_party/blink/renderer/platform/weborigin/origin_access_entry.cc
+index 2e9a9d1..c9d777e7 100644
+--- a/third_party/blink/renderer/platform/weborigin/origin_access_entry.cc
++++ b/third_party/blink/renderer/platform/weborigin/origin_access_entry.cc
+@@ -59,8 +59,7 @@
+ network::mojom::CorsPortMatchMode::kAllowOnlySpecifiedPort,
+ priority) {}
+
+-OriginAccessEntry::OriginAccessEntry(OriginAccessEntry&& from) noexcept =
+- default;
++OriginAccessEntry::OriginAccessEntry(OriginAccessEntry&& from) = default;
+
+ network::cors::OriginAccessEntry::MatchResult OriginAccessEntry::MatchesOrigin(
+ const SecurityOrigin& origin) const {
+diff --git a/third_party/blink/renderer/platform/weborigin/origin_access_entry.h b/third_party/blink/renderer/platform/weborigin/origin_access_entry.h
+index b3e5674..5113a40 100644
+--- a/third_party/blink/renderer/platform/weborigin/origin_access_entry.h
++++ b/third_party/blink/renderer/platform/weborigin/origin_access_entry.h
+@@ -58,7 +58,7 @@
+ network::mojom::CorsDomainMatchMode,
+ network::mojom::CorsOriginAccessMatchPriority priority =
+ network::mojom::CorsOriginAccessMatchPriority::kDefaultPriority);
+- OriginAccessEntry(OriginAccessEntry&& from) noexcept;
++ OriginAccessEntry(OriginAccessEntry&& from);
+
+ network::cors::OriginAccessEntry::MatchResult MatchesOrigin(
+ const SecurityOrigin&) const;
+diff --git a/third_party/blink/renderer/platform/wtf/deque.h b/third_party/blink/renderer/platform/wtf/deque.h
+index c6fe1b9..4a98ffb 100644
+--- a/third_party/blink/renderer/platform/wtf/deque.h
++++ b/third_party/blink/renderer/platform/wtf/deque.h
+@@ -64,8 +64,8 @@ class Deque {
+ Deque();
+ Deque(const Deque&);
+ Deque& operator=(const Deque&);
+- Deque(Deque&&) noexcept;
+- Deque& operator=(Deque&&) noexcept;
++ Deque(Deque&&);
++ Deque& operator=(Deque&&);
+ ~Deque();
+
+ void FinalizeGarbageCollectedObject() { NOTREACHED(); }
+@@ -343,14 +343,14 @@
+ }
+
+ template <typename T, wtf_size_t inlineCapacity, typename Allocator>
+-inline Deque<T, inlineCapacity, Allocator>::Deque(Deque&& other) noexcept
++inline Deque<T, inlineCapacity, Allocator>::Deque(Deque&& other)
+ : start_(0), end_(0) {
+ Swap(other);
+ }
+
+ template <typename T, wtf_size_t inlineCapacity, typename Allocator>
+ inline Deque<T, inlineCapacity, Allocator>&
+-Deque<T, inlineCapacity, Allocator>::operator=(Deque&& other) noexcept {
++Deque<T, inlineCapacity, Allocator>::operator=(Deque&& other) {
+ Swap(other);
+ return *this;
+ }
+diff --git a/third_party/blink/renderer/platform/wtf/functional.h b/third_party/blink/renderer/platform/wtf/functional.h
+index 2c5aeea..5e4b373 100644
+--- a/third_party/blink/renderer/platform/wtf/functional.h
++++ b/third_party/blink/renderer/platform/wtf/functional.h
+@@ -117,8 +117,7 @@
+ class PassedWrapper final {
+ public:
+ explicit PassedWrapper(T&& scoper) : scoper_(std::move(scoper)) {}
+- PassedWrapper(PassedWrapper&& other) noexcept
+- : scoper_(std::move(other.scoper_)) {}
++ PassedWrapper(PassedWrapper&& other) : scoper_(std::move(other.scoper_)) {}
+ T MoveOut() const { return std::move(scoper_); }
+
+ private:
+@@ -319,9 +318,8 @@
+ CrossThreadFunction(const CrossThreadFunction&) = delete;
+ CrossThreadFunction& operator=(const CrossThreadFunction&) = delete;
+
+- CrossThreadFunction(CrossThreadFunction&& other) noexcept = default;
+- CrossThreadFunction& operator=(CrossThreadFunction&& other) noexcept =
+- default;
++ CrossThreadFunction(CrossThreadFunction&& other) = default;
++ CrossThreadFunction& operator=(CrossThreadFunction&& other) = default;
+
+ R Run(Args... args) const & {
+ return callback_.Run(std::forward<Args>(args)...);
+@@ -356,9 +354,8 @@
+ CrossThreadOnceFunction(const CrossThreadOnceFunction&) = delete;
+ CrossThreadOnceFunction& operator=(const CrossThreadOnceFunction&) = delete;
+
+- CrossThreadOnceFunction(CrossThreadOnceFunction&& other) noexcept = default;
+- CrossThreadOnceFunction& operator=(CrossThreadOnceFunction&& other) noexcept =
+- default;
++ CrossThreadOnceFunction(CrossThreadOnceFunction&& other) = default;
++ CrossThreadOnceFunction& operator=(CrossThreadOnceFunction&& other) = default;
+
+ R Run(Args... args) && {
+ return std::move(callback_).Run(std::forward<Args>(args)...);
+diff --git a/third_party/blink/renderer/platform/wtf/hash_map.h b/third_party/blink/renderer/platform/wtf/hash_map.h
+index 8a002a8..46b39e0 100644
+--- a/third_party/blink/renderer/platform/wtf/hash_map.h
++++ b/third_party/blink/renderer/platform/wtf/hash_map.h
+@@ -106,8 +106,8 @@
+ #endif
+ HashMap(const HashMap&) = default;
+ HashMap& operator=(const HashMap&) = default;
+- HashMap(HashMap&&) noexcept = default;
+- HashMap& operator=(HashMap&&) noexcept = default;
++ HashMap(HashMap&&) = default;
++ HashMap& operator=(HashMap&&) = default;
+
+ // For example, HashMap<int, int>({{1, 11}, {2, 22}, {3, 33}}) will give you
+ // a HashMap containing a mapping {1 -> 11, 2 -> 22, 3 -> 33}.
+diff --git a/third_party/blink/renderer/platform/wtf/hash_set.h b/third_party/blink/renderer/platform/wtf/hash_set.h
+index c79e45f1..d7cdeed 100644
+--- a/third_party/blink/renderer/platform/wtf/hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/hash_set.h
+@@ -74,8 +74,8 @@
+ }
+ HashSet(const HashSet&) = default;
+ HashSet& operator=(const HashSet&) = default;
+- HashSet(HashSet&&) noexcept = default;
+- HashSet& operator=(HashSet&&) noexcept = default;
++ HashSet(HashSet&&) = default;
++ HashSet& operator=(HashSet&&) = default;
+
+ HashSet(std::initializer_list<ValueType> elements);
+ HashSet& operator=(std::initializer_list<ValueType> elements);
+diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h
+index 373280f..52483ec5 100644
+--- a/third_party/blink/renderer/platform/wtf/hash_table.h
++++ b/third_party/blink/renderer/platform/wtf/hash_table.h
+@@ -747,10 +747,10 @@
+ }
+
+ HashTable(const HashTable&);
+- HashTable(HashTable&&) noexcept;
++ HashTable(HashTable&&);
+ void swap(HashTable&);
+ HashTable& operator=(const HashTable&);
+- HashTable& operator=(HashTable&&) noexcept;
++ HashTable& operator=(HashTable&&);
+
+ // When the hash table is empty, just return the same iterator for end as
+ // for begin. This is more efficient because we don't have to skip all the
+@@ -1929,7 +1929,7 @@
+ typename KeyTraits,
+ typename Allocator>
+ HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits, Allocator>::
+- HashTable(HashTable&& other) noexcept
++ HashTable(HashTable&& other)
+ : table_(nullptr),
+ table_size_(0),
+ key_count_(0),
+@@ -2008,7 +2008,7 @@
+ typename Allocator>
+ HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits, Allocator>&
+ HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits, Allocator>::
+-operator=(HashTable&& other) noexcept {
++operator=(HashTable&& other) {
+ swap(other);
+ return *this;
+ }
+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 79c3d76d..71ef37a 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -121,7 +121,7 @@
+ LinkedHashSetNodeBase(const LinkedHashSetNodeBase& other)
+ : prev_(nullptr), next_(nullptr) {}
+
+- LinkedHashSetNodeBase(LinkedHashSetNodeBase&& other) noexcept
++ LinkedHashSetNodeBase(LinkedHashSetNodeBase&& other)
+ : prev_(other.prev_), next_(other.next_) {
+ other.prev_ = nullptr;
+ other.next_ = nullptr;
+@@ -151,7 +151,7 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
+
+- LinkedHashSetNode(LinkedHashSetNode&& other) noexcept
++ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+
+@@ -214,9 +214,9 @@
+
+ LinkedHashSet();
+ LinkedHashSet(const LinkedHashSet&);
+- LinkedHashSet(LinkedHashSet&&) noexcept;
++ LinkedHashSet(LinkedHashSet&&);
+ LinkedHashSet& operator=(const LinkedHashSet&);
+- LinkedHashSet& operator=(LinkedHashSet&&) noexcept;
++ LinkedHashSet& operator=(LinkedHashSet&&);
+
+ // Needs finalization. The anchor needs to unlink itself from the chain.
+ ~LinkedHashSet();
+@@ -748,7 +748,7 @@
+ }
+
+ template <typename T, typename U, typename V, typename W>
+-inline LinkedHashSet<T, U, V, W>::LinkedHashSet(LinkedHashSet&& other) noexcept
++inline LinkedHashSet<T, U, V, W>::LinkedHashSet(LinkedHashSet&& other)
+ : anchor_() {
+ Swap(other);
+ }
+@@ -763,7 +763,7 @@
+
+ template <typename T, typename U, typename V, typename W>
+ inline LinkedHashSet<T, U, V, W>& LinkedHashSet<T, U, V, W>::operator=(
+- LinkedHashSet&& other) noexcept {
++ LinkedHashSet&& other) {
+ Swap(other);
+ return *this;
+ }
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set.h b/third_party/blink/renderer/platform/wtf/list_hash_set.h
+index ead6a87..78bd279 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set.h
+@@ -145,9 +145,9 @@ class ListHashSet {
+
+ ListHashSet();
+ ListHashSet(const ListHashSet&);
+- ListHashSet(ListHashSet&&) noexcept;
++ ListHashSet(ListHashSet&&);
+ ListHashSet& operator=(const ListHashSet&);
+- ListHashSet& operator=(ListHashSet&&) noexcept;
++ ListHashSet& operator=(ListHashSet&&);
+ ~ListHashSet();
+
+ void Swap(ListHashSet&);
+@@ -780,8 +780,7 @@
+ }
+
+ template <typename T, size_t inlineCapacity, typename U, typename V>
+-inline ListHashSet<T, inlineCapacity, U, V>::ListHashSet(
+- ListHashSet&& other) noexcept
++inline ListHashSet<T, inlineCapacity, U, V>::ListHashSet(ListHashSet&& other)
+ : head_(nullptr), tail_(nullptr) {
+ Swap(other);
+ }
+@@ -796,7 +795,7 @@
+
+ template <typename T, size_t inlineCapacity, typename U, typename V>
+ inline ListHashSet<T, inlineCapacity, U, V>&
+-ListHashSet<T, inlineCapacity, U, V>::operator=(ListHashSet&& other) noexcept {
++ListHashSet<T, inlineCapacity, U, V>::operator=(ListHashSet&& other) {
+ Swap(other);
+ return *this;
+ }
+diff --git a/third_party/blink/renderer/platform/wtf/type_traits_test.cc b/third_party/blink/renderer/platform/wtf/type_traits_test.cc
+index 0930b73..1b45d55 100644
+--- a/third_party/blink/renderer/platform/wtf/type_traits_test.cc
++++ b/third_party/blink/renderer/platform/wtf/type_traits_test.cc
+@@ -158,7 +158,7 @@
+ STACK_ALLOCATED();
+
+ public:
+- CopyAssignmentDeleted& operator=(CopyAssignmentDeleted&&) noexcept;
++ CopyAssignmentDeleted& operator=(CopyAssignmentDeleted&&);
+
+ private:
+ CopyAssignmentDeleted& operator=(const CopyAssignmentDeleted&) = delete;
+@@ -173,7 +173,7 @@
+ STACK_ALLOCATED();
+
+ public:
+- CopyAssignmentPrivate& operator=(CopyAssignmentPrivate&&) noexcept;
++ CopyAssignmentPrivate& operator=(CopyAssignmentPrivate&&);
+
+ private:
+ CopyAssignmentPrivate& operator=(const CopyAssignmentPrivate&);
+@@ -188,7 +188,7 @@
+ STACK_ALLOCATED();
+
+ public:
+- CopyAssignmentUndeclared& operator=(CopyAssignmentUndeclared&&) noexcept;
++ CopyAssignmentUndeclared& operator=(CopyAssignmentUndeclared&&);
+ };
+
+ static_assert(!std::is_copy_assignable<CopyAssignmentUndeclared>::value,
+diff --git a/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h b/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h
+index 3f44cd2..ee7c89a 100644
+--- a/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h
++++ b/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_contents.h
+@@ -68,7 +68,7 @@
+ deleter_(deleter),
+ deleter_info_(deleter_info) {}
+ // Move constructor
+- DataHandle(DataHandle&& other) noexcept { *this = std::move(other); }
++ DataHandle(DataHandle&& other) { *this = std::move(other); }
+ ~DataHandle() {
+ if (!data_)
+ return;
+diff --git a/third_party/blink/renderer/platform/wtf/vector.h b/third_party/blink/renderer/platform/wtf/vector.h
+index 2783c2b..43a27f7 100644
+--- a/third_party/blink/renderer/platform/wtf/vector.h
++++ b/third_party/blink/renderer/platform/wtf/vector.h
+@@ -1018,8 +1018,8 @@
+ Vector& operator=(const Vector<T, otherCapacity, Allocator>&);
+
+ // Moving.
+- Vector(Vector&&) noexcept;
+- Vector& operator=(Vector&&) noexcept;
++ Vector(Vector&&);
++ Vector& operator=(Vector&&);
+
+ // Construct with an initializer list. You can do e.g.
+ // Vector<int> v({1, 2, 3});
+@@ -1459,7 +1459,7 @@
+
+ template <typename T, wtf_size_t inlineCapacity, typename Allocator>
+ Vector<T, inlineCapacity, Allocator>::Vector(
+- Vector<T, inlineCapacity, Allocator>&& other) noexcept {
++ Vector<T, inlineCapacity, Allocator>&& other) {
+ size_ = 0;
+ // It's a little weird to implement a move constructor using swap but this
+ // way we don't have to add a move constructor to VectorBuffer.
+@@ -1468,7 +1468,7 @@
+
+ template <typename T, wtf_size_t inlineCapacity, typename Allocator>
+ Vector<T, inlineCapacity, Allocator>& Vector<T, inlineCapacity, Allocator>::
+-operator=(Vector<T, inlineCapacity, Allocator>&& other) noexcept {
++operator=(Vector<T, inlineCapacity, Allocator>&& other) {
+ swap(other);
+ return *this;
+ }
+diff --git a/third_party/blink/renderer/platform/wtf/vector_test.cc b/third_party/blink/renderer/platform/wtf/vector_test.cc
+index aa8a138..788cc2bb 100644
+--- a/third_party/blink/renderer/platform/wtf/vector_test.cc
++++ b/third_party/blink/renderer/platform/wtf/vector_test.cc
+@@ -420,8 +420,8 @@
+ class MojoMoveOnlyType final {
+ public:
+ MojoMoveOnlyType();
+- MojoMoveOnlyType(MojoMoveOnlyType&&) noexcept;
+- MojoMoveOnlyType& operator=(MojoMoveOnlyType&&) noexcept;
++ MojoMoveOnlyType(MojoMoveOnlyType&&);
++ MojoMoveOnlyType& operator=(MojoMoveOnlyType&&);
+ ~MojoMoveOnlyType();
+
+ private:
+diff --git a/third_party/blink/renderer/platform/wtf/wtf_test_helper.h b/third_party/blink/renderer/platform/wtf/wtf_test_helper.h
+index e797445..8f31365 100644
+--- a/third_party/blink/renderer/platform/wtf/wtf_test_helper.h
++++ b/third_party/blink/renderer/platform/wtf/wtf_test_helper.h
+@@ -36,9 +36,9 @@
+ public:
+ explicit MoveOnly(int i = 0) : i_(i) {}
+
+- MoveOnly(MoveOnly&& other) noexcept : i_(other.i_) { other.i_ = 0; }
++ MoveOnly(MoveOnly&& other) : i_(other.i_) { other.i_ = 0; }
+
+- MoveOnly& operator=(MoveOnly&& other) noexcept {
++ MoveOnly& operator=(MoveOnly&& other) {
+ if (this != &other) {
+ i_ = other.i_;
+ other.i_ = 0;
+@@ -62,12 +62,12 @@
+
+ explicit MoveOnlyHashValue(int value = kEmpty, int id = 0)
+ : value_(value), id_(id) {}
+- MoveOnlyHashValue(MoveOnlyHashValue&& other) noexcept
++ MoveOnlyHashValue(MoveOnlyHashValue&& other)
+ : value_(other.value_), id_(other.id_) {
+ other.value_ = kMovedOut;
+ other.id_ = 0;
+ }
+- MoveOnlyHashValue& operator=(MoveOnlyHashValue&& other) noexcept {
++ MoveOnlyHashValue& operator=(MoveOnlyHashValue&& other) {
+ value_ = other.value_;
+ id_ = other.id_;
+ other.value_ = kMovedOut;
diff --git a/chromium-gcc9-r694853.patch b/chromium-gcc9-r694853.patch
new file mode 100644
index 0000000..9a77a30
--- /dev/null
+++ b/chromium-gcc9-r694853.patch
@@ -0,0 +1,51 @@
+From 9662ec844017690d5fd56bf0f05ef6a540dd29c1 Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson(a)chromium.org>
+Date: Mon, 9 Sep 2019 19:06:01 +0000
+Subject: [PATCH] Fix GCC build error
+
+Fixes this error:
+[ 375s] In file included from ../../base/task/common/intrusive_heap.h:8,
+[ 375s] from ../../base/task/thread_pool/task_source.h:17,
+[ 375s] from ../../base/task/thread_pool/task_tracker.h:27,
+[ 375s] from ./../../base/task/thread_pool/service_thread.cc:14,
+[ 375s] from gen/base/base_jumbo_28.cc:5:
+[ 375s] ../../base/containers/intrusive_heap.h:152:36: error: enumerator value
+ '-1' is outside the range of underlying type 'size_t' {aka 'long unsigned int'}
+[ 375s] 152 | enum : size_t { kInvalidIndex = -1 };
+[ 375s] |
+
+Change-Id: I6044fb704931b2f8416f6b19a247ae297cd7b0d6
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1792763
+Commit-Queue: Thomas Anderson <thomasanderson(a)chromium.org>
+Commit-Queue: Lei Zhang <thestig(a)chromium.org>
+Reviewed-by: Lei Zhang <thestig(a)chromium.org>
+Auto-Submit: Thomas Anderson <thomasanderson(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#694853}
+---
+ base/containers/intrusive_heap.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/base/containers/intrusive_heap.h b/base/containers/intrusive_heap.h
+index 53d3909560c7..d7626bbc3986 100644
+--- a/base/containers/intrusive_heap.h
++++ b/base/containers/intrusive_heap.h
+@@ -131,6 +131,7 @@
+
+ #include <algorithm>
+ #include <functional>
++#include <limits>
+ #include <type_traits>
+ #include <utility>
+ #include <vector>
+@@ -149,7 +150,7 @@ namespace base {
+ // in place.
+ class BASE_EXPORT HeapHandle {
+ public:
+- enum : size_t { kInvalidIndex = -1 };
++ enum : size_t { kInvalidIndex = std::numeric_limits<size_t>::max() };
+
+ constexpr HeapHandle() = default;
+ constexpr HeapHandle(const HeapHandle& other) = default;
+--
+2.21.0
+
diff --git a/chromium-gcc9-r696834.patch b/chromium-gcc9-r696834.patch
new file mode 100644
index 0000000..217c66e
--- /dev/null
+++ b/chromium-gcc9-r696834.patch
@@ -0,0 +1,89 @@
+From f4c3c329588b78af63aad8b401da767242b86709 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 16 Sep 2019 17:05:42 +0000
+Subject: [PATCH] dns_util: Make DohUpgradeEntry non-const when used with
+ std::vector<>
+
+This fixes the build with libstdc++ (with most other standard libraries
+other than libc++, in fact) after commit f93a48e3 ("Allow upgrade to DoH
+during automatic mode"):
+
+../../../../../../usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_vector.h:351:7: error: static_assert failed due to requirement 'is_same<typename remove_cv<const DohUpgradeEntry>::type, const DohUpgradeEntry>::value' "std::vector must have a non-const, non-volatile value_type"
+ static_assert(is_same<typename remove_cv<_Tp>::type, _Tp>::value,
+ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+../../base/no_destructor.h:77:28: note: in instantiation of template class 'std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >' requested here
+ alignas(T) char storage_[sizeof(T)];
+ ^
+../../net/dns/dns_util.cc:147:7: note: in instantiation of template class 'base::NoDestructor<std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> > >' requested here
+ upgradable_servers({
+ ^
+../../net/dns/dns_util.cc:230:36: error: invalid range expression of type 'const std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >'; no viable 'begin' function available
+ for (const auto& upgrade_entry : upgradable_servers) {
+ ^ ~~~~~~~~~~~~~~~~~~
+
+The C++ standard forbids containers of const elements. Callers of
+GetDohUpgradeList() use it in a safe way anyway, and most of
+DohUpgradeEntry's members are const.
+
+Bug: 957519
+Change-Id: I826a51823edb1184c0fae27105101e2894efe568
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1805636
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Eric Orth <ericorth(a)chromium.org>
+Reviewed-by: Eric Orth <ericorth(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#696834}
+---
+ net/dns/dns_util.cc | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc
+index d83ff7c15024..14997c48b23c 100644
+--- a/net/dns/dns_util.cc
++++ b/net/dns/dns_util.cc
+@@ -139,11 +139,11 @@ struct DohUpgradeEntry {
+ const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config;
+ };
+
+-const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() {
++const std::vector<DohUpgradeEntry>& GetDohUpgradeList() {
+ // The provider names in these entries should be kept in sync with the
+ // DohProviderId histogram suffix list in
+ // tools/metrics/histograms/histograms.xml.
+- static const base::NoDestructor<std::vector<const DohUpgradeEntry>>
++ static const base::NoDestructor<std::vector<DohUpgradeEntry>>
+ upgradable_servers({
+ DohUpgradeEntry(
+ "CleanBrowsingAdult",
+@@ -222,8 +222,7 @@ const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() {
+ std::vector<const DohUpgradeEntry*> GetDohUpgradeEntriesFromNameservers(
+ const std::vector<IPEndPoint>& dns_servers,
+ const std::vector<std::string>& excluded_providers) {
+- const std::vector<const DohUpgradeEntry>& upgradable_servers =
+- GetDohUpgradeList();
++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
+ std::vector<const DohUpgradeEntry*> entries;
+
+ for (const auto& server : dns_servers) {
+@@ -417,8 +416,7 @@ std::vector<DnsConfig::DnsOverHttpsServerConfig>
+ GetDohUpgradeServersFromDotHostname(
+ const std::string& dot_server,
+ const std::vector<std::string>& excluded_providers) {
+- const std::vector<const DohUpgradeEntry>& upgradable_servers =
+- GetDohUpgradeList();
++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
+ std::vector<DnsConfig::DnsOverHttpsServerConfig> doh_servers;
+
+ if (dot_server.empty())
+@@ -451,8 +449,7 @@ GetDohUpgradeServersFromNameservers(
+
+ std::string GetDohProviderIdForHistogramFromDohConfig(
+ const DnsConfig::DnsOverHttpsServerConfig& doh_server) {
+- const std::vector<const DohUpgradeEntry>& upgradable_servers =
+- GetDohUpgradeList();
++ const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
+ for (const auto& upgrade_entry : upgradable_servers) {
+ if (doh_server.server_template ==
+ upgrade_entry.dns_over_https_config.server_template) {
+--
+2.21.0
+
diff --git a/chromium-gcc9-r706467.patch b/chromium-gcc9-r706467.patch
new file mode 100644
index 0000000..a71381d
--- /dev/null
+++ b/chromium-gcc9-r706467.patch
@@ -0,0 +1,48 @@
+From e73aed9a5ef15102f29ac31b70290faf5c90f9fe Mon Sep 17 00:00:00 2001
+From: Evan Stade <estade(a)chromium.org>
+Date: Wed, 16 Oct 2019 16:01:32 +0000
+Subject: [PATCH] Fix shutdown crash in ProfileManager.
+
+OnProfileMarkedForPermanentDeletion should move from
+ProfileManagerObserver to ProfileObserver, which would also
+fix this bug. However, changing the order of members is the
+quickest and most cherry-pick-able way to avoid the crash.
+
+Bug: 1005244
+Change-Id: If2db68c846dd418cd02864b57b9b543687fa1e03
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863518
+Auto-Submit: Evan Stade <estade(a)chromium.org>
+Reviewed-by: David Roger <droger(a)chromium.org>
+Commit-Queue: Evan Stade <estade(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#706467}
+---
+ chrome/browser/profiles/profile_manager.h | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
+index b60df76d59c1..7d02af7f8f60 100644
+--- a/chrome/browser/profiles/profile_manager.h
++++ b/chrome/browser/profiles/profile_manager.h
+@@ -410,6 +410,10 @@ class ProfileManager : public content::NotificationObserver,
+ const base::FilePath& profile_dir);
+ #endif // !defined(OS_ANDROID)
+
++ // Destroy after |profile_info_cache_| since Profile destruction may trigger
++ // some observers to unregister themselves.
++ base::ObserverList<ProfileManagerObserver> observers_;
++
+ // Object to cache various information about profiles. Contains information
+ // about every profile which has been created for this instance of Chrome,
+ // if it has not been explicitly deleted. It must be destroyed after
+@@ -451,8 +455,6 @@ class ProfileManager : public content::NotificationObserver,
+ // Controls whether to initialize some services. Only disabled for testing.
+ bool do_final_services_init_ = true;
+
+- base::ObserverList<ProfileManagerObserver> observers_;
+-
+ // TODO(chrome/browser/profiles/OWNERS): Usage of this in profile_manager.cc
+ // should likely be turned into DCHECK_CURRENTLY_ON(BrowserThread::UI) for
+ // consistency with surrounding code in the same file but that wasn't trivial
+--
+2.21.0
+
diff --git a/chromium-system-icu.patch b/chromium-system-icu.patch
new file mode 100644
index 0000000..f00330b
--- /dev/null
+++ b/chromium-system-icu.patch
@@ -0,0 +1,14 @@
+Index: chromium-76.0.3800.0/third_party/blink/renderer/platform/text/character_property_data.h
+===================================================================
+--- chromium-76.0.3800.0.orig/third_party/blink/renderer/platform/text/character_property_data.h
++++ chromium-76.0.3800.0/third_party/blink/renderer/platform/text/character_property_data.h
+@@ -258,7 +258,7 @@ static const UChar32 kIsHangulRanges[] =
+ 0xFFA0, 0xFFDC,
+ };
+
+-static const UChar32 kIsHangulArray[] = {};
++static const UChar32 kIsHangulArray[] = {0xFFDC,};
+
+ // Freezed trie tree, see character_property_data_generator.cc.
+ extern const int32_t kSerializedCharacterDataSize;
+
diff --git a/chromium-unbundle-zlib.patch b/chromium-unbundle-zlib.patch
new file mode 100644
index 0000000..951a2ad
--- /dev/null
+++ b/chromium-unbundle-zlib.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index 3bc618a..e0ddf6d 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -244,7 +244,7 @@ if (enable_perfetto_trace_processor || perfetto_build_standalone ||
+ "//buildtools:zlib",
+ ]
+ } else {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
diff --git a/chromium-v8-gcc9.patch b/chromium-v8-gcc9.patch
new file mode 100644
index 0000000..8ddb53f
--- /dev/null
+++ b/chromium-v8-gcc9.patch
@@ -0,0 +1,32 @@
+From d16cda8fc3476cc534a756873cc8aa2692a57054 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 22 Aug 2019 13:13:36 +0200
+Subject: [PATCH] GCC: declare noexcept move constructor/assign operators of V8StackTraceId
+
+blink::BlinkCloneableMessage declares default implementation of
+move operator/assign operator that requires v8_inspector::V8StackTraceId
+to declare its move constructor/assign operator too.
+
+Bug: chromium:819294
+Change-Id: Iaf626ee8245efcba372a17cdf2de448e691d41d6
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796062
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Reviewed-by: Yang Guo <yangguo(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#63799}
+---
+
+diff --git a/v8/include/v8-inspector.h b/v8/include/v8-inspector.h
+index ce5b777..ed4cdec 100644
+--- a/v8/include/v8-inspector.h
++++ b/v8/include/v8-inspector.h
+@@ -231,7 +231,10 @@ struct V8_EXPORT V8StackTraceId {
+ std::pair<int64_t, int64_t> debugger_id;
+
+ V8StackTraceId();
++ V8StackTraceId(const V8StackTraceId&) = default;
+ V8StackTraceId(uintptr_t id, const std::pair<int64_t, int64_t> debugger_id);
++ V8StackTraceId& operator=(const V8StackTraceId&) = default;
++ V8StackTraceId& operator=(V8StackTraceId&&) noexcept = default;
+ ~V8StackTraceId() = default;
+
+ bool IsInvalid() const;
diff --git a/enable-vaapi.patch b/enable-vaapi.patch
new file mode 100644
index 0000000..1dd612a
--- /dev/null
+++ b/enable-vaapi.patch
@@ -0,0 +1,115 @@
+From e04b52fc9b12f0725e76b889161ea45c776e6da5 Mon Sep 17 00:00:00 2001
+From: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
+Date: Fri, 20 Sep 2019 19:55:45 +0530
+Subject: [PATCH] Enable VAAPI on Linux
+
+---
+ chrome/browser/about_flags.cc | 8 ++++----
+ chrome/browser/flag_descriptions.cc | 9 ++++++---
+ chrome/browser/flag_descriptions.h | 10 ++++++++--
+ gpu/config/software_rendering_list.json | 3 ++-
+ 4 files changed, 20 insertions(+), 10 deletions(-)
+
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index e608f06a2..c0776db45 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1738,7 +1738,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ {
+@@ -2216,12 +2216,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // !defined(OS_ANDROID)
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS | OS_LINUX
+ {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
+ flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index d27bbb28f..1c6542bdd 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -3071,16 +3071,19 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] =
+
+ #endif
+
+-// Chrome OS -------------------------------------------------------------------
+-
+-#if defined(OS_CHROMEOS)
++// Chrome OS and Linux -------------------------------------------------------------------
+
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
++#endif
+
++// Chrome OS -----------------------------------------------------------------------------
++
++#if defined(OS_CHROMEOS)
+ const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
+ const char kAggregatedMlAppRankingDescription[] =
+ "Use the aggregated ML model to rank the suggested apps.";
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index 1f8899de1..06544e079 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1822,13 +1822,19 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+
+ #endif // defined(OS_MACOSX)
+
+-// Chrome OS ------------------------------------------------------------------
++// Chrome OS and Linux ---------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++#endif
++
++// Chrome OS -------------------------------------------------------------------
++
++#if defined(OS_CHROMEOS)
++
+ extern const char kAggregatedMlAppRankingName[];
+ extern const char kAggregatedMlAppRankingDescription[];
+
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index ea1294e4c..bc52cbc8f 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -334,11 +334,12 @@
+ },
+ {
+ "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
++ "description": "Accelerated VA-API video decode is not supported on NVIDIA platforms",
+ "cr_bugs": [137247],
+ "os": {
+ "type": "linux"
+ },
++ "vendor_id": "0x10de",
+ "features": [
+ "accelerated_video_decode"
+ ]
+--
+2.21.0
+
diff --git a/fixvaapionintel.patch b/fixvaapionintel.patch
new file mode 100644
index 0000000..a94886a
--- /dev/null
+++ b/fixvaapionintel.patch
@@ -0,0 +1,49 @@
+From 9ff06536caf7ea51aad9fd2bb649c858eaf7ee84 Mon Sep 17 00:00:00 2001
+From: Akarshan Biswas <akarshanbiswas(a)fedoraproject.org>
+Date: Sat, 26 Oct 2019 10:06:30 +0530
+Subject: [PATCH] Move offending function to chromeos only
+
+---
+ media/gpu/vaapi/vaapi_video_decode_accelerator.cc | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+index f04b60f58..3e7865503 100644
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+@@ -63,6 +63,7 @@ void ReportToUMA(VAVDADecoderFailure failure) {
+ VAVDA_DECODER_FAILURES_MAX + 1);
+ }
+
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
+ // Returns true if the CPU is an Intel Gemini Lake or later (including Kaby
+ // Lake) Cpu platform id's are referenced from the following file in kernel
+ // source arch/x86/include/asm/intel-family.h
+@@ -75,6 +76,7 @@ bool IsGeminiLakeOrLater() {
+ cpuid.model() >= kGeminiLakeModelId;
+ return is_geminilake_or_later;
+ }
++#endif
+
+ } // namespace
+
+@@ -1091,6 +1093,8 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+ if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
+ return BufferAllocationMode::kNormal;
+
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
++ // Move this to chromeOs only as it is causing problem in some intel linux drivers
+ // On Gemini Lake, Kaby Lake and later we can pass to libva the client's
+ // PictureBuffers to decode onto, which skips the use of the Vpp unit and its
+ // associated format reconciliation copy, avoiding all internal buffer
+@@ -1107,6 +1111,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+ num_extra_pics_ = 3;
+ return BufferAllocationMode::kNone;
+ }
++#endif
+
+ // If we're here, we have to use the Vpp unit and allocate buffers for
+ // |decoder_|; usually we'd have to allocate the |decoder_|s
+--
+2.21.0
+
diff --git a/py2-bootstrap.patch b/py2-bootstrap.patch
new file mode 100644
index 0000000..9d83256
--- /dev/null
+++ b/py2-bootstrap.patch
@@ -0,0 +1,33 @@
+diff -urN chromium-71.0.3578.30.orig/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py chromium-71.0.3578.30/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
+--- chromium-71.0.3578.30.orig/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2018-11-08 14:32:09.783181849 +0300
++++ chromium-71.0.3578.30/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2018-11-08 14:32:47.160705794 +0300
+@@ -58,7 +58,7 @@
+
+ with tempfile.NamedTemporaryFile() as _:
+ args = [
+- 'python',
++ 'python2',
+ rjsmin_path
+ ]
+ p = subprocess.Popen(args,
+@@ -177,7 +177,7 @@
+ os.path.join(py_vulcanize_path, 'third_party', 'rcssmin', 'rcssmin.py'))
+
+ with tempfile.NamedTemporaryFile() as _:
+- rcssmin_args = ['python', rcssmin_path]
++ rcssmin_args = ['python2', rcssmin_path]
+ p = subprocess.Popen(rcssmin_args,
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+diff -urN chromium-71.0.3578.30.orig/tools/gn/bootstrap/bootstrap.py chromium-71.0.3578.30/tools/gn/bootstrap/bootstrap.py
+--- chromium-71.0.3578.30.orig/tools/gn/bootstrap/bootstrap.py 2018-11-08 14:33:17.817140200 +0300
++++ chromium-71.0.3578.30/tools/gn/bootstrap/bootstrap.py 2018-11-08 14:33:21.274189185 +0300
+@@ -93,7 +93,7 @@
+ if not options.debug:
+ gn_gen_args += ' is_debug=false'
+ subprocess.check_call([
+- gn_path, 'gen', out_dir,
++ gn_path, 'gen', '--script-executable=/usr/bin/python2', out_dir,
+ '--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
+ ])
+
diff --git a/sources b/sources
index e69de29..9e9cab3 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (chromium-78.0.3904.70.tar.xz) = 95d926ea92a0e744284a4c5fca619e3a067dd0fdfaa7c05b5a069d2a8d1159bf849335e21e5803bd28175c1994bd4ff15337ad0a3063445fab74eef113275545
diff --git a/widevine.patch b/widevine.patch
new file mode 100644
index 0000000..3ecf0e7
--- /dev/null
+++ b/widevine.patch
@@ -0,0 +1,22 @@
+diff -upr chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc chromium-71.0.3578.80/chrome/common/chrome_content_client.cc
+--- chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc 2018-12-21 20:16:43.000000000 +0000
++++ chromium-71.0.3578.80/chrome/common/chrome_content_client.cc 2018-12-21 21:34:28.658206942 +0000
+@@ -99,7 +99,7 @@
+ // Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
+ // bundled and not a component. When the Widevine CDM is a component, it is
+ // registered in widevine_cdm_component_installer.cc.
+-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
++#if BUILDFLAG(ENABLE_WIDEVINE) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
+ #define REGISTER_BUNDLED_WIDEVINE_CDM
+ #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
+ // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
+diff -upr chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h
+--- chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-03 20:18:01.000000000 +0000
++++ chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-04 21:37:45.635374949 +0000
+@@ -12,4 +12,6 @@
+ // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
+ // as a string, e.g., "1.0.123.456").
+
++#define WIDEVINE_CDM_VERSION_STRING "unknown"
++
+ #endif // WIDEVINE_CDM_VERSION_H_
4 years, 7 months
[chromium-browser-privacy: 1/51] Initial setup of the repo
by qvint
commit cb71b84105db4ea5c5710454e84a19f0cceee23d
Author: RPM Fusion Release Engineering <sysadmin(a)lists.rpmfusion.org>
Date: Mon Oct 28 15:13:46 2019 +0100
Initial setup of the repo
.gitignore | 0
sources | 0
2 files changed, 0 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/sources b/sources
new file mode 100644
index 0000000..e69de29
4 years, 7 months
[chromium-browser-privacy] (51 commits) ...Update ungoogled-chromium to 209e24b
by qvint
Summary of changes:
cb71b84... Initial setup of the repo
13ea22c... IMPORT: rename package; add back Fedora build flags
8c5b230... Remove: Fedora build flags; useless warnings on logs
35772b7... Revert "Remove: Fedora build flags; useless warnings on log
10048a9... Disable: Useless for non verbose builds
67b6309... Reduce: jumbo level to 6
1f3e0fd... Disable debuginfo to match fedora chromium
acc402f... Move: Support Redhat Build flags only on fedora 31 and due
f0555ec... Merge branch 'f30' of ssh://pkgs.rpmfusion.org/free/chromiu
14a88bb... Update to 78.0.3904.87
c0d64e9... Add: -g0 when debug pkgs are off to make sure no debug symb
1ddd956... Merge branch 'master' into f30
53eeef4... Update to 78.0.3904.97.
50b388e... Merge branch 'master' into f30
58fd912... Remove: jumbo build from spec as it is going to get remove
16a663c... Update to 78.0.3904.108.
37a36ab... Add: missing header to fix build
e161321... Merge branch 'master' into f30
ecef62a... Fix: Symbols still present even after adding -g0
d0b6e27... Disabled fedora build flags to reduce binary size.
5405570... Added building with clang back to the spec Removed hard cod
7243aac... Update to 79.0.3945.79
7e4ad08... Fix: Building with system harfbuzz
6ac3e58... Merge branch 'master' into f30
356aee7... Enable: System minizip in f30
e472355... Disable system libicu for fedora 31 and below and remove ex
257d646... Disable system libicu for fedora 31 and below and remove ex
ab303c9... Update to 79.0.3945.88
9dc4398... Merge branch 'master' into f31
8fa4bdf... Merge branch 'master' into f30
3ad6845... Update to 79.0.3945.117.
8c23d50... Merge branch 'master' into f31
9552b0d... Merge branch 'master' into f30
33dc419... Update to security fix release 79.0.3945.130.
a3b2592... Merge branch 'master' into f31
5ae37af... Merge branch 'master' into f30
a85ce69... - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass
03d6f4b... Drop unused patches
ed3ed89... Merge branch 'f32' into f31
6e524bd... Merge branch 'f31' into f30
b762f0b... Update to 80.0.3987.122
65a464d... Update to 80.0.3987.132
65000f7... Import free/chromium-freeworld history
a35f5f4... Fix rpmlint warnings and errors
bb16e35... Update to 80.0.3987.149
424fc4f... Update to 80.0.3987.162
ff520a1... Update to 80.0.3987.163
71eed6c... Build requires expat-devel
f6143e9... Update to 81.0.4044.92
e21fe2a... Sync spec and sources with free/chromium-freeworld
0454b26... Update ungoogled-chromium to 209e24b
4 years, 7 months